diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c index 1b85299adf..11f17ec7bf 100644 --- a/isisd/isis_adjacency.c +++ b/isisd/isis_adjacency.c @@ -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,17 +298,6 @@ void isis_adj_state_change(struct isis_adjacency **padj, if (new_state == old_state) return; - if (old_state == ISIS_ADJ_UP && - !CHECK_FLAG(adj->circuit->flags, ISIS_CIRCUIT_IF_DOWN_FROM_Z)) { - 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); diff --git a/isisd/isis_adjacency.h b/isisd/isis_adjacency.h index 49adc89ae5..7467a619cb 100644 --- a/isisd/isis_adjacency.h +++ b/isisd/isis_adjacency.h @@ -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 */ diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 26e1de20f7..28d4b530fc 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -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); @@ -1618,26 +1597,17 @@ static int isis_ifp_up(struct interface *ifp) { struct isis_circuit *circuit = ifp->info; - if (circuit) { - UNSET_FLAG(circuit->flags, ISIS_CIRCUIT_IF_DOWN_FROM_Z); + if (circuit) isis_csm_state_change(IF_UP_FROM_Z, circuit, ifp); - } return 0; } static int isis_ifp_down(struct interface *ifp) { - afi_t afi; struct isis_circuit *circuit = ifp->info; - if (circuit && - !CHECK_FLAG(circuit->flags, ISIS_CIRCUIT_IF_DOWN_FROM_Z)) { - SET_FLAG(circuit->flags, ISIS_CIRCUIT_IF_DOWN_FROM_Z); - for (afi = AFI_IP; afi <= AFI_IP6; afi++) - isis_circuit_switchover_routes( - circuit, afi == AFI_IP ? AF_INET : AF_INET6, - NULL, ifp->ifindex); + if (circuit) { isis_csm_state_change(IF_DOWN_FROM_Z, circuit, ifp); SET_FLAG(circuit->flags, ISIS_CIRCUIT_FLAPPED_AFTER_SPF); diff --git a/isisd/isis_circuit.h b/isisd/isis_circuit.h index b3ad3f7ffe..5ff0390c26 100644 --- a/isisd/isis_circuit.h +++ b/isisd/isis_circuit.h @@ -28,7 +28,6 @@ #include "qobj.h" #include "prefix.h" #include "ferr.h" -#include "nexthop.h" #include "isis_constants.h" #include "isis_common.h" @@ -142,7 +141,6 @@ struct isis_circuit { struct list *ipv6_non_link; /* our non-link local IPv6 addresses */ uint16_t upadjcount[ISIS_LEVELS]; #define ISIS_CIRCUIT_FLAPPED_AFTER_SPF 0x01 -#define ISIS_CIRCUIT_IF_DOWN_FROM_Z 0x02 uint8_t flags; bool disable_threeway_adj; struct { @@ -211,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, diff --git a/isisd/isis_lfa.c b/isisd/isis_lfa.c index b348c876d3..800cac8521 100644 --- a/isisd/isis_lfa.c +++ b/isisd/isis_lfa.c @@ -1836,7 +1836,7 @@ static bool clfa_loop_free_check(struct isis_spftree *spftree, struct isis_vertex *vertex_S_D, struct isis_spf_adj *sadj_primary, struct isis_spf_adj *sadj_N, - uint32_t *path_metric) + uint32_t *lfa_metric) { struct isis_spf_node *node_N; uint32_t dist_N_D; @@ -1882,7 +1882,7 @@ static bool clfa_loop_free_check(struct isis_spftree *spftree, dist_N_S, dist_S_D); if (dist_N_D < (dist_N_S + dist_S_D)) { - *path_metric = sadj_N->metric + dist_N_D; + *lfa_metric = sadj_N->metric + dist_N_D; return true; } @@ -2082,7 +2082,7 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, struct isis_spftree *spftree, struct lfa_protected_resource *resource) { - struct isis_vertex *vertex, *parent_vertex; + struct isis_vertex *vertex; struct listnode *vnode, *snode; int level = spftree->level; @@ -2099,7 +2099,7 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, struct isis_vertex_adj *vadj_primary; struct isis_spf_adj *sadj_primary; bool allow_ecmp; - uint32_t prefix_metric, best_metric = UINT32_MAX; + uint32_t best_metric = UINT32_MAX; char buf[VID2STR_BUFFER]; if (!VTYPE_IP(vertex->type)) @@ -2133,9 +2133,6 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, vadj_primary = listnode_head(vertex->Adj_N); sadj_primary = vadj_primary->sadj; - parent_vertex = listnode_head(vertex->parents); - prefix_metric = vertex->d_N - parent_vertex->d_N; - /* * Loop over list of SPF adjacencies and compute a list of * preliminary LFAs. @@ -2143,7 +2140,7 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, lfa_list = list_new(); lfa_list->del = isis_vertex_adj_free; for (ALL_LIST_ELEMENTS_RO(spftree->sadj_list, snode, sadj_N)) { - uint32_t lfa_metric, path_metric; + uint32_t lfa_metric; struct isis_vertex_adj *lfa; struct isis_prefix_sid *psid = NULL; bool last_hop = false; @@ -2193,7 +2190,7 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, /* Check loop-free criterion. */ if (!clfa_loop_free_check(spftree, vertex, sadj_primary, - sadj_N, &path_metric)) { + sadj_N, &lfa_metric)) { if (IS_DEBUG_LFA) zlog_debug( "ISIS-LFA: LFA condition not met for %s", @@ -2201,7 +2198,6 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, continue; } - lfa_metric = path_metric + prefix_metric; if (lfa_metric < best_metric) best_metric = lfa_metric; @@ -2212,7 +2208,7 @@ void isis_lfa_compute(struct isis_area *area, struct isis_circuit *circuit, if (vertex->N.ip.sr.present) { psid = &vertex->N.ip.sr.sid; - if (path_metric == sadj_N->metric) + if (lfa_metric == sadj_N->metric) last_hop = true; } lfa = isis_vertex_adj_add(spftree, vertex, lfa_list, diff --git a/isisd/isis_route.c b/isisd/isis_route.c index 0e7947dd46..9f8f639e5d 100644 --- a/isisd/isis_route.c +++ b/isisd/isis_route.c @@ -91,16 +91,10 @@ static struct isis_nexthop *nexthoplookup(struct list *nexthops, int family, struct isis_nexthop *nh; for (ALL_LIST_ELEMENTS_RO(nexthops, node, nh)) { - if (nh->ifindex != ifindex) - continue; - - /* if the IP is unspecified, return the first nexthop found on - * the interface */ - if (!ip) - return nh; - if (nh->family != family) continue; + if (nh->ifindex != ifindex) + continue; switch (family) { case AF_INET: @@ -465,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) @@ -488,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, @@ -735,54 +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. */ - 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); - - isis_route_info_delete(rinfo); - - rnode->info = NULL; - route_unlock_node(rnode); - } -} diff --git a/isisd/isis_route.h b/isisd/isis_route.h index a0e0500aec..0e206d08f4 100644 --- a/isisd/isis_route.h +++ b/isisd/isis_route.h @@ -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 */ diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index d7335e06d1..3aef8ada24 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -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); @@ -1931,19 +1922,9 @@ void isis_spf_timer_free(void *run) int _isis_spf_schedule(struct isis_area *area, int level, const char *func, const char *file, int line) { - struct isis_spftree *spftree; - time_t now; - long tree_diff, diff; - int tree; - - now = monotime(NULL); - diff = 0; - for (tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) { - spftree = area->spftree[tree][level - 1]; - tree_diff = difftime(now - spftree->last_run_monotime, 0); - if (tree_diff != now && (diff == 0 || tree_diff < diff)) - diff = tree_diff; - } + struct isis_spftree *spftree = area->spftree[SPFTREE_IPV4][level - 1]; + time_t now = monotime(NULL); + int diff = now - spftree->last_run_monotime; if (CHECK_FLAG(im->options, F_ISIS_UNIT_TEST)) return 0; @@ -1953,7 +1934,7 @@ int _isis_spf_schedule(struct isis_area *area, int level, if (IS_DEBUG_SPF_EVENTS) { zlog_debug( - "ISIS-SPF (%s) L%d SPF schedule called, lastrun %ld sec ago Caller: %s %s:%d", + "ISIS-SPF (%s) L%d SPF schedule called, lastrun %d sec ago Caller: %s %s:%d", area->area_tag, level, diff, func, file, line); } diff --git a/isisd/isis_spf.h b/isisd/isis_spf.h index 3fa5182baf..815db7b226 100644 --- a/isisd/isis_spf.h +++ b/isisd/isis_spf.h @@ -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); diff --git a/isisd/isisd.c b/isisd/isisd.c index 3a1eff0335..996a62f4d5 100644 --- a/isisd/isisd.c +++ b/isisd/isisd.c @@ -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); diff --git a/isisd/isisd.h b/isisd/isisd.h index a3dbfde6bc..c313fd9ef7 100644 --- a/isisd/isisd.h +++ b/isisd/isisd.h @@ -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); diff --git a/tests/isisd/test_isis_spf.refout b/tests/isisd/test_isis_spf.refout index 23d41b9e5d..bdd5b2e439 100644 --- a/tests/isisd/test_isis_spf.refout +++ b/tests/isisd/test_isis_spf.refout @@ -823,7 +823,7 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ---------------------------------------------------------- - 10.0.255.2/32 50 - rt2 implicit-null + 10.0.255.2/32 40 - rt2 implicit-null IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -859,7 +859,7 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------------ - 2001:db8::2/128 50 - rt2 implicit-null + 2001:db8::2/128 40 - rt2 implicit-null test# test isis topology 2 root rt4 lfa system-id rt6 IS-IS paths to level-1 routers that speak IP @@ -896,7 +896,7 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.6/32 30 - rt5 16060 + 10.0.255.6/32 20 - rt5 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -932,7 +932,7 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------- - 2001:db8::6/128 30 - rt5 16061 + 2001:db8::6/128 20 - rt5 16061 test# test isis topology 3 root rt1 lfa system-id rt2 IS-IS paths to level-1 routers that speak IP @@ -967,10 +967,10 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.2/32 30 - rt3 16020 - 10.0.255.4/32 40 - rt3 16040 - 10.0.255.5/32 50 - rt3 16050 - 10.0.255.6/32 50 - rt3 16060 + 10.0.255.2/32 20 - rt3 16020 + 10.0.255.4/32 30 - rt3 16040 + 10.0.255.5/32 40 - rt3 16050 + 10.0.255.6/32 40 - rt3 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1017,7 +1017,7 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.3/32 30 - rt2 16030 + 10.0.255.3/32 20 - rt2 16030 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1085,17 +1085,17 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------------- - 10.0.255.2/32 50 - rt2 implicit-null - 10.0.255.3/32 60 - rt2 16030 - 10.0.255.4/32 70 - rt2 16040 - 10.0.255.5/32 60 - rt2 16050 - 10.0.255.6/32 70 - rt2 16060 - 10.0.255.7/32 80 - rt2 16070 - 10.0.255.8/32 70 - rt2 16080 - 10.0.255.9/32 80 - rt2 16090 - 10.0.255.10/32 90 - rt2 16100 - 10.0.255.11/32 80 - rt2 16110 - 10.0.255.12/32 90 - rt2 16120 + 10.0.255.2/32 40 - rt2 implicit-null + 10.0.255.3/32 50 - rt2 16030 + 10.0.255.4/32 60 - rt2 16040 + 10.0.255.5/32 50 - rt2 16050 + 10.0.255.6/32 60 - rt2 16060 + 10.0.255.7/32 70 - rt2 16070 + 10.0.255.8/32 60 - rt2 16080 + 10.0.255.9/32 70 - rt2 16090 + 10.0.255.10/32 80 - rt2 16100 + 10.0.255.11/32 70 - rt2 16110 + 10.0.255.12/32 80 - rt2 16120 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1173,10 +1173,10 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------ - 10.0.255.8/32 50 - rt10 16080 - 10.0.255.9/32 60 - rt10 16090 - 10.0.255.11/32 40 - rt10 16110 - 10.0.255.12/32 50 - rt10 16120 + 10.0.255.8/32 40 - rt10 16080 + 10.0.255.9/32 50 - rt10 16090 + 10.0.255.11/32 30 - rt10 16110 + 10.0.255.12/32 40 - rt10 16120 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1252,7 +1252,7 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------ - 10.0.255.10/32 40 - rt7 16100 + 10.0.255.10/32 30 - rt7 16100 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1313,14 +1313,14 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ---------------------------------------------------------- - 10.0.255.1/32 130 - rt4 16010 - 10.0.255.2/32 120 - rt4 16020 - 10.0.255.4/32 110 - rt4 implicit-null - 10.0.255.5/32 120 - rt4 16050 - 10.0.255.6/32 140 - rt4 16060 - 10.0.255.7/32 140 - rt4 16070 - 10.0.255.8/32 140 - rt4 16080 - 10.0.255.9/32 130 - rt4 16090 + 10.0.255.1/32 120 - rt4 16010 + 10.0.255.2/32 110 - rt4 16020 + 10.0.255.4/32 100 - rt4 implicit-null + 10.0.255.5/32 110 - rt4 16050 + 10.0.255.6/32 130 - rt4 16060 + 10.0.255.7/32 130 - rt4 16070 + 10.0.255.8/32 130 - rt4 16080 + 10.0.255.9/32 120 - rt4 16090 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1366,14 +1366,14 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------------ - 2001:db8::1/128 130 - rt4 16011 - 2001:db8::2/128 120 - rt4 16021 - 2001:db8::4/128 110 - rt4 implicit-null - 2001:db8::5/128 120 - rt4 16051 - 2001:db8::6/128 140 - rt4 16061 - 2001:db8::7/128 140 - rt4 16071 - 2001:db8::8/128 140 - rt4 16081 - 2001:db8::9/128 130 - rt4 16091 + 2001:db8::1/128 120 - rt4 16011 + 2001:db8::2/128 110 - rt4 16021 + 2001:db8::4/128 100 - rt4 implicit-null + 2001:db8::5/128 110 - rt4 16051 + 2001:db8::6/128 130 - rt4 16061 + 2001:db8::7/128 130 - rt4 16071 + 2001:db8::8/128 130 - rt4 16081 + 2001:db8::9/128 120 - rt4 16091 test# test isis topology 10 root rt8 lfa system-id rt5 IS-IS paths to level-1 routers that speak IP @@ -1414,15 +1414,15 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.1/32 90 - rt6 16010 + 10.0.255.1/32 80 - rt6 16010 - rt7 16010 - 10.0.255.2/32 100 - rt6 16020 + 10.0.255.2/32 90 - rt6 16020 - rt7 16020 - 10.0.255.3/32 70 - rt6 16030 + 10.0.255.3/32 60 - rt6 16030 - rt7 16030 - 10.0.255.4/32 70 - rt6 16040 + 10.0.255.4/32 60 - rt6 16040 - rt7 16040 - 10.0.255.5/32 110 - rt6 16050 + 10.0.255.5/32 100 - rt6 16050 - rt7 16050 IS-IS paths to level-1 routers that speak IPv6 @@ -1463,15 +1463,15 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------- - 2001:db8::1/128 90 - rt6 16011 + 2001:db8::1/128 80 - rt6 16011 - rt7 16011 - 2001:db8::2/128 100 - rt6 16021 + 2001:db8::2/128 90 - rt6 16021 - rt7 16021 - 2001:db8::3/128 70 - rt6 16031 + 2001:db8::3/128 60 - rt6 16031 - rt7 16031 - 2001:db8::4/128 70 - rt6 16041 + 2001:db8::4/128 60 - rt6 16041 - rt7 16041 - 2001:db8::5/128 110 - rt6 16051 + 2001:db8::5/128 100 - rt6 16051 - rt7 16051 test# test isis topology 11 root rt3 lfa system-id rt5 @@ -1511,8 +1511,8 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.5/32 40 - rt2 16050 - 10.0.255.6/32 40 - rt2 16060 + 10.0.255.5/32 30 - rt2 16050 + 10.0.255.6/32 30 - rt2 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1550,8 +1550,8 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------- - 2001:db8::5/128 40 - rt2 16051 - 2001:db8::6/128 40 - rt2 16061 + 2001:db8::5/128 30 - rt2 16051 + 2001:db8::6/128 30 - rt2 16061 test# test isis topology 13 root rt4 lfa system-id rt3 IS-IS paths to level-1 routers that speak IP @@ -1593,10 +1593,10 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ---------------------------------------------------------- - 10.0.255.3/32 120 - rt5 16030 - 10.0.255.5/32 110 - rt5 implicit-null - 10.0.255.6/32 130 - rt5 16060 - 10.0.255.7/32 120 - rt5 16070 + 10.0.255.3/32 110 - rt5 16030 + 10.0.255.5/32 100 - rt5 implicit-null + 10.0.255.6/32 120 - rt5 16060 + 10.0.255.7/32 110 - rt5 16070 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1699,7 +1699,7 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.2/32 30 - rt3 - + 10.0.255.2/32 20 - rt3 - IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1731,7 +1731,7 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------- - 2001:db8::2/128 30 - rt3 - + 2001:db8::2/128 20 - rt3 - test# test isis topology 14 root rt5 lfa system-id rt4 IS-IS paths to level-1 routers that speak IP @@ -1765,10 +1765,10 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.1/32 70 - rt3 - - 10.0.255.2/32 70 - rt3 - - 10.0.255.3/32 60 - rt3 - - 10.0.255.4/32 70 - rt3 - + 10.0.255.1/32 60 - rt3 - + 10.0.255.2/32 60 - rt3 - + 10.0.255.3/32 50 - rt3 - + 10.0.255.4/32 60 - rt3 - IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -1801,10 +1801,10 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------- - 2001:db8::1/128 70 - rt3 - - 2001:db8::2/128 70 - rt3 - - 2001:db8::3/128 60 - rt3 - - 2001:db8::4/128 70 - rt3 - + 2001:db8::1/128 60 - rt3 - + 2001:db8::2/128 60 - rt3 - + 2001:db8::3/128 50 - rt3 - + 2001:db8::4/128 60 - rt3 - test# test# test isis topology 1 root rt1 remote-lfa system-id rt2 @@ -2174,11 +2174,11 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.1/32 50 - rt3 16010 + 10.0.255.1/32 40 - rt3 16010 - rt6 16010 - 10.0.255.2/32 40 - rt3 16020 + 10.0.255.2/32 30 - rt3 16020 - rt6 16020 - 10.0.255.4/32 30 - rt3 16040 + 10.0.255.4/32 20 - rt3 16040 - rt6 16040 test# test isis topology 3 root rt5 remote-lfa system-id rt3 ipv4-only @@ -2535,13 +2535,13 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) -------------------------------------------------------- - 10.0.255.1/32 60 - rt10 16010 + 10.0.255.1/32 50 - rt10 16010 10.0.255.2/32 60 - rt12 50900/16020 10.0.255.3/32 70 - rt12 50900/16030 - 10.0.255.4/32 50 - rt10 16040 + 10.0.255.4/32 40 - rt10 16040 10.0.255.5/32 50 - rt12 50900/16050 10.0.255.6/32 60 - rt12 50900/16060 - 10.0.255.7/32 40 - rt10 16070 + 10.0.255.7/32 30 - rt10 16070 10.0.255.8/32 40 - rt12 50900/16080 test# test isis topology 7 root rt6 remote-lfa system-id rt5 ipv4-only @@ -2671,13 +2671,13 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------ - 10.0.255.1/32 80 - rt9 16010 - 10.0.255.4/32 70 - rt9 16040 - 10.0.255.5/32 60 - rt9 16050 - 10.0.255.7/32 60 - rt9 16070 - 10.0.255.8/32 50 - rt9 16080 - 10.0.255.10/32 70 - rt9 16100 - 10.0.255.11/32 60 - rt9 16110 + 10.0.255.1/32 70 - rt9 16010 + 10.0.255.4/32 60 - rt9 16040 + 10.0.255.5/32 50 - rt9 16050 + 10.0.255.7/32 50 - rt9 16070 + 10.0.255.8/32 40 - rt9 16080 + 10.0.255.10/32 60 - rt9 16100 + 10.0.255.11/32 50 - rt9 16110 test# test isis topology 8 root rt2 remote-lfa system-id rt5 ipv4-only P-space (self): @@ -2863,14 +2863,14 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ---------------------------------------------------------- - 10.0.255.1/32 60 - rt1 implicit-null + 10.0.255.1/32 50 - rt1 implicit-null - rt3 16010 - 10.0.255.3/32 60 - rt1 16030 + 10.0.255.3/32 50 - rt1 16030 - rt3 implicit-null 10.0.255.4/32 80 - rt3 50500/16040 - 10.0.255.5/32 70 - rt1 16050 + 10.0.255.5/32 60 - rt1 16050 - rt3 16050 - 10.0.255.6/32 80 - rt3 16060 + 10.0.255.6/32 70 - rt3 16060 P-space (self): @@ -2941,14 +2941,14 @@ IS-IS L1 IPv6 routing table: Prefix Metric Interface Nexthop Label(s) ------------------------------------------------------------ - 2001:db8::1/128 60 - rt1 implicit-null + 2001:db8::1/128 50 - rt1 implicit-null - rt3 16011 - 2001:db8::3/128 60 - rt1 16031 + 2001:db8::3/128 50 - rt1 16031 - rt3 implicit-null 2001:db8::4/128 80 - rt3 50500/16041 - 2001:db8::5/128 70 - rt1 16051 + 2001:db8::5/128 60 - rt1 16051 - rt3 16051 - 2001:db8::6/128 80 - rt3 16061 + 2001:db8::6/128 70 - rt3 16061 test# test isis topology 13 root rt1 remote-lfa system-id rt3 ipv4-only P-space (self): diff --git a/tests/topotests/isis_lfa_topo1/rt1/bfdd.conf b/tests/topotests/isis_lfa_topo1/rt1/bfdd.conf deleted file mode 100644 index 86cf68dd8d..0000000000 --- a/tests/topotests/isis_lfa_topo1/rt1/bfdd.conf +++ /dev/null @@ -1,6 +0,0 @@ -hostname rt1 -! -bfd - peer 2001:db8:1000::2 multihop local-address 2001:db8:1000::1 - ! -! diff --git a/tests/topotests/isis_lfa_topo1/rt1/step14/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step14/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_lfa_topo1/rt1/step15/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step15/show_ipv6_route.ref.diff deleted file mode 100644 index a00d2d3b62..0000000000 --- a/tests/topotests/isis_lfa_topo1/rt1/step15/show_ipv6_route.ref.diff +++ /dev/null @@ -1,50 +0,0 @@ ---- a/rt1/step14/show_ipv6_route.ref -+++ b/rt1/step15/show_ipv6_route.ref -@@ -6,22 +6,12 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":25, - "installed":true, - "nexthops":[ - { - "fib":true, - "afi":"ipv6", -- "interfaceName":"eth-rt2", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", - "interfaceName":"eth-rt3", - "active":true - } -@@ -151,22 +141,12 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":25, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, - "afi":"ipv6", -- "interfaceName":"eth-rt2", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", - "interfaceName":"eth-rt6", - "active":true - } diff --git a/tests/topotests/isis_lfa_topo1/rt1/step16/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step16/show_ipv6_route.ref.diff deleted file mode 100644 index 5e48511ba5..0000000000 --- a/tests/topotests/isis_lfa_topo1/rt1/step16/show_ipv6_route.ref.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- a/rt1/step15/show_ipv6_route.ref -+++ b/rt1/step16/show_ipv6_route.ref -@@ -32,16 +32,6 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt3", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt2", - "active":true - } - ] -@@ -90,16 +80,6 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt2", - "active":true - } - ] -@@ -119,16 +99,6 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt2", - "active":true - } - ] diff --git a/tests/topotests/isis_lfa_topo1/rt2/bfdd.conf b/tests/topotests/isis_lfa_topo1/rt2/bfdd.conf deleted file mode 100644 index 40357a4d03..0000000000 --- a/tests/topotests/isis_lfa_topo1/rt2/bfdd.conf +++ /dev/null @@ -1,6 +0,0 @@ -hostname rt2 -! -bfd - peer 2001:db8:1000::1 multihop local-address 2001:db8:1000::2 - ! -! diff --git a/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py index 1d6d870a4e..7e902213e7 100755 --- a/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py +++ b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py @@ -55,7 +55,6 @@ import os import sys import pytest import json -import time import tempfile from functools import partial @@ -129,7 +128,7 @@ def build_topo(tgen): files = ["show_ipv6_route.ref", "show_yang_interface_isis_adjacencies.ref"] for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6", "rt7"]: outputs[rname] = {} - for step in range(1, 16 + 1): + for step in range(1, 13 + 1): outputs[rname][step] = {} for file in files: if step == 1: @@ -175,9 +174,6 @@ def setup_module(mod): router.load_config( TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)) ) - router.load_config( - TopoRouter.RD_BFD, os.path.join(CWD, "/dev/null".format(rname)) - ) tgen.start_router() @@ -190,7 +186,7 @@ def teardown_module(mod): tgen.stop_topology() -def router_compare_json_output(rname, command, reference, wait=0.5, count=120): +def router_compare_json_output(rname, command, reference): "Compare router JSON output" logger.info('Comparing router "%s" "%s" output', rname, command) @@ -200,7 +196,7 @@ def router_compare_json_output(rname, command, reference, wait=0.5, count=120): # Run test function until we get an result. Wait at most 60 seconds. test_func = partial(topotest.router_json_cmp, tgen.gears[rname], command, expected) - _, diff = topotest.run_and_expect(test_func, None, count=count, wait=wait) + _, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5) assertmsg = '"{}" JSON output mismatches the expected result'.format(rname) assert diff is None, assertmsg @@ -620,394 +616,6 @@ def test_rib_ipv6_step13(): ) -# -# Step 14 -# -# Action(s): -# - Setting spf-delay-ietf init-delay of 15s -# -# Expected changes: -# - No routing table change -# - At the end of test, SPF reacts to a failure in 15s -# -def test_rib_ipv6_step14(): - logger.info("Test (step 14): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Setting spf-delay-ietf init-delay of 15s") - tgen.net["rt1"].cmd( - 'vtysh -c "conf t" -c "router isis 1" -c "spf-delay-ietf init-delay 15000 short-delay 0 long-delay 0 holddown 0 time-to-learn 0"' - ) - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][14]["show_ipv6_route.ref"], - ) - - -# -# Step 15 -# -# Action(s): -# - shut the eth-rt2 interface on rt1 -# -# Expected changes: -# - Route switchover of routes via eth-rt2 -# -def test_rib_ipv6_step15(): - logger.info("Test (step 15): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Shut the interface to rt2 from the switch side and check fast-reroute") - tgen.net.cmd_raises("ip link set %s down" % tgen.net["s1"].intfs[0]) - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][15]["show_ipv6_route.ref"], - count=2, - wait=0.05, - ) - - -# -# Step 16 -# -# Action(s): wait for the convergence and SPF computation on rt1 -# -# Expected changes: -# - convergence of IPv6 RIB -# -def test_rib_ipv6_step16(): - logger.info("Test (step 16): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][16]["show_ipv6_route.ref"], - ) - - -# -# Step 17 -# -# Action(s): -# - Setting spf-delay-ietf init-delay of 15s -# -# Expected changes: -# - No routing table change -# - At the end of test, SPF reacts to a failure in 15s -# -def test_rib_ipv6_step17(): - logger.info("Test (step 17): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info( - "Unshut the interface to rt2 from the switch side and check fast-reroute" - ) - tgen.net.cmd_raises("ip link set %s up" % tgen.net["s1"].intfs[0]) - - logger.info("Unset link-detect on rt1 eth-rt2") - # Unset link detection. We want zebra to consider linkdow as operationaly up - # in order that BFD triggers LFA instead of the interface down - tgen.net["rt1"].cmd('vtysh -c "conf t" -c "int eth-rt2" -c "no link-detect"') - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][14]["show_ipv6_route.ref"], - ) - - -# -# Step 18 -# -# Action(s): -# - shut the eth-rt2 interface on rt1 -# -# Expected changes: -# - Route switchover of routes via eth-rt2 -# -def test_rib_ipv6_step18(): - logger.info("Test (step 18): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Shut the interface to rt2 from the switch side and check fast-reroute") - tgen.net.cmd_raises("ip link set %s down" % tgen.net["s1"].intfs[0]) - - rname = "rt1" - - retry = 200 + 1 - - while retry: - retry -= 1 - output = tgen.gears[rname].vtysh_cmd("show isis neighbor json") - output_json = json.loads(output) - found = False - for neighbor in output_json["areas"][0]["circuits"]: - if "adj" in neighbor and neighbor["adj"] == "rt2": - found = True - break - if not found: - break - time.sleep(0.05) - - assert not found, "rt2 neighbor is still present" - - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][15]["show_ipv6_route.ref"], - count=2, - wait=0.05, - ) - - -# -# Step 19 -# -# Action(s): wait for the convergence and SPF computation on rt1 -# -# Expected changes: -# - convergence of IPv6 RIB -# -def test_rib_ipv6_step19(): - logger.info("Test (step 19): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][16]["show_ipv6_route.ref"], - ) - - -# -# Step 20 -# -# Action(s): -# - Setting spf-delay-ietf init-delay of 15s -# -# Expected changes: -# - No routing table change -# - At the end of test, SPF reacts to a failure in 15s -# -def test_rib_ipv6_step20(): - logger.info("Test (step 20): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info( - "Unshut the interface to rt2 from the switch side and check fast-reroute" - ) - tgen.net.cmd_raises("ip link set %s up" % tgen.net["s1"].intfs[0]) - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][14]["show_ipv6_route.ref"], - ) - - -# -# Step 21 -# -# Action(s): -# - shut the eth-rt2 interface on rt1 -# -# Expected changes: -# - Route switchover of routes via eth-rt2 -# -def test_rib_ipv6_step21(): - logger.info("Test (step 21): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - rname = "rt1" - - logger.info("Shut the interface to rt2 from the switch side and check fast-reroute") - tgen.gears[rname].vtysh_cmd("clear isis neighbor rt2") - - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][15]["show_ipv6_route.ref"], - count=2, - wait=0.05, - ) - - -# -# Step 22 -# -# Action(s): wait for the convergence and SPF computation on rt1 -# -# Expected changes: -# - convergence of IPv6 RIB -# -def test_rib_ipv6_step22(): - logger.info("Test (step 22): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][16]["show_ipv6_route.ref"], - ) - - -# -# Step 23 -# -# Action(s): -# - Setting spf-delay-ietf init-delay of 15s -# -# Expected changes: -# - No routing table change -# - At the end of test, SPF reacts to a failure in 15s -# -def test_rib_ipv6_step23(): - logger.info("Test (step 23): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Setup BFD on rt1 and rt2") - for rname in ["rt1", "rt2"]: - conf_file = os.path.join(CWD, "{}/bfdd.conf".format(rname)) - tgen.net[rname].cmd("vtysh -f {}".format(conf_file)) - - rname = "rt1" - expect = '[{"multihop":true,"peer":"2001:db8:1000::2","local":"2001:db8:1000::1","status":"up"}]' - router_compare_json_output(rname, "show bfd peers json", expect) - - logger.info("Set ISIS BFD") - tgen.net["rt1"].cmd('vtysh -c "conf t" -c "int eth-rt2" -c "isis bfd"') - tgen.net["rt2"].cmd('vtysh -c "conf t" -c "int eth-rt1" -c "isis bfd"') - - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][14]["show_ipv6_route.ref"], - ) - - -# -# Step 24 -# -# Action(s): -# - shut the eth-rt2 interface on rt1 -# -# Expected changes: -# - Route switchover of routes via eth-rt2 -# -def test_rib_ipv6_step24(): - logger.info("Test (step 24): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Shut the interface to rt2 from the switch side and check fast-reroute") - tgen.net.cmd_raises("ip link set %s down" % tgen.net["s1"].intfs[0]) - - rname = "rt1" - expect = '[{"multihop":true,"peer":"2001:db8:1000::2","local":"2001:db8:1000::1","status":"down"}]' - router_compare_json_output( - rname, - "show bfd peers json", - expect, - count=20, - wait=0.05, - ) - - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][15]["show_ipv6_route.ref"], - count=2, - wait=0.05, - ) - - -# -# Step 25 -# -# Action(s): wait for the convergence and SPF computation on rt1 -# -# Expected changes: -# - convergence of IPv6 RIB -# -def test_rib_ipv6_step25(): - logger.info("Test (step 25): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - - for rname in ["rt1"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][16]["show_ipv6_route.ref"], - ) - - # Memory leak test template def test_memory_leak(): "Run the memory leak test and report results." diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff deleted file mode 100644 index a8d6e6c65e..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- a/rt1/step11/show_ip_route.ref -+++ b/rt1/step12/show_ip_route.ref -@@ -110,16 +110,6 @@ - "labels":[ - 16060 - ] -- }, -- { -- "fib":true, -- "ip":"10.0.1.3", -- "afi":"ipv4", -- "interfaceName":"eth-sw1", -- "active":true, -- "labels":[ -- 16060 -- ] - } - ] - } diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff deleted file mode 100644 index 637c59f6ef..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- a/rt1/step11/show_ipv6_route.ref -+++ b/rt1/step12/show_ipv6_route.ref -@@ -105,15 +105,6 @@ - "labels":[ - 16061 - ] -- }, -- { -- "fib":true, -- "afi":"ipv6", -- "interfaceName":"eth-sw1", -- "active":true, -- "labels":[ -- 16061 -- ] - } - ] - } diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff deleted file mode 100644 index e110bf48eb..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- a/rt1/step11/show_mpls_table.ref -+++ b/rt1/step12/show_mpls_table.ref -@@ -79,12 +79,6 @@ - "type":"SR (IS-IS)", - "outLabel":16060, - "installed":true, -- "nexthop":"10.0.1.3" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16060, -- "installed":true, - "nexthop":"10.0.1.2" - } - ] -@@ -96,12 +90,6 @@ - { - "type":"SR (IS-IS)", - "outLabel":16061, -- "installed":true, -- "interface":"eth-sw1" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16061, - "installed":true, - "interface":"eth-sw1" - } diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff deleted file mode 100644 index 84a36442d3..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- a/rt2/step11/show_mpls_table.ref -+++ b/rt2/step12/show_mpls_table.ref -@@ -199,7 +199,7 @@ - "backupNexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16060, -+ "outLabel":16500, - "nexthop":"10.0.1.3" - } - ] -@@ -230,7 +230,7 @@ - "backupNexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16061, -+ "outLabel":16501, - "interface":"eth-sw1" - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff deleted file mode 100644 index 8695cf848f..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff +++ /dev/null @@ -1,58 +0,0 @@ ---- a/rt3/step11/show_ip_route.ref -+++ b/rt3/step12/show_ip_route.ref -@@ -198,44 +198,37 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":30, -+ "metric":40, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.4.5", -+ "ip":"10.0.1.2", - "afi":"ipv4", -- "interfaceName":"eth-rt5-1", -+ "interfaceName":"eth-sw1", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ -- 30060 -+ 16060 - ] - }, - { - "fib":true, -- "ip":"10.0.5.5", -+ "ip":"10.0.4.5", - "afi":"ipv4", -- "interfaceName":"eth-rt5-2", -+ "interfaceName":"eth-rt5-1", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 30060 - ] -- } -- ], -- "backupNexthops":[ -+ }, - { -- "ip":"10.0.1.2", -+ "fib":true, -+ "ip":"10.0.5.5", - "afi":"ipv4", -- "interfaceName":"eth-sw1", -+ "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ -- 16060 -+ 30060 - ] - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff deleted file mode 100644 index 661d0fe75d..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- a/rt3/step11/show_ipv6_route.ref -+++ b/rt3/step12/show_ipv6_route.ref -@@ -186,7 +186,7 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":30, -+ "metric":40, - "installed":true, - "nexthops":[ - { -@@ -194,9 +194,6 @@ - "afi":"ipv6", - "interfaceName":"eth-rt5-1", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 30061 - ] -@@ -206,23 +203,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt5-2", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 30061 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-sw1", -- "active":true, -- "labels":[ -- 16061 -- ] -- } - ] - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff deleted file mode 100644 index 30941b398b..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,60 +0,0 @@ ---- a/rt3/step11/show_mpls_table.ref -+++ b/rt3/step12/show_mpls_table.ref -@@ -165,27 +165,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":30060, -- "installed":true, -- "nexthop":"10.0.5.5", -- "backupIndex":[ -- 0 -- ] -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":30060, -- "installed":true, -- "nexthop":"10.0.4.5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16060, -+ "installed":true, - "nexthop":"10.0.1.2" - } - ] -@@ -196,27 +177,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":30061, -- "installed":true, -- "interface":"eth-rt5-2", -- "backupIndex":[ -- 0 -- ] -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":30061, -- "installed":true, -- "interface":"eth-rt5-1", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16061, -+ "installed":true, - "interface":"eth-sw1" - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff deleted file mode 100644 index 2645c5945b..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff +++ /dev/null @@ -1,144 +0,0 @@ ---- a/rt4/step11/show_ip_route.ref -+++ b/rt4/step12/show_ip_route.ref -@@ -160,23 +160,13 @@ - "interfaceName":"eth-rt5", - "active":true, - "backupIndex":[ -- 0 -+ 0, -+ 1 - ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.7.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 16500 -- ] -- } - ] - } - ], -@@ -196,24 +186,10 @@ - "afi":"ipv4", - "interfaceName":"eth-rt6", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.6.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30060 -- ] -- } - ] - } - ], -@@ -352,19 +328,12 @@ - "active":true, - "backupIndex":[ - 0, -- 1, -- 2 -+ 1 - ] - } - ], - "backupNexthops":[ - { -- "ip":"10.0.7.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- }, -- { - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -@@ -397,19 +366,12 @@ - "active":true, - "backupIndex":[ - 0, -- 1, -- 2 -+ 1 - ] - } - ], - "backupNexthops":[ - { -- "ip":"10.0.7.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- }, -- { - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -@@ -439,14 +401,6 @@ - 0 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.7.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- } - ] - } - ], -@@ -460,18 +414,7 @@ - { - "ip":"10.0.7.6", - "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.6.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true -+ "interfaceName":"eth-rt6" - } - ] - } -@@ -492,13 +435,6 @@ - "afi":"ipv4", - "interfaceName":"eth-rt5", - "active":true -- }, -- { -- "fib":true, -- "ip":"10.0.7.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true - } - ] - } diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ipv6_route.ref.diff deleted file mode 100644 index 37e3185ae0..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ipv6_route.ref.diff +++ /dev/null @@ -1,50 +0,0 @@ ---- a/rt4/step11/show_ipv6_route.ref -+++ b/rt4/step12/show_ipv6_route.ref -@@ -149,23 +149,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt5", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 16501 -- ] -- } - ] - } - ], -@@ -184,23 +171,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt6", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30061 -- ] -- } - ] - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff deleted file mode 100644 index 186291adac..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,78 +0,0 @@ ---- a/rt4/step11/show_mpls_table.ref -+++ b/rt4/step12/show_mpls_table.ref -@@ -179,17 +179,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.7.6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30060, -- "nexthop":"10.0.6.5" -+ "nexthop":"10.0.7.6" - } - ] - }, -@@ -201,17 +191,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30061, -- "interface":"eth-rt5" -+ "interface":"eth-rt6" - } - ] - }, -@@ -223,17 +203,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.6.5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16500, -- "nexthop":"10.0.7.6" -+ "nexthop":"10.0.6.5" - } - ] - }, -@@ -245,17 +215,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16501, -- "interface":"eth-rt6" -+ "interface":"eth-rt5" - } - ] - } diff --git a/tests/topotests/isis_tilfa_topo1/rt5/bfdd.conf b/tests/topotests/isis_tilfa_topo1/rt5/bfdd.conf deleted file mode 100644 index d27625ff35..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt5/bfdd.conf +++ /dev/null @@ -1,14 +0,0 @@ -hostname rt5 -! -#debug bfd network -#debug bfd peer -#debug bfd zebra -! -bfd - peer 10.0.8.6 interface eth-rt6 - detect-multiplier 3 - receive-interval 300 - transmit-interval 300 - no shutdown - ! -! \ No newline at end of file diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff deleted file mode 100644 index 3d21c04297..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff +++ /dev/null @@ -1,151 +0,0 @@ ---- a/rt5/step11/show_ip_route.ref -+++ b/rt5/step12/show_ip_route.ref -@@ -159,24 +159,10 @@ - "afi":"ipv4", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 16040 -- ] -- } - ] - } - ], -@@ -187,25 +173,11 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 3 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.6.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -@@ -276,19 +248,12 @@ - "active":true, - "backupIndex":[ - 0, -- 1, -- 2 -+ 1 - ] - } - ], - "backupNexthops":[ - { -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- }, -- { - "ip":"10.0.4.3", - "afi":"ipv4", - "interfaceName":"eth-rt3-1", -@@ -321,19 +286,12 @@ - "active":true, - "backupIndex":[ - 0, -- 1, -- 2 -+ 1 - ] - } - ], - "backupNexthops":[ - { -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- }, -- { - "ip":"10.0.4.3", - "afi":"ipv4", - "interfaceName":"eth-rt3-1", -@@ -439,14 +397,6 @@ - 0 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- } - ] - } - ], -@@ -465,39 +415,6 @@ - "ip":"10.0.6.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -- "active":true -- }, -- { -- "fib":true, -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "active":true -- } -- ] -- } -- ], -- "10.0.8.0\/24":[ -- { -- "prefix":"10.0.8.0\/24", -- "protocol":"isis", -- "distance":115, -- "metric":20, -- "nexthops":[ -- { -- "ip":"10.0.8.6", -- "afi":"ipv4", -- "interfaceName":"eth-rt6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.6.4", -- "afi":"ipv4", -- "interfaceName":"eth-rt4", - "active":true - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ipv6_route.ref.diff deleted file mode 100644 index 66a9dace8b..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ipv6_route.ref.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- a/rt5/step11/show_ipv6_route.ref -+++ b/rt5/step12/show_ipv6_route.ref -@@ -149,23 +149,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 16041 -- ] -- } - ] - } - ], -@@ -176,25 +163,12 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, - "afi":"ipv6", -- "interfaceName":"eth-rt6", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 3 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, - "labels":[ diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff deleted file mode 100644 index cdfc407f93..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,80 +0,0 @@ ---- a/rt5/step11/show_mpls_table.ref -+++ b/rt5/step12/show_mpls_table.ref -@@ -179,17 +179,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.6.4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16040, -- "nexthop":"10.0.8.6" -+ "nexthop":"10.0.6.4" - } - ] - }, -@@ -201,17 +191,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16041, -- "interface":"eth-rt6" -+ "interface":"eth-rt4" - } - ] - }, -@@ -221,18 +201,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "nexthop":"10.0.8.6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16060, -+ "installed":true, - "nexthop":"10.0.6.4" - } - ] -@@ -243,18 +213,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "interface":"eth-rt6", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16061, -+ "installed":true, - "interface":"eth-rt4" - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt6/bfdd.conf b/tests/topotests/isis_tilfa_topo1/rt6/bfdd.conf deleted file mode 100644 index 0c8ba7268c..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/bfdd.conf +++ /dev/null @@ -1,14 +0,0 @@ -hostname rt6 -! -#debug bfd network -#debug bfd peer -#debug bfd zebra -! -bfd - peer 10.0.8.5 interface eth-rt5 - detect-multiplier 3 - receive-interval 300 - transmit-interval 300 - no shutdown - ! -! \ No newline at end of file diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ip_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ipv6_route.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_mpls_table.ref.diff deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff deleted file mode 100644 index e477e87d1e..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff +++ /dev/null @@ -1,125 +0,0 @@ ---- a/rt6/step10/show_ip_route.ref -+++ b/rt6/step11/show_ip_route.ref -@@ -76,25 +76,11 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":30, -+ "metric":40, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 30030 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -@@ -150,25 +136,11 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 3 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -@@ -276,22 +248,11 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -@@ -307,22 +268,11 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -@@ -389,19 +339,9 @@ - "prefix":"10.0.8.0\/24", - "protocol":"isis", - "distance":115, -- "metric":20, -+ "metric":30, - "nexthops":[ - { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff deleted file mode 100644 index 12e0b591d2..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff +++ /dev/null @@ -1,56 +0,0 @@ ---- a/rt6/step10/show_ipv6_route.ref -+++ b/rt6/step11/show_ipv6_route.ref -@@ -72,25 +72,12 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":30, -+ "metric":40, - "installed":true, - "nexthops":[ - { - "fib":true, - "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 30031 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, - "labels":[ -@@ -142,25 +129,12 @@ - "selected":true, - "destSelected":true, - "distance":115, -- "metric":20, -+ "metric":30, - "installed":true, - "nexthops":[ - { - "fib":true, - "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "backupIndex":[ -- 0 -- ], -- "labels":[ -- 3 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, - "labels":[ diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff deleted file mode 100644 index 387dcca3fe..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff +++ /dev/null @@ -1,106 +0,0 @@ ---- a/rt6/step10/show_mpls_table.ref -+++ b/rt6/step11/show_mpls_table.ref -@@ -8,12 +8,6 @@ - "outLabel":16010, - "installed":true, - "nexthop":"10.0.7.4" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":30010, -- "installed":true, -- "nexthop":"10.0.8.5" - } - ] - }, -@@ -26,12 +20,6 @@ - "outLabel":16011, - "installed":true, - "interface":"eth-rt4" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":30011, -- "installed":true, -- "interface":"eth-rt5" - } - ] - }, -@@ -85,18 +73,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":30030, -- "installed":true, -- "nexthop":"10.0.8.5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16030, -+ "installed":true, - "nexthop":"10.0.7.4" - } - ] -@@ -107,17 +85,6 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":30031, -- "installed":true, -- "interface":"eth-rt5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16031, - "interface":"eth-rt4" - } -@@ -173,18 +140,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "nexthop":"10.0.8.5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16500, -+ "installed":true, - "nexthop":"10.0.7.4" - } - ] -@@ -195,18 +152,8 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "interface":"eth-rt5", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":16501, -+ "installed":true, - "interface":"eth-rt4" - } - ] diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff deleted file mode 100644 index 1086b6e706..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff +++ /dev/null @@ -1,153 +0,0 @@ ---- a/rt6/step12/show_ip_route.ref -+++ b/rt6/step12/show_ip_route.ref -@@ -18,16 +18,6 @@ - "labels":[ - 16010 - ] -- }, -- { -- "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30010 -- ] - } - ] - } -@@ -48,24 +38,10 @@ - "afi":"ipv4", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 16020 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30020 -- ] -- } - ] - } - ], -@@ -108,24 +84,10 @@ - "afi":"ipv4", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30040 -- ] -- } - ] - } - ], -@@ -168,13 +130,6 @@ - "afi":"ipv4", - "interfaceName":"eth-rt4", - "active":true -- }, -- { -- "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true - } - ] - } -@@ -194,17 +149,6 @@ - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", - "active":true - } - ] -@@ -225,17 +169,6 @@ - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -- "active":true, -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", - "active":true - } - ] -@@ -297,13 +230,6 @@ - "afi":"ipv4", - "interfaceName":"eth-rt4", - "active":true -- }, -- { -- "fib":true, -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true - } - ] - } -@@ -318,18 +244,7 @@ - { - "ip":"10.0.7.4", - "afi":"ipv4", -- "interfaceName":"eth-rt4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "ip":"10.0.8.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5", -- "active":true -+ "interfaceName":"eth-rt4" - } - ] - } diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff deleted file mode 100644 index 571c66fb65..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff +++ /dev/null @@ -1,66 +0,0 @@ ---- a/rt6/step12/show_ipv6_route.ref -+++ b/rt6/step12/show_ipv6_route.ref -@@ -17,15 +17,6 @@ - "labels":[ - 16011 - ] -- }, -- { -- "fib":true, -- "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30011 -- ] - } - ] - } -@@ -45,23 +36,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 16021 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30021 -- ] -- } - ] - } - ], -@@ -102,23 +80,10 @@ - "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true, -- "backupIndex":[ -- 0 -- ], - "labels":[ - 3 - ] - } -- ], -- "backupNexthops":[ -- { -- "afi":"ipv6", -- "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 30041 -- ] -- } - ] - } - ], diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff deleted file mode 100644 index 18322f18a1..0000000000 --- a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff +++ /dev/null @@ -1,78 +0,0 @@ ---- a/rt6/step12/show_mpls_table.ref -+++ b/rt6/step12/show_mpls_table.ref -@@ -31,17 +31,7 @@ - "type":"SR (IS-IS)", - "outLabel":16020, - "installed":true, -- "nexthop":"10.0.7.4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30020, -- "nexthop":"10.0.8.5" -+ "nexthop":"10.0.7.4" - } - ] - }, -@@ -53,17 +43,7 @@ - "type":"SR (IS-IS)", - "outLabel":16021, - "installed":true, -- "interface":"eth-rt4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30021, -- "interface":"eth-rt5" -+ "interface":"eth-rt4" - } - ] - }, -@@ -98,17 +78,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.7.4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30040, -- "nexthop":"10.0.8.5" -+ "nexthop":"10.0.7.4" - } - ] - }, -@@ -120,17 +90,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":30041, -- "interface":"eth-rt5" -+ "interface":"eth-rt4" - } - ] - }, \ No newline at end of file diff --git a/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py index 3f34a87793..07e91f1a48 100755 --- a/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py +++ b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py @@ -144,7 +144,7 @@ def build_topo(tgen): ] for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: outputs[rname] = {} - for step in range(1, 12 + 1): + for step in range(1, 9 + 1): outputs[rname][step] = {} for file in files: if step == 1: @@ -188,9 +188,6 @@ def setup_module(mod): router.load_config( TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)) ) - router.load_config( - TopoRouter.RD_BFD, os.path.join(CWD, "/dev/null".format(rname)) - ) tgen.start_router() @@ -203,7 +200,7 @@ def teardown_module(mod): tgen.stop_topology() -def router_compare_json_output(rname, command, reference, count=120, wait=0.5): +def router_compare_json_output(rname, command, reference): "Compare router JSON output" logger.info('Comparing router "%s" "%s" output', rname, command) @@ -213,7 +210,7 @@ def router_compare_json_output(rname, command, reference, count=120, wait=0.5): # Run test function until we get an result. Wait at most 60 seconds. test_func = partial(topotest.router_json_cmp, tgen.gears[rname], command, expected) - _, diff = topotest.run_and_expect(test_func, None, count=count, wait=wait) + _, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5) assertmsg = '"{}" JSON output mismatches the expected result'.format(rname) assert diff is None, assertmsg @@ -743,367 +740,6 @@ def test_mpls_lib_step9(): ) -# -# Step 10 -# -# Action(s): -# - Setting spf-delay-ietf init-delay of 15s -# -# Expected changes: -# - No routing table change -# - At the end of test, SPF reacts to a failure in 15s -# -def test_rib_ipv4_step10(): - logger.info("Test (step 10): verify IPv4 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Setting spf-delay-ietf init-delay of 15s") - tgen.net["rt6"].cmd( - 'vtysh -c "conf t" -c "router isis 1" -c "spf-delay-ietf init-delay 15000 short-delay 0 long-delay 0 holddown 0 time-to-learn 0"' - ) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, "show ip route isis json", outputs[rname][10]["show_ip_route.ref"] - ) - - -def test_rib_ipv6_step10(): - logger.info("Test (step 10): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][10]["show_ipv6_route.ref"], - ) - - -def test_mpls_lib_step10(): - logger.info("Test (step 10): verify MPLS LIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, "show mpls table json", outputs[rname][10]["show_mpls_table.ref"] - ) - - -# -# Step 11 -# -# Action(s): -# - shut the eth-rt5 interface on rt6 -# -# Expected changes: -# - Route switchover of routes via eth-rt5 -# -def test_rt6_step11(): - logger.info( - "Test (step 11): Check IPv4/6 RIB and MPLS table after a LFA switchover" - ) - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info( - "Shut a rt6 interface to rt5 from the switch side and check fast-reroute" - ) - tgen.net.cmd_raises("ip link set %s down" % tgen.net["s8"].intfs[1]) - - rname = "rt6" - router_compare_json_output( - rname, - "show ip route isis json", - outputs[rname][11]["show_ip_route.ref"], - count=1, - ) - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][11]["show_ipv6_route.ref"], - count=1, - ) - router_compare_json_output( - rname, - "show mpls table json", - outputs[rname][11]["show_mpls_table.ref"], - count=1, - ) - - -# -# Step 12 -# -# Action(s): wait for the convergence and SPF computation on rt6 -# -# Expected changes: -# - convergence of IPv4/6 RIB and MPLS table -# -def test_rib_ipv4_step12(): - logger.info("Test (step 12): verify IPv4 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ip route isis json", - outputs[rname][12]["show_ip_route.ref"], - ) - - -def test_rib_ipv6_step12(): - logger.info("Test (step 12): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][12]["show_ipv6_route.ref"], - ) - - -def test_mpls_lib_step12(): - logger.info("Test (step 12): verify MPLS LIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show mpls table json", - outputs[rname][12]["show_mpls_table.ref"], - ) - - -# -# Step 13 -# -# Action(s): -# - shut / unshut a rt6 interface -# - Setup BFD -# -# Expected changes: -# - All route tables go back to previous state situation -# - At the end of test, next SPF is scheduled in approximatively 15s -# -def test_rib_ipv4_step13(): - logger.info("Test (step 13): verify IPv4 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Unsetting spf-delay-ietf init-delay of 15s") - tgen.net["rt6"].cmd('vtysh -c "conf t" -c "router isis 1" -c "no spf-delay-ietf"') - - logger.info( - "Unshut the rt6 interface to rt5 from the switch side and check fast-reroute" - ) - tgen.net.cmd_raises("ip link set %s up" % tgen.net["s8"].intfs[1]) - - logger.info("Setup BFD on rt5 and rt6") - for rname in ["rt5", "rt6"]: - conf_file = os.path.join(CWD, "{}/bfdd.conf".format(rname)) - tgen.net[rname].cmd("vtysh -f {}".format(conf_file)) - - expect = ( - '[{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"up"}]' - ) - router_compare_json_output("rt6", "show bfd peers json", expect) - - logger.info("Unset link-detect on rt6 eth-rt5") - # Unset link detection. We want zebra to consider linkdow as operationaly up - # in order that BFD triggers LFA instead of the interface down - tgen.net["rt6"].cmd('vtysh -c "conf t" -c "int eth-rt5" -c "no link-detect"') - - # reset spf-interval - logger.info("Shut/unshut a rt6 eth-rt5 interface and set spf-interval to 15s") - tgen.net["rt6"].cmd( - 'vtysh -c "conf t" -c "router isis 1" -c "spf-delay-ietf init-delay 15000 short-delay 0 long-delay 0 holddown 0 time-to-learn 0"' - ) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, "show ip route isis json", outputs[rname][10]["show_ip_route.ref"] - ) - - logger.info("Set ISIS BFD") - tgen.net["rt5"].cmd('vtysh -c "conf t" -c "int eth-rt6" -c "isis bfd"') - tgen.net["rt6"].cmd('vtysh -c "conf t" -c "int eth-rt5" -c "isis bfd"') - - -def test_rib_ipv6_step13(): - logger.info("Test (step 13): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][10]["show_ipv6_route.ref"], - ) - - -def test_mpls_lib_step13(): - logger.info("Test (step 13): verify MPLS LIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, "show mpls table json", outputs[rname][10]["show_mpls_table.ref"] - ) - - -# -# Step 14 -# -# Action(s): -# - shut the eth-rt5 interface on rt6 -# -# Expected changes: -# - Route switchover of routes via eth-rt5 -# -def test_rt6_step14(): - logger.info("Test (step 14): verify IPv4/6 RIB and MPLS table") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info( - "Shut a rt6 interface to rt5 from the switch side and check fast-reroute" - ) - tgen.net.cmd_raises("ip link set %s down" % tgen.net["s8"].intfs[1]) - - rname = "rt6" - - expect = ( - '[{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"down"}]' - ) - router_compare_json_output( - rname, - "show bfd peers json", - expect, - count=20, - wait=0.05, - ) - - router_compare_json_output( - rname, - "show ip route isis json", - outputs[rname][11]["show_ip_route.ref"], - count=1, - ) - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][11]["show_ipv6_route.ref"], - count=1, - ) - router_compare_json_output( - rname, - "show mpls table json", - outputs[rname][11]["show_mpls_table.ref"], - count=1, - ) - - -# -# Step 15 -# -# Action(s): wait for the convergence and SPF computation on rt6 -# -# Expected changes: -# - convergence of IPv4/6 RIB and MPLS table -# -def test_rib_ipv4_step15(): - logger.info("Test (step 15): verify IPv4 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - logger.info("Check SPF convergence") - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ip route isis json", - outputs[rname][12]["show_ip_route.ref"], - ) - - -def test_rib_ipv6_step15(): - logger.info("Test (step 15): verify IPv6 RIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show ipv6 route isis json", - outputs[rname][12]["show_ipv6_route.ref"], - ) - - -def test_mpls_lib_step15(): - logger.info("Test (step 15): verify MPLS LIB") - tgen = get_topogen() - - # Skip if previous fatal error condition is raised - if tgen.routers_have_failure(): - pytest.skip(tgen.errors) - - for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: - router_compare_json_output( - rname, - "show mpls table json", - outputs[rname][12]["show_mpls_table.ref"], - ) - - # Memory leak test template def test_memory_leak(): "Run the memory leak test and report results."