]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: check all dplane nexthops when processing 4972/head
authorMark Stapp <mjs@voltanet.io>
Thu, 12 Sep 2019 19:24:52 +0000 (15:24 -0400)
committerMark Stapp <mjs@voltanet.io>
Tue, 17 Sep 2019 14:50:36 +0000 (10:50 -0400)
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>
zebra/zebra_rib.c

index 157c67fa62dcb6d6b4f658748af577bf49f77396..5a75ebbf177698df28135a125841ce8962ea7c16 100644 (file)
@@ -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,