]> git.proxmox.com Git - mirror_frr.git/commitdiff
Revert "isisd: apply fast-reroute on an adjacency failure"
authorDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 10 Jul 2022 18:41:25 +0000 (21:41 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 10 Jul 2022 18:41:25 +0000 (21:41 +0300)
This reverts commit 71252973234e70ffa3cb5eec43d4efc1be3d3331.

isisd/isis_adjacency.c
isisd/isis_adjacency.h
isisd/isis_circuit.c
isisd/isis_circuit.h
isisd/isis_route.c
isisd/isis_route.h
isisd/isis_spf.c
isisd/isis_spf.h
isisd/isisd.c
isisd/isisd.h

index 5b32a9e388a0efcc5e72e07767878aa50533e74e..11f17ec7bfe72c52164439740486419c56a739c1 100644 (file)
@@ -212,36 +212,6 @@ static const char *adj_level2string(int level)
        return NULL; /* not reached */
 }
 
-static void isis_adj_route_switchover(struct isis_adjacency *adj)
-{
-       union g_addr ip = {};
-       ifindex_t ifindex;
-       unsigned int i;
-
-       if (!adj->circuit || !adj->circuit->interface)
-               return;
-
-       ifindex = adj->circuit->interface->ifindex;
-
-       for (i = 0; i < adj->ipv4_address_count; i++) {
-               ip.ipv4 = adj->ipv4_addresses[i];
-               isis_circuit_switchover_routes(adj->circuit, AF_INET, &ip,
-                                              ifindex);
-       }
-
-       for (i = 0; i < adj->ll_ipv6_count; i++) {
-               ip.ipv6 = adj->ll_ipv6_addrs[i];
-               isis_circuit_switchover_routes(adj->circuit, AF_INET6, &ip,
-                                              ifindex);
-       }
-
-       for (i = 0; i < adj->global_ipv6_count; i++) {
-               ip.ipv6 = adj->global_ipv6_addrs[i];
-               isis_circuit_switchover_routes(adj->circuit, AF_INET6, &ip,
-                                              ifindex);
-       }
-}
-
 void isis_adj_process_threeway(struct isis_adjacency *adj,
                               struct isis_threeway_adj *tw_adj,
                               enum isis_adj_usage adj_usage)
@@ -328,16 +298,6 @@ void isis_adj_state_change(struct isis_adjacency **padj,
        if (new_state == old_state)
                return;
 
-       if (old_state == ISIS_ADJ_UP) {
-               if (IS_DEBUG_EVENTS)
-                       zlog_debug(
-                               "ISIS-Adj (%s): Starting fast-reroute on state change "
-                               "%d->%d: %s",
-                               circuit->area->area_tag, old_state, new_state,
-                               reason ? reason : "unspecified");
-               isis_adj_route_switchover(adj);
-       }
-
        adj->adj_state = new_state;
        send_hello_sched(circuit, adj->level, TRIGGERED_IIH_DELAY);
 
index 49adc89ae599e6eaff06c6187c9b277799e8559d..7467a619cb16c7dc102aac9cd400c69c9221149d 100644 (file)
@@ -151,4 +151,5 @@ void isis_adj_build_up_list(struct list *adjdb, struct list *list);
 int isis_adj_usage2levels(enum isis_adj_usage usage);
 void isis_bfd_startup_timer(struct thread *thread);
 const char *isis_adj_name(const struct isis_adjacency *adj);
+
 #endif /* ISIS_ADJACENCY_H */
index 48fa0e31ebcf17b570713a4edc0aae031cae242e..28d4b530fc3a631ee9399cae52a0331adbf9c21b 100644 (file)
@@ -593,27 +593,6 @@ size_t isis_circuit_pdu_size(struct isis_circuit *circuit)
        return ISO_MTU(circuit);
 }
 
-static bool isis_circuit_lfa_enabled(struct isis_circuit *circuit, int level)
-{
-       return (circuit->lfa_protection[level - 1] ||
-               circuit->rlfa_protection[level - 1] ||
-               circuit->tilfa_protection[level - 1]);
-}
-
-void isis_circuit_switchover_routes(struct isis_circuit *circuit, int family,
-                                   union g_addr *nexthop_ip, ifindex_t ifindex)
-{
-       char is_type = circuit->area->is_type;
-       if ((is_type == IS_LEVEL_1 || is_type == IS_LEVEL_1_AND_2) &&
-           isis_circuit_lfa_enabled(circuit, IS_LEVEL_1))
-               isis_area_switchover_routes(circuit->area, family, nexthop_ip,
-                                           ifindex, IS_LEVEL_1);
-       if ((is_type == IS_LEVEL_2 || is_type == IS_LEVEL_1_AND_2) &&
-           isis_circuit_lfa_enabled(circuit, IS_LEVEL_2))
-               isis_area_switchover_routes(circuit->area, family, nexthop_ip,
-                                           ifindex, IS_LEVEL_2);
-}
-
 void isis_circuit_stream(struct isis_circuit *circuit, struct stream **stream)
 {
        size_t stream_size = isis_circuit_pdu_size(circuit);
index db8e2f752ac4fd513be57844461aa33cce329195..5ff0390c26bf1fed78935430e4813f60211d747d 100644 (file)
@@ -28,7 +28,6 @@
 #include "qobj.h"
 #include "prefix.h"
 #include "ferr.h"
-#include "nexthop.h"
 
 #include "isis_constants.h"
 #include "isis_common.h"
@@ -210,9 +209,6 @@ void isis_circuit_print_vty(struct isis_circuit *circuit, struct vty *vty,
 void isis_circuit_print_json(struct isis_circuit *circuit,
                             struct json_object *json, char detail);
 size_t isis_circuit_pdu_size(struct isis_circuit *circuit);
-void isis_circuit_switchover_routes(struct isis_circuit *circuit, int family,
-                                   union g_addr *nexthop_ip,
-                                   ifindex_t ifindex);
 void isis_circuit_stream(struct isis_circuit *circuit, struct stream **stream);
 
 void isis_circuit_af_set(struct isis_circuit *circuit, bool ip_router,
index b04e8e455373e14b46390ce5269f10e82c12a2db..9f8f639e5d2e6fbc1d9390491b1fb1c5f04bb6f9 100644 (file)
@@ -724,53 +724,3 @@ void isis_route_invalidate_table(struct isis_area *area,
                UNSET_FLAG(rinfo->flag, ISIS_ROUTE_FLAG_ACTIVE);
        }
 }
-
-void isis_route_switchover_nexthop(struct isis_area *area,
-                                  struct route_table *table, int family,
-                                  union g_addr *nexthop_addr,
-                                  ifindex_t ifindex)
-{
-       const char *ifname = NULL, *vrfname = NULL;
-       struct isis_route_info *rinfo;
-       struct prefix_ipv6 *src_p;
-       struct route_node *rnode;
-       vrf_id_t vrf_id;
-       struct prefix *prefix;
-
-       if (IS_DEBUG_EVENTS) {
-               if (area && area->isis) {
-                       vrf_id = area->isis->vrf_id;
-                       vrfname = vrf_id_to_name(vrf_id);
-                       ifname = ifindex2ifname(ifindex, vrf_id);
-               }
-               zlog_debug("%s: initiating fast-reroute %s on VRF %s iface %s",
-                          __func__, family2str(family), vrfname ? vrfname : "",
-                          ifname ? ifname : "");
-       }
-
-       for (rnode = route_top(table); rnode;
-            rnode = srcdest_route_next(rnode)) {
-               if (!rnode->info)
-                       continue;
-               rinfo = rnode->info;
-
-               if (!rinfo->backup)
-                       continue;
-
-               if (!nexthoplookup(rinfo->nexthops, family, nexthop_addr,
-                                  ifindex))
-                       continue;
-
-               srcdest_rnode_prefixes(rnode, (const struct prefix **)&prefix,
-                                      (const struct prefix **)&src_p);
-
-               /* Switchover route. */
-               UNSET_FLAG(rinfo->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
-               isis_route_update(area, prefix, src_p, rinfo->backup);
-
-               isis_route_info_delete(rinfo);
-
-               rnode->info = NULL;
-               route_unlock_node(rnode);
-       }
-}
index a0e0500aecbb9bc30c75869e1b6ee8cdff426492..0e206d08f419bc80fd504eb986dad2cc02805a0d 100644 (file)
@@ -86,9 +86,4 @@ void isis_route_invalidate_table(struct isis_area *area,
 void isis_route_node_cleanup(struct route_table *table,
                             struct route_node *node);
 
-void isis_route_switchover_nexthop(struct isis_area *area,
-                                  struct route_table *table, int family,
-                                  union g_addr *nexthop_addr,
-                                  ifindex_t ifindex);
-
 #endif /* _ZEBRA_ISIS_ROUTE_H */
index 5ec07ddfffdcf0c368bdc941cda168a652cb5c2e..3aef8ada24bf831a873f868e271d299b37c5de44 100644 (file)
@@ -1851,15 +1851,6 @@ void isis_spf_invalidate_routes(struct isis_spftree *tree)
        tree->route_table_backup->cleanup = isis_route_node_cleanup;
 }
 
-void isis_spf_switchover_routes(struct isis_area *area,
-                               struct isis_spftree **trees, int family,
-                               union g_addr *nexthop_ip, ifindex_t ifindex,
-                               int level)
-{
-       isis_route_switchover_nexthop(area, trees[level - 1]->route_table,
-                                     family, nexthop_ip, ifindex);
-}
-
 static void isis_run_spf_cb(struct thread *thread)
 {
        struct isis_spf_run *run = THREAD_ARG(thread);
index 3fa5182bafdd0dddb74489ac9ae9ec6d3fc9cc50..815db7b226a8e1297d7e9e5a13eec75e547a5736 100644 (file)
@@ -60,10 +60,6 @@ struct isis_vertex *isis_spf_prefix_sid_lookup(struct isis_spftree *spftree,
 void isis_spf_invalidate_routes(struct isis_spftree *tree);
 void isis_spf_verify_routes(struct isis_area *area,
                            struct isis_spftree **trees);
-void isis_spf_switchover_routes(struct isis_area *area,
-                               struct isis_spftree **trees, int family,
-                               union g_addr *nexthop_ip, ifindex_t ifindex,
-                               int level);
 void isis_spftree_del(struct isis_spftree *spftree);
 void spftree_area_init(struct isis_area *area);
 void spftree_area_del(struct isis_area *area);
index 3a1eff03351263d89915a698e8cd155fdbc1823e..996a62f4d55acbee8dfb72cf845a23ea11f90f61 100644 (file)
@@ -3077,25 +3077,6 @@ void isis_area_verify_routes(struct isis_area *area)
                isis_spf_verify_routes(area, area->spftree[tree]);
 }
 
-void isis_area_switchover_routes(struct isis_area *area, int family,
-                                union g_addr *nexthop_ip, ifindex_t ifindex,
-                                int level)
-{
-       int tree;
-
-       /* TODO SPFTREE_DSTSRC */
-       if (family == AF_INET)
-               tree = SPFTREE_IPV4;
-       else if (family == AF_INET6)
-               tree = SPFTREE_IPV6;
-       else
-               return;
-
-       isis_spf_switchover_routes(area, area->spftree[tree], family,
-                                  nexthop_ip, ifindex, level);
-}
-
-
 static void area_resign_level(struct isis_area *area, int level)
 {
        isis_area_invalidate_routes(area, level);
index a3dbfde6bc46620e78f05875aee2a2fc1f3c748e..c313fd9ef786a7eb18922ba0200dbcec3f158fc2 100644 (file)
@@ -287,9 +287,6 @@ struct isis_lsp *lsp_for_sysid(struct lspdb_head *head, const char *sysid_str,
 
 void isis_area_invalidate_routes(struct isis_area *area, int levels);
 void isis_area_verify_routes(struct isis_area *area);
-void isis_area_switchover_routes(struct isis_area *area, int family,
-                                union g_addr *nexthop_ip, ifindex_t ifindex,
-                                int level);
 
 void isis_area_overload_bit_set(struct isis_area *area, bool overload_bit);
 void isis_area_attached_bit_send_set(struct isis_area *area, bool attached_bit);