summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorMark Stapp <mjs@voltanet.io>2019-12-02 18:03:57 +0100
committerMark Stapp <mjs@voltanet.io>2019-12-09 22:19:14 +0100
commit1c30d64bb63aedd0104aa3525815d3ff16c45522 (patch)
tree8a7f6f0036676c5c183d0633164bbadaf57c91c4 /zebra/zebra_rib.c
parentMerge pull request #5498 from mjstapp/sharp_with_labels (diff)
downloadfrr-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.c13
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;
}
/*