summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index f47081d302..2192907b21 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1400,6 +1400,10 @@ static void rib_process_del_fib(struct zebra_vrf *zvrf, struct route_node *rn,
}
/* Update nexthop for route, reset changed flag. */
+ /* Note: this code also handles the Linux case when an interface goes
+ * down, causing the kernel to delete routes without sending DELROUTE
+ * notifications
+ */
if (!nexthop_active_update(rn, old, 1) &&
(RIB_KERNEL_ROUTE(old)))
SET_FLAG(old->status, ROUTE_ENTRY_REMOVED);