]> git.puffer.fish Git - mirror/frr.git/commitdiff
Revert "isisd: remove previous labels before fast-reroute"
authorDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 10 Jul 2022 18:41:21 +0000 (21:41 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 10 Jul 2022 18:41:21 +0000 (21:41 +0300)
This reverts commit a254fa54e3d5c31befb40164fc70deab3cf639ad.

isisd/isis_route.c

index a91ce7eeac2c135828f7047a59df2ddf8c9787ef..b04e8e455373e14b46390ce5269f10e82c12a2db 100644 (file)
@@ -459,21 +459,6 @@ void isis_route_delete(struct isis_area *area, struct route_node *rode,
        route_unlock_node(rode);
 }
 
-static void isis_route_remove_previous_sid(struct isis_area *area,
-                                          struct prefix *prefix,
-                                          struct isis_route_info *route_info)
-{
-       /*
-        * Explicitly uninstall previous Prefix-SID label if it has
-        * changed or was removed.
-        */
-       if (route_info->sr_previous.present &&
-           (!route_info->sr.present ||
-            route_info->sr_previous.label != route_info->sr.label))
-               isis_zebra_prefix_sid_uninstall(area, prefix, route_info,
-                                               &route_info->sr_previous);
-}
-
 static void isis_route_update(struct isis_area *area, struct prefix *prefix,
                              struct prefix_ipv6 *src_p,
                              struct isis_route_info *route_info)
@@ -482,7 +467,17 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
                if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED))
                        return;
 
-               isis_route_remove_previous_sid(area, prefix, route_info);
+               /*
+                * Explicitly uninstall previous Prefix-SID label if it has
+                * changed or was removed.
+                */
+               if (route_info->sr_previous.present
+                   && (!route_info->sr.present
+                       || route_info->sr_previous.label
+                                  != route_info->sr.label))
+                       isis_zebra_prefix_sid_uninstall(
+                               area, prefix, route_info,
+                               &route_info->sr_previous);
 
                /* Install route. */
                isis_zebra_route_add_route(area->isis, prefix, src_p,
@@ -770,7 +765,6 @@ void isis_route_switchover_nexthop(struct isis_area *area,
                                       (const struct prefix **)&src_p);
 
                /* Switchover route. */
-               isis_route_remove_previous_sid(area, prefix, rinfo);
                UNSET_FLAG(rinfo->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
                isis_route_update(area, prefix, src_p, rinfo->backup);