diff options
author | Mark Stapp <mjs@voltanet.io> | 2019-12-02 18:03:57 +0100 |
---|---|---|
committer | Mark Stapp <mjs@voltanet.io> | 2019-12-09 22:19:14 +0100 |
commit | 1c30d64bb63aedd0104aa3525815d3ff16c45522 (patch) | |
tree | 8a7f6f0036676c5c183d0633164bbadaf57c91c4 /zebra/zebra_rib.c | |
parent | Merge pull request #5498 from mjstapp/sharp_with_labels (diff) | |
download | frr-1c30d64bb63aedd0104aa3525815d3ff16c45522.tar.xz frr-1c30d64bb63aedd0104aa3525815d3ff16c45522.zip |
zebra: align dplane notify processing with nhg work
The processing of dataplane route notifications was a little
off-target after the nexthop-group re-work. This should allow
notifications to work better.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
Diffstat (limited to '')
-rw-r--r-- | zebra/zebra_rib.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index d525da26e..dbd6daae9 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -1808,9 +1808,12 @@ static void rib_process_dplane_notify(struct zebra_dplane_ctx *ctx) * and then again if there's been a change. */ start_count = 0; - for (ALL_NEXTHOPS_PTR(rib_active_nhg(re), nexthop)) { - if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB)) - start_count++; + + if (CHECK_FLAG(re->status, ROUTE_ENTRY_INSTALLED)) { + for (ALL_NEXTHOPS_PTR(rib_active_nhg(re), nexthop)) { + if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB)) + start_count++; + } } /* Update zebra's nexthop FIB flags based on the context struct's @@ -1820,10 +1823,8 @@ static void rib_process_dplane_notify(struct zebra_dplane_ctx *ctx) if (!fib_changed) { if (debug_p) - zlog_debug("%u:%s No change from dplane notification", + zlog_debug("%u:%s dplane notification: rib_update returns FALSE", dplane_ctx_get_vrf(ctx), dest_str); - - goto done; } /* |