From 4b6319b26e04d9b56ce5d8781d800d9a557f8f36 Mon Sep 17 00:00:00 2001 From: Mark Stapp Date: Tue, 17 Sep 2019 11:33:46 -0400 Subject: [PATCH] zebra: check all dplane nexthops when processing [7.2 version] When processing route updates from the dataplane, we were terminating the checking of nexthops prematurely, and we could miss meaningful changes. Signed-off-by: Mark Stapp --- zebra/zebra_rib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 157c67fa62..5a75ebbf17 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -1547,7 +1547,9 @@ static bool rib_update_re_from_ctx(struct route_entry *re, changed_p = true; UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB); - break; + + /* Keep checking nexthops */ + continue; } if (CHECK_FLAG(ctx_nexthop->flags, NEXTHOP_FLAG_FIB)) { @@ -1983,6 +1985,9 @@ static void rib_process_dplane_notify(struct zebra_dplane_ctx *ctx) * not-installed; or not-installed to installed. */ if (start_count > 0 && end_count > 0) { + if (debug_p) + zlog_debug("%u:%s applied nexthop changes from dplane notification", + dplane_ctx_get_vrf(ctx), dest_str); /* Changed nexthops - update kernel/others */ dplane_route_notif_update(rn, re,