summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorMark Stapp <mjs@voltanet.io>2019-09-12 15:24:52 -0400
committerMark Stapp <mjs@voltanet.io>2019-09-17 10:50:36 -0400
commit11260e70112cf2e0c4f90ee11e2820c20f0dc1d3 (patch)
treee137bfe7a2564e2dab160038378d4d02a24ec18d /zebra/zebra_rib.c
parente6dafed0e261c6582d81d4c9d8f2e4844aff4448 (diff)
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 <mjs@voltanet.io>
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c7
1 files changed, 6 insertions, 1 deletions
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,