{
const rte *trte = new ?: old;
- /* Ignore invalid routes */
- if (!rte_is_valid(new))
- new = NULL;
-
- if (!rte_is_valid(old))
- old = NULL;
-
- if (!new && !old)
- {
- channel_rte_trace_out(D_ROUTES, c, trte, "idempotent withdraw (filtered on import)");
- return;
- }
-
/* Have we exported the old route? */
if (old)
{
rt_export_processed(&c->out_req, rpe->it.seq);
}
+ /* Ignore invalid routes */
+ if (!rte_is_valid(new))
+ new = NULL;
+
+ if (!rte_is_valid(old))
+ old = NULL;
+
+ /* Update status map flags for id-only updates */
if (new && old && rte_same(new, old))
{
channel_rte_trace_out(D_ROUTES, c, new, "already exported");
bug("Withdrawn route never seen before");
}
else if (!new && !old)
- channel_rte_trace_out(D_ROUTES, c, u->update->new, "idempotent withdraw (squash)");
+ channel_rte_trace_out(D_ROUTES, c, u->update->new, "idempotent withdraw");
else
rt_notify_basic(c, new, old);