]> git.proxmox.com Git - mirror_frr.git/commitdiff
zebra: set SELECTED flag in rib_process
authorMark Stapp <mjs@voltanet.io>
Wed, 27 Jun 2018 21:13:26 +0000 (17:13 -0400)
committerMark Stapp <mjs@voltanet.io>
Thu, 25 Oct 2018 12:34:30 +0000 (08:34 -0400)
Set SELECTED re immediately in rib_process, without expecting
that fib install has completed. Remove premature redistribute
call also.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
zebra/zebra_rib.c

index 784b92786ad0d920013afafcc84fe778b2f0e00e..bd13248f5694489e9807d54151c5f365d7ecee4d 100644 (file)
@@ -1839,22 +1839,12 @@ static void rib_process(struct route_node *rn)
        else if (old_fib)
                rib_process_del_fib(zvrf, rn, old_fib);
 
-       /* Redistribute SELECTED entry */
+       /* Update SELECTED entry */
        if (old_selected != new_selected || selected_changed) {
-               struct nexthop *nexthop = NULL;
 
-               /* Check if we have a FIB route for the destination, otherwise,
-                * don't redistribute it */
-               if (new_fib) {
-                       for (ALL_NEXTHOPS(new_fib->ng, nexthop)) {
-                               if (CHECK_FLAG(nexthop->flags,
-                                              NEXTHOP_FLAG_FIB)) {
-                                       break;
-                               }
-                       }
+               if (new_selected) {
+                       SET_FLAG(new_selected->flags, ZEBRA_FLAG_SELECTED);
                }
-               if (!nexthop)
-                       new_selected = NULL;
 
                if (new_selected && new_selected != new_fib) {
                        nexthop_active_update(rn, new_selected, 1);
@@ -1868,14 +1858,6 @@ static void rib_process(struct route_node *rn)
                                UNSET_FLAG(old_selected->flags,
                                           ZEBRA_FLAG_SELECTED);
                }
-
-               if (new_selected) {
-                       /* Install new or replace existing redistributed entry
-                        */
-                       SET_FLAG(new_selected->flags, ZEBRA_FLAG_SELECTED);
-                       redistribute_update(p, src_p, new_selected,
-                                           old_selected);
-               }
        }
 
        /* Remove all RE entries queued for removal */