diff options
| author | Mark Stapp <mjs@voltanet.io> | 2019-09-12 15:24:52 -0400 |
|---|---|---|
| committer | Mark Stapp <mjs@voltanet.io> | 2019-09-17 10:50:36 -0400 |
| commit | 11260e70112cf2e0c4f90ee11e2820c20f0dc1d3 (patch) | |
| tree | e137bfe7a2564e2dab160038378d4d02a24ec18d /zebra/zebra_rib.c | |
| parent | e6dafed0e261c6582d81d4c9d8f2e4844aff4448 (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.c | 7 |
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, |
