From: Mark Stapp Date: Thu, 12 Sep 2019 19:24:52 +0000 (-0400) Subject: zebra: check all dplane nexthops when processing X-Git-Tag: base_7.3~312^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=11260e70112cf2e0c4f90ee11e2820c20f0dc1d3;p=mirror%2Ffrr.git zebra: check all dplane nexthops when processing 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 --- 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,