diff --git a/doc/user/isisd.rst b/doc/user/isisd.rst index df7c72f8dc..98f5aff7db 100644 --- a/doc/user/isisd.rst +++ b/doc/user/isisd.rst @@ -423,8 +423,8 @@ Showing ISIS information Show topology IS-IS paths to Intermediate Systems, globally, in area (level-1) or domain (level-2). -.. index:: show isis route [level-1|level-2] [backup] -.. clicmd:: show isis route [level-1|level-2] [backup] +.. index:: show isis route [level-1|level-2] [prefix-sid|backup] +.. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup] Show the ISIS routing table, as determined by the most recent SPF calculation. @@ -515,14 +515,16 @@ Known limitations: MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value is 32. -.. index:: [no] segment-routing prefix [no-php-flag|explicit-null] -.. clicmd:: [no] segment-routing prefix [no-php-flag|explicit-null] [n-flag-clear] +.. clicmd:: [no] segment-routing prefix $prefix\ \ - [$lh_behavior]", + [$lh_behavior] [n-flag-clear$n_flag_clear]", SR_STR "Prefix SID\n" "IPv4 Prefix\n" @@ -1638,7 +1638,8 @@ DEFPY_YANG (isis_sr_prefix_sid, "Specify the index of Prefix Segement ID\n" "The Prefix Segment ID index\n" "Don't request Penultimate Hop Popping (PHP)\n" - "Upstream neighbor must replace prefix-sid with explicit null label\n") + "Upstream neighbor must replace prefix-sid with explicit null label\n" + "Not a node SID\n") { nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL); nb_cli_enqueue_change(vty, "./sid-value-type", NB_OP_MODIFY, sid_type); @@ -1656,6 +1657,8 @@ DEFPY_YANG (isis_sr_prefix_sid, } else nb_cli_enqueue_change(vty, "./last-hop-behavior", NB_OP_MODIFY, NULL); + nb_cli_enqueue_change(vty, "./n-flag-clear", NB_OP_MODIFY, + n_flag_clear ? "true" : "false"); return nb_cli_apply_changes( vty, "./segment-routing/prefix-sid-map/prefix-sid[prefix='%s']", @@ -1665,7 +1668,8 @@ DEFPY_YANG (isis_sr_prefix_sid, DEFPY_YANG (no_isis_sr_prefix_sid, no_isis_sr_prefix_sid_cmd, "no segment-routing prefix $prefix\ - [ []]", + [ []]\ + [n-flag-clear]", NO_STR SR_STR "Prefix SID\n" @@ -1676,7 +1680,8 @@ DEFPY_YANG (no_isis_sr_prefix_sid, "Specify the index of Prefix Segement ID\n" "The Prefix Segment ID index\n" "Don't request Penultimate Hop Popping (PHP)\n" - "Upstream neighbor must replace prefix-sid with explicit null label\n") + "Upstream neighbor must replace prefix-sid with explicit null label\n" + "Not a node SID\n") { nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL); @@ -1692,11 +1697,13 @@ void cli_show_isis_prefix_sid(struct vty *vty, struct lyd_node *dnode, const char *lh_behavior; const char *sid_value_type; const char *sid_value; + bool n_flag_clear; prefix = yang_dnode_get_string(dnode, "./prefix"); lh_behavior = yang_dnode_get_string(dnode, "./last-hop-behavior"); sid_value_type = yang_dnode_get_string(dnode, "./sid-value-type"); sid_value = yang_dnode_get_string(dnode, "./sid-value"); + n_flag_clear = yang_dnode_get_bool(dnode, "./n-flag-clear"); vty_out(vty, " segment-routing prefix %s", prefix); if (strmatch(sid_value_type, "absolute")) @@ -1708,6 +1715,8 @@ void cli_show_isis_prefix_sid(struct vty *vty, struct lyd_node *dnode, vty_out(vty, " no-php-flag"); else if (strmatch(lh_behavior, "explicit-null")) vty_out(vty, " explicit-null"); + if (n_flag_clear) + vty_out(vty, " n-flag-clear"); vty_out(vty, "\n"); } diff --git a/isisd/isis_lfa.c b/isisd/isis_lfa.c index 8ca432f895..f22e4a7085 100644 --- a/isisd/isis_lfa.c +++ b/isisd/isis_lfa.c @@ -180,23 +180,6 @@ bool isis_lfa_excise_node_check(const struct isis_spftree *spftree, return false; } -/* Find SRGB associated to a System ID. */ -static struct isis_sr_block *tilfa_find_srgb(struct lspdb_head *lspdb, - const uint8_t *sysid) -{ - struct isis_lsp *lsp; - - lsp = isis_root_system_lsp(lspdb, sysid); - if (!lsp) - return NULL; - - if (!lsp->tlvs->router_cap - || lsp->tlvs->router_cap->srgb.range_size == 0) - return NULL; - - return &lsp->tlvs->router_cap->srgb; -} - struct tilfa_find_pnode_prefix_sid_args { uint32_t sid_index; }; @@ -308,25 +291,30 @@ tilfa_compute_label_stack(struct lspdb_head *lspdb, label_stack->num_labels = listcount(repair_list); for (ALL_LIST_ELEMENTS_RO(repair_list, node, sid)) { + const uint8_t *target_node; struct isis_sr_block *srgb; mpls_label_t label; switch (sid->type) { case TILFA_SID_PREFIX: - srgb = tilfa_find_srgb(lspdb, sadj->id); + if (sid->value.index.remote) + target_node = sid->value.index.remote_sysid; + else + target_node = sadj->id; + srgb = isis_sr_find_srgb(lspdb, target_node); if (!srgb) { zlog_warn("%s: SRGB not found for node %s", __func__, - print_sys_hostname(sadj->id)); + print_sys_hostname(target_node)); goto error; } /* Check if the SID index falls inside the SRGB. */ - if (sid->value.index >= srgb->range_size) { + if (sid->value.index.value >= srgb->range_size) { flog_warn( EC_ISIS_SID_OVERFLOW, "%s: SID index %u falls outside remote SRGB range", - __func__, sid->value.index); + __func__, sid->value.index.value); goto error; } @@ -334,7 +322,7 @@ tilfa_compute_label_stack(struct lspdb_head *lspdb, * Prefix-SID: map SID index to label value within the * SRGB. */ - label = srgb->lower_bound + sid->value.index; + label = srgb->lower_bound + sid->value.index.value; break; case TILFA_SID_ADJ: /* Adj-SID: absolute label value can be used directly */ @@ -446,7 +434,8 @@ static int tilfa_build_repair_list(struct isis_spftree *spftree_pc, struct listnode *node; bool is_pnode, is_qnode; char buf[VID2STR_BUFFER]; - struct isis_tilfa_sid sid_qnode, sid_pnode; + struct isis_tilfa_sid sid_dest = {}, sid_qnode = {}, sid_pnode = {}; + uint32_t sid_index; mpls_label_t label_qnode; if (IS_DEBUG_TILFA) { @@ -455,6 +444,24 @@ static int tilfa_build_repair_list(struct isis_spftree *spftree_pc, vtype2string(vertex->type), buf); } + /* Push original Prefix-SID label when necessary. */ + if (VTYPE_IP(vertex->type) && vertex->N.ip.sr.present) { + pvertex = listnode_head(vertex->parents); + assert(pvertex); + + sid_index = vertex->N.ip.sr.sid.value; + if (IS_DEBUG_TILFA) + zlog_debug( + "ISIS-TI-LFA: pushing Prefix-SID to %pFX (index %u)", + &vertex->N.ip.p.dest, sid_index); + sid_dest.type = TILFA_SID_PREFIX; + sid_dest.value.index.value = sid_index; + sid_dest.value.index.remote = true; + memcpy(sid_dest.value.index.remote_sysid, pvertex->N.id, + sizeof(sid_dest.value.index.remote_sysid)); + listnode_add_head(repair_list, &sid_dest); + } + if (!vertex_child) goto parents; if (vertex->type != VTYPE_NONPSEUDO_IS @@ -492,8 +499,6 @@ static int tilfa_build_repair_list(struct isis_spftree *spftree_pc, /* Push Prefix-SID label when necessary. */ if (is_pnode) { - uint32_t sid_index; - /* The same P-node can't be used more than once. */ if (isis_spf_node_find(used_pnodes, vertex->N.id)) { if (IS_DEBUG_TILFA) @@ -521,10 +526,10 @@ static int tilfa_build_repair_list(struct isis_spftree *spftree_pc, if (IS_DEBUG_TILFA) zlog_debug( - "ISIS-TI-LFA: pushing Prefix-SID to %s (index %u)", + "ISIS-TI-LFA: pushing Node-SID to %s (index %u)", print_sys_hostname(vertex->N.id), sid_index); sid_pnode.type = TILFA_SID_PREFIX; - sid_pnode.value.index = sid_index; + sid_pnode.value.index.value = sid_index; listnode_add_head(repair_list, &sid_pnode); /* Apply repair list. */ @@ -614,6 +619,10 @@ static bool lfa_check_needs_protection(const struct isis_spftree *spftree_pc, size_t affected_nhs = 0; struct isis_vertex_adj *vadj; + /* Local routes don't need protection. */ + if (VTYPE_IP(vertex->type) && vertex->depth == 1) + return false; + /* Only local adjacencies need Adj-SID protection. */ if (VTYPE_IS(vertex->type) && !isis_adj_find(spftree_pc->area, spftree_pc->level, @@ -700,7 +709,7 @@ int isis_lfa_check(struct isis_spftree *spftree_pc, struct isis_vertex *vertex) struct route_table *route_table; route_table = spftree_pc->lfa.old.spftree->route_table_backup; - if (route_node_lookup(route_table, &vertex->N.ip.dest)) { + if (route_node_lookup(route_table, &vertex->N.ip.p.dest)) { if (IS_DEBUG_TILFA) zlog_debug( "ISIS-TI-LFA: %s %s already covered by node protection", diff --git a/isisd/isis_lfa.h b/isisd/isis_lfa.h index 62a7666f9c..835618760c 100644 --- a/isisd/isis_lfa.h +++ b/isisd/isis_lfa.h @@ -28,7 +28,11 @@ enum isis_tilfa_sid_type { struct isis_tilfa_sid { enum isis_tilfa_sid_type type; union { - uint32_t index; + struct { + uint32_t value; + bool remote; + uint8_t remote_sysid[ISIS_SYS_ID_LEN]; + } index; mpls_label_t label; } value; }; diff --git a/isisd/isis_nb.c b/isisd/isis_nb.c index d04012c4da..2d3c7e1e38 100644 --- a/isisd/isis_nb.c +++ b/isisd/isis_nb.c @@ -537,6 +537,12 @@ const struct frr_yang_module_info frr_isisd_info = { .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_modify, }, }, + { + .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/n-flag-clear", + .cbs = { + .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify, + } + }, { .xpath = "/frr-isisd:isis/instance/mpls/ldp-sync", .cbs = { diff --git a/isisd/isis_nb.h b/isisd/isis_nb.h index 303a7b4696..fb843131d9 100644 --- a/isisd/isis_nb.h +++ b/isisd/isis_nb.h @@ -206,6 +206,8 @@ int isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_modify( struct nb_cb_modify_args *args); int isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_modify( struct nb_cb_modify_args *args); +int isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify( + struct nb_cb_modify_args *args); int isis_instance_mpls_ldp_sync_destroy(struct nb_cb_destroy_args *args); int isis_instance_mpls_ldp_sync_create(struct nb_cb_create_args *args); int isis_instance_mpls_ldp_sync_holddown_modify(struct nb_cb_modify_args *args); diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c index 23a646663d..6cb7d32c25 100644 --- a/isisd/isis_nb_config.c +++ b/isisd/isis_nb_config.c @@ -1837,6 +1837,23 @@ int isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_mo return NB_OK; } +/* + * XPath: /frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/n-flag-clear + */ +int isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify( + struct nb_cb_modify_args *args) +{ + struct sr_prefix_cfg *pcfg; + + if (args->event != NB_EV_APPLY) + return NB_OK; + + pcfg = nb_running_get_entry(args->dnode, NULL, true); + pcfg->n_flag_clear = yang_dnode_get_bool(args->dnode, NULL); + + return NB_OK; +} + /* * XPath: /frr-isisd:isis/instance/mpls/ldp-sync */ diff --git a/isisd/isis_route.c b/isisd/isis_route.c index 7e8c877bd0..d664a6f896 100644 --- a/isisd/isis_route.c +++ b/isisd/isis_route.c @@ -71,7 +71,6 @@ static struct isis_nexthop *isis_nexthop_create(int family, union g_addr *ip, nexthop->family = family; nexthop->ifindex = ifindex; nexthop->ip = *ip; - isis_sr_nexthop_reset(&nexthop->sr); return nexthop; } @@ -117,7 +116,7 @@ static struct isis_nexthop *nexthoplookup(struct list *nexthops, int family, } void adjinfo2nexthop(int family, struct list *nexthops, - struct isis_adjacency *adj, + struct isis_adjacency *adj, struct isis_sr_psid_info *sr, struct mpls_label_stack *label_stack) { struct isis_nexthop *nh; @@ -134,6 +133,8 @@ void adjinfo2nexthop(int family, struct list *nexthops, AF_INET, &ip, adj->circuit->interface->ifindex); memcpy(nh->sysid, adj->sysid, sizeof(nh->sysid)); + if (sr) + nh->sr = *sr; nh->label_stack = label_stack; listnode_add(nexthops, nh); break; @@ -150,6 +151,8 @@ void adjinfo2nexthop(int family, struct list *nexthops, AF_INET6, &ip, adj->circuit->interface->ifindex); memcpy(nh->sysid, adj->sysid, sizeof(nh->sysid)); + if (sr) + nh->sr = *sr; nh->label_stack = label_stack; listnode_add(nexthops, nh); break; @@ -165,22 +168,22 @@ void adjinfo2nexthop(int family, struct list *nexthops, static void isis_route_add_dummy_nexthops(struct isis_route_info *rinfo, const uint8_t *sysid, + struct isis_sr_psid_info *sr, struct mpls_label_stack *label_stack) { struct isis_nexthop *nh; nh = XCALLOC(MTYPE_ISIS_NEXTHOP, sizeof(struct isis_nexthop)); memcpy(nh->sysid, sysid, sizeof(nh->sysid)); - isis_sr_nexthop_reset(&nh->sr); + nh->sr = *sr; nh->label_stack = label_stack; listnode_add(rinfo->nexthops, nh); } -static struct isis_route_info *isis_route_info_new(struct prefix *prefix, - struct prefix_ipv6 *src_p, - uint32_t cost, - uint32_t depth, - struct list *adjacencies) +static struct isis_route_info * +isis_route_info_new(struct prefix *prefix, struct prefix_ipv6 *src_p, + uint32_t cost, uint32_t depth, struct isis_sr_psid_info *sr, + struct list *adjacencies) { struct isis_route_info *rinfo; struct isis_vertex_adj *vadj; @@ -192,6 +195,7 @@ static struct isis_route_info *isis_route_info_new(struct prefix *prefix, for (ALL_LIST_ELEMENTS_RO(adjacencies, node, vadj)) { struct isis_spf_adj *sadj = vadj->sadj; struct isis_adjacency *adj = sadj->adj; + struct isis_sr_psid_info *sr = &vadj->sr; struct mpls_label_stack *label_stack = vadj->label_stack; /* @@ -199,7 +203,7 @@ static struct isis_route_info *isis_route_info_new(struct prefix *prefix, * environment. */ if (CHECK_FLAG(im->options, F_ISIS_UNIT_TEST)) { - isis_route_add_dummy_nexthops(rinfo, sadj->id, + isis_route_add_dummy_nexthops(rinfo, sadj->id, sr, label_stack); continue; } @@ -227,12 +231,13 @@ static struct isis_route_info *isis_route_info_new(struct prefix *prefix, prefix->family); exit(1); } - adjinfo2nexthop(prefix->family, rinfo->nexthops, adj, + adjinfo2nexthop(prefix->family, rinfo->nexthops, adj, sr, label_stack); } rinfo->cost = cost; rinfo->depth = depth; + rinfo->sr = *sr; return rinfo; } @@ -254,12 +259,28 @@ void isis_route_node_cleanup(struct route_table *table, struct route_node *node) isis_route_info_delete(node->info); } +static bool isis_sr_psid_info_same(struct isis_sr_psid_info *new, + struct isis_sr_psid_info *old) +{ + if (new->present != old->present) + return false; + + if (new->label != old->label) + return false; + + if (new->sid.flags != old->sid.flags + || new->sid.value != old->sid.value) + return false; + + return true; +} + static int isis_route_info_same(struct isis_route_info *new, struct isis_route_info *old, char *buf, size_t buf_size) { struct listnode *node; - struct isis_nexthop *nexthop; + struct isis_nexthop *new_nh, *old_nh; if (new->cost != old->cost) { if (buf) @@ -275,6 +296,12 @@ static int isis_route_info_same(struct isis_route_info *new, return 0; } + if (!isis_sr_psid_info_same(&new->sr, &old->sr)) { + if (buf) + snprintf(buf, buf_size, "SR input label"); + return 0; + } + if (new->nexthops->count != old->nexthops->count) { if (buf) snprintf(buf, buf_size, "nhops num (old: %u, new: %u)", @@ -282,14 +309,20 @@ static int isis_route_info_same(struct isis_route_info *new, return 0; } - for (ALL_LIST_ELEMENTS_RO(new->nexthops, node, nexthop)) { - if (!nexthoplookup(old->nexthops, nexthop->family, &nexthop->ip, - nexthop->ifindex)) { + for (ALL_LIST_ELEMENTS_RO(new->nexthops, node, new_nh)) { + old_nh = nexthoplookup(old->nexthops, new_nh->family, + &new_nh->ip, new_nh->ifindex); + if (!old_nh) { if (buf) snprintf(buf, buf_size, "new nhop"); /* TODO: print nhop */ return 0; } + if (!isis_sr_psid_info_same(&new_nh->sr, &old_nh->sr)) { + if (buf) + snprintf(buf, buf_size, "nhop SR label"); + return 0; + } } /* only the resync flag needs to be checked */ @@ -303,13 +336,11 @@ static int isis_route_info_same(struct isis_route_info *new, return 1; } -struct isis_route_info *isis_route_create(struct prefix *prefix, - struct prefix_ipv6 *src_p, - uint32_t cost, - uint32_t depth, - struct list *adjacencies, - struct isis_area *area, - struct route_table *table) +struct isis_route_info * +isis_route_create(struct prefix *prefix, struct prefix_ipv6 *src_p, + uint32_t cost, uint32_t depth, struct isis_sr_psid_info *sr, + struct list *adjacencies, struct isis_area *area, + struct route_table *table) { struct route_node *route_node; struct isis_route_info *rinfo_new, *rinfo_old, *route_info = NULL; @@ -318,8 +349,8 @@ struct isis_route_info *isis_route_create(struct prefix *prefix, if (!table) return NULL; - rinfo_new = isis_route_info_new(prefix, src_p, cost, - depth, adjacencies); + rinfo_new = isis_route_info_new(prefix, src_p, cost, depth, sr, + adjacencies); route_node = srcdest_rnode_get(table, prefix, src_p); rinfo_old = route_node->info; @@ -351,6 +382,7 @@ struct isis_route_info *isis_route_create(struct prefix *prefix, zlog_debug( "ISIS-Rte (%s): route changed: %pFX, change: %s", area->area_tag, prefix, change_buf); + rinfo_new->sr_previous = rinfo_old->sr; isis_route_info_delete(rinfo_old); route_info = rinfo_new; UNSET_FLAG(route_info->flag, @@ -406,7 +438,25 @@ 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_zebra_route_add_route(area->isis, prefix, src_p, 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, + route_info); + /* Install/reinstall Prefix-SID label. */ + if (route_info->sr.present) + isis_zebra_prefix_sid_install(area, prefix, route_info, + &route_info->sr); hook_call(isis_route_update_hook, area, prefix, route_info); SET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED); @@ -415,7 +465,13 @@ 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_zebra_route_del_route(area->isis, prefix, src_p, route_info); + /* Uninstall Prefix-SID label. */ + if (route_info->sr.present) + isis_zebra_prefix_sid_uninstall( + area, prefix, route_info, &route_info->sr); + /* Uninstall route. */ + isis_zebra_route_del_route(area->isis, prefix, src_p, + route_info); hook_call(isis_route_update_hook, area, prefix, route_info); UNSET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED); diff --git a/isisd/isis_route.h b/isisd/isis_route.h index fbb548a79e..b5e4aed6cc 100644 --- a/isisd/isis_route.h +++ b/isisd/isis_route.h @@ -32,7 +32,7 @@ struct isis_nexthop { int family; union g_addr ip; uint8_t sysid[ISIS_SYS_ID_LEN]; - struct sr_nexthop_info sr; + struct isis_sr_psid_info sr; struct mpls_label_stack *label_stack; }; @@ -43,6 +43,8 @@ struct isis_route_info { uint8_t flag; uint32_t cost; uint32_t depth; + struct isis_sr_psid_info sr; + struct isis_sr_psid_info sr_previous; struct list *nexthops; struct isis_route_info *backup; }; @@ -54,15 +56,13 @@ DECLARE_HOOK(isis_route_update_hook, void isis_nexthop_delete(struct isis_nexthop *nexthop); void adjinfo2nexthop(int family, struct list *nexthops, - struct isis_adjacency *adj, + struct isis_adjacency *adj, struct isis_sr_psid_info *sr, struct mpls_label_stack *label_stack); -struct isis_route_info *isis_route_create(struct prefix *prefix, - struct prefix_ipv6 *src_p, - uint32_t cost, - uint32_t depth, - struct list *adjacencies, - struct isis_area *area, - struct route_table *table); +struct isis_route_info * +isis_route_create(struct prefix *prefix, struct prefix_ipv6 *src_p, + uint32_t cost, uint32_t depth, struct isis_sr_psid_info *sr, + struct list *adjacencies, struct isis_area *area, + struct route_table *table); /* Walk the given table and install new routes to zebra and remove old ones. * route status is tracked using ISIS_ROUTE_FLAG_ACTIVE */ diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 39a1c9ebe9..690ea9f1a5 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -176,9 +176,8 @@ const char *vid2string(const struct isis_vertex *vertex, char *buff, int size) } if (VTYPE_IP(vertex->type)) { - srcdest2str(&vertex->N.ip.dest, - &vertex->N.ip.src, - buff, size); + srcdest2str(&vertex->N.ip.p.dest, &vertex->N.ip.p.src, buff, + size); return buff; } @@ -215,13 +214,33 @@ static struct isis_vertex *isis_vertex_new(struct isis_spftree *spftree, return vertex; } -static struct isis_vertex_adj *isis_vertex_adj_add(struct isis_vertex *vertex, - struct isis_spf_adj *sadj) +static struct isis_vertex_adj *isis_vertex_adj_add(struct isis_spftree *spftree, + struct isis_vertex *vertex, + struct isis_spf_adj *sadj, + struct isis_prefix_sid *psid) { struct isis_vertex_adj *vadj; vadj = XCALLOC(MTYPE_ISIS_VERTEX_ADJ, sizeof(*vadj)); vadj->sadj = sadj; + if (psid) { + if (vertex->N.ip.sr.present + && vertex->N.ip.sr.sid.value != psid->value) + zlog_warn( + "ISIS-SPF: ignoring different Prefix-SID for route %pFX", + &vertex->N.ip.p.dest); + else { + bool last_hop; + + last_hop = (vertex->depth == 2); + vadj->sr.sid = *psid; + vadj->sr.label = sr_prefix_out_label( + spftree->lspdb, vertex->N.ip.p.dest.family, + psid, sadj->id, last_hop); + if (vadj->sr.label != MPLS_INVALID_LABEL) + vadj->sr.present = true; + } + } listnode_add(vertex->Adj_N, vadj); return vadj; @@ -466,11 +485,10 @@ static void vertex_update_firsthops(struct isis_vertex *vertex, /* * Add a vertex to TENT sorted by cost and by vertextype on tie break situation */ -static struct isis_vertex *isis_spf_add2tent(struct isis_spftree *spftree, - enum vertextype vtype, void *id, - uint32_t cost, int depth, - struct isis_spf_adj *sadj, - struct isis_vertex *parent) +static struct isis_vertex * +isis_spf_add2tent(struct isis_spftree *spftree, enum vertextype vtype, void *id, + uint32_t cost, int depth, struct isis_spf_adj *sadj, + struct isis_prefix_sid *psid, struct isis_vertex *parent) { struct isis_vertex *vertex; struct listnode *node; @@ -496,6 +514,16 @@ static struct isis_vertex *isis_spf_add2tent(struct isis_spftree *spftree, vertex = isis_vertex_new(spftree, id, vtype); vertex->d_N = cost; vertex->depth = depth; + if (VTYPE_IP(vtype) && psid) { + bool local; + + local = (vertex->depth == 1); + vertex->N.ip.sr.sid = *psid; + vertex->N.ip.sr.label = + sr_prefix_in_label(spftree->area, psid, local); + if (vertex->N.ip.sr.label != MPLS_INVALID_LABEL) + vertex->N.ip.sr.present = true; + } if (parent) { listnode_add(vertex->parents, parent); @@ -508,9 +536,10 @@ static struct isis_vertex *isis_spf_add2tent(struct isis_spftree *spftree, struct isis_vertex_adj *parent_vadj; for (ALL_LIST_ELEMENTS_RO(parent->Adj_N, node, parent_vadj)) - isis_vertex_adj_add(vertex, parent_vadj->sadj); + isis_vertex_adj_add(spftree, vertex, parent_vadj->sadj, + psid); } else if (sadj) { - isis_vertex_adj_add(vertex, sadj); + isis_vertex_adj_add(spftree, vertex, sadj, psid); } #ifdef EXTREME_DEBUG @@ -528,6 +557,7 @@ static struct isis_vertex *isis_spf_add2tent(struct isis_spftree *spftree, static void isis_spf_add_local(struct isis_spftree *spftree, enum vertextype vtype, void *id, struct isis_spf_adj *sadj, uint32_t cost, + struct isis_prefix_sid *psid, struct isis_vertex *parent) { struct isis_vertex *vertex; @@ -538,7 +568,8 @@ static void isis_spf_add_local(struct isis_spftree *spftree, /* C.2.5 c) */ if (vertex->d_N == cost) { if (sadj) - isis_vertex_adj_add(vertex, sadj); + isis_vertex_adj_add(spftree, vertex, sadj, + psid); /* d) */ if (!CHECK_FLAG(spftree->flags, F_SPFTREE_NO_ADJACENCIES) @@ -558,13 +589,13 @@ static void isis_spf_add_local(struct isis_spftree *spftree, } } - isis_spf_add2tent(spftree, vtype, id, cost, 1, sadj, parent); + isis_spf_add2tent(spftree, vtype, id, cost, 1, sadj, psid, parent); return; } static void process_N(struct isis_spftree *spftree, enum vertextype vtype, void *id, uint32_t dist, uint16_t depth, - struct isis_vertex *parent) + struct isis_prefix_sid *psid, struct isis_vertex *parent) { struct isis_vertex *vertex; #ifdef EXTREME_DEBUG @@ -628,8 +659,9 @@ static void process_N(struct isis_spftree *spftree, enum vertextype vtype, parent_vadj)) if (!isis_vertex_adj_exists(spftree, vertex, parent_vadj->sadj)) - isis_vertex_adj_add(vertex, - parent_vadj->sadj); + isis_vertex_adj_add(spftree, vertex, + parent_vadj->sadj, + psid); if (CHECK_FLAG(spftree->flags, F_SPFTREE_HOPCOUNT_METRIC)) vertex_update_firsthops(vertex, parent); @@ -656,7 +688,7 @@ static void process_N(struct isis_spftree *spftree, enum vertextype vtype, (parent ? print_sys_hostname(parent->N.id) : "null")); #endif /* EXTREME_DEBUG */ - isis_spf_add2tent(spftree, vtype, id, dist, depth, NULL, parent); + isis_spf_add2tent(spftree, vtype, id, dist, depth, NULL, psid, parent); return; } @@ -675,6 +707,7 @@ static int isis_spf_process_lsp(struct isis_spftree *spftree, static const uint8_t null_sysid[ISIS_SYS_ID_LEN]; struct isis_mt_router_info *mt_router_info = NULL; struct prefix_pair ip_info; + bool has_valid_psid; if (isis_lfa_excise_node_check(spftree, lsp->hdr.lsp_id)) { if (IS_DEBUG_TILFA) @@ -739,7 +772,7 @@ lspfragloop: LSP_PSEUDO_ID(r->id) ? VTYPE_PSEUDO_IS : VTYPE_NONPSEUDO_IS, - (void *)r->id, dist, depth + 1, + (void *)r->id, dist, depth + 1, NULL, parent); } } @@ -773,7 +806,8 @@ lspfragloop: process_N(spftree, LSP_PSEUDO_ID(er->id) ? VTYPE_PSEUDO_TE_IS : VTYPE_NONPSEUDO_TE_IS, - (void *)er->id, dist, depth + 1, parent); + (void *)er->id, dist, depth + 1, NULL, + parent); } } @@ -798,7 +832,7 @@ lspfragloop: ip_info.dest.u.prefix4 = r->prefix.prefix; ip_info.dest.prefixlen = r->prefix.prefixlen; process_N(spftree, vtype, &ip_info, - dist, depth + 1, parent); + dist, depth + 1, NULL, parent); } } } @@ -823,8 +857,34 @@ lspfragloop: dist = cost + r->metric; ip_info.dest.u.prefix4 = r->prefix.prefix; ip_info.dest.prefixlen = r->prefix.prefixlen; - process_N(spftree, VTYPE_IPREACH_TE, &ip_info, - dist, depth + 1, parent); + + /* Parse list of Prefix-SID subTLVs */ + has_valid_psid = false; + if (r->subtlvs) { + for (struct isis_item *i = + r->subtlvs->prefix_sids.head; + i; i = i->next) { + struct isis_prefix_sid *psid = + (struct isis_prefix_sid *)i; + + if (psid->algorithm != SR_ALGORITHM_SPF) + continue; + + has_valid_psid = true; + process_N(spftree, VTYPE_IPREACH_TE, + &ip_info, dist, depth + 1, + psid, parent); + /* + * Stop the Prefix-SID iteration since + * we only support the SPF algorithm for + * now. + */ + break; + } + } + if (!has_valid_psid) + process_N(spftree, VTYPE_IPREACH_TE, &ip_info, + dist, depth + 1, NULL, parent); } } @@ -865,8 +925,34 @@ lspfragloop: } ip_info.src = *r->subtlvs->source_prefix; } - process_N(spftree, vtype, &ip_info, dist, - depth + 1, parent); + + /* Parse list of Prefix-SID subTLVs */ + has_valid_psid = false; + if (r->subtlvs) { + for (struct isis_item *i = + r->subtlvs->prefix_sids.head; + i; i = i->next) { + struct isis_prefix_sid *psid = + (struct isis_prefix_sid *)i; + + if (psid->algorithm != SR_ALGORITHM_SPF) + continue; + + has_valid_psid = true; + process_N(spftree, vtype, &ip_info, + dist, depth + 1, psid, + parent); + /* + * Stop the Prefix-SID iteration since + * we only support the SPF algorithm for + * now. + */ + break; + } + } + if (!has_valid_psid) + process_N(spftree, vtype, &ip_info, dist, + depth + 1, NULL, parent); } } @@ -922,6 +1008,7 @@ static int isis_spf_preload_tent_ip_reach_cb(const struct prefix *prefix, struct isis_vertex *parent = args->parent; struct prefix_pair ip_info; enum vertextype vtype; + bool has_valid_psid = false; if (external) return LSP_ITER_CONTINUE; @@ -936,7 +1023,30 @@ static int isis_spf_preload_tent_ip_reach_cb(const struct prefix *prefix, else vtype = VTYPE_IP6REACH_INTERNAL; - isis_spf_add_local(spftree, vtype, &ip_info, NULL, 0, parent); + /* Parse list of Prefix-SID subTLVs */ + if (subtlvs) { + for (struct isis_item *i = subtlvs->prefix_sids.head; i; + i = i->next) { + struct isis_prefix_sid *psid = + (struct isis_prefix_sid *)i; + + if (psid->algorithm != SR_ALGORITHM_SPF) + continue; + + has_valid_psid = true; + isis_spf_add_local(spftree, vtype, &ip_info, NULL, 0, + psid, parent); + + /* + * Stop the Prefix-SID iteration since we only support + * the SPF algorithm for now. + */ + break; + } + } + if (!has_valid_psid) + isis_spf_add_local(spftree, vtype, &ip_info, NULL, 0, NULL, + parent); return LSP_ITER_CONTINUE; } @@ -985,7 +1095,8 @@ static void isis_spf_preload_tent(struct isis_spftree *spftree, F_ISIS_SPF_ADJ_OLDMETRIC) ? VTYPE_NONPSEUDO_IS : VTYPE_NONPSEUDO_TE_IS, - sadj->id, sadj, metric, parent); + sadj->id, sadj, metric, NULL, + parent); } else if (sadj->lan.lsp_pseudo) { isis_spf_process_lsp(spftree, sadj->lan.lsp_pseudo, metric, 0, spftree->sysid, parent); @@ -1222,8 +1333,9 @@ static void isis_spf_build_adj_list(struct isis_spftree *spftree, static void add_to_paths(struct isis_spftree *spftree, struct isis_vertex *vertex) { - struct isis_area *area = spftree->area; +#ifdef EXTREME_DEBUG char buff[VID2STR_BUFFER]; +#endif /* EXTREME_DEBUG */ if (isis_find_vertex(&spftree->paths, &vertex->N, vertex->type)) return; @@ -1235,6 +1347,24 @@ static void add_to_paths(struct isis_spftree *spftree, vid2string(vertex, buff, sizeof(buff)), vertex->depth, vertex->d_N); #endif /* EXTREME_DEBUG */ +} + +static void init_spt(struct isis_spftree *spftree, int mtid) +{ + /* Clear data from previous run. */ + isis_spf_node_list_clear(&spftree->adj_nodes); + list_delete_all_node(spftree->sadj_list); + isis_vertex_queue_clear(&spftree->tents); + isis_vertex_queue_clear(&spftree->paths); + + spftree->mtid = mtid; +} + +static void spf_path_process(struct isis_spftree *spftree, + struct isis_vertex *vertex) +{ + struct isis_area *area = spftree->area; + char buff[VID2STR_BUFFER]; if (VTYPE_IS(vertex->type) && !CHECK_FLAG(spftree->flags, F_SPFTREE_NO_ADJACENCIES)) { @@ -1261,7 +1391,7 @@ static void add_to_paths(struct isis_spftree *spftree, if (VTYPE_IP(vertex->type) && !CHECK_FLAG(spftree->flags, F_SPFTREE_NO_ROUTES)) { - if (listcount(vertex->Adj_N) > 0) { + if (vertex->depth == 1 || listcount(vertex->Adj_N) > 0) { struct route_table *route_table; if (spftree->type == SPF_TYPE_TI_LFA) { @@ -1272,8 +1402,9 @@ static void add_to_paths(struct isis_spftree *spftree, } else route_table = spftree->route_table; - isis_route_create(&vertex->N.ip.dest, &vertex->N.ip.src, - vertex->d_N, vertex->depth, + isis_route_create(&vertex->N.ip.p.dest, + &vertex->N.ip.p.src, vertex->d_N, + vertex->depth, &vertex->N.ip.sr, vertex->Adj_N, area, route_table); } else if (IS_DEBUG_SPF_EVENTS) zlog_debug( @@ -1281,19 +1412,6 @@ static void add_to_paths(struct isis_spftree *spftree, vid2string(vertex, buff, sizeof(buff)), vertex->depth, vertex->d_N); } - - return; -} - -static void init_spt(struct isis_spftree *spftree, int mtid) -{ - /* Clear data from previous run. */ - isis_spf_node_list_clear(&spftree->adj_nodes); - list_delete_all_node(spftree->sadj_list); - isis_vertex_queue_clear(&spftree->tents); - isis_vertex_queue_clear(&spftree->paths); - - spftree->mtid = mtid; } static void isis_spf_loop(struct isis_spftree *spftree, @@ -1301,6 +1419,7 @@ static void isis_spf_loop(struct isis_spftree *spftree, { struct isis_vertex *vertex; struct isis_lsp *lsp; + struct listnode *node; while (isis_vertex_queue_count(&spftree->tents)) { vertex = isis_vertex_queue_pop(&spftree->tents); @@ -1327,6 +1446,23 @@ static void isis_spf_loop(struct isis_spftree *spftree, isis_spf_process_lsp(spftree, lsp, vertex->d_N, vertex->depth, root_sysid, vertex); } + + /* Generate routes once the SPT is formed. */ + for (ALL_QUEUE_ELEMENTS_RO(&spftree->paths, node, vertex)) { + /* New-style TLVs take precedence over the old-style TLVs. */ + switch (vertex->type) { + case VTYPE_IPREACH_INTERNAL: + case VTYPE_IPREACH_EXTERNAL: + if (isis_find_vertex(&spftree->paths, &vertex->N, + VTYPE_IPREACH_TE)) + continue; + break; + default: + break; + } + + spf_path_process(spftree, vertex); + } } struct isis_spftree *isis_run_hopcount_spf(struct isis_area *area, @@ -1508,8 +1644,6 @@ static int isis_run_spf_cb(struct thread *thread) isis_area_verify_routes(area); - isis_area_verify_sr(area); - /* walk all circuits and reset any spf specific flags */ struct listnode *node; struct isis_circuit *circuit; @@ -1800,12 +1934,126 @@ DEFUN(show_isis_topology, show_isis_topology_cmd, return CMD_SUCCESS; } +static void isis_print_route(struct ttable *tt, const struct prefix *prefix, + struct isis_route_info *rinfo, bool prefix_sid, + bool no_adjacencies) +{ + struct isis_nexthop *nexthop; + struct listnode *node; + bool first = true; + char buf_prefix[BUFSIZ]; + + (void)prefix2str(prefix, buf_prefix, sizeof(buf_prefix)); + for (ALL_LIST_ELEMENTS_RO(rinfo->nexthops, node, nexthop)) { + struct interface *ifp; + char buf_iface[BUFSIZ]; + char buf_nhop[BUFSIZ]; + + if (!no_adjacencies) { + inet_ntop(nexthop->family, &nexthop->ip, buf_nhop, + sizeof(buf_nhop)); + ifp = if_lookup_by_index(nexthop->ifindex, VRF_DEFAULT); + if (ifp) + strlcpy(buf_iface, ifp->name, + sizeof(buf_iface)); + else + snprintf(buf_iface, sizeof(buf_iface), + "ifindex %u", nexthop->ifindex); + } else { + strlcpy(buf_nhop, print_sys_hostname(nexthop->sysid), + sizeof(buf_nhop)); + strlcpy(buf_iface, "-", sizeof(buf_iface)); + } + + if (prefix_sid) { + char buf_sid[BUFSIZ] = {}; + char buf_lblop[BUFSIZ] = {}; + + if (nexthop->sr.present) { + snprintf(buf_sid, sizeof(buf_sid), "%u", + nexthop->sr.sid.value); + sr_op2str(buf_lblop, sizeof(buf_lblop), + rinfo->sr.label, nexthop->sr.label); + } else { + strlcpy(buf_sid, "-", sizeof(buf_sid)); + strlcpy(buf_lblop, "-", sizeof(buf_lblop)); + } + + if (first) { + ttable_add_row(tt, "%s|%u|%s|%s|%s|%s", + buf_prefix, rinfo->cost, + buf_iface, buf_nhop, buf_sid, + buf_lblop); + first = false; + } else + ttable_add_row(tt, "||%s|%s|%s|%s", buf_iface, + buf_nhop, buf_sid, buf_lblop); + } else { + char buf_labels[BUFSIZ] = {}; + + if (nexthop->label_stack) { + for (int i = 0; + i < nexthop->label_stack->num_labels; + i++) { + char buf_label[BUFSIZ]; + + label2str( + nexthop->label_stack->label[i], + buf_label, sizeof(buf_label)); + if (i != 0) + strlcat(buf_labels, "/", + sizeof(buf_labels)); + strlcat(buf_labels, buf_label, + sizeof(buf_labels)); + } + } else if (nexthop->sr.present) + label2str(nexthop->sr.label, buf_labels, + sizeof(buf_labels)); + else + strlcpy(buf_labels, "-", sizeof(buf_labels)); + + if (first) { + ttable_add_row(tt, "%s|%u|%s|%s|%s", buf_prefix, + rinfo->cost, buf_iface, buf_nhop, + buf_labels); + first = false; + } else + ttable_add_row(tt, "||%s|%s|%s", buf_iface, + buf_nhop, buf_labels); + } + } + if (list_isempty(rinfo->nexthops)) { + if (prefix_sid) { + char buf_sid[BUFSIZ] = {}; + char buf_lblop[BUFSIZ] = {}; + + if (rinfo->sr.present) { + snprintf(buf_sid, sizeof(buf_sid), "%u", + rinfo->sr.sid.value); + sr_op2str(buf_lblop, sizeof(buf_lblop), + rinfo->sr.label, + MPLS_LABEL_IMPLICIT_NULL); + } else { + strlcpy(buf_sid, "-", sizeof(buf_sid)); + strlcpy(buf_lblop, "-", sizeof(buf_lblop)); + } + + ttable_add_row(tt, "%s|%u|%s|%s|%s|%s", buf_prefix, + rinfo->cost, "-", "-", buf_sid, + buf_lblop); + } else + ttable_add_row(tt, "%s|%u|%s|%s|%s", buf_prefix, + rinfo->cost, "-", "-", "-"); + } +} + void isis_print_routes(struct vty *vty, struct isis_spftree *spftree, - bool backup) + bool prefix_sid, bool backup) { struct route_table *route_table; struct ttable *tt; struct route_node *rn; + bool no_adjacencies = false; const char *tree_id_text = NULL; if (!spftree) @@ -1831,82 +2079,28 @@ void isis_print_routes(struct vty *vty, struct isis_spftree *spftree, /* Prepare table. */ tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); - ttable_add_row(tt, "Prefix|Metric|Interface|Nexthop|Label(s)"); + if (prefix_sid) + ttable_add_row(tt, "Prefix|Metric|Interface|Nexthop|SID|Label Op."); + else + ttable_add_row(tt, "Prefix|Metric|Interface|Nexthop|Label(s)"); tt->style.cell.rpad = 2; tt->style.corner = '+'; ttable_restyle(tt); ttable_rowseps(tt, 0, BOTTOM, true, '-'); + if (CHECK_FLAG(spftree->flags, F_SPFTREE_NO_ADJACENCIES)) + no_adjacencies = true; + route_table = (backup) ? spftree->route_table_backup : spftree->route_table; for (rn = route_top(route_table); rn; rn = route_next(rn)) { struct isis_route_info *rinfo; - struct isis_nexthop *nexthop; - struct listnode *node; - bool first = true; - char buf_prefix[BUFSIZ]; rinfo = rn->info; if (!rinfo) continue; - (void)prefix2str(&rn->p, buf_prefix, sizeof(buf_prefix)); - for (ALL_LIST_ELEMENTS_RO(rinfo->nexthops, node, nexthop)) { - struct interface *ifp; - char buf_iface[BUFSIZ]; - char buf_nhop[BUFSIZ]; - char buf_labels[BUFSIZ] = {}; - - if (!CHECK_FLAG(spftree->flags, - F_SPFTREE_NO_ADJACENCIES)) { - inet_ntop(nexthop->family, &nexthop->ip, - buf_nhop, sizeof(buf_nhop)); - ifp = if_lookup_by_index(nexthop->ifindex, - VRF_DEFAULT); - if (ifp) - strlcpy(buf_iface, ifp->name, - sizeof(buf_iface)); - else - snprintf(buf_iface, sizeof(buf_iface), - "ifindex %u", - nexthop->ifindex); - } else { - strlcpy(buf_nhop, - print_sys_hostname(nexthop->sysid), - sizeof(buf_nhop)); - strlcpy(buf_iface, "-", sizeof(buf_iface)); - } - - if (nexthop->label_stack) { - for (int i = 0; - i < nexthop->label_stack->num_labels; - i++) { - char buf_label[BUFSIZ]; - - label2str( - nexthop->label_stack->label[i], - buf_label, sizeof(buf_label)); - if (i != 0) - strlcat(buf_labels, "/", - sizeof(buf_labels)); - strlcat(buf_labels, buf_label, - sizeof(buf_labels)); - } - } else if (nexthop->sr.label != MPLS_INVALID_LABEL) - label2str(nexthop->sr.label, buf_labels, - sizeof(buf_labels)); - else - strlcpy(buf_labels, "-", sizeof(buf_labels)); - - if (first) { - ttable_add_row(tt, "%s|%u|%s|%s|%s", buf_prefix, - rinfo->cost, buf_iface, buf_nhop, - buf_labels); - first = false; - } else - ttable_add_row(tt, "||%s|%s|%s", buf_iface, - buf_nhop, buf_labels); - } + isis_print_route(tt, &rn->p, rinfo, prefix_sid, no_adjacencies); } /* Dump the generated table. */ @@ -1921,7 +2115,8 @@ void isis_print_routes(struct vty *vty, struct isis_spftree *spftree, } static void show_isis_route_common(struct vty *vty, int levels, - struct isis *isis, bool backup) + struct isis *isis, bool prefix_sid, + bool backup) { struct listnode *node; struct isis_area *area; @@ -1941,19 +2136,19 @@ static void show_isis_route_common(struct vty *vty, int levels, isis_print_routes( vty, area->spftree[SPFTREE_IPV4][level - 1], - backup); + prefix_sid, backup); } if (area->ipv6_circuits > 0) { isis_print_routes( vty, area->spftree[SPFTREE_IPV6][level - 1], - backup); + prefix_sid, backup); } if (isis_area_ipv6_dstsrc_enabled(area)) { isis_print_routes(vty, area->spftree[SPFTREE_DSTSRC] [level - 1], - backup); + prefix_sid, backup); } } } @@ -1965,13 +2160,14 @@ DEFUN(show_isis_route, show_isis_route_cmd, #ifndef FABRICD " []" #endif - " [backup]", + " []", SHOW_STR PROTO_HELP VRF_FULL_CMD_HELP_STR "IS-IS routing table\n" #ifndef FABRICD "level-1 routes\n" "level-2 routes\n" #endif + "Show Prefix-SID information\n" "Show backup routes\n") { int levels; @@ -1979,6 +2175,7 @@ DEFUN(show_isis_route, show_isis_route_cmd, struct listnode *node; const char *vrf_name = VRF_DEFAULT_NAME; bool all_vrf = false; + bool prefix_sid = false; bool backup = false; int idx = 0; @@ -1995,6 +2192,8 @@ DEFUN(show_isis_route, show_isis_route_cmd, } ISIS_FIND_VRF_ARGS(argv, argc, idx, vrf_name, all_vrf); + if (argv_find(argv, argc, "prefix-sid", &idx)) + prefix_sid = true; if (argv_find(argv, argc, "backup", &idx)) backup = true; @@ -2002,12 +2201,13 @@ DEFUN(show_isis_route, show_isis_route_cmd, if (all_vrf) { for (ALL_LIST_ELEMENTS_RO(im->isis, node, isis)) show_isis_route_common(vty, levels, isis, - backup); + prefix_sid, backup); return CMD_SUCCESS; } isis = isis_lookup_by_vrfname(vrf_name); if (isis != NULL) - show_isis_route_common(vty, levels, isis, backup); + show_isis_route_common(vty, levels, isis, prefix_sid, + backup); } return CMD_SUCCESS; diff --git a/isisd/isis_spf.h b/isisd/isis_spf.h index 5d07c80d20..15d3ff9272 100644 --- a/isisd/isis_spf.h +++ b/isisd/isis_spf.h @@ -68,7 +68,7 @@ int _isis_spf_schedule(struct isis_area *area, int level, const char *func, const char *file, int line); void isis_print_spftree(struct vty *vty, struct isis_spftree *spftree); void isis_print_routes(struct vty *vty, struct isis_spftree *spftree, - bool backup); + bool prefix_sid, bool backup); void isis_spf_init(void); void isis_spf_print(struct isis_spftree *spftree, struct vty *vty); void isis_run_spf(struct isis_spftree *spftree); diff --git a/isisd/isis_spf_private.h b/isisd/isis_spf_private.h index 1a2e969bd9..e999f96539 100644 --- a/isisd/isis_spf_private.h +++ b/isisd/isis_spf_private.h @@ -52,6 +52,7 @@ struct prefix_pair { struct isis_vertex_adj { struct isis_spf_adj *sadj; + struct isis_sr_psid_info sr; struct mpls_label_stack *label_stack; }; @@ -62,7 +63,10 @@ struct isis_vertex { enum vertextype type; union { uint8_t id[ISIS_SYS_ID_LEN + 1]; - struct prefix_pair ip; + struct { + struct prefix_pair p; + struct isis_sr_psid_info sr; + } ip; } N; uint32_t d_N; /* d(N) Distance from this IS */ uint16_t depth; /* The depth in the imaginary tree */ @@ -91,8 +95,8 @@ static unsigned isis_vertex_queue_hash_key(const void *vp) if (VTYPE_IP(vertex->type)) { uint32_t key; - key = prefix_hash_key(&vertex->N.ip.dest); - key = jhash_1word(prefix_hash_key(&vertex->N.ip.src), key); + key = prefix_hash_key(&vertex->N.ip.p.dest); + key = jhash_1word(prefix_hash_key(&vertex->N.ip.p.src), key); return key; } @@ -108,11 +112,12 @@ static bool isis_vertex_queue_hash_cmp(const void *a, const void *b) return false; if (VTYPE_IP(va->type)) { - if (prefix_cmp(&va->N.ip.dest, &vb->N.ip.dest)) + if (prefix_cmp(&va->N.ip.p.dest, &vb->N.ip.p.dest)) return false; - return prefix_cmp((const struct prefix *)&va->N.ip.src, - (const struct prefix *)&vb->N.ip.src) == 0; + return prefix_cmp((const struct prefix *)&va->N.ip.p.src, + (const struct prefix *)&vb->N.ip.p.src) + == 0; } return memcmp(va->N.id, vb->N.id, ISIS_SYS_ID_LEN + 1) == 0; @@ -351,7 +356,7 @@ static void isis_vertex_id_init(struct isis_vertex *vertex, const void *id, if (VTYPE_IS(vtype) || VTYPE_ES(vtype)) { memcpy(vertex->N.id, id, ISIS_SYS_ID_LEN + 1); } else if (VTYPE_IP(vtype)) { - memcpy(&vertex->N.ip, id, sizeof(vertex->N.ip)); + memcpy(&vertex->N.ip.p, id, sizeof(vertex->N.ip.p)); } else { flog_err(EC_LIB_DEVELOPMENT, "Unknown Vertex Type"); } diff --git a/isisd/isis_sr.c b/isisd/isis_sr.c index 3f62f4dcac..89fa2018b9 100644 --- a/isisd/isis_sr.c +++ b/isisd/isis_sr.c @@ -31,6 +31,7 @@ #include "memory.h" #include "prefix.h" #include "table.h" +#include "srcdest_table.h" #include "vty.h" #include "zclient.h" #include "lib/lib_errors.h" @@ -50,8 +51,6 @@ /* Local variables and functions */ DEFINE_MTYPE_STATIC(ISISD, ISIS_SR_INFO, "ISIS segment routing information") -static void sr_prefix_uninstall(struct sr_prefix *srp); -static void sr_prefix_reinstall(struct sr_prefix *srp, bool make_before_break); static void sr_local_block_delete(struct isis_area *area); static int sr_local_block_init(struct isis_area *area); static void sr_adj_sid_update(struct sr_adjacency *sra, @@ -60,24 +59,6 @@ static void sr_adj_sid_del(struct sr_adjacency *sra); /* --- RB-Tree Management functions ----------------------------------------- */ -/** - * SR Prefix comparison for RB-Tree. - * - * @param a First SR prefix - * @param b Second SR prefix - * - * @return -1 (a < b), 0 (a == b) or +1 (a > b) - */ -static inline int sr_prefix_sid_compare(const struct sr_prefix *a, - const struct sr_prefix *b) -{ - return prefix_cmp(&a->prefix, &b->prefix); -} -DECLARE_RBTREE_UNIQ(srdb_node_prefix, struct sr_prefix, node_entry, - sr_prefix_sid_compare) -DECLARE_RBTREE_UNIQ(srdb_area_prefix, struct sr_prefix, area_entry, - sr_prefix_sid_compare) - /** * Configured SR Prefix comparison for RB-Tree. * @@ -95,19 +76,133 @@ DECLARE_RBTREE_UNIQ(srdb_prefix_cfg, struct sr_prefix_cfg, entry, sr_prefix_sid_cfg_compare) /** - * SR Node comparison for RB-Tree. + * Find SRGB associated to a System ID. * - * @param a First SR node - * @param b Second SR node + * @param area IS-IS LSP database + * @param sysid System ID to lookup * - * @return -1 (a < b), 0 (a == b) or +1 (a > b) + * @return Pointer to SRGB if found, NULL otherwise */ -static inline int sr_node_compare(const struct sr_node *a, - const struct sr_node *b) +struct isis_sr_block *isis_sr_find_srgb(struct lspdb_head *lspdb, + const uint8_t *sysid) { - return memcmp(a->sysid, b->sysid, ISIS_SYS_ID_LEN); + struct isis_lsp *lsp; + + lsp = isis_root_system_lsp(lspdb, sysid); + if (!lsp) + return NULL; + + if (!lsp->tlvs->router_cap + || lsp->tlvs->router_cap->srgb.range_size == 0) + return NULL; + + return &lsp->tlvs->router_cap->srgb; +} + +/** + * Compute input label for the given Prefix-SID. + * + * @param area IS-IS area + * @param psid IS-IS Prefix-SID Sub-TLV + * @param local Indicates whether the Prefix-SID is local or not + * + * @return MPLS label or MPLS_INVALID_LABEL in case of SRGB overflow + */ +mpls_label_t sr_prefix_in_label(struct isis_area *area, + struct isis_prefix_sid *psid, bool local) +{ + /* + * No need to assign a label for local Prefix-SIDs unless the no-PHP + * flag is set. + */ + if (local + && (!CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_NO_PHP) + || CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_EXPLICIT_NULL))) + return MPLS_INVALID_LABEL; + + /* Return SID value as MPLS label if it is an Absolute SID */ + if (CHECK_FLAG(psid->flags, + ISIS_PREFIX_SID_VALUE | ISIS_PREFIX_SID_LOCAL)) + return psid->value; + + /* Check that SID index falls inside the SRGB */ + if (psid->value >= (area->srdb.config.srgb_upper_bound + - area->srdb.config.srgb_lower_bound + 1)) { + flog_warn(EC_ISIS_SID_OVERFLOW, + "%s: SID index %u falls outside local SRGB range", + __func__, psid->value); + return MPLS_INVALID_LABEL; + } + + /* Return MPLS label as SID index + SRGB_lower_bound as per RFC 8667 */ + return (area->srdb.config.srgb_lower_bound + psid->value); +} + +/** + * Compute output label for the given Prefix-SID. + * + * @param lspdb IS-IS LSP database + * @param family Prefix-SID address family + * @param psid Prefix-SID Sub-TLV + * @param nh_sysid System ID of the nexthop node + * @param last_hop Indicates whether the nexthop node is the last hop + * + * @return MPLS label or MPLS_INVALID_LABEL in case of error + */ +mpls_label_t sr_prefix_out_label(struct lspdb_head *lspdb, int family, + struct isis_prefix_sid *psid, + const uint8_t *nh_sysid, bool last_hop) +{ + struct isis_sr_block *nh_srgb; + + if (last_hop) { + if (!CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_NO_PHP)) + return MPLS_LABEL_IMPLICIT_NULL; + + if (CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_EXPLICIT_NULL)) { + if (family == AF_INET) + return MPLS_LABEL_IPV4_EXPLICIT_NULL; + else + return MPLS_LABEL_IPV6_EXPLICIT_NULL; + } + /* Fallthrough */ + } + + /* Return SID value as MPLS label if it is an Absolute SID */ + if (CHECK_FLAG(psid->flags, + ISIS_PREFIX_SID_VALUE | ISIS_PREFIX_SID_LOCAL)) { + /* + * V/L SIDs have local significance, so only adjacent routers + * can use them (RFC8667 section #2.1.1.1) + */ + if (!last_hop) + return MPLS_INVALID_LABEL; + return psid->value; + } + + /* Check that SID index falls inside the SRGB */ + nh_srgb = isis_sr_find_srgb(lspdb, nh_sysid); + if (!nh_srgb) + return MPLS_INVALID_LABEL; + + /* + * Check if the nexthop can handle SR-MPLS encapsulated IPv4 or + * IPv6 packets. + */ + if ((family == AF_INET && !IS_SR_IPV4(nh_srgb)) + || (family == AF_INET6 && !IS_SR_IPV6(nh_srgb))) + return MPLS_INVALID_LABEL; + + if (psid->value >= nh_srgb->range_size) { + flog_warn(EC_ISIS_SID_OVERFLOW, + "%s: SID index %u falls outside remote SRGB range", + __func__, psid->value); + return MPLS_INVALID_LABEL; + } + + /* Return MPLS label as SID index + SRGB_lower_bound as per RFC 8667 */ + return (nh_srgb->lower_bound + psid->value); } -DECLARE_RBTREE_UNIQ(srdb_node, struct sr_node, entry, sr_node_compare) /* --- Functions used for Yang model and CLI to configure Segment Routing --- */ @@ -162,8 +257,6 @@ int isis_sr_cfg_srgb_update(struct isis_area *area, uint32_t lower_bound, srdb->config.srgb_upper_bound = upper_bound; if (srdb->enabled) { - struct sr_prefix *srp; - /* then request new SRGB if SR is enabled. */ if (isis_zebra_request_label_range( srdb->config.srgb_lower_bound, @@ -179,14 +272,6 @@ int isis_sr_cfg_srgb_update(struct isis_area *area, uint32_t lower_bound, srdb->config.srgb_lower_bound, srdb->config.srgb_upper_bound); - /* Reinstall local Prefix-SIDs to update their input labels. */ - for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS; level++) { - frr_each (srdb_area_prefix, - &area->srdb.prefix_sids[level - 1], srp) { - sr_prefix_reinstall(srp, false); - } - } - lsp_regenerate_schedule(area, area->is_type, 0); } else if (srdb->config.enabled) { /* Try to enable SR again using the new SRGB. */ @@ -278,7 +363,7 @@ struct sr_prefix_cfg *isis_sr_cfg_prefix_add(struct isis_area *area, /* Set the N-flag when appropriate. */ ifp = if_lookup_prefix(prefix, VRF_DEFAULT); - if (ifp && sr_prefix_is_node_sid(ifp, prefix)) + if (ifp && sr_prefix_is_node_sid(ifp, prefix) && !pcfg->n_flag_clear) pcfg->node_sid = true; /* Save prefix-sid configuration. */ @@ -364,897 +449,6 @@ void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg, bool external, } } -/* --- Segment Routing Prefix Management functions -------------------------- */ - -/** - * Add Segment Routing Prefix to a given Segment Routing Node. - * - * @param area IS-IS area - * @param srn Segment Routing Node - * @param prefix Prefix to be added - * @param local True if prefix is locally configured, false otherwise - * @param psid Prefix-SID sub-TLVs - * - * @return New Segment Routing Prefix structure - */ -static struct sr_prefix *sr_prefix_add(struct isis_area *area, - struct sr_node *srn, - union prefixconstptr prefix, bool local, - const struct isis_prefix_sid *psid) -{ - struct sr_prefix *srp; - - srp = XCALLOC(MTYPE_ISIS_SR_INFO, sizeof(*srp)); - prefix_copy(&srp->prefix, prefix.p); - srp->sid = *psid; - srp->input_label = MPLS_INVALID_LABEL; - if (local) { - srp->type = ISIS_SR_PREFIX_LOCAL; - isis_sr_nexthop_reset(&srp->u.local.info); - } else { - srp->type = ISIS_SR_PREFIX_REMOTE; - srp->u.remote.rinfo = NULL; - } - srp->srn = srn; - srdb_node_prefix_add(&srn->prefix_sids, srp); - /* TODO: this might fail if we have Anycast SIDs in the IS-IS area. */ - srdb_area_prefix_add(&area->srdb.prefix_sids[srn->level - 1], srp); - - sr_debug(" |- Added new SR Prefix-SID %pFX %s %u to SR Node %s", - &srp->prefix, IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value, sysid_print(srn->sysid)); - - return srp; -} - -/** - * Remove given Segment Prefix from given Segment Routing Node. - * Prefix-SID is un-installed first. - * - * @param area IS-IS area - * @param srn Segment Routing Node - * @param srp Segment Routing Prefix - */ -static void sr_prefix_del(struct isis_area *area, struct sr_node *srn, - struct sr_prefix *srp) -{ - sr_debug(" |- Delete SR Prefix-SID %pFX %s %u to SR Node %s", - &srp->prefix, IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value, sysid_print(srn->sysid)); - - sr_prefix_uninstall(srp); - srdb_node_prefix_del(&srn->prefix_sids, srp); - srdb_area_prefix_del(&area->srdb.prefix_sids[srn->level - 1], srp); - XFREE(MTYPE_ISIS_SR_INFO, srp); -} - -/** - * Find Segment Routing Prefix by Area. - * - * @param area IS-IS area - * @param level IS-IS level - * @param prefix Prefix to lookup - * - * @return Segment Routing Prefix structure if found, NULL otherwise - */ -static struct sr_prefix *sr_prefix_find_by_area(struct isis_area *area, - int level, - union prefixconstptr prefix) -{ - struct sr_prefix srp = {}; - - prefix_copy(&srp.prefix, prefix.p); - return srdb_area_prefix_find(&area->srdb.prefix_sids[level - 1], &srp); -} - -/** - * Find Segment Routing Prefix by Segment Routing Node. - * - * @param srn Segment Routing Node - * @param prefix Prefix to lookup - * - * @return Segment Routing Prefix structure if found, NULL otherwise - */ -static struct sr_prefix *sr_prefix_find_by_node(struct sr_node *srn, - union prefixconstptr prefix) -{ - struct sr_prefix srp = {}; - - prefix_copy(&srp.prefix, prefix.p); - return srdb_node_prefix_find(&srn->prefix_sids, &srp); -} - -/* --- Segment Routing Node Management functions ---------------------------- */ - -/** - * Add Segment Routing Node to the Segment Routing Data Base. - * - * @param area IS-IS area - * @param level IS-IS level - * @param sysid Node System ID - * @param cap Segment Routing Capability sub-TLVs - * - * @return New Segment Routing Node structure - */ -static struct sr_node *sr_node_add(struct isis_area *area, int level, - const uint8_t *sysid) -{ - struct sr_node *srn; - - srn = XCALLOC(MTYPE_ISIS_SR_INFO, sizeof(*srn)); - srn->level = level; - memcpy(srn->sysid, sysid, ISIS_SYS_ID_LEN); - srn->area = area; - srdb_node_prefix_init(&srn->prefix_sids); - srdb_node_add(&area->srdb.sr_nodes[level - 1], srn); - - sr_debug(" |- Added new SR Node %s", sysid_print(srn->sysid)); - - return srn; -} - -static void sr_node_del(struct isis_area *area, int level, struct sr_node *srn) -/** - * Remove Segment Routing Node from the Segment Routing Data Base. - * All Prefix-SID attached to this Segment Routing Node are removed first. - * - * @param area IS-IS area - * @param level IS-IS level - * @param srn Segment Routing Node to be deleted - */ -{ - - sr_debug(" |- Delete SR Node %s", sysid_print(srn->sysid)); - - /* Remove and uninstall Prefix-SIDs. */ - while (srdb_node_prefix_count(&srn->prefix_sids) > 0) { - struct sr_prefix *srp; - - srp = srdb_node_prefix_first(&srn->prefix_sids); - sr_prefix_del(area, srn, srp); - } - - srdb_node_del(&area->srdb.sr_nodes[level - 1], srn); - XFREE(MTYPE_ISIS_SR_INFO, srn); -} - -/** - * Find Segment Routing Node in the Segment Routing Data Base per system ID. - * - * @param area IS-IS area - * @param level IS-IS level - * @param sysid Node System ID to lookup - * - * @return Segment Routing Node structure if found, NULL otherwise - */ -static struct sr_node *sr_node_find(struct isis_area *area, int level, - const uint8_t *sysid) -{ - struct sr_node srn = {}; - - memcpy(srn.sysid, sysid, ISIS_SYS_ID_LEN); - return srdb_node_find(&area->srdb.sr_nodes[level - 1], &srn); -} - -/** - * Update Segment Routing Node following an SRGB update. This function - * is called when a neighbor SR Node has updated its SRGB. - * - * @param area IS-IS area - * @param level IS-IS level - * @param sysid Segment Routing Node system ID - */ -static void sr_node_srgb_update(struct isis_area *area, int level, - uint8_t *sysid) -{ - struct sr_prefix *srp; - - sr_debug("ISIS-Sr (%s): Update neighbors SR Node with new SRGB", - area->area_tag); - - frr_each (srdb_area_prefix, &area->srdb.prefix_sids[level - 1], srp) { - struct listnode *node; - struct isis_nexthop *nh; - - if (srp->type == ISIS_SR_PREFIX_LOCAL) - continue; - - if (srp->u.remote.rinfo == NULL) - continue; - - for (ALL_LIST_ELEMENTS_RO(srp->u.remote.rinfo->nexthops, node, - nh)) { - if (memcmp(nh->sysid, sysid, ISIS_SYS_ID_LEN) != 0) - continue; - - /* - * The Prefix-SID input label hasn't changed. We could - * re-install all Prefix-SID with "Make Before Break" - * option. Zebra layer will update output label(s) by - * adding new entry before removing the old one(s). - */ - sr_prefix_reinstall(srp, true); - break; - } - } -} - -/* --- Segment Routing Nexthop information Management functions ------------- */ - -/** - * Update Segment Routing Nexthop. - * - * @param srnh Segment Routing next hop - * @param label Output MPLS label - */ -void isis_sr_nexthop_update(struct sr_nexthop_info *srnh, mpls_label_t label) -{ - srnh->label = label; - if (srnh->uptime == 0) - srnh->uptime = time(NULL); -} - -/** - * Reset Segment Routing Nexthop. - * - * @param srnh Segment Routing Nexthop - */ -void isis_sr_nexthop_reset(struct sr_nexthop_info *srnh) -{ - srnh->label = MPLS_INVALID_LABEL; - srnh->uptime = 0; -} - -/* --- Segment Routing Prefix-SID Management functions to configure LFIB ---- */ - -/** - * Lookup IS-IS route in the Shortest Path Tree. - * - * @param area IS-IS area - * @param tree_id Shortest Path Tree identifier - * @param srp Segment Routing Prefix to lookup - * - * @return Route Information for this prefix if found, NULL otherwise - */ -static struct isis_route_info *sr_prefix_lookup_route(struct isis_area *area, - enum spf_tree_id tree_id, - struct sr_prefix *srp) -{ - struct route_node *rn; - int level = srp->srn->level; - - rn = route_node_lookup(area->spftree[tree_id][level - 1]->route_table, - &srp->prefix); - if (rn) { - route_unlock_node(rn); - if (rn->info) - return rn->info; - } - - return NULL; -} - -/** - * Compute input label for the given Prefix-SID. - * - * @param srp Segment Routing Prefix - * - * @return MPLS label or MPLS_INVALID_LABEL in case of SRGB overflow - */ -static mpls_label_t sr_prefix_in_label(const struct sr_prefix *srp) -{ - const struct sr_node *srn = srp->srn; - struct isis_area *area = srn->area; - - /* Return SID value as MPLS label if it is an Absolute SID */ - if (CHECK_FLAG(srp->sid.flags, - ISIS_PREFIX_SID_VALUE | ISIS_PREFIX_SID_LOCAL)) - return srp->sid.value; - - /* Check that SID index falls inside the SRGB */ - if (srp->sid.value >= (area->srdb.config.srgb_upper_bound - - area->srdb.config.srgb_lower_bound + 1)) { - flog_warn(EC_ISIS_SID_OVERFLOW, - "%s: SID index %u falls outside local SRGB range", - __func__, srp->sid.value); - return MPLS_INVALID_LABEL; - } - - /* Return MPLS label as SID index + SRGB_lower_bound as per RFC 8667 */ - return (area->srdb.config.srgb_lower_bound + srp->sid.value); -} - -/** - * Compute output label for the given Prefix-SID. - * - * @param srp Segment Routing Prefix - * @param srn_nexthop Segment Routing nexthop node - * @param sysid System ID of the SR node which advertised the Prefix-SID - * - * @return MPLS label or MPLS_INVALID_LABEL in case of error - */ -static mpls_label_t sr_prefix_out_label(const struct sr_prefix *srp, - const struct sr_node *srn_nexthop, - const uint8_t *sysid) -{ - const struct sr_node *srn = srp->srn; - - /* Check if the nexthop SR Node is the last hop? */ - if (memcmp(sysid, srn->sysid, ISIS_SYS_ID_LEN) == 0) { - /* SR-Node doesn't request NO-PHP. Return Implicit NULL label */ - if (!CHECK_FLAG(srp->sid.flags, ISIS_PREFIX_SID_NO_PHP)) - return MPLS_LABEL_IMPLICIT_NULL; - - /* SR-Node requests Implicit NULL Label */ - if (CHECK_FLAG(srp->sid.flags, ISIS_PREFIX_SID_EXPLICIT_NULL)) { - if (srp->prefix.family == AF_INET) - return MPLS_LABEL_IPV4_EXPLICIT_NULL; - else - return MPLS_LABEL_IPV6_EXPLICIT_NULL; - } - /* Fallthrough */ - } - - /* Return SID value as MPLS label if it is an Absolute SID */ - if (CHECK_FLAG(srp->sid.flags, - ISIS_PREFIX_SID_VALUE | ISIS_PREFIX_SID_LOCAL)) { - /* - * V/L SIDs have local significance, so only adjacent routers - * can use them (RFC8667 section #2.1.1.1) - */ - if (srp->srn != srn_nexthop) - return MPLS_INVALID_LABEL; - return srp->sid.value; - } - - /* Check that SID index falls inside the SRGB */ - if (srp->sid.value >= srn_nexthop->cap.srgb.range_size) { - flog_warn(EC_ISIS_SID_OVERFLOW, - "%s: SID index %u falls outside remote SRGB range", - __func__, srp->sid.value); - return MPLS_INVALID_LABEL; - } - - /* Return MPLS label as SID index + SRGB_lower_bound as per RFC 8667 */ - return (srn_nexthop->cap.srgb.lower_bound + srp->sid.value); -} - -/** - * Process local Prefix-SID and install it if possible. Input label is - * computed before installing it in LFIB. - * - * @param srp Segment Routing Prefix - * - * @return 0 on success, -1 otherwise - */ -static int sr_prefix_install_local(struct sr_prefix *srp) -{ - mpls_label_t input_label; - const struct sr_node *srn = srp->srn; - - /* - * No need to install Label for local Prefix-SID unless the - * no-PHP option is configured. - */ - if (!CHECK_FLAG(srp->sid.flags, ISIS_PREFIX_SID_NO_PHP) - || CHECK_FLAG(srp->sid.flags, ISIS_PREFIX_SID_EXPLICIT_NULL)) - return -1; - - sr_debug(" |- Installing Prefix-SID %pFX %s %u (%s) with nexthop self", - &srp->prefix, IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value, circuit_t2string(srn->level)); - - /* Compute input label and check that is valid. */ - input_label = sr_prefix_in_label(srp); - if (input_label == MPLS_INVALID_LABEL) - return -1; - - /* Update internal state. */ - srp->input_label = input_label; - isis_sr_nexthop_update(&srp->u.local.info, MPLS_LABEL_IMPLICIT_NULL); - - /* Install Prefix-SID in the forwarding plane. */ - isis_zebra_send_prefix_sid(ZEBRA_MPLS_LABELS_REPLACE, srp); - - return 0; -} - -/** - * Process remote Prefix-SID and install it if possible. Input and Output - * labels are computed before installing them in LFIB. - * - * @param srp Segment Routing Prefix - * - * @return 0 on success, -1 otherwise - */ -static int sr_prefix_install_remote(struct sr_prefix *srp) -{ - const struct sr_node *srn = srp->srn; - struct isis_area *area = srn->area; - enum spf_tree_id tree_id; - struct listnode *node; - struct isis_nexthop *nexthop; - mpls_label_t input_label; - size_t nexthop_num = 0; - - /* Lookup to associated IS-IS route. */ - tree_id = (srp->prefix.family == AF_INET) ? SPFTREE_IPV4 : SPFTREE_IPV6; - srp->u.remote.rinfo = sr_prefix_lookup_route(area, tree_id, srp); - if (!srp->u.remote.rinfo) - /* SPF hasn't converged for this route yet. */ - return -1; - - /* Compute input label and check that is valid. */ - input_label = sr_prefix_in_label(srp); - if (input_label == MPLS_INVALID_LABEL) - return -1; - - sr_debug(" |- Installing Prefix-SID %pFX %s %u (%s)", &srp->prefix, - IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value, circuit_t2string(srn->level)); - - /* Process all SPF nexthops */ - for (ALL_LIST_ELEMENTS_RO(srp->u.remote.rinfo->nexthops, node, - nexthop)) { - struct sr_node *srn_nexthop; - mpls_label_t output_label; - - /* Check if the nexthop advertised a SRGB. */ - srn_nexthop = sr_node_find(area, srn->level, nexthop->sysid); - if (!srn_nexthop) - goto next; - - /* - * Check if the nexthop can handle SR-MPLS encapsulated IPv4 or - * IPv6 packets. - */ - if ((nexthop->family == AF_INET - && !IS_SR_IPV4(srn_nexthop->cap.srgb)) - || (nexthop->family == AF_INET6 - && !IS_SR_IPV6(srn_nexthop->cap.srgb))) - goto next; - - /* Compute output label and check if it is valid */ - output_label = - sr_prefix_out_label(srp, srn_nexthop, nexthop->sysid); - if (output_label == MPLS_INVALID_LABEL) - goto next; - - if (IS_DEBUG_SR) { - static char buf[INET6_ADDRSTRLEN]; - - inet_ntop(nexthop->family, &nexthop->ip, buf, - sizeof(buf)); - zlog_debug(" |- nexthop %s label %u", buf, - output_label); - } - - isis_sr_nexthop_update(&nexthop->sr, output_label); - nexthop_num++; - continue; - next: - isis_sr_nexthop_reset(&nexthop->sr); - } - - /* Check that we found at least one valid nexthop */ - if (nexthop_num == 0) { - sr_debug(" |- no valid nexthops"); - return -1; - } - - /* Update internal state. */ - srp->input_label = input_label; - - /* Install Prefix-SID in the forwarding plane. */ - isis_zebra_send_prefix_sid(ZEBRA_MPLS_LABELS_REPLACE, srp); - - return 0; -} - -/** - * Process local or remote Prefix-SID and install it if possible. - * - * @param srp Segment Routing Prefix - */ -static void sr_prefix_install(struct sr_prefix *srp) -{ - const struct sr_node *srn = srp->srn; - struct isis_area *area = srn->area; - int ret; - - sr_debug("ISIS-Sr (%s): Install Prefix-SID %pFX %s %u", area->area_tag, - &srp->prefix, IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value); - - /* L1 routes are preferred over the L2 ones. */ - if (area->is_type == IS_LEVEL_1_AND_2) { - struct sr_prefix *srp_l1, *srp_l2; - - switch (srn->level) { - case ISIS_LEVEL1: - srp_l2 = sr_prefix_find_by_area(area, ISIS_LEVEL2, - &srp->prefix); - if (srp_l2) - sr_prefix_uninstall(srp_l2); - break; - case ISIS_LEVEL2: - srp_l1 = sr_prefix_find_by_area(area, ISIS_LEVEL1, - &srp->prefix); - if (srp_l1) - return; - break; - default: - break; - } - } - - /* Install corresponding LFIB entry */ - if (srp->type == ISIS_SR_PREFIX_LOCAL) - ret = sr_prefix_install_local(srp); - else - ret = sr_prefix_install_remote(srp); - if (ret != 0) - sr_prefix_uninstall(srp); -} - -/** - * Uninstall local or remote Prefix-SID. - * - * @param srp Segment Routing Prefix - */ -static void sr_prefix_uninstall(struct sr_prefix *srp) -{ - struct listnode *node; - struct isis_nexthop *nexthop; - - /* Check that Input Label is valid */ - if (srp->input_label == MPLS_INVALID_LABEL) - return; - - sr_debug("ISIS-Sr: Un-install Prefix-SID %pFX %s %u", &srp->prefix, - IS_SID_VALUE(srp->sid.flags) ? "label" : "index", - srp->sid.value); - - /* Uninstall Prefix-SID from the forwarding plane. */ - isis_zebra_send_prefix_sid(ZEBRA_MPLS_LABELS_DELETE, srp); - - /* Reset internal state. */ - srp->input_label = MPLS_INVALID_LABEL; - switch (srp->type) { - case ISIS_SR_PREFIX_LOCAL: - isis_sr_nexthop_reset(&srp->u.local.info); - break; - case ISIS_SR_PREFIX_REMOTE: - if (srp->u.remote.rinfo) { - for (ALL_LIST_ELEMENTS_RO(srp->u.remote.rinfo->nexthops, - node, nexthop)) - isis_sr_nexthop_reset(&nexthop->sr); - } - break; - } -} - -/** - * Reinstall local or remote Prefix-SID. - * - * @param srp Segment Routing Prefix - */ -static inline void sr_prefix_reinstall(struct sr_prefix *srp, - bool make_before_break) -{ - /* - * Make Before Break can be used only when we know for sure that - * the Prefix-SID input label hasn't changed. Otherwise we need to - * uninstall the Prefix-SID first using the old input label before - * reinstalling it. - */ - if (!make_before_break) - sr_prefix_uninstall(srp); - - /* New input label is computed in sr_prefix_install() function */ - sr_prefix_install(srp); -} - -/* --- IS-IS LSP Parse functions -------------------------------------------- */ - -/** - * Compare Router Capabilities. Only Flags, SRGB and Algorithm are used for the - * comparison. MSD and SRLB modification must not trigger and SR-Prefix update. - * - * @param r1 First Router Capabilities to compare - * @param r2 Second Router Capabilities to compare - * @return 0 if r1 and r2 are equal or -1 otherwise - */ -static int router_cap_cmp(const struct isis_router_cap *r1, - const struct isis_router_cap *r2) -{ - if (r1->flags == r2->flags - && r1->srgb.lower_bound == r2->srgb.lower_bound - && r1->srgb.range_size == r2->srgb.range_size - && r1->algo[0] == r2->algo[0]) - return 0; - else - return -1; -} - -/** - * Parse all SR-related information from the given Router Capabilities TLV. - * - * @param area IS-IS area - * @param level IS-IS level - * @param sysid System ID of the LSP - * @param router_cap Router Capability subTLVs - * - * @return Segment Routing Node structure for this System ID - */ -static struct sr_node * -parse_router_cap_tlv(struct isis_area *area, int level, const uint8_t *sysid, - const struct isis_router_cap *router_cap) -{ - struct sr_node *srn; - - if (!router_cap || router_cap->srgb.range_size == 0) - return NULL; - - sr_debug("ISIS-Sr (%s): Parse Router Capability TLV", area->area_tag); - - srn = sr_node_find(area, level, sysid); - if (srn) { - if (router_cap_cmp(&srn->cap, router_cap) != 0) { - srn->state = SRDB_STATE_MODIFIED; - } else - srn->state = SRDB_STATE_UNCHANGED; - sr_debug(" |- Found %s SR Node %s", - srn->state == SRDB_STATE_MODIFIED ? "Modified" - : "Unchanged", - sysid_print(srn->sysid)); - } else { - srn = sr_node_add(area, level, sysid); - srn->state = SRDB_STATE_NEW; - } - - /* - * Update Router Capabilities in any case as SRLB or MSD - * modification are not take into account for comparison. - */ - srn->cap = *router_cap; - - return srn; -} - -/** - * Parse list of Prefix-SID Sub-TLVs. - * - * @param srn Segment Routing Node - * @param prefix Prefix to be parsed - * @param local True if prefix comes from own LSP, false otherwise - * @param prefix_sids Prefix SID subTLVs - */ -static void parse_prefix_sid_subtlvs(struct sr_node *srn, - union prefixconstptr prefix, bool local, - struct isis_item_list *prefix_sids) -{ - struct isis_area *area = srn->area; - struct isis_item *i; - - sr_debug("ISIS-Sr (%s): Parse Prefix SID TLV", area->area_tag); - - /* Parse list of Prefix SID subTLVs */ - for (i = prefix_sids->head; i; i = i->next) { - struct isis_prefix_sid *psid = (struct isis_prefix_sid *)i; - struct sr_prefix *srp; - - /* Only SPF algorithm is supported right now */ - if (psid->algorithm != SR_ALGORITHM_SPF) - continue; - - /* Compute corresponding Segment Routing Prefix */ - srp = sr_prefix_find_by_node(srn, prefix); - if (srp) { - if (srp->sid.flags != psid->flags - || srp->sid.algorithm != psid->algorithm - || srp->sid.value != psid->value) { - srp->sid = *psid; - srp->state = SRDB_STATE_MODIFIED; - } else if (srp->state == SRDB_STATE_VALIDATED) - srp->state = SRDB_STATE_UNCHANGED; - sr_debug(" |- Found %s Prefix-SID %pFX", - srp->state == SRDB_STATE_MODIFIED - ? "Modified" - : "Unchanged", - &srp->prefix); - - } else { - srp = sr_prefix_add(area, srn, prefix, local, psid); - srp->state = SRDB_STATE_NEW; - } - /* - * Stop the Prefix-SID iteration since we only support the SPF - * algorithm for now. - */ - break; - } -} - -/** - * Parse all SR-related information from the given LSP. - * - * @param area IS-IS area - * @param level IS-IS level - * @param srn Segment Routing Node - * @param lsp IS-IS LSP - */ -static void parse_lsp(struct isis_area *area, int level, struct sr_node **srn, - struct isis_lsp *lsp) -{ - struct isis_item_list *items; - struct isis_item *i; - bool local = lsp->own_lsp; - - /* Check LSP sequence number */ - if (lsp->hdr.seqno == 0) { - zlog_warn("%s: lsp with 0 seq_num - ignore", __func__); - return; - } - - sr_debug("ISIS-Sr (%s): Parse LSP from node %s", area->area_tag, - sysid_print(lsp->hdr.lsp_id)); - - /* Parse the Router Capability TLV. */ - if (*srn == NULL) { - *srn = parse_router_cap_tlv(area, level, lsp->hdr.lsp_id, - lsp->tlvs->router_cap); - if (!*srn) - return; - } - - /* Parse the Extended IP Reachability TLV. */ - items = &lsp->tlvs->extended_ip_reach; - for (i = items->head; i; i = i->next) { - struct isis_extended_ip_reach *ir; - - ir = (struct isis_extended_ip_reach *)i; - if (!ir->subtlvs) - continue; - - parse_prefix_sid_subtlvs(*srn, &ir->prefix, local, - &ir->subtlvs->prefix_sids); - } - - /* Parse Multi Topology Reachable IPv6 Prefixes TLV. */ - items = isis_lookup_mt_items(&lsp->tlvs->mt_ipv6_reach, - ISIS_MT_IPV6_UNICAST); - for (i = items ? items->head : NULL; i; i = i->next) { - struct isis_ipv6_reach *ir; - - ir = (struct isis_ipv6_reach *)i; - if (!ir->subtlvs) - continue; - - parse_prefix_sid_subtlvs(*srn, &ir->prefix, local, - &ir->subtlvs->prefix_sids); - } -} - -/** - * Parse all SR-related information from the entire LSPDB. - * - * @param area IS-IS area - */ -static void parse_lspdb(struct isis_area *area) -{ - struct isis_lsp *lsp; - - sr_debug("ISIS-Sr (%s): Parse LSP Data Base", area->area_tag); - - /* Process all LSP from Level 1 & 2 */ - for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS; level++) { - frr_each (lspdb, &area->lspdb[level - 1], lsp) { - struct isis_lsp *frag; - struct listnode *node; - struct sr_node *srn = NULL; - - /* Skip Pseudo ID LSP and LSP without TLVs */ - if (LSP_PSEUDO_ID(lsp->hdr.lsp_id)) - continue; - if (!lsp->tlvs) - continue; - - /* Parse LSP, then fragment */ - parse_lsp(area, level, &srn, lsp); - for (ALL_LIST_ELEMENTS_RO(lsp->lspu.frags, node, frag)) - parse_lsp(area, level, &srn, frag); - } - } -} - -/** - * Process any new/deleted/modified Prefix-SID in the LSPDB. - * - * @param srn Segment Routing Node - * @param srp Segment Routing Prefix - */ -static void process_prefix_changes(struct sr_node *srn, struct sr_prefix *srp) -{ - struct isis_area *area = srn->area; - - /* Install/reinstall/uninstall Prefix-SID if necessary. */ - switch (srp->state) { - case SRDB_STATE_NEW: - sr_debug("ISIS-Sr (%s): Created Prefix-SID %pFX for SR node %s", - area->area_tag, &srp->prefix, sysid_print(srn->sysid)); - sr_prefix_install(srp); - break; - case SRDB_STATE_MODIFIED: - sr_debug( - "ISIS-Sr (%s): Modified Prefix-SID %pFX for SR node %s", - area->area_tag, &srp->prefix, sysid_print(srn->sysid)); - sr_prefix_reinstall(srp, false); - break; - case SRDB_STATE_UNCHANGED: - break; - default: - sr_debug("ISIS-Sr (%s): Removed Prefix-SID %pFX for SR node %s", - area->area_tag, &srp->prefix, sysid_print(srn->sysid)); - sr_prefix_del(area, srn, srp); - return; - } - - /* Validate SRDB State for next LSPDB parsing */ - srp->state = SRDB_STATE_VALIDATED; -} - -/** - * Process any new/deleted/modified SRGB in the LSPDB. - * - * @param area IS-IS area - * @param level IS-IS level - * @param srn Segment Routing Node - */ -static void process_node_changes(struct isis_area *area, int level, - struct sr_node *srn) -{ - struct sr_prefix *srp; - uint8_t sysid[ISIS_SYS_ID_LEN]; - bool adjacent; - - memcpy(sysid, srn->sysid, sizeof(sysid)); - - /* - * If an neighbor router's SRGB was changed or created, then reinstall - * all Prefix-SIDs from all nodes that use this neighbor as nexthop. - */ - adjacent = !!isis_adj_find(area, level, sysid); - switch (srn->state) { - case SRDB_STATE_NEW: - case SRDB_STATE_MODIFIED: - sr_debug("ISIS-Sr (%s): Create/Update SR node %s", - area->area_tag, sysid_print(srn->sysid)); - if (adjacent) - sr_node_srgb_update(area, level, sysid); - break; - case SRDB_STATE_UNCHANGED: - break; - default: - /* SR capabilities have been removed. Delete SR-Node */ - sr_debug("ISIS-Sr (%s): Remove SR node %s", area->area_tag, - sysid_print(srn->sysid)); - - sr_node_del(area, level, srn); - /* and Update remaining Prefix-SID from all remaining SR Node */ - if (adjacent) - sr_node_srgb_update(area, level, sysid); - return; - } - - /* Validate SRDB State for next LSPDB parsing */ - srn->state = SRDB_STATE_VALIDATED; - - /* Finally, process all Prefix-SID of this SR Node */ - frr_each_safe (srdb_node_prefix, &srn->prefix_sids, srp) - process_prefix_changes(srn, srp); -} - /** * Delete all backup Adj-SIDs. * @@ -1272,89 +466,6 @@ void isis_area_delete_backup_adj_sids(struct isis_area *area, int level) sr_adj_sid_del(sra); } -/** - * Parse and process all SR-related Sub-TLVs after running the SPF algorithm. - * - * @param area IS-IS area - */ -void isis_area_verify_sr(struct isis_area *area) -{ - struct sr_node *srn; - - if (!area->srdb.enabled) - return; - - /* Parse LSPDB to detect new/deleted/modified SR (sub-)TLVs. */ - parse_lspdb(area); - - /* Process possible SR-related changes in the LDPSB. */ - for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS; level++) { - frr_each_safe (srdb_node, &area->srdb.sr_nodes[level - 1], srn) - process_node_changes(area, level, srn); - } -} - -/** - * Once a route is updated in the SPT, reinstall or uninstall its corresponding - * Prefix-SID (if any). - * - * @param area IS-IS area - * @param prefix Prefix to be updated - * @param route_info New Route Information - * - * @return 0 - */ -static int sr_route_update(struct isis_area *area, struct prefix *prefix, - struct isis_route_info *route_info) -{ - struct sr_prefix *srp; - - if (!area->srdb.enabled) - return 0; - - sr_debug("ISIS-Sr (%s): Update route for prefix %pFX", area->area_tag, - prefix); - - /* Lookup to Segment Routing Prefix for this prefix */ - switch (area->is_type) { - case IS_LEVEL_1: - srp = sr_prefix_find_by_area(area, ISIS_LEVEL1, prefix); - break; - case IS_LEVEL_2: - srp = sr_prefix_find_by_area(area, ISIS_LEVEL2, prefix); - break; - case IS_LEVEL_1_AND_2: - srp = sr_prefix_find_by_area(area, ISIS_LEVEL1, prefix); - if (!srp) - srp = sr_prefix_find_by_area(area, ISIS_LEVEL2, prefix); - break; - default: - flog_err(EC_LIB_DEVELOPMENT, "%s: unknown area level", - __func__); - exit(1); - } - - /* Skip NULL or local Segment Routing Prefix */ - if (!srp || srp->type == ISIS_SR_PREFIX_LOCAL) - return 0; - - /* Install or unintall Prefix-SID if route is Active or not */ - if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ACTIVE)) { - /* - * The Prefix-SID input label hasn't changed. We could use the - * "Make Before Break" option. Zebra layer will update output - * label by adding new label(s) before removing old one(s). - */ - sr_prefix_reinstall(srp, true); - srp->u.remote.rinfo = route_info; - } else { - sr_prefix_uninstall(srp); - srp->u.remote.rinfo = NULL; - } - - return 0; -} - /* --- Segment Routing Local Block management functions --------------------- */ /** @@ -1588,7 +699,7 @@ void sr_adj_sid_add_single(struct isis_adjacency *adj, int family, bool backup, struct mpls_label_stack *label_stack; label_stack = vadj->label_stack; - adjinfo2nexthop(family, sra->backup_nexthops, adj, + adjinfo2nexthop(family, sra->backup_nexthops, adj, NULL, label_stack); } } @@ -1838,7 +949,7 @@ static int sr_if_new_hook(struct interface *ifp) continue; if (sr_prefix_is_node_sid(ifp, &pcfg->prefix) - && !pcfg->node_sid) { + && !pcfg->n_flag_clear) { pcfg->node_sid = true; lsp_regenerate_schedule(area, area->is_type, 0); } @@ -1847,8 +958,6 @@ static int sr_if_new_hook(struct interface *ifp) return 0; } -/* --- Segment Routing Show information functions --------------------------- */ - /** * Show LFIB operation in human readable format. * @@ -1856,13 +965,11 @@ static int sr_if_new_hook(struct interface *ifp) * @param size Size of the buffer * @param label_in Input Label * @param label_out Output Label - * @param label_stack Output Label Stack (TI-LFA) * * @return String containing LFIB operation in human readable format */ -static char *sr_op2str(char *buf, size_t size, mpls_label_t label_in, - mpls_label_t label_out, - const struct mpls_label_stack *label_stack) +char *sr_op2str(char *buf, size_t size, mpls_label_t label_in, + mpls_label_t label_out) { if (size < 24) return NULL; @@ -1872,16 +979,6 @@ static char *sr_op2str(char *buf, size_t size, mpls_label_t label_in, return buf; } - if (label_stack) { - char buf_labels[256]; - - mpls_label2str(label_stack->num_labels, &label_stack->label[0], - buf_labels, sizeof(buf_labels), 1); - - snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels); - return buf; - } - switch (label_out) { case MPLS_LABEL_IMPLICIT_NULL: snprintf(buf, size, "Pop(%u)", label_in); @@ -1900,215 +997,6 @@ static char *sr_op2str(char *buf, size_t size, mpls_label_t label_in, return buf; } -/** - * Show Local Prefix-SID. - * - * @param vty VTY output - * @param tt Table format - * @param area IS-IS area - * @param srp Segment Routing Prefix - */ -static void show_prefix_sid_local(struct vty *vty, struct ttable *tt, - const struct isis_area *area, - const struct sr_prefix *srp) -{ - const struct sr_nexthop_info *srnh = &srp->u.local.info; - char buf_prefix[BUFSIZ]; - char buf_oper[BUFSIZ]; - char buf_iface[BUFSIZ]; - char buf_uptime[BUFSIZ]; - - if (srnh->label != MPLS_INVALID_LABEL) { - struct interface *ifp; - ifp = if_lookup_prefix(&srp->prefix, VRF_DEFAULT); - if (ifp) - strlcpy(buf_iface, ifp->name, sizeof(buf_iface)); - else - snprintf(buf_iface, sizeof(buf_iface), "-"); - log_uptime(srnh->uptime, buf_uptime, sizeof(buf_uptime)); - } else { - snprintf(buf_iface, sizeof(buf_iface), "-"); - snprintf(buf_uptime, sizeof(buf_uptime), "-"); - } - sr_op2str(buf_oper, sizeof(buf_oper), srp->input_label, - MPLS_LABEL_IMPLICIT_NULL, NULL); - - ttable_add_row(tt, "%s|%u|%s|-|%s|%s", - prefix2str(&srp->prefix, buf_prefix, sizeof(buf_prefix)), - srp->sid.value, buf_oper, buf_iface, buf_uptime); -} - -/** - * Show Remote Prefix-SID. - * - * @param vty VTY output - * @param tt Table format - * @param area IS-IS area - * @param srp Segment Routing Prefix - */ -static void show_prefix_sid_remote(struct vty *vty, struct ttable *tt, - const struct isis_area *area, - const struct sr_prefix *srp, bool backup) -{ - struct isis_nexthop *nexthop; - struct listnode *node; - char buf_prefix[BUFSIZ]; - char buf_oper[BUFSIZ]; - char buf_nhop[BUFSIZ]; - char buf_iface[BUFSIZ]; - char buf_uptime[BUFSIZ]; - bool first = true; - struct isis_route_info *rinfo; - - (void)prefix2str(&srp->prefix, buf_prefix, sizeof(buf_prefix)); - - rinfo = srp->u.remote.rinfo; - if (rinfo && backup) - rinfo = rinfo->backup; - if (!rinfo) { - ttable_add_row(tt, "%s|%u|%s|-|-|-", buf_prefix, srp->sid.value, - sr_op2str(buf_oper, sizeof(buf_oper), - srp->input_label, - MPLS_LABEL_IMPLICIT_NULL, NULL)); - return; - } - - for (ALL_LIST_ELEMENTS_RO(rinfo->nexthops, node, nexthop)) { - struct interface *ifp; - - inet_ntop(nexthop->family, &nexthop->ip, buf_nhop, - sizeof(buf_nhop)); - ifp = if_lookup_by_index(nexthop->ifindex, VRF_DEFAULT); - if (ifp) - strlcpy(buf_iface, ifp->name, sizeof(buf_iface)); - else - snprintf(buf_iface, sizeof(buf_iface), "ifindex %u", - nexthop->ifindex); - if (nexthop->sr.label == MPLS_INVALID_LABEL) - snprintf(buf_uptime, sizeof(buf_uptime), "-"); - else - log_uptime(nexthop->sr.uptime, buf_uptime, - sizeof(buf_uptime)); - sr_op2str(buf_oper, sizeof(buf_oper), srp->input_label, - nexthop->sr.label, nexthop->label_stack); - - if (first) - ttable_add_row(tt, "%s|%u|%s|%s|%s|%s", buf_prefix, - srp->sid.value, buf_oper, buf_nhop, - buf_iface, buf_uptime); - else - ttable_add_row(tt, "|||%s|%s|%s|%s", buf_oper, buf_nhop, - buf_iface, buf_uptime); - first = false; - } -} - -/** - * Show Prefix-SIDs. - * - * @param vty VTY output - * @param area IS-IS area - * @param level IS-IS level - */ -static void show_prefix_sids(struct vty *vty, struct isis_area *area, int level, - bool backup) -{ - struct sr_prefix *srp; - struct ttable *tt; - - if (srdb_area_prefix_count(&area->srdb.prefix_sids[level - 1]) == 0) - return; - - vty_out(vty, " IS-IS %s Prefix-SIDs:\n\n", circuit_t2string(level)); - - /* Prepare table. */ - tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); - ttable_add_row(tt, "Prefix|SID|Label Op.|Nexthop|Interface|Uptime"); - tt->style.cell.rpad = 2; - tt->style.corner = '+'; - ttable_restyle(tt); - ttable_rowseps(tt, 0, BOTTOM, true, '-'); - - /* Process all Prefix-SID from the SRDB */ - frr_each (srdb_area_prefix, &area->srdb.prefix_sids[level - 1], srp) { - switch (srp->type) { - case ISIS_SR_PREFIX_LOCAL: - show_prefix_sid_local(vty, tt, area, srp); - break; - case ISIS_SR_PREFIX_REMOTE: - show_prefix_sid_remote(vty, tt, area, srp, backup); - break; - } - } - - /* Dump the generated table. */ - if (tt->nrows > 1) { - char *table; - - table = ttable_dump(tt, "\n"); - vty_out(vty, "%s\n", table); - XFREE(MTYPE_TMP, table); - } - ttable_del(tt); -} - -/** - * Declaration of new show commands. - */ -DEFUN(show_sr_prefix_sids, show_sr_prefix_sids_cmd, - "show isis [vrf ] segment-routing prefix-sids [backup]", - SHOW_STR PROTO_HELP VRF_CMD_HELP_STR - "All VRFs\n" - "Segment-Routing\n" - "Segment-Routing Prefix-SIDs\n" - "Show backup Prefix-SIDs\n") -{ - struct listnode *node, *inode; - struct isis_area *area; - struct isis *isis = NULL; - const char *vrf_name = VRF_DEFAULT_NAME; - bool all_vrf = false; - bool backup = false; - int idx = 0; - - ISIS_FIND_VRF_ARGS(argv, argc, idx, vrf_name, all_vrf); - if (argv_find(argv, argc, "backup", &idx)) - backup = true; - - if (vrf_name) { - if (all_vrf) { - for (ALL_LIST_ELEMENTS_RO(im->isis, inode, isis)) { - for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, - area)) { - vty_out(vty, "Area %s:\n", - area->area_tag ? area->area_tag - : "null"); - for (int level = ISIS_LEVEL1; - level <= ISIS_LEVELS; level++) - show_prefix_sids(vty, area, - level, backup); - } - } - return 0; - } - isis = isis_lookup_by_vrfname(vrf_name); - if (isis != NULL) { - for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, - area)) { - vty_out(vty, "Area %s:\n", - area->area_tag ? area->area_tag - : "null"); - for (int level = ISIS_LEVEL1; - level <= ISIS_LEVELS; level++) - show_prefix_sids(vty, area, level, - backup); - } - } - } - - return CMD_SUCCESS; -} - /** * Show Segment Routing Node. * @@ -2118,13 +1006,10 @@ DEFUN(show_sr_prefix_sids, show_sr_prefix_sids_cmd, */ static void show_node(struct vty *vty, struct isis_area *area, int level) { - struct sr_node *srn; + struct isis_lsp *lsp; struct ttable *tt; - if (srdb_area_prefix_count(&area->srdb.prefix_sids[level - 1]) == 0) - return; - - vty_out(vty, " IS-IS %s SR-Node:\n\n", circuit_t2string(level)); + vty_out(vty, " IS-IS %s SR-Nodes:\n\n", circuit_t2string(level)); /* Prepare table. */ tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); @@ -2134,19 +1019,23 @@ static void show_node(struct vty *vty, struct isis_area *area, int level) ttable_restyle(tt); ttable_rowseps(tt, 0, BOTTOM, true, '-'); - /* Process all SR-Node from the SRDB */ - frr_each (srdb_node, &area->srdb.sr_nodes[level - 1], srn) { + frr_each (lspdb, &area->lspdb[level - 1], lsp) { + struct isis_router_cap *cap; + + if (!lsp->tlvs) + continue; + cap = lsp->tlvs->router_cap; + if (!cap) + continue; + ttable_add_row( tt, "%s|%u - %u|%u - %u|%s|%u", - sysid_print(srn->sysid), - srn->cap.srgb.lower_bound, - srn->cap.srgb.lower_bound + srn->cap.srgb.range_size - - 1, - srn->cap.srlb.lower_bound, - srn->cap.srlb.lower_bound + srn->cap.srlb.range_size - - 1, - srn->cap.algo[0] == SR_ALGORITHM_SPF ? "SPF" : "S-SPF", - srn->cap.msd); + sysid_print(lsp->hdr.lsp_id), cap->srgb.lower_bound, + cap->srgb.lower_bound + cap->srgb.range_size - 1, + cap->srlb.lower_bound, + cap->srlb.lower_bound + cap->srlb.range_size - 1, + cap->algo[0] == SR_ALGORITHM_SPF ? "SPF" : "S-SPF", + cap->msd); } /* Dump the generated table. */ @@ -2184,7 +1073,6 @@ DEFUN(show_sr_node, show_sr_node_cmd, return CMD_SUCCESS; } - /* --- IS-IS Segment Routing Management function ---------------------------- */ /** @@ -2290,16 +1178,6 @@ void isis_sr_stop(struct isis_area *area) for (ALL_LIST_ELEMENTS(area->srdb.adj_sids, node, nnode, sra)) sr_adj_sid_del(sra); - /* Uninstall all Prefix-SIDs from all SR Node. */ - for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS; level++) { - while (srdb_node_count(&srdb->sr_nodes[level - 1]) > 0) { - struct sr_node *srn; - - srn = srdb_node_first(&srdb->sr_nodes[level - 1]); - sr_node_del(area, level, srn); - } - } - /* Release SRGB if active. */ if (srdb->srgb_active) { isis_zebra_release_label_range(srdb->config.srgb_lower_bound, @@ -2332,11 +1210,6 @@ void isis_sr_area_init(struct isis_area *area) memset(srdb, 0, sizeof(*srdb)); srdb->adj_sids = list_new(); - for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS; level++) { - srdb_node_init(&srdb->sr_nodes[level - 1]); - srdb_area_prefix_init(&srdb->prefix_sids[level - 1]); - } - /* Pull defaults from the YANG module. */ #ifndef FABRICD srdb->config.enabled = yang_get_default_bool("%s/enabled", ISIS_SR); @@ -2386,14 +1259,12 @@ void isis_sr_area_term(struct isis_area *area) */ void isis_sr_init(void) { - install_element(VIEW_NODE, &show_sr_prefix_sids_cmd); install_element(VIEW_NODE, &show_sr_node_cmd); /* Register hooks. */ hook_register(isis_adj_state_change_hook, sr_adj_state_change); hook_register(isis_adj_ip_enabled_hook, sr_adj_ip_enabled); hook_register(isis_adj_ip_disabled_hook, sr_adj_ip_disabled); - hook_register(isis_route_update_hook, sr_route_update); hook_register(isis_if_new_hook, sr_if_new_hook); } @@ -2406,6 +1277,5 @@ void isis_sr_term(void) hook_unregister(isis_adj_state_change_hook, sr_adj_state_change); hook_unregister(isis_adj_ip_enabled_hook, sr_adj_ip_enabled); hook_unregister(isis_adj_ip_disabled_hook, sr_adj_ip_disabled); - hook_unregister(isis_route_update_hook, sr_route_update); hook_unregister(isis_if_new_hook, sr_if_new_hook); } diff --git a/isisd/isis_sr.h b/isisd/isis_sr.h index 2e4f3a69f7..b012dfb00a 100644 --- a/isisd/isis_sr.h +++ b/isisd/isis_sr.h @@ -57,11 +57,25 @@ #define SRLB_UPPER_BOUND 15999 /* Segment Routing Data Base (SRDB) RB-Tree structure */ -PREDECL_RBTREE_UNIQ(srdb_node) -PREDECL_RBTREE_UNIQ(srdb_node_prefix) -PREDECL_RBTREE_UNIQ(srdb_area_prefix) PREDECL_RBTREE_UNIQ(srdb_prefix_cfg) +/* + * Segment Routing Prefix-SID information. + * + * This structure is intended to be embedded inside other structures that + * might or might not contain Prefix-SID information. + */ +struct isis_sr_psid_info { + /* Prefix-SID Sub-TLV information. */ + struct isis_prefix_sid sid; + + /* Resolved input/output label. */ + mpls_label_t label; + + /* Indicates whether the Prefix-SID is present or not. */ + bool present; +}; + /* Segment Routing Local Block allocation */ struct sr_local_block { bool active; @@ -106,85 +120,6 @@ struct sr_adjacency { struct isis_adjacency *adj; }; -/* Segment Routing Prefix-SID type. */ -enum sr_prefix_type { - ISIS_SR_PREFIX_LOCAL = 0, - ISIS_SR_PREFIX_REMOTE, -}; - -/* Segment Routing Nexthop Information. */ -struct sr_nexthop_info { - mpls_label_t label; - time_t uptime; -}; - -/* State of Object (SR-Node and SR-Prefix) stored in SRDB */ -enum srdb_state { - SRDB_STATE_VALIDATED = 0, - SRDB_STATE_NEW, - SRDB_STATE_MODIFIED, - SRDB_STATE_UNCHANGED -}; - -/* Segment Routing Prefix-SID. */ -struct sr_prefix { - /* SRDB RB-tree entries. */ - struct srdb_node_prefix_item node_entry; - struct srdb_area_prefix_item area_entry; - - /* IP prefix. */ - struct prefix prefix; - - /* SID value, algorithm and flags subTLVs. */ - struct isis_prefix_sid sid; - - /* Input label value. */ - mpls_label_t input_label; - - /* Prefix-SID type. */ - enum sr_prefix_type type; - union { - struct { - /* Information about this local Prefix-SID. */ - struct sr_nexthop_info info; - } local; - struct { - /* Route associated to this remote Prefix-SID. */ - struct isis_route_info *rinfo; - } remote; - } u; - - /* Backpointer to Segment Routing node. */ - struct sr_node *srn; - - /* SR-Prefix State used while the LSPDB is being parsed. */ - enum srdb_state state; -}; - -/* Segment Routing node. */ -struct sr_node { - /* SRDB RB-tree entry. */ - struct srdb_node_item entry; - - /* IS-IS level: ISIS_LEVEL1 or ISIS_LEVEL2. */ - int level; - - /* IS-IS node identifier. */ - uint8_t sysid[ISIS_SYS_ID_LEN]; - - /* Segment Routing node capabilities (SRGB, SR Algorithms) subTLVs. */ - struct isis_router_cap cap; - - /* List of Prefix-SIDs advertised by this node. */ - struct srdb_node_prefix_head prefix_sids; - - /* Backpointer to IS-IS area. */ - struct isis_area *area; - - /* SR-Node State used while the LSPDB is being parsed. */ - enum srdb_state state; -}; - /* SID type. NOTE: these values must be in sync with the YANG module. */ enum sr_sid_value_type { SR_SID_VALUE_TYPE_INDEX = 0, @@ -217,6 +152,9 @@ struct sr_prefix_cfg { /* SID last hop behavior. */ enum sr_last_hop_behavior last_hop_behavior; + /* Indicates whether the node flag must be explicitly unset. */ + bool n_flag_clear; + /* Does this Prefix-SID refer to a loopback address (Node-SID)? */ bool node_sid; @@ -235,12 +173,6 @@ struct isis_sr_db { /* List of local Adjacency-SIDs. */ struct list *adj_sids; - /* Segment Routing Node information per IS-IS level. */ - struct srdb_node_head sr_nodes[ISIS_LEVELS]; - - /* Segment Routing Prefix-SIDs per IS-IS level. */ - struct srdb_area_prefix_head prefix_sids[ISIS_LEVELS]; - /* Management of SRLB & SRGB allocation */ struct sr_local_block srlb; bool srgb_active; @@ -267,6 +199,14 @@ struct isis_sr_db { }; /* Prototypes. */ +extern struct isis_sr_block *isis_sr_find_srgb(struct lspdb_head *lspdb, + const uint8_t *sysid); +extern mpls_label_t sr_prefix_in_label(struct isis_area *area, + struct isis_prefix_sid *psid, + bool local); +extern mpls_label_t sr_prefix_out_label(struct lspdb_head *lspdb, int family, + struct isis_prefix_sid *psid, + const uint8_t *nh_sysid, bool last_hop); extern int isis_sr_cfg_srgb_update(struct isis_area *area, uint32_t lower_bound, uint32_t upper_bound); extern int isis_sr_cfg_srlb_update(struct isis_area *area, uint32_t lower_bound, @@ -279,16 +219,14 @@ isis_sr_cfg_prefix_find(struct isis_area *area, union prefixconstptr prefix); extern void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg, bool external, struct isis_prefix_sid *psid); -extern void isis_sr_nexthop_update(struct sr_nexthop_info *srnh, - mpls_label_t label); -extern void isis_sr_nexthop_reset(struct sr_nexthop_info *srnh); extern void sr_adj_sid_add_single(struct isis_adjacency *adj, int family, bool backup, struct list *nexthops); extern struct sr_adjacency *isis_sr_adj_sid_find(struct isis_adjacency *adj, int family, enum sr_adj_type type); extern void isis_area_delete_backup_adj_sids(struct isis_area *area, int level); -extern void isis_area_verify_sr(struct isis_area *area); +extern char *sr_op2str(char *buf, size_t size, mpls_label_t label_in, + mpls_label_t label_out); extern int isis_sr_start(struct isis_area *area); extern void isis_sr_stop(struct isis_area *area); extern void isis_sr_area_init(struct isis_area *area); diff --git a/isisd/isis_tlvs.c b/isisd/isis_tlvs.c index c1603d2ef0..a5c2fd5894 100644 --- a/isisd/isis_tlvs.c +++ b/isisd/isis_tlvs.c @@ -2603,8 +2603,8 @@ static void format_tlv_router_cap(const struct isis_router_cap *router_cap, sbuf_push( buf, indent, " Segment Routing: I:%s V:%s, Global Block Base: %u Range: %u\n", - IS_SR_IPV4(router_cap->srgb) ? "1" : "0", - IS_SR_IPV6(router_cap->srgb) ? "1" : "0", + IS_SR_IPV4(&router_cap->srgb) ? "1" : "0", + IS_SR_IPV6(&router_cap->srgb) ? "1" : "0", router_cap->srgb.lower_bound, router_cap->srgb.range_size); diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index 1c0d97f2c3..54ded8121d 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -138,8 +138,8 @@ struct isis_threeway_adj { /* Segment Routing subTLV's as per RFC8667 */ #define ISIS_SUBTLV_SRGB_FLAG_I 0x80 #define ISIS_SUBTLV_SRGB_FLAG_V 0x40 -#define IS_SR_IPV4(srgb) (srgb.flags & ISIS_SUBTLV_SRGB_FLAG_I) -#define IS_SR_IPV6(srgb) (srgb.flags & ISIS_SUBTLV_SRGB_FLAG_V) +#define IS_SR_IPV4(srgb) ((srgb)->flags & ISIS_SUBTLV_SRGB_FLAG_I) +#define IS_SR_IPV6(srgb) ((srgb)->flags & ISIS_SUBTLV_SRGB_FLAG_V) #define SUBTLV_SR_BLOCK_SIZE 6 #define SUBTLV_RANGE_INDEX_SIZE 10 #define SUBTLV_RANGE_LABEL_SIZE 9 diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index aeb54fce28..805ede1e44 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -155,16 +155,14 @@ static int isis_zebra_link_params(ZAPI_CALLBACK_ARGS) } enum isis_zebra_nexthop_type { - ISIS_ROUTE_NEXTHOP_MAIN = 0, - ISIS_ROUTE_NEXTHOP_BACKUP, - ISIS_MPLS_NEXTHOP_MAIN, - ISIS_MPLS_NEXTHOP_BACKUP, + ISIS_NEXTHOP_MAIN = 0, + ISIS_NEXTHOP_BACKUP, }; static int isis_zebra_add_nexthops(struct isis *isis, struct list *nexthops, struct zapi_nexthop zapi_nexthops[], enum isis_zebra_nexthop_type type, - uint8_t backup_nhs) + bool mpls_lsp, uint8_t backup_nhs) { struct isis_nexthop *nexthop; struct listnode *node; @@ -210,23 +208,18 @@ static int isis_zebra_add_nexthops(struct isis *isis, struct list *nexthops, /* Add MPLS label(s). */ switch (type) { - case ISIS_ROUTE_NEXTHOP_MAIN: - case ISIS_ROUTE_NEXTHOP_BACKUP: - /* - * SR/TI-LFA labels are installed using separate - * messages. - */ - break; - case ISIS_MPLS_NEXTHOP_MAIN: - if (nexthop->sr.label != MPLS_INVALID_LABEL) { + case ISIS_NEXTHOP_MAIN: + if (nexthop->sr.present) { api_nh->label_num = 1; api_nh->labels[0] = nexthop->sr.label; - } else { - api_nh->label_num = 1; - api_nh->labels[0] = MPLS_LABEL_IMPLICIT_NULL; - } + } else if (mpls_lsp) + /* + * Do not use non-SR enabled nexthops to prevent + * broken LSPs from being formed. + */ + continue; break; - case ISIS_MPLS_NEXTHOP_BACKUP: + case ISIS_NEXTHOP_BACKUP: if (nexthop->label_stack) { api_nh->label_num = nexthop->label_stack->num_labels; @@ -234,7 +227,11 @@ static int isis_zebra_add_nexthops(struct isis *isis, struct list *nexthops, nexthop->label_stack->label, sizeof(mpls_label_t) * api_nh->label_num); - } else { + } else if (mpls_lsp) { + /* + * This is necessary because zebra requires + * the nexthops of MPLS LSPs to be labeled. + */ api_nh->label_num = 1; api_nh->labels[0] = MPLS_LABEL_IMPLICIT_NULL; } @@ -266,7 +263,7 @@ void isis_zebra_route_add_route(struct isis *isis, struct prefix *prefix, struct zapi_route api; int count = 0; - if (zclient->sock < 0) + if (zclient->sock < 0 || list_isempty(route_info->nexthops)) return; memset(&api, 0, sizeof(api)); @@ -286,7 +283,7 @@ void isis_zebra_route_add_route(struct isis *isis, struct prefix *prefix, if (route_info->backup) { count = isis_zebra_add_nexthops( isis, route_info->backup->nexthops, api.backup_nexthops, - ISIS_ROUTE_NEXTHOP_BACKUP, 0); + ISIS_NEXTHOP_BACKUP, false, 0); if (count > 0) { SET_FLAG(api.message, ZAPI_MESSAGE_BACKUP_NEXTHOPS); api.backup_nexthop_num = count; @@ -295,7 +292,7 @@ void isis_zebra_route_add_route(struct isis *isis, struct prefix *prefix, /* Add primary nexthops. */ count = isis_zebra_add_nexthops(isis, route_info->nexthops, - api.nexthops, ISIS_ROUTE_NEXTHOP_MAIN, + api.nexthops, ISIS_NEXTHOP_MAIN, false, count); if (!count) return; @@ -328,31 +325,39 @@ void isis_zebra_route_del_route(struct isis *isis, } /** - * Install Prefix-SID in the forwarding plane through Zebra. + * Install Prefix-SID label entry in the forwarding plane through Zebra. * - * @param srp Segment Routing Prefix-SID + * @param area IS-IS area + * @param prefix Route prefix + * @param rinfo Route information + * @param psid Prefix-SID information */ -static void isis_zebra_prefix_install_prefix_sid(const struct sr_prefix *srp) +void isis_zebra_prefix_sid_install(struct isis_area *area, + struct prefix *prefix, + struct isis_route_info *rinfo, + struct isis_sr_psid_info *psid) { - struct isis *isis = srp->srn->area->isis; struct zapi_labels zl; - struct zapi_nexthop *znh; - struct interface *ifp; - struct isis_route_info *rinfo; int count = 0; + sr_debug("ISIS-Sr (%s): update label %u for prefix %pFX", + area->area_tag, psid->label, prefix); + /* Prepare message. */ memset(&zl, 0, sizeof(zl)); zl.type = ZEBRA_LSP_ISIS_SR; - zl.local_label = srp->input_label; + zl.local_label = psid->label; + + /* Local routes don't have any nexthop and require special handling. */ + if (list_isempty(rinfo->nexthops)) { + struct zapi_nexthop *znh; + struct interface *ifp; - switch (srp->type) { - case ISIS_SR_PREFIX_LOCAL: ifp = if_lookup_by_name("lo", VRF_DEFAULT); if (!ifp) { zlog_warn( "%s: couldn't install Prefix-SID %pFX: loopback interface not found", - __func__, &srp->prefix); + __func__, prefix); return; } @@ -361,21 +366,12 @@ static void isis_zebra_prefix_install_prefix_sid(const struct sr_prefix *srp) znh->ifindex = ifp->ifindex; znh->label_num = 1; znh->labels[0] = MPLS_LABEL_IMPLICIT_NULL; - break; - case ISIS_SR_PREFIX_REMOTE: - /* Update route in the RIB too. */ - SET_FLAG(zl.message, ZAPI_LABELS_FTN); - zl.route.prefix = srp->prefix; - zl.route.type = ZEBRA_ROUTE_ISIS; - zl.route.instance = 0; - - rinfo = srp->u.remote.rinfo; - + } else { /* Add backup nexthops first. */ if (rinfo->backup) { count = isis_zebra_add_nexthops( - isis, rinfo->backup->nexthops, - zl.backup_nexthops, ISIS_MPLS_NEXTHOP_BACKUP, + area->isis, rinfo->backup->nexthops, + zl.backup_nexthops, ISIS_NEXTHOP_BACKUP, true, 0); if (count > 0) { SET_FLAG(zl.message, ZAPI_LABELS_HAS_BACKUPS); @@ -384,13 +380,12 @@ static void isis_zebra_prefix_install_prefix_sid(const struct sr_prefix *srp) } /* Add primary nexthops. */ - count = isis_zebra_add_nexthops(isis, rinfo->nexthops, - zl.nexthops, - ISIS_MPLS_NEXTHOP_MAIN, count); + count = isis_zebra_add_nexthops(area->isis, rinfo->nexthops, + zl.nexthops, ISIS_NEXTHOP_MAIN, + true, count); if (!count) return; zl.nexthop_num = count; - break; } /* Send message to zebra. */ @@ -398,57 +393,32 @@ static void isis_zebra_prefix_install_prefix_sid(const struct sr_prefix *srp) } /** - * Uninstall Prefix-SID from the forwarding plane through Zebra. + * Uninstall Prefix-SID label entry from the forwarding plane through Zebra. * - * @param srp Segment Routing Prefix-SID + * @param area IS-IS area + * @param prefix Route prefix + * @param rinfo Route information + * @param psid Prefix-SID information */ -static void isis_zebra_uninstall_prefix_sid(const struct sr_prefix *srp) +void isis_zebra_prefix_sid_uninstall(struct isis_area *area, + struct prefix *prefix, + struct isis_route_info *rinfo, + struct isis_sr_psid_info *psid) { struct zapi_labels zl; + sr_debug("ISIS-Sr (%s): delete label %u for prefix %pFX", + area->area_tag, psid->label, prefix); + /* Prepare message. */ memset(&zl, 0, sizeof(zl)); zl.type = ZEBRA_LSP_ISIS_SR; - zl.local_label = srp->input_label; - - if (srp->type == ISIS_SR_PREFIX_REMOTE) { - /* Update route in the RIB too. */ - SET_FLAG(zl.message, ZAPI_LABELS_FTN); - zl.route.prefix = srp->prefix; - zl.route.type = ZEBRA_ROUTE_ISIS; - zl.route.instance = 0; - } + zl.local_label = psid->label; /* Send message to zebra. */ (void)zebra_send_mpls_labels(zclient, ZEBRA_MPLS_LABELS_DELETE, &zl); } -/** - * Send Prefix-SID to ZEBRA for installation or deletion. - * - * @param cmd ZEBRA_MPLS_LABELS_REPLACE or ZEBRA_ROUTE_DELETE - * @param srp Segment Routing Prefix-SID - */ -void isis_zebra_send_prefix_sid(int cmd, const struct sr_prefix *srp) -{ - - if (cmd != ZEBRA_MPLS_LABELS_REPLACE - && cmd != ZEBRA_MPLS_LABELS_DELETE) { - flog_warn(EC_LIB_DEVELOPMENT, "%s: wrong ZEBRA command", - __func__); - return; - } - - sr_debug(" |- %s label %u for prefix %pFX", - cmd == ZEBRA_MPLS_LABELS_REPLACE ? "Update" : "Delete", - srp->input_label, &srp->prefix); - - if (cmd == ZEBRA_MPLS_LABELS_REPLACE) - isis_zebra_prefix_install_prefix_sid(srp); - else - isis_zebra_uninstall_prefix_sid(srp); -} - /** * Send (LAN)-Adjacency-SID to ZEBRA for installation or deletion. * @@ -490,7 +460,7 @@ void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra) count = isis_zebra_add_nexthops(isis, sra->backup_nexthops, zl.backup_nexthops, - ISIS_MPLS_NEXTHOP_BACKUP, 0); + ISIS_NEXTHOP_BACKUP, true, 0); if (count > 0) { SET_FLAG(zl.message, ZAPI_LABELS_HAS_BACKUPS); zl.backup_nexthop_num = count; diff --git a/isisd/isis_zebra.h b/isisd/isis_zebra.h index 768919ff46..c5c52a6bc6 100644 --- a/isisd/isis_zebra.h +++ b/isisd/isis_zebra.h @@ -37,7 +37,6 @@ void isis_zebra_init(struct thread_master *master, int instance); void isis_zebra_stop(void); struct isis_route_info; -struct sr_prefix; struct sr_adjacency; void isis_zebra_route_add_route(struct isis *isis, @@ -48,7 +47,14 @@ void isis_zebra_route_del_route(struct isis *isis, struct prefix *prefix, struct prefix_ipv6 *src_p, struct isis_route_info *route_info); -void isis_zebra_send_prefix_sid(int cmd, const struct sr_prefix *srp); +void isis_zebra_prefix_sid_install(struct isis_area *area, + struct prefix *prefix, + struct isis_route_info *rinfo, + struct isis_sr_psid_info *psid); +void isis_zebra_prefix_sid_uninstall(struct isis_area *area, + struct prefix *prefix, + struct isis_route_info *rinfo, + struct isis_sr_psid_info *psid); void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra); int isis_distribute_list_update(int routetype); void isis_zebra_redistribute_set(afi_t afi, int type); diff --git a/tests/isisd/test_isis_spf.c b/tests/isisd/test_isis_spf.c index 7ac8611bd9..4c89a5be0a 100644 --- a/tests/isisd/test_isis_spf.c +++ b/tests/isisd/test_isis_spf.c @@ -66,7 +66,7 @@ static void test_run_spf(struct vty *vty, const struct isis_topology *topology, /* Print the SPT and the corresponding routing table. */ isis_print_spftree(vty, spftree); - isis_print_routes(vty, spftree, false); + isis_print_routes(vty, spftree, false, false); /* Cleanup SPF tree. */ isis_spftree_del(spftree); @@ -122,7 +122,7 @@ static void test_run_ti_lfa(struct vty *vty, /* Print the post-convergence SPT and the correspoding routing table. */ isis_print_spftree(vty, spftree_pc); - isis_print_routes(vty, spftree_self, true); + isis_print_routes(vty, spftree_self, false, true); /* Cleanup everything. */ isis_spftree_del(spftree_self); diff --git a/tests/isisd/test_isis_spf.refout b/tests/isisd/test_isis_spf.refout index ea7cc14d7a..d24176a097 100644 --- a/tests/isisd/test_isis_spf.refout +++ b/tests/isisd/test_isis_spf.refout @@ -18,14 +18,15 @@ rt6 TE-IS 30 rt2 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + - rt3 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -46,14 +47,15 @@ rt6 TE-IS 30 rt2 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 20 - rt2 - - 2001:db8::3/128 20 - rt3 - - 2001:db8::4/128 30 - rt2 - - 2001:db8::5/128 30 - rt3 - - 2001:db8::6/128 40 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 implicit-null + 2001:db8::3/128 20 - rt3 implicit-null + 2001:db8::4/128 30 - rt2 16041 + 2001:db8::5/128 30 - rt3 16051 + 2001:db8::6/128 40 - rt2 16061 + - rt3 16061 test# test isis topology 2 root rt1 spf IS-IS paths to level-1 routers that speak IP @@ -76,14 +78,15 @@ rt3 TE-IS 30 rt3 - rt1(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 25 - rt2 - - 10.0.255.3/32 40 - rt3 - - 10.0.255.4/32 20 - rt4 - - 10.0.255.5/32 20 - rt5 - - 10.0.255.6/32 30 - rt4 - - - rt5 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 25 - rt2 implicit-null + 10.0.255.3/32 40 - rt3 implicit-null + 10.0.255.4/32 20 - rt4 implicit-null + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 30 - rt4 16060 + - rt5 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -105,14 +108,15 @@ rt3 TE-IS 30 rt3 - rt1(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 25 - rt2 - - 2001:db8::3/128 40 - rt3 - - 2001:db8::4/128 20 - rt4 - - 2001:db8::5/128 20 - rt5 - - 2001:db8::6/128 30 - rt4 - - - rt5 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::2/128 25 - rt2 implicit-null + 2001:db8::3/128 40 - rt3 implicit-null + 2001:db8::4/128 20 - rt4 implicit-null + 2001:db8::5/128 20 - rt5 implicit-null + 2001:db8::6/128 30 - rt4 16061 + - rt5 16061 test# test isis topology 3 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -132,13 +136,14 @@ rt6 TE-IS 30 rt2 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 40 - rt2 - - 10.0.255.6/32 40 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 40 - rt2 16050 + 10.0.255.6/32 40 - rt2 16060 test# test isis topology 4 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -162,15 +167,16 @@ rt8 TE-IS 40 rt2 - rt6(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - 10.0.255.7/32 40 - rt3 - - 10.0.255.8/32 50 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + 10.0.255.7/32 40 - rt3 16070 + 10.0.255.8/32 50 - rt2 16080 test# test isis topology 5 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -196,16 +202,17 @@ rt8 TE-IS 40 rt2 - rt6(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - 10.0.255.7/32 40 - rt3 - - 10.0.255.8/32 50 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + 10.0.255.7/32 40 - rt3 16070 + 10.0.255.8/32 50 - rt2 16080 + - rt3 16080 test# test isis topology 6 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -239,20 +246,21 @@ rt7 TE-IS 50 rt2 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - - rt3 - - 10.0.255.5/32 50 - rt2 - - - rt3 - - 10.0.255.6/32 40 - rt2 - - - rt3 - - 10.0.255.7/32 60 - rt2 - - - rt3 - - 10.0.255.8/32 50 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + - rt3 16040 + 10.0.255.5/32 50 - rt2 16050 + - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + - rt3 16060 + 10.0.255.7/32 60 - rt2 16070 + - rt3 16070 + 10.0.255.8/32 50 - rt2 16080 + - rt3 16080 test# test isis topology 7 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -287,19 +295,20 @@ rt12 TE-IS 50 rt4 - rt9(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.2/32 40 - rt4 - - 10.0.255.3/32 50 - rt4 - - 10.0.255.4/32 20 - rt4 - - 10.0.255.5/32 30 - rt4 - - 10.0.255.6/32 40 - rt4 - - 10.0.255.7/32 30 - rt4 - - 10.0.255.8/32 40 - rt4 - - 10.0.255.9/32 50 - rt4 - - 10.0.255.10/32 50 - rt4 - - 10.0.255.11/32 50 - rt4 - - 10.0.255.12/32 60 - rt4 - + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 40 - rt4 16020 + 10.0.255.3/32 50 - rt4 16030 + 10.0.255.4/32 20 - rt4 implicit-null + 10.0.255.5/32 30 - rt4 16050 + 10.0.255.6/32 40 - rt4 16060 + 10.0.255.7/32 30 - rt4 16070 + 10.0.255.8/32 40 - rt4 16080 + 10.0.255.9/32 50 - rt4 16090 + 10.0.255.10/32 50 - rt4 16100 + 10.0.255.11/32 50 - rt4 16110 + 10.0.255.12/32 60 - rt4 16120 test# test isis topology 8 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -333,19 +342,20 @@ rt12 TE-IS 50 rt2 - rt9(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 30 - rt2 - - 10.0.255.4/32 20 - rt4 - - 10.0.255.5/32 30 - rt2 - - 10.0.255.6/32 40 - rt2 - - 10.0.255.7/32 30 - rt4 - - 10.0.255.8/32 40 - rt2 - - 10.0.255.9/32 50 - rt2 - - 10.0.255.10/32 40 - rt4 - - 10.0.255.11/32 50 - rt2 - - 10.0.255.12/32 60 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 30 - rt2 16030 + 10.0.255.4/32 20 - rt4 implicit-null + 10.0.255.5/32 30 - rt2 16050 + 10.0.255.6/32 40 - rt2 16060 + 10.0.255.7/32 30 - rt4 16070 + 10.0.255.8/32 40 - rt2 16080 + 10.0.255.9/32 50 - rt2 16090 + 10.0.255.10/32 40 - rt4 16100 + 10.0.255.11/32 50 - rt2 16110 + 10.0.255.12/32 60 - rt2 16120 test# test isis topology 9 root rt1 spf IS-IS paths to level-1 routers that speak IP @@ -374,16 +384,17 @@ rt8 TE-IS 50 rt2 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 40 - rt2 - - 10.0.255.6/32 60 - rt2 - - 10.0.255.7/32 60 - rt2 - - 10.0.255.8/32 60 - rt2 - - 10.0.255.9/32 50 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 40 - rt2 16050 + 10.0.255.6/32 60 - rt2 16060 + 10.0.255.7/32 60 - rt2 16070 + 10.0.255.8/32 60 - rt2 16080 + 10.0.255.9/32 50 - rt2 16090 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -411,16 +422,17 @@ rt8 TE-IS 50 rt2 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 20 - rt2 - - 2001:db8::3/128 20 - rt3 - - 2001:db8::4/128 30 - rt2 - - 2001:db8::5/128 40 - rt2 - - 2001:db8::6/128 60 - rt2 - - 2001:db8::7/128 60 - rt2 - - 2001:db8::8/128 60 - rt2 - - 2001:db8::9/128 50 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 implicit-null + 2001:db8::3/128 20 - rt3 implicit-null + 2001:db8::4/128 30 - rt2 16041 + 2001:db8::5/128 40 - rt2 16051 + 2001:db8::6/128 60 - rt2 16061 + 2001:db8::7/128 60 - rt2 16071 + 2001:db8::8/128 60 - rt2 16081 + 2001:db8::9/128 50 - rt2 16091 test# test isis topology 10 root rt1 spf IS-IS paths to level-1 routers that speak IP @@ -444,15 +456,16 @@ rt8 TE-IS 30 rt2 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 30 - rt3 - - 10.0.255.4/32 30 - rt4 - - 10.0.255.5/32 30 - rt2 - - 10.0.255.6/32 40 - rt3 - - 10.0.255.7/32 40 - rt4 - - 10.0.255.8/32 40 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 30 - rt3 implicit-null + 10.0.255.4/32 30 - rt4 implicit-null + 10.0.255.5/32 30 - rt2 16050 + 10.0.255.6/32 40 - rt3 20060 + 10.0.255.7/32 40 - rt4 16070 + 10.0.255.8/32 40 - rt2 16080 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -475,15 +488,16 @@ rt8 TE-IS 30 rt2 - rt5(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 20 - rt2 - - 2001:db8::3/128 30 - rt3 - - 2001:db8::4/128 30 - rt4 - - 2001:db8::5/128 30 - rt2 - - 2001:db8::6/128 40 - rt3 - - 2001:db8::7/128 40 - rt4 - - 2001:db8::8/128 40 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 implicit-null + 2001:db8::3/128 30 - rt3 implicit-null + 2001:db8::4/128 30 - rt4 implicit-null + 2001:db8::5/128 30 - rt2 16051 + 2001:db8::6/128 40 - rt3 20061 + 2001:db8::7/128 40 - rt4 16071 + 2001:db8::8/128 40 - rt2 16081 test# test isis topology 11 root rt1 spf IS-IS paths to level-1 routers that speak IP @@ -506,14 +520,15 @@ rt6 TE-IS 30 rt2 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + - rt3 16060 IS-IS paths to level-1 routers that speak IPv6 Vertex Type Metric Next-Hop Interface Parent @@ -535,14 +550,15 @@ rt6 TE-IS 30 rt2 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 20 - rt2 - - 2001:db8::3/128 20 - rt3 - - 2001:db8::4/128 30 - rt2 - - 2001:db8::5/128 30 - rt3 - - 2001:db8::6/128 40 - rt2 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 implicit-null + 2001:db8::3/128 20 - rt3 implicit-null + 2001:db8::4/128 30 - rt2 16041 + 2001:db8::5/128 30 - rt3 16051 + 2001:db8::6/128 40 - rt2 16061 + - rt3 16061 test# test isis topology 12 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -570,17 +586,18 @@ rt10 TE-IS 50 rt2 - rt8(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - 10.0.255.7/32 40 - rt3 - - 10.0.255.8/32 50 - rt2 - - 10.0.255.9/32 50 - rt3 - - 10.0.255.10/32 60 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + 10.0.255.7/32 40 - rt3 16070 + 10.0.255.8/32 50 - rt2 16080 + 10.0.255.9/32 50 - rt3 16090 + 10.0.255.10/32 60 - rt2 16100 test# test isis topology 13 root rt1 spf ipv4-only IS-IS paths to level-1 routers that speak IP @@ -605,15 +622,16 @@ rt7 TE-IS 30 rt3 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - - rt3 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 30 - rt3 - - 10.0.255.7/32 40 - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + - rt3 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 30 - rt3 16060 + 10.0.255.7/32 40 - rt3 16070 test# test# test isis topology 4 root rt1 reverse-spf ipv4-only @@ -638,15 +656,16 @@ rt8 TE-IS 40 rt2 - rt6(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 20 - rt2 - - 10.0.255.3/32 20 - rt3 - - 10.0.255.4/32 30 - rt2 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt2 - - 10.0.255.7/32 40 - rt3 - - 10.0.255.8/32 50 - rt2 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 30 - rt2 16040 + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 40 - rt2 16060 + 10.0.255.7/32 40 - rt3 16070 + 10.0.255.8/32 50 - rt2 16080 test# test isis topology 11 root rt1 reverse-spf IS-IS paths to level-1 routers that speak IP @@ -668,11 +687,12 @@ rt6 TE-IS 30 rt3 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.3/32 20 - rt3 - - 10.0.255.5/32 30 - rt3 - - 10.0.255.6/32 40 - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.5/32 30 - 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 @@ -693,11 +713,12 @@ rt6 TE-IS 30 rt3 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::3/128 20 - rt3 - - 2001:db8::5/128 30 - rt3 - - 2001:db8::6/128 40 - rt3 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 0 - - - + 2001:db8::3/128 20 - rt3 implicit-null + 2001:db8::5/128 30 - rt3 16051 + 2001:db8::6/128 40 - rt3 16061 test# test# test isis topology 1 root rt1 ti-lfa system-id rt2 @@ -732,10 +753,10 @@ rt2 TE-IS 50 rt3 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 60 - rt3 16060 - 10.0.255.4/32 50 - rt3 16060 + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.2/32 60 - rt3 16060/16020 + 10.0.255.4/32 50 - rt3 16060/16040 P-space (self): rt3 @@ -768,10 +789,10 @@ rt2 TE-IS 50 rt3 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 60 - rt3 16061 - 2001:db8::4/128 50 - rt3 16061 + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 2001:db8::2/128 60 - rt3 16061/16021 + 2001:db8::4/128 50 - rt3 16061/16041 test# test isis topology 2 root rt1 ti-lfa system-id rt3 P-space (self): @@ -818,9 +839,9 @@ rt3 TE-IS 50 rt5 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.3/32 60 - rt5 16050/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.3/32 60 - rt5 16050/18/16030 P-space (self): rt2 @@ -866,9 +887,9 @@ rt3 TE-IS 50 rt5 - rt5(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::3/128 60 - rt5 16051/19 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::3/128 60 - rt5 16051/19/16031 test# test isis topology 2 root rt1 ti-lfa system-id rt1 pseudonode-id 1 P-space (self): @@ -906,11 +927,11 @@ rt5 TE-IS 65 rt2 - rt1(2) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.4/32 65 - rt2 16020/18 - 10.0.255.5/32 75 - rt2 16020/18 - 10.0.255.6/32 75 - rt2 16020/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.4/32 65 - rt2 16020/18/16040 + 10.0.255.5/32 75 - rt2 16020/18/16050 + 10.0.255.6/32 75 - rt2 16020/18/16060 P-space (self): rt2 @@ -947,11 +968,11 @@ rt5 TE-IS 65 rt2 - rt1(2) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::4/128 65 - rt2 16021/19 - 2001:db8::5/128 75 - rt2 16021/19 - 2001:db8::6/128 75 - rt2 16021/19 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::4/128 65 - rt2 16021/19/16041 + 2001:db8::5/128 75 - rt2 16021/19/16051 + 2001:db8::6/128 75 - rt2 16021/19/16061 test# test isis topology 2 root rt5 ti-lfa system-id rt1 pseudonode-id 1 P-space (self): @@ -992,11 +1013,11 @@ rt2 TE-IS 45 rt6 - rt1(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.1/32 40 - rt6 16040 - 10.0.255.2/32 55 - rt6 16040 - 10.0.255.4/32 30 - rt6 - + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.1/32 40 - rt6 16040/16010 + 10.0.255.2/32 55 - rt6 16040/16020 + 10.0.255.4/32 30 - rt6 16040 P-space (self): rt6 @@ -1036,11 +1057,11 @@ rt2 TE-IS 45 rt6 - rt1(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::1/128 40 - rt6 16041 - 2001:db8::2/128 55 - rt6 16041 - 2001:db8::4/128 30 - rt6 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 2001:db8::1/128 40 - rt6 16041/16011 + 2001:db8::2/128 55 - rt6 16041/16021 + 2001:db8::4/128 30 - rt6 16041 test# test isis topology 3 root rt5 ti-lfa system-id rt4 ipv4-only P-space (self): @@ -1088,10 +1109,10 @@ IS-IS L1 IPv4 routing table: Prefix Metric Interface Nexthop Label(s) ----------------------------------------------------- - 10.0.255.1/32 50 - rt3 - - - rt6 - - 10.0.255.2/32 40 - rt6 - - 10.0.255.4/32 30 - rt6 - + 10.0.255.1/32 50 - rt3 16010 + - rt6 16010 + 10.0.255.2/32 40 - rt6 16020 + 10.0.255.4/32 30 - rt6 16040 test# test isis topology 3 root rt5 ti-lfa system-id rt3 ipv4-only P-space (self): @@ -1176,12 +1197,12 @@ rt2 TE-IS 90 rt3 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 100 - rt3 16050/17 - 10.0.255.4/32 90 - rt3 16050/17 - 10.0.255.6/32 80 - rt3 16050/17 - 10.0.255.8/32 90 - rt3 16050/17 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.2/32 100 - rt3 16050/17/16020 + 10.0.255.4/32 90 - rt3 16050/17/16040 + 10.0.255.6/32 80 - rt3 16050/17/16060 + 10.0.255.8/32 90 - rt3 16050/17/16080 test# test isis topology 4 root rt4 ti-lfa system-id rt6 ipv4-only P-space (self): @@ -1223,10 +1244,10 @@ rt8 TE-IS 100 rt2 - rt6(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.6/32 100 - rt2 16050/17 - 10.0.255.8/32 110 - rt2 16050/17 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.6/32 100 - rt2 16050/17/16060 + 10.0.255.8/32 110 - rt2 16050/17/16080 test# test isis topology 5 root rt1 ti-lfa system-id rt2 ipv4-only P-space (self): @@ -1267,11 +1288,11 @@ rt2 TE-IS 70 rt3 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 80 - rt3 16080 - 10.0.255.4/32 70 - rt3 16080 - 10.0.255.6/32 60 - rt3 16080 + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.2/32 80 - rt3 16080/16020 + 10.0.255.4/32 70 - rt3 16080/16040 + 10.0.255.6/32 60 - rt3 16080/16060 test# test isis topology 6 root rt4 ti-lfa system-id rt3 ipv4-only P-space (self): @@ -1317,9 +1338,9 @@ rt7 TE-IS 30 rt6 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.3/32 40 - rt2 16010 + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.3/32 40 - rt2 16010/16030 test# test isis topology 7 root rt11 ti-lfa system-id rt8 ipv4-only P-space (self): @@ -1378,16 +1399,16 @@ rt3 TE-IS 60 rt12 - rt6(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.1/32 60 - rt10 - - 10.0.255.2/32 60 - rt12 16090 - 10.0.255.3/32 70 - rt12 16090 - 10.0.255.4/32 50 - rt10 - - 10.0.255.5/32 50 - rt12 16090 - 10.0.255.6/32 60 - rt12 16090 - 10.0.255.7/32 40 - rt10 - - 10.0.255.8/32 40 - rt12 16090 + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.1/32 60 - rt10 16010 + 10.0.255.2/32 60 - rt12 16090/16020 + 10.0.255.3/32 70 - rt12 16090/16030 + 10.0.255.4/32 50 - rt10 16040 + 10.0.255.5/32 50 - rt12 16090/16050 + 10.0.255.6/32 60 - rt12 16090/16060 + 10.0.255.7/32 40 - rt10 16070 + 10.0.255.8/32 40 - rt12 16090/16080 test# test isis topology 7 root rt6 ti-lfa system-id rt5 ipv4-only P-space (self): @@ -1458,19 +1479,19 @@ rt10 TE-IS 60 rt9 - rt11(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.1/32 60 - rt3 16020 - 10.0.255.4/32 50 - rt3 16020 - 10.0.255.5/32 40 - rt3 16020 - 10.0.255.7/32 60 - rt9 - - - rt3 - - 10.0.255.8/32 50 - rt9 - - - rt3 - - 10.0.255.10/32 70 - rt9 - - - rt3 - - 10.0.255.11/32 60 - rt9 - - - rt3 - + Prefix Metric Interface Nexthop Label(s) + --------------------------------------------------------- + 10.0.255.1/32 60 - rt3 16020/16010 + 10.0.255.4/32 50 - rt3 16020/16040 + 10.0.255.5/32 40 - rt3 16020/16050 + 10.0.255.7/32 60 - rt9 16070 + - rt3 16070 + 10.0.255.8/32 50 - rt9 16080 + - rt3 16080 + 10.0.255.10/32 70 - rt9 16100 + - rt3 16100 + 10.0.255.11/32 60 - rt9 16110 + - rt3 16110 test# test isis topology 8 root rt2 ti-lfa system-id rt1 ipv4-only P-space (self): @@ -1532,12 +1553,12 @@ rt1 TE-IS 90 rt5 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.1/32 100 - rt5 16110/17 - 10.0.255.4/32 90 - rt5 16110/17 - 10.0.255.7/32 80 - rt5 16110/17 - 10.0.255.10/32 70 - rt5 16110/17 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 10.0.255.1/32 100 - rt5 16110/17/16010 + 10.0.255.4/32 90 - rt5 16110/17/16040 + 10.0.255.7/32 80 - rt5 16110/17/16070 + 10.0.255.10/32 70 - rt5 16110/17/16100 test# test isis topology 8 root rt2 ti-lfa system-id rt5 ipv4-only P-space (self): @@ -1595,13 +1616,13 @@ rt12 TE-IS 60 rt3 - rt9(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------ - 10.0.255.5/32 40 - rt3 16060 - 10.0.255.8/32 50 - rt3 16060 - 10.0.255.9/32 60 - rt3 16060 - 10.0.255.11/32 60 - rt3 16060 - 10.0.255.12/32 70 - rt3 16060 + Prefix Metric Interface Nexthop Label(s) + --------------------------------------------------------- + 10.0.255.5/32 40 - rt3 16060/16050 + 10.0.255.8/32 50 - rt3 16060/16080 + 10.0.255.9/32 60 - rt3 16060/16090 + 10.0.255.11/32 60 - rt3 16060/16110 + 10.0.255.12/32 70 - rt3 16060/16120 test# test isis topology 9 root rt1 ti-lfa system-id rt3 P-space (self): @@ -1651,9 +1672,9 @@ rt3 TE-IS 120 rt2 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.3/32 130 - rt2 16040/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.3/32 130 - rt2 16040/18/16030 P-space (self): rt2 @@ -1702,9 +1723,9 @@ rt3 TE-IS 120 rt2 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::3/128 130 - rt2 16041/19 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::3/128 130 - rt2 16041/19/16031 test# test isis topology 9 root rt1 ti-lfa system-id rt2 P-space (self): @@ -1748,15 +1769,15 @@ rt8 TE-IS 140 rt3 - rt4(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 130 - rt3 16030/18 - 10.0.255.4/32 120 - rt3 16030/18 - 10.0.255.5/32 130 - rt3 16030/18 - 10.0.255.6/32 150 - rt3 16030/18 - 10.0.255.7/32 150 - rt3 16030/18 - 10.0.255.8/32 150 - rt3 16030/18 - 10.0.255.9/32 140 - rt3 16030/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.2/32 130 - rt3 16030/18/16020 + 10.0.255.4/32 120 - rt3 16030/18/16040 + 10.0.255.5/32 130 - rt3 16030/18/16050 + 10.0.255.6/32 150 - rt3 16030/18/16060 + 10.0.255.7/32 150 - rt3 16030/18/16070 + 10.0.255.8/32 150 - rt3 16030/18/16080 + 10.0.255.9/32 140 - rt3 16030/18/16090 P-space (self): rt3 @@ -1799,15 +1820,15 @@ rt8 TE-IS 140 rt3 - rt4(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 130 - rt3 16031/19 - 2001:db8::4/128 120 - rt3 16031/19 - 2001:db8::5/128 130 - rt3 16031/19 - 2001:db8::6/128 150 - rt3 16031/19 - 2001:db8::7/128 150 - rt3 16031/19 - 2001:db8::8/128 150 - rt3 16031/19 - 2001:db8::9/128 140 - rt3 16031/19 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::2/128 130 - rt3 16031/19/16021 + 2001:db8::4/128 120 - rt3 16031/19/16041 + 2001:db8::5/128 130 - rt3 16031/19/16051 + 2001:db8::6/128 150 - rt3 16031/19/16061 + 2001:db8::7/128 150 - rt3 16031/19/16071 + 2001:db8::8/128 150 - rt3 16031/19/16081 + 2001:db8::9/128 140 - rt3 16031/19/16091 test# test isis topology 9 root rt9 ti-lfa system-id rt5 P-space (self): @@ -1874,23 +1895,23 @@ rt3 TE-IS 70 rt6 - rt1(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.1/32 70 - rt6 16060/16 - - rt7 16070/16 - - rt8 16080/16 - 10.0.255.2/32 60 - rt6 16060/16 - - rt7 16070/16 - - rt8 16080/16 - 10.0.255.3/32 80 - rt6 16060/16 - - rt7 16070/16 - - rt8 16080/16 - 10.0.255.4/32 50 - rt6 16060/16 - - rt7 16070/16 - - rt8 16080/16 - 10.0.255.5/32 60 - rt6 16060/16 - - rt7 16070/16 - - rt8 16080/16 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 70 - rt6 16060/16/16010 + - rt7 16070/16/16010 + - rt8 16080/16/16010 + 10.0.255.2/32 60 - rt6 16060/16/16020 + - rt7 16070/16/16020 + - rt8 16080/16/16020 + 10.0.255.3/32 80 - rt6 16060/16/16030 + - rt7 16070/16/16030 + - rt8 16080/16/16030 + 10.0.255.4/32 50 - rt6 16060/16/16040 + - rt7 16070/16/16040 + - rt8 16080/16/16040 + 10.0.255.5/32 60 - rt6 16060/16/16050 + - rt7 16070/16/16050 + - rt8 16080/16/16050 P-space (self): rt6 @@ -1956,23 +1977,23 @@ rt3 TE-IS 70 rt6 - rt1(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::1/128 70 - rt6 16061/17 - - rt7 16071/17 - - rt8 16081/17 - 2001:db8::2/128 60 - rt6 16061/17 - - rt7 16071/17 - - rt8 16081/17 - 2001:db8::3/128 80 - rt6 16061/17 - - rt7 16071/17 - - rt8 16081/17 - 2001:db8::4/128 50 - rt6 16061/17 - - rt7 16071/17 - - rt8 16081/17 - 2001:db8::5/128 60 - rt6 16061/17 - - rt7 16071/17 - - rt8 16081/17 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::1/128 70 - rt6 16061/17/16011 + - rt7 16071/17/16011 + - rt8 16081/17/16011 + 2001:db8::2/128 60 - rt6 16061/17/16021 + - rt7 16071/17/16021 + - rt8 16081/17/16021 + 2001:db8::3/128 80 - rt6 16061/17/16031 + - rt7 16071/17/16031 + - rt8 16081/17/16031 + 2001:db8::4/128 50 - rt6 16061/17/16041 + - rt7 16071/17/16041 + - rt8 16081/17/16041 + 2001:db8::5/128 60 - rt6 16061/17/16051 + - rt7 16071/17/16051 + - rt8 16081/17/16051 test# test isis topology 9 root rt9 ti-lfa system-id rt8 P-space (self): @@ -2023,9 +2044,9 @@ rt3 TE-IS 50 rt5 - rt1(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.8/32 60 - rt5 16040/26 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.8/32 60 - rt5 16040/26/16080 P-space (self): rt1 @@ -2075,9 +2096,9 @@ rt3 TE-IS 50 rt5 - rt1(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::8/128 60 - rt5 16041/27 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::8/128 60 - rt5 16041/27/16081 test# test isis topology 10 root rt1 ti-lfa system-id rt2 P-space (self): @@ -2126,14 +2147,14 @@ rt2 TE-IS 100 rt3 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.2/32 110 - rt3 20060/18 - - rt4 16070/18 - 10.0.255.5/32 100 - rt3 20060/18 - - rt4 16070/18 - 10.0.255.8/32 90 - rt3 20060/18 - - rt4 16070/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.2/32 110 - rt3 20060/18/16020 + - rt4 16070/18/16020 + 10.0.255.5/32 100 - rt3 20060/18/16050 + - rt4 16070/18/16050 + 10.0.255.8/32 90 - rt3 20060/18/16080 + - rt4 16070/18/16080 P-space (self): rt3 @@ -2181,14 +2202,14 @@ rt2 TE-IS 100 rt3 - rt5(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::2/128 110 - rt3 20061/19 - - rt4 16071/19 - 2001:db8::5/128 100 - rt3 20061/19 - - rt4 16071/19 - 2001:db8::8/128 90 - rt3 20061/19 - - rt4 16071/19 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::2/128 110 - rt3 20061/19/16021 + - rt4 16071/19/16021 + 2001:db8::5/128 100 - rt3 20061/19/16051 + - rt4 16071/19/16051 + 2001:db8::8/128 90 - rt3 20061/19/16081 + - rt4 16071/19/16081 test# test isis topology 10 root rt1 ti-lfa system-id rt4 P-space (self): @@ -2232,10 +2253,10 @@ rt4 TE-IS 90 rt2 - rt7(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.4/32 100 - rt2 16080/20 - 10.0.255.7/32 90 - rt2 16080/20 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.4/32 100 - rt2 16080/20/16040 + 10.0.255.7/32 90 - rt2 16080/20/16070 P-space (self): rt2 @@ -2278,10 +2299,10 @@ rt4 TE-IS 90 rt2 - rt7(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::4/128 100 - rt2 16081/21 - 2001:db8::7/128 90 - rt2 16081/21 + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------- + 2001:db8::4/128 100 - rt2 16081/21/16041 + 2001:db8::7/128 90 - rt2 16081/21/16071 test# test isis topology 11 root rt2 ti-lfa system-id rt4 P-space (self): @@ -2322,13 +2343,13 @@ rt6 TE-IS 70 rt3 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.1/32 60 - rt1 - - 10.0.255.3/32 60 - rt3 - - 10.0.255.4/32 80 - rt3 16050 - 10.0.255.5/32 70 - rt3 - - 10.0.255.6/32 80 - rt3 - + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 60 - rt1 implicit-null + 10.0.255.3/32 60 - rt3 implicit-null + 10.0.255.4/32 80 - rt3 16050/16040 + 10.0.255.5/32 70 - rt3 16050 + 10.0.255.6/32 80 - rt3 16060 P-space (self): @@ -2368,13 +2389,13 @@ rt6 TE-IS 70 rt3 - rt5(4) IS-IS L1 IPv6 routing table: - Prefix Metric Interface Nexthop Label(s) - ------------------------------------------------------- - 2001:db8::1/128 60 - rt1 - - 2001:db8::3/128 60 - rt3 - - 2001:db8::4/128 80 - rt3 16051 - 2001:db8::5/128 70 - rt3 - - 2001:db8::6/128 80 - rt3 - + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 60 - rt1 implicit-null + 2001:db8::3/128 60 - rt3 implicit-null + 2001:db8::4/128 80 - rt3 16051/16041 + 2001:db8::5/128 70 - rt3 16051 + 2001:db8::6/128 80 - rt3 16061 test# test isis topology 12 root rt1 ti-lfa system-id rt3 ipv4-only P-space (self): @@ -2419,12 +2440,12 @@ rt3 TE-IS 740 rt2 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------------- - 10.0.255.3/32 750 - rt2 16080/17/16/16 - 10.0.255.5/32 350 - rt2 16080/17/16 - 10.0.255.7/32 150 - rt2 16080/17 - 10.0.255.9/32 160 - rt2 16080/17/18 + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------------- + 10.0.255.3/32 750 - rt2 16080/17/16/16/16030 + 10.0.255.5/32 350 - rt2 16080/17/16/16050 + 10.0.255.7/32 150 - rt2 16080/17/16070 + 10.0.255.9/32 160 - rt2 16080/17/18/16090 test# test isis topology 13 root rt1 ti-lfa system-id rt3 ipv4-only P-space (self): @@ -2461,12 +2482,12 @@ rt7 TE-IS 50 rt2 - rt5(4) IS-IS L1 IPv4 routing table: - Prefix Metric Interface Nexthop Label(s) - ----------------------------------------------------- - 10.0.255.3/32 40 - rt2 16040 - 10.0.255.5/32 50 - rt2 16040 - 10.0.255.6/32 50 - rt2 16040 - 10.0.255.7/32 60 - rt2 16040 + Prefix Metric Interface Nexthop Label(s) + -------------------------------------------------------- + 10.0.255.3/32 40 - rt2 16040/16030 + 10.0.255.5/32 50 - rt2 16040/16050 + 10.0.255.6/32 50 - rt2 16040/16060 + 10.0.255.7/32 60 - rt2 16040/16070 test# end. diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref index 6b4a59011a..53bf8cb445 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref @@ -290,5 +290,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref index 773f5e3d43..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref index 25a48c2bfc..7e6c72627a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref @@ -152,5 +152,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref index 773f5e3d43..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref index 05a8498693..71f9ebddfb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref @@ -250,5 +250,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref index d50952c6c4..304c0a475b 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref @@ -86,5 +86,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref index 73f517a6e5..94b3cb6d1a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref @@ -94,5 +94,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref index ac39920ee5..6500a47fbf 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref @@ -99,17 +99,17 @@ "inLabel":16060, "installed":true, "nexthops":[ - { - "type":"SR (IS-IS)", - "outLabel":16060, - "installed":true, - "nexthop":"10.0.1.2" - }, { "type":"SR (IS-IS)", "outLabel":17060, "installed":true, "nexthop":"10.0.1.3" + }, + { + "type":"SR (IS-IS)", + "outLabel":16060, + "installed":true, + "nexthop":"10.0.1.2" } ] }, @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref index 59213686f2..16d9358468 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref @@ -277,5 +277,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref index cdfae284ba..f2093a3fc0 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref @@ -111,5 +111,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref index 73f517a6e5..94b3cb6d1a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref @@ -94,5 +94,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref index 773f5e3d43..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref index 773f5e3d43..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref index 773f5e3d43..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref index 6b34d5e4ff..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref @@ -283,5 +283,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref index c507688f5b..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":30, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 17101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref index 25a48c2bfc..7e6c72627a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref @@ -152,5 +152,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.1.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.1.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-sw1" + }, + { + "type":"SR (IS-IS)", + "outLabel":17101, + "installed":true, + "interface":"eth-sw1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref index be037aba8b..109b94f7a1 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref @@ -343,5 +343,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref index a888198ac8..eae700ee47 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref @@ -144,5 +144,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref index 42fde2d77f..a32cd1d1bf 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -111,9 +111,9 @@ "nexthops":[ { "type":"SR (IS-IS)", - "outLabel":17050, + "outLabel":16050, "installed":true, - "nexthop":"10.0.1.3" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", @@ -123,9 +123,9 @@ }, { "type":"SR (IS-IS)", - "outLabel":16050, + "outLabel":17050, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.1.3" } ] }, @@ -135,9 +135,9 @@ "nexthops":[ { "type":"SR (IS-IS)", - "outLabel":17051, + "outLabel":16051, "installed":true, - "interface":"eth-sw1" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", @@ -147,9 +147,9 @@ }, { "type":"SR (IS-IS)", - "outLabel":16051, + "outLabel":17051, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-sw1" } ] }, @@ -161,13 +161,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -179,13 +179,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref index 33fbdba28f..387d3b43d7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref @@ -134,6 +134,27 @@ ] } ], + "10.0.2.0\/24":[ + { + "prefix":"10.0.2.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1" + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true + } + ] + } + ], "10.0.3.0\/24":[ { "prefix":"10.0.3.0\/24", @@ -255,5 +276,28 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref index 19837bc700..355436cbfc 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref index 29ec55a589..4cbdb9fda9 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref @@ -89,13 +89,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -143,13 +143,43 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref index a110c51077..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref @@ -316,5 +316,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref index cb426897ce..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref index 118ec89b5c..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -155,13 +155,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref index d31affeb59..16f49ffe46 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref @@ -269,5 +269,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref index d92df1918c..bde83c30d0 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref @@ -95,5 +95,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref index f1e18be26b..cbb0d5c695 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -128,5 +128,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref index a110c51077..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref @@ -316,5 +316,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref index cb426897ce..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref index 118ec89b5c..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -155,13 +155,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref index f378e41d8d..fbfcce10aa 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref @@ -310,5 +310,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref index d63e7ceba5..f747a96518 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref @@ -120,5 +120,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref index f1e18be26b..cbb0d5c695 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -128,5 +128,41 @@ "interface":"eth-sw1" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref index a110c51077..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref @@ -316,5 +316,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref index cb426897ce..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref index 118ec89b5c..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -155,13 +155,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref index a9b086a248..09ab6d4f8a 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref @@ -313,5 +313,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref index 1c61f91451..851275fbf7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref @@ -123,5 +123,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref index 0f0d24bbfb..87946aa7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref @@ -53,13 +53,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -71,13 +71,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -113,13 +113,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -131,13 +131,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref index a110c51077..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref @@ -316,5 +316,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref index cb426897ce..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref index 118ec89b5c..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -155,13 +155,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref index 2e4c20257f..fc82ada7e3 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref @@ -316,5 +316,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref index 19837bc700..355436cbfc 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref index 7c910fc6f6..05201724f4 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref @@ -77,13 +77,13 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -95,13 +95,13 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.2.4" }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.3.4" } ] }, @@ -155,13 +155,49 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-1" }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, + "interface":"eth-rt4-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4-2" } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref index 8d4fbec4b5..241f768859 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref @@ -343,5 +343,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref index 4e4961eaf0..dd78c7d318 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref @@ -53,15 +53,6 @@ "metric":30, "installed":true, "nexthops":[ - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ - 16041 - ] - }, { "fib":true, "afi":"ipv6", @@ -79,6 +70,15 @@ "labels":[ 16041 ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16041 + ] } ] } @@ -96,7 +96,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -105,7 +105,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -127,7 +127,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -136,7 +136,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -144,5 +144,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref index b7bdc3e4af..8c6fca7b57 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref @@ -73,12 +73,6 @@ "inLabel":17040, "installed":true, "nexthops":[ - { - "type":"SR (IS-IS)", - "outLabel":16040, - "installed":true, - "nexthop":"10.0.1.2" - }, { "type":"SR (IS-IS)", "outLabel":16040, @@ -90,6 +84,12 @@ "outLabel":16040, "installed":true, "nexthop":"10.0.4.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16040, + "installed":true, + "nexthop":"10.0.1.2" } ] }, @@ -97,12 +97,6 @@ "inLabel":17041, "installed":true, "nexthops":[ - { - "type":"SR (IS-IS)", - "outLabel":16041, - "installed":true, - "interface":"eth-sw1" - }, { "type":"SR (IS-IS)", "outLabel":16041, @@ -114,6 +108,12 @@ "outLabel":16041, "installed":true, "interface":"eth-rt5-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16041, + "installed":true, + "interface":"eth-sw1" } ] }, @@ -188,5 +188,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref index 9522b141b0..40a98ab7c6 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref index fb630bc68f..1fb50407bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref index 4aec3b6904..44ddc4bc14 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref index 46ebeb8ab9..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref index b2c774d493..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref index a1e64afd67..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref index 738aa17406..ed5cef8a5b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref @@ -276,5 +276,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref index b6423cd2b8..b33058c3bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -95,5 +95,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref index 1a2b8728e6..70cccc0f0b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref @@ -128,5 +128,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref index 46ebeb8ab9..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref index b2c774d493..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref index a1e64afd67..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref index 489b495bb1..3adcdce58c 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref @@ -317,5 +317,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref index 46ee7ba28e..863e26c30e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,16 +109,47 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true }, { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref index 1a2b8728e6..70cccc0f0b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref @@ -128,5 +128,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref index 46ebeb8ab9..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref index b2c774d493..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref index a1e64afd67..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref index 1e8c27c01f..7f6e05f08b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref @@ -320,5 +320,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref index d21700d407..f4770e2ac9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref @@ -75,7 +75,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -84,7 +84,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -106,7 +106,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -115,7 +115,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -123,5 +123,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref index e97e0d017b..cb49505f55 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref @@ -140,5 +140,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref index 46ebeb8ab9..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref index b2c774d493..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref index a1e64afd67..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref index 9522b141b0..40a98ab7c6 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref @@ -323,5 +323,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref index fb630bc68f..1fb50407bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref @@ -78,7 +78,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16051 @@ -87,7 +87,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16051 @@ -109,7 +109,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ 16061 @@ -118,7 +118,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ 16061 @@ -126,5 +126,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref index 4aec3b6904..44ddc4bc14 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref @@ -164,5 +164,41 @@ "interface":"eth-rt5-1" } ] + }, + "17100":{ + "inLabel":17100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.4.5" + } + ] + }, + "17101":{ + "inLabel":17101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5-1" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/isisd.conf b/tests/topotests/isis-sr-topo1/rt4/isisd.conf index 5a110b75fe..3852b1962b 100644 --- a/tests/topotests/isis-sr-topo1/rt4/isisd.conf +++ b/tests/topotests/isis-sr-topo1/rt4/isisd.conf @@ -45,5 +45,7 @@ router isis 1 segment-routing global-block 16000 23999 segment-routing node-msd 8 segment-routing prefix 4.4.4.4/32 index 40 no-php-flag + segment-routing prefix 10.10.10.10/32 index 100 no-php-flag n-flag-clear segment-routing prefix 2001:db8:1000::4/128 index 41 no-php-flag + segment-routing prefix 2001:db8:1000::10/128 index 101 no-php-flag n-flag-clear ! diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref index f06182b088..493f3ab60d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref @@ -319,5 +319,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref index f5772f2726..217a4a5379 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -71,6 +71,15 @@ "metric":30, "installed":true, "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt2-1", + "active":true, + "labels":[ + 16031 + ] + }, { "fib":true, "afi":"ipv6", @@ -88,15 +97,6 @@ "labels":[ 16031 ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-1", - "active":true, - "labels":[ - 16031 - ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref index b7fb69dcde..307403964a 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" }, { "type":"SR (IS-IS)", @@ -103,13 +103,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" }, { "type":"SR (IS-IS)", @@ -188,5 +188,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.6.5" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref index d7d42120a0..11bc948319 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref @@ -231,6 +231,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -273,5 +274,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref index 235c1facc6..844f6becf9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref index 86ceaf4883..f275056070 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref @@ -19,13 +19,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -49,13 +49,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -158,5 +158,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref index 4789f7268f..c2fbdeb30e 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref @@ -289,6 +289,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -331,5 +332,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref index 871b303cab..7f823b6896 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref index ff83c374f0..8dd37880d0 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref index d86562deb9..4dc0dd7cac 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref @@ -262,12 +262,14 @@ "metric":40, "nexthops":[ { + "fib":true, "ip":"10.0.2.2", "afi":"ipv4", "interfaceName":"eth-rt2-1", "active":true }, { + "fib":true, "ip":"10.0.3.2", "afi":"ipv4", "interfaceName":"eth-rt2-2", @@ -276,6 +278,21 @@ ] } ], + "10.0.7.0\/24":[ + { + "prefix":"10.0.7.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6" + } + ] + } + ], "10.0.8.0\/24":[ { "prefix":"10.0.8.0\/24", @@ -302,5 +319,33 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":40, + "nexthops":[ + { + "ip":"10.0.2.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-1", + "active":true, + "labels":[ + 16100 + ] + }, + { + "ip":"10.0.3.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-2", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref index c09f584641..34afda1966 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 @@ -105,7 +105,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16051 @@ -114,7 +114,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16051 diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref index 85c6c055c9..65336d88d1 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -137,13 +137,13 @@ "type":"SR (IS-IS)", "outLabel":16050, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16050, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -155,13 +155,42 @@ "type":"SR (IS-IS)", "outLabel":16051, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16051, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" + } + ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.2.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.3.2" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref index 3c7dfda0a3..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref @@ -289,6 +289,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -331,5 +332,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref index 38b51822dd..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref index 4e5638f34f..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref index 90f69c06b8..8b0ddd4ee5 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref @@ -283,6 +283,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -325,5 +326,22 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref index 04056ed873..94e1fac450 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref index 4df722be4f..cd47cfa3a7 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -128,5 +128,16 @@ "installed":true } ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref index 3c7dfda0a3..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref @@ -289,6 +289,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -331,5 +332,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref index 38b51822dd..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref index 4e5638f34f..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref index a3ac4ac109..f5ac45504e 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref @@ -283,6 +283,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -325,5 +326,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref index c59abbd2f5..1599c88122 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref @@ -12,13 +12,13 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true }, { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true } ] @@ -37,7 +37,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -46,7 +46,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -68,7 +68,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -77,7 +77,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref index 512c057b31..19b0beb164 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -140,5 +140,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref index 3c7dfda0a3..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref @@ -289,6 +289,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -331,5 +332,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref index 38b51822dd..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref index 4e5638f34f..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref index 73598e4605..a2b939a418 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref @@ -289,6 +289,7 @@ "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", @@ -331,5 +332,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref index 235c1facc6..844f6becf9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16011 @@ -43,7 +43,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16021 @@ -52,7 +52,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16021 @@ -74,7 +74,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -83,7 +83,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref index 5cdd99e425..5805bf3556 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -43,13 +43,13 @@ "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16020, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -61,13 +61,13 @@ "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16021, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -79,13 +79,13 @@ "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.2.2" }, { "type":"SR (IS-IS)", "outLabel":16030, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.3.2" } ] }, @@ -97,13 +97,13 @@ "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-1" }, { "type":"SR (IS-IS)", "outLabel":16031, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-2" } ] }, @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.7.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt4/zebra.conf b/tests/topotests/isis-sr-topo1/rt4/zebra.conf index 4945897e9d..5889901c56 100644 --- a/tests/topotests/isis-sr-topo1/rt4/zebra.conf +++ b/tests/topotests/isis-sr-topo1/rt4/zebra.conf @@ -8,7 +8,9 @@ debug zebra mpls ! interface lo ip address 4.4.4.4/32 + ip address 10.10.10.10/32 ipv6 address 2001:db8:1000::4/128 + ipv6 address 2001:db8:1000::10/128 ! interface eth-rt2-1 ip address 10.0.2.4/24 diff --git a/tests/topotests/isis-sr-topo1/rt5/isisd.conf b/tests/topotests/isis-sr-topo1/rt5/isisd.conf index 6845e5bb82..f7beea796c 100644 --- a/tests/topotests/isis-sr-topo1/rt5/isisd.conf +++ b/tests/topotests/isis-sr-topo1/rt5/isisd.conf @@ -45,5 +45,7 @@ router isis 1 segment-routing global-block 16000 23999 segment-routing node-msd 8 segment-routing prefix 5.5.5.5/32 index 50 no-php-flag + segment-routing prefix 10.10.10.10/32 index 100 no-php-flag n-flag-clear segment-routing prefix 2001:db8:1000::5/128 index 51 no-php-flag + segment-routing prefix 2001:db8:1000::10/128 index 101 no-php-flag n-flag-clear ! diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref index 8eaf40f236..0497bd8399 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref @@ -319,5 +319,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref index 9054c9c4af..99d1f773b7 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref @@ -188,5 +188,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.6.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref index a5a0bacaad..620f5eac67 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref @@ -274,6 +274,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -308,5 +323,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.8.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref index e43ef6671d..7cfea2a329 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref index 101b811d3b..19cdf9d896 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref @@ -281,6 +281,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -315,5 +330,24 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":30, + "nexthops":[ + { + "ip":"10.0.8.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref index 660e319a50..08f1635a39 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref index dff6c5f7eb..48b5e6491e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref @@ -254,6 +254,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -280,5 +295,33 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "distance":115, + "metric":40, + "nexthops":[ + { + "ip":"10.0.4.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-1", + "active":true, + "labels":[ + 17100 + ] + }, + { + "ip":"10.0.5.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-2", + "active":true, + "labels":[ + 17100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref index 9df3fc9ef6..9980058b12 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref @@ -164,5 +164,34 @@ "installed":true } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.5.3" + }, + { + "type":"SR (IS-IS)", + "outLabel":17100, + "installed":true, + "nexthop":"10.0.4.3" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref index 6b29ff2d44..156beef0f1 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref @@ -281,6 +281,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -301,17 +316,21 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref index 4d13108d7d..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref index cadb674ba3..dba5e8d8a2 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref @@ -275,6 +275,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -295,17 +310,19 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { + "fib":true, "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref index c60383093f..36c21b041f 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref @@ -128,5 +128,16 @@ "installed":true } ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref index 6b29ff2d44..156beef0f1 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref @@ -281,6 +281,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -301,17 +316,21 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref index 4d13108d7d..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref index 72b89ccf69..ece747bdac 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref @@ -275,6 +275,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -295,17 +310,21 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref index 2b1e67ea71..c98da7effd 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref @@ -140,5 +140,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref index 6b29ff2d44..156beef0f1 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref @@ -281,6 +281,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -301,17 +316,21 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref index 4d13108d7d..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref index cc37894d67..90588c6708 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref @@ -281,6 +281,21 @@ ] } ], + "10.0.6.0\/24":[ + { + "prefix":"10.0.6.0\/24", + "protocol":"isis", + "distance":115, + "metric":20, + "nexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4" + } + ] + } + ], "10.0.7.0\/24":[ { "prefix":"10.0.7.0\/24", @@ -301,17 +316,21 @@ ] } ], - "10.0.8.0\/24":[ + "10.10.10.10\/32":[ { - "prefix":"10.0.8.0\/24", + "prefix":"10.10.10.10\/32", "protocol":"isis", "distance":115, - "metric":20, + "metric":30, "nexthops":[ { "ip":"10.0.8.6", "afi":"ipv4", - "interfaceName":"eth-rt6" + "interfaceName":"eth-rt6", + "active":true, + "labels":[ + 18100 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref index e43ef6671d..7cfea2a329 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref @@ -176,5 +176,28 @@ "interface":"eth-rt6" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":18100, + "installed":true, + "nexthop":"10.0.8.6" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt5/zebra.conf b/tests/topotests/isis-sr-topo1/rt5/zebra.conf index 4cfea1a59f..a0c8f2cd7e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/zebra.conf +++ b/tests/topotests/isis-sr-topo1/rt5/zebra.conf @@ -8,7 +8,9 @@ debug zebra mpls ! interface lo ip address 5.5.5.5/32 + ip address 10.10.10.10/32 ipv6 address 2001:db8:1000::5/128 + ipv6 address 2001:db8:1000::10/128 ! interface eth-rt3-1 ip address 10.0.4.5/24 diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref index 324b71f7b8..7b62b0a9c6 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref @@ -287,5 +287,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref index 970251fe8a..2c526e74f0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref index 9d0c331ff2..d430ef5a33 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref index a79406b300..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref index e4df0d846e..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref index 970251fe8a..2c526e74f0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "16100":{ + "inLabel":16100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "16101":{ + "inLabel":16101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref index e4df0d846e..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref index a79406b300..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref index c200a9f476..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref @@ -14,14 +14,20 @@ "ip":"10.0.7.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true + "active":true, + "labels":[ + 16010 + ] }, { "fib":true, "ip":"10.0.8.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true + "active":true, + "labels":[ + 16010 + ] } ] } @@ -41,7 +47,10 @@ "ip":"10.0.7.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true + "active":true, + "labels":[ + 16020 + ] } ] } @@ -61,7 +70,10 @@ "ip":"10.0.8.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true + "active":true, + "labels":[ + 16030 + ] } ] } @@ -81,7 +93,10 @@ "ip":"10.0.7.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true + "active":true, + "labels":[ + 16040 + ] } ] } @@ -101,7 +116,10 @@ "ip":"10.0.8.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true + "active":true, + "labels":[ + 16050 + ] } ] } @@ -262,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref index 2bf4b70be8..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref @@ -12,14 +12,20 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", - "active":true + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16011 + ] }, { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", - "active":true + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16011 + ] } ] } @@ -38,7 +44,10 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true + "active":true, + "labels":[ + 16021 + ] } ] } @@ -57,7 +66,10 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-rt5", - "active":true + "active":true, + "labels":[ + 16031 + ] } ] } @@ -76,7 +88,10 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true + "active":true, + "labels":[ + 16041 + ] } ] } @@ -95,7 +110,41 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-rt5", - "active":true + "active":true, + "labels":[ + 16051 + ] + } + ] + } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref index 2c63c08510..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref @@ -1,2 +1,170 @@ { + "18010":{ + "inLabel":18010, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18011":{ + "inLabel":18011, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, + "interface":"eth-rt4" + } + ] + }, + "18020":{ + "inLabel":18020, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16020, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18021":{ + "inLabel":18021, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16021, + "installed":true, + "interface":"eth-rt4" + } + ] + }, + "18030":{ + "inLabel":18030, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16030, + "installed":true, + "nexthop":"10.0.8.5" + } + ] + }, + "18031":{ + "inLabel":18031, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16031, + "installed":true, + "interface":"eth-rt5" + } + ] + }, + "18040":{ + "inLabel":18040, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16040, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18041":{ + "inLabel":18041, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16041, + "installed":true, + "interface":"eth-rt4" + } + ] + }, + "18050":{ + "inLabel":18050, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16050, + "installed":true, + "nexthop":"10.0.8.5" + } + ] + }, + "18051":{ + "inLabel":18051, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16051, + "installed":true, + "interface":"eth-rt5" + } + ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] + } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref index e4df0d846e..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref index a79406b300..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref index b21e5db928..1787988207 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref @@ -274,5 +274,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref index dfbb1954b8..367d0ed173 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref @@ -12,13 +12,13 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true }, { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true } ] @@ -111,5 +111,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref index 43d771bcbd..b44dda298e 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref @@ -94,5 +94,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref index e4df0d846e..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref index a79406b300..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref b/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref index e4df0d846e..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref @@ -280,5 +280,38 @@ } ] } + ], + "10.10.10.10\/32":[ + { + "prefix":"10.10.10.10\/32", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "ip":"10.0.7.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16100 + ] + }, + { + "fib":true, + "ip":"10.0.8.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16100 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref b/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref index eee9dea4d3..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -117,5 +117,36 @@ } ] } + ], + "2001:db8:1000::10\/128":[ + { + "prefix":"2001:db8:1000::10\/128", + "protocol":"isis", + "selected":true, + "destSelected":true, + "distance":115, + "metric":20, + "installed":true, + "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16101 + ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16101 + ] + } + ] + } ] } diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref b/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref index a79406b300..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref +++ b/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref @@ -130,5 +130,41 @@ "interface":"eth-rt5" } ] + }, + "18100":{ + "inLabel":18100, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.8.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16100, + "installed":true, + "nexthop":"10.0.7.4" + } + ] + }, + "18101":{ + "inLabel":18101, + "installed":true, + "nexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16101, + "installed":true, + "interface":"eth-rt4" + } + ] } } diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff index ccea94c42c..1a9307ddb9 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step3/show_ip_route.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step4/show_ip_route.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step3/show_ip_route.ref 2020-09-25 17:48:05.062911204 -0300 ++++ rt1/step4/show_ip_route.ref 2020-09-25 17:49:01.563647190 -0300 @@ -60,10 +60,7 @@ "ip":"10.0.1.2", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff index 13e098858a..f5036aeda8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step3/show_ipv6_route.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step4/show_ipv6_route.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step3/show_ipv6_route.ref 2020-09-25 17:48:06.358928078 -0300 ++++ rt1/step4/show_ipv6_route.ref 2020-09-25 17:49:02.791663194 -0300 @@ -57,10 +57,7 @@ "fib":true, "afi":"ipv6", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff index 9531fbc2f0..30c612b544 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step3/show_mpls_table.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step4/show_mpls_table.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step3/show_mpls_table.ref 2020-09-25 17:48:03.782894539 -0300 ++++ rt1/step4/show_mpls_table.ref 2020-09-25 17:49:00.343631290 -0300 @@ -47,30 +47,6 @@ } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff index 2a2cb762a7..79a452ef69 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step4/show_ip_route.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step5/show_ip_route.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step4/show_ip_route.ref 2020-09-25 17:49:01.563647190 -0300 ++++ rt1/step5/show_ip_route.ref 2020-09-25 17:50:12.144567593 -0300 @@ -60,7 +60,10 @@ "ip":"10.0.1.2", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff index 94bf3c1db3..805266aaaa 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step4/show_ipv6_route.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step5/show_ipv6_route.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step4/show_ipv6_route.ref 2020-09-25 17:49:02.791663194 -0300 ++++ rt1/step5/show_ipv6_route.ref 2020-09-25 17:50:13.428584346 -0300 @@ -57,7 +57,10 @@ "fib":true, "afi":"ipv6", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff index 0fd252e455..d7ab66ee18 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step4/show_mpls_table.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step5/show_mpls_table.ref 2020-08-31 22:42:48.831561460 -0300 +--- rt1/step4/show_mpls_table.ref 2020-09-25 17:49:00.343631290 -0300 ++++ rt1/step5/show_mpls_table.ref 2020-09-25 17:50:10.868550944 -0300 @@ -47,6 +47,30 @@ } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff index 22f7ce9a2e..9aa0cd2e39 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step6/show_ip_route.ref 2020-08-31 22:42:48.831561460 -0300 -+++ rt1/step7/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step6/show_ip_route.ref 2020-09-25 17:51:15.105389461 -0300 ++++ rt1/step7/show_ip_route.ref 2020-09-25 17:52:02.014002243 -0300 @@ -83,10 +83,7 @@ "ip":"10.0.1.3", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff index 4b07bd7762..52fd7caf91 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step6/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step7/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step6/show_ipv6_route.ref 2020-09-25 17:51:16.345405655 -0300 ++++ rt1/step7/show_ipv6_route.ref 2020-09-25 17:52:03.230018133 -0300 @@ -79,10 +79,7 @@ "fib":true, "afi":"ipv6", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff index b62ca10fa3..53332be569 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step6/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step7/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step6/show_mpls_table.ref 2020-09-25 17:51:13.861373215 -0300 ++++ rt1/step7/show_mpls_table.ref 2020-09-25 17:52:00.769985988 -0300 @@ -71,30 +71,6 @@ } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff index 2bf88c8346..af9f72e718 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step7/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step8/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step7/show_ip_route.ref 2020-09-25 17:52:02.014002243 -0300 ++++ rt1/step8/show_ip_route.ref 2020-09-25 17:53:20.003021800 -0300 @@ -83,7 +83,10 @@ "ip":"10.0.1.3", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff index a01038a7a8..b733b33ed9 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step7/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step8/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step7/show_ipv6_route.ref 2020-09-25 17:52:03.230018133 -0300 ++++ rt1/step8/show_ipv6_route.ref 2020-09-25 17:53:21.239037966 -0300 @@ -79,7 +79,10 @@ "fib":true, "afi":"ipv6", diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff index e3f8361315..b6f8c962f0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step7/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step8/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step7/show_mpls_table.ref 2020-09-25 17:52:00.769985988 -0300 ++++ rt1/step8/show_mpls_table.ref 2020-09-25 17:53:18.671004379 -0300 @@ -71,6 +71,30 @@ } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff index c10f97b86a..1d96341557 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step8/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step9/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step8/show_ip_route.ref 2020-09-25 17:53:20.003021800 -0300 ++++ rt1/step9/show_ip_route.ref 2020-09-25 17:54:37.700038367 -0300 @@ -85,7 +85,7 @@ "interfaceName":"eth-sw1", "active":true, diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff index 7a909f6410..232b823ac2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step8/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step9/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step8/show_ipv6_route.ref 2020-09-25 17:53:21.239037966 -0300 ++++ rt1/step9/show_ipv6_route.ref 2020-09-25 17:54:38.912054230 -0300 @@ -81,7 +81,7 @@ "interfaceName":"eth-sw1", "active":true, diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff index b794a674f8..7f0d50f5f2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt1/step8/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt1/step9/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt1/step8/show_mpls_table.ref 2020-09-25 17:53:18.671004379 -0300 ++++ rt1/step9/show_mpls_table.ref 2020-09-25 17:54:36.428021718 -0300 @@ -71,30 +71,6 @@ } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref index 7c6f6f8b65..23e07b7cda 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref @@ -31,7 +31,8 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ - 16050 + 16050, + 16010 ] }, { @@ -40,7 +41,8 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ - 16050 + 16050, + 16010 ] } ] @@ -78,7 +80,8 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ - 16050 + 16050, + 16030 ] }, { @@ -87,7 +90,8 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ - 16050 + 16050, + 16030 ] } ] @@ -109,6 +113,9 @@ "afi":"ipv4", "interfaceName":"eth-rt4-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -119,10 +126,25 @@ "afi":"ipv4", "interfaceName":"eth-rt4-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16050, + 16040 + ] + } ] } ], @@ -185,6 +207,9 @@ "afi":"ipv4", "interfaceName":"eth-rt4-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16060 ] @@ -195,10 +220,21 @@ "afi":"ipv4", "interfaceName":"eth-rt4-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16060 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true + } ] } ], @@ -233,13 +269,19 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true + "active":true, + "labels":[ + 16050 + ] }, { "ip":"10.0.3.4", "afi":"ipv4", "interfaceName":"eth-rt4-2", - "active":true + "active":true, + "labels":[ + 16050 + ] } ] } @@ -254,13 +296,30 @@ { "ip":"10.0.2.4", "afi":"ipv4", - "interfaceName":"eth-rt4-1" + "interfaceName":"eth-rt4-1", + "backupIndex":[ + 0 + ] }, { "ip":"10.0.3.4", "afi":"ipv4", "interfaceName":"eth-rt4-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16050 + ] } ] } @@ -276,12 +335,29 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "ip":"10.0.3.4", "afi":"ipv4", - "interfaceName":"eth-rt4-2" + "interfaceName":"eth-rt4-2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16050 + ] } ] } @@ -377,13 +453,27 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.3.4", "afi":"ipv4", "interfaceName":"eth-rt4-2", + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", "active":true } ] @@ -404,14 +494,31 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.3.4", "afi":"ipv4", "interfaceName":"eth-rt4-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.3", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16050 + ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref index 68569b7265..d9bd04ef30 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref @@ -29,7 +29,8 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ - 16051 + 16051, + 16011 ] }, { @@ -37,7 +38,8 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ - 16051 + 16051, + 16011 ] } ] @@ -73,7 +75,8 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ - 16051 + 16051, + 16031 ] }, { @@ -81,7 +84,8 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ - 16051 + 16051, + 16031 ] } ] @@ -100,8 +104,11 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4-1", + "interfaceName":"eth-rt4-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -109,12 +116,26 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4-2", + "interfaceName":"eth-rt4-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16051, + 16041 + ] + } ] } ], @@ -128,15 +149,6 @@ "metric":30, "installed":true, "nexthops":[ - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ - 16051 - ] - }, { "fib":true, "afi":"ipv6", @@ -154,6 +166,15 @@ "labels":[ 16051 ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ + 16051 + ] } ] } @@ -171,8 +192,11 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4-1", + "interfaceName":"eth-rt4-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16061 ] @@ -180,12 +204,22 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4-2", + "interfaceName":"eth-rt4-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16061 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true + } ] } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref index 4c18e20472..cd2f879593 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref +++ b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref @@ -119,13 +119,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.3.4", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.2.4", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16050, + "nexthop":"10.0.1.3" } ] }, @@ -137,13 +150,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16051, + "interface":"eth-sw1" } ] }, @@ -203,13 +229,26 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.3.4" + "nexthop":"10.0.3.4", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.2.4" + "nexthop":"10.0.2.4", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.1.3" } ] }, @@ -221,13 +260,26 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-2" + "interface":"eth-rt4-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt4-1" + "interface":"eth-rt4-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-sw1" } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff index 24237769e9..22b896f684 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step1/show_ip_route.ref 2020-08-31 15:36:25.999825589 -0300 -+++ rt2/step2/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,34 +15,10 @@ +--- rt2/step1/show_ip_route.ref 2020-09-25 17:46:27.537642781 -0300 ++++ rt2/step2/show_ip_route.ref 2020-09-25 17:46:57.306029668 -0300 +@@ -15,36 +15,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - }, - { @@ -29,13 +30,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - } ] } ], -@@ -62,34 +38,10 @@ +@@ -64,36 +38,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - }, - { @@ -64,13 +67,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - } ] } ], -@@ -212,34 +164,12 @@ +@@ -248,40 +196,12 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -96,18 +100,24 @@ - "ip":"10.0.2.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-1", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] - }, - { - "ip":"10.0.3.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-2", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] + "interfaceName":"eth-sw1" } ] } -@@ -301,24 +231,6 @@ +@@ -377,24 +297,6 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -132,7 +142,7 @@ "active":true } ] -@@ -339,24 +251,6 @@ +@@ -415,24 +317,6 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff index 7c9f1e965a..08c7d2b1fc 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step1/show_ipv6_route.ref 2020-08-31 15:36:25.999825589 -0300 -+++ rt2/step2/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,32 +14,10 @@ +--- rt2/step1/show_ipv6_route.ref 2020-09-25 17:46:28.865660035 -0300 ++++ rt2/step2/show_ipv6_route.ref 2020-09-25 17:46:58.514045373 -0300 +@@ -14,34 +14,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - }, - { @@ -27,13 +28,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - } ] } ], -@@ -58,32 +36,10 @@ +@@ -60,34 +36,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - }, - { @@ -60,7 +63,8 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff index 1c3e037b96..4feb927156 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step1/show_mpls_table.ref 2020-08-31 15:36:25.999825589 -0300 -+++ rt2/step2/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step1/show_mpls_table.ref 2020-09-25 17:46:26.261626203 -0300 ++++ rt2/step2/show_mpls_table.ref 2020-09-25 17:46:56.086013807 -0300 @@ -7,23 +7,7 @@ "type":"SR (IS-IS)", "outLabel":3, diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff index 4613c2c63d..af1cebc76d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step2/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step3/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,10 +15,34 @@ +--- rt2/step2/show_ip_route.ref 2020-09-25 17:46:57.306029668 -0300 ++++ rt2/step3/show_ip_route.ref 2020-09-25 17:48:05.274913964 -0300 +@@ -15,10 +15,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + }, + { @@ -29,13 +30,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + } ] } ], -@@ -38,10 +62,34 @@ +@@ -38,10 +64,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + }, + { @@ -64,13 +67,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + } ] } ], -@@ -164,12 +212,34 @@ +@@ -196,12 +248,40 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -97,17 +101,23 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] } ] } -@@ -231,6 +301,24 @@ +@@ -297,6 +377,24 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -132,7 +142,7 @@ "active":true } ] -@@ -251,6 +339,24 @@ +@@ -317,6 +415,24 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff index 84b5283360..9809c316e8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step2/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step3/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,10 +14,32 @@ +--- rt2/step2/show_ipv6_route.ref 2020-09-25 17:46:58.514045373 -0300 ++++ rt2/step3/show_ipv6_route.ref 2020-09-25 17:48:06.570930838 -0300 +@@ -14,10 +14,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + }, + { @@ -27,13 +28,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + } ] } ], -@@ -36,10 +58,32 @@ +@@ -36,10 +60,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + }, + { @@ -60,7 +63,8 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff index 5dc90e442c..180323e4c8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step2/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step3/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step2/show_mpls_table.ref 2020-09-25 17:46:56.086013807 -0300 ++++ rt2/step3/show_mpls_table.ref 2020-09-25 17:48:03.994897300 -0300 @@ -7,7 +7,23 @@ "type":"SR (IS-IS)", "outLabel":3, diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff index f703db555f..12d45bbe07 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step3/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step4/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,34 +15,10 @@ +--- rt2/step3/show_ip_route.ref 2020-09-25 17:48:05.274913964 -0300 ++++ rt2/step4/show_ip_route.ref 2020-09-25 17:49:01.763649797 -0300 +@@ -15,36 +15,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - }, - { @@ -29,13 +30,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - } ] } ], -@@ -62,34 +38,10 @@ +@@ -64,36 +38,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - }, - { @@ -64,19 +67,50 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - } ] } ], -@@ -108,20 +60,14 @@ +@@ -115,9 +63,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], +- "labels":[ +- 3 + ] + }, + { +@@ -128,9 +73,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], +- "labels":[ +- 3 + ] + } + ], +@@ -141,8 +83,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050, +- 16040 ++ 16050 + ] + } + ] +@@ -173,20 +114,14 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 3 +- 16050 - ] + "active":true }, @@ -87,54 +121,33 @@ "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 3 +- 16050 - ] + "active":true } ] } -@@ -153,7 +99,7 @@ - "interfaceName":"eth-rt4-1", +@@ -209,9 +144,6 @@ "active":true, - "labels":[ -- 16050 -+ 3 + "backupIndex":[ + 0 +- ], +- "labels":[ +- 16060 ] }, { -@@ -163,7 +109,7 @@ - "interfaceName":"eth-rt4-2", +@@ -222,9 +154,6 @@ "active":true, - "labels":[ -- 16050 -+ 3 + "backupIndex":[ + 0 +- ], +- "labels":[ +- 16060 ] } - ] -@@ -184,20 +130,14 @@ - "ip":"10.0.2.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-1", -- "active":true, -- "labels":[ -- 16060 -- ] -+ "active":true - }, - { - "fib":true, - "ip":"10.0.3.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-2", -- "active":true, -- "labels":[ -- 16060 -- ] -+ "active":true - } - ] - } -@@ -212,34 +152,12 @@ + ], +@@ -248,40 +177,12 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -160,13 +173,19 @@ - "ip":"10.0.2.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-1", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] - }, - { - "ip":"10.0.3.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-2", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] + "interfaceName":"eth-sw1" } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff index fdd4a5166e..fdf658d59d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step3/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step4/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,32 +14,10 @@ +--- rt2/step3/show_ipv6_route.ref 2020-09-25 17:48:06.570930838 -0300 ++++ rt2/step4/show_ipv6_route.ref 2020-09-25 17:49:02.995665853 -0300 +@@ -14,34 +14,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - }, - { @@ -27,13 +28,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - } ] } ], -@@ -58,32 +36,10 @@ +@@ -60,34 +36,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - }, - { @@ -60,71 +63,82 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - } ] } ], -@@ -101,19 +57,13 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-1", -- "active":true, +@@ -108,9 +60,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], - "labels":[ - 3 + ] + }, + { +@@ -120,9 +69,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], +- "labels":[ +- 3 + ] + } + ], +@@ -132,8 +78,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16051, +- 16041 ++ 16051 + ] + } + ] +@@ -162,19 +107,13 @@ + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-2", +- "active":true, +- "labels":[ +- 16051 - ] + "active":true }, { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4-2", + "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 3 +- 16051 - ] + "active":true } ] } -@@ -134,7 +84,7 @@ - "interfaceName":"eth-rt4-1", +@@ -196,9 +135,6 @@ "active":true, - "labels":[ -- 16051 -+ 3 + "backupIndex":[ + 0 +- ], +- "labels":[ +- 16061 ] }, { -@@ -152,7 +102,7 @@ - "interfaceName":"eth-rt4-2", +@@ -208,9 +144,6 @@ "active":true, - "labels":[ -- 16051 -+ 3 + "backupIndex":[ + 0 +- ], +- "labels":[ +- 16061 ] } - ] -@@ -172,19 +122,13 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-1", -- "active":true, -- "labels":[ -- 16061 -- ] -+ "active":true - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-2", -- "active":true, -- "labels":[ -- 16061 -- ] -+ "active":true - } - ] - } + ], diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff index dcc4532e54..a78f79c576 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step3/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step4/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step3/show_mpls_table.ref 2020-09-25 17:48:03.994897300 -0300 ++++ rt2/step4/show_mpls_table.ref 2020-09-25 17:49:00.551634001 -0300 @@ -7,23 +7,7 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -75,7 +75,7 @@ } ] }, -@@ -91,59 +43,7 @@ +@@ -91,84 +43,6 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, @@ -107,13 +107,26 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.3.4" +- "nexthop":"10.0.3.4", +- "backupIndex":[ +- 0 +- ] - }, - { - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.2.4" +- "nexthop":"10.0.2.4", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16050, +- "nexthop":"10.0.1.3" - } - ] - }, @@ -125,88 +138,63 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt4-2" +- "interface":"eth-rt4-2", +- "backupIndex":[ +- 0 +- ] - }, - { - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt4-1" -+ "interface":"eth-sw1" - } - ] - }, -@@ -153,13 +53,13 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16050, -+ "outLabel":3, - "installed":true, - "nexthop":"10.0.3.4" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16050, -+ "outLabel":3, - "installed":true, - "nexthop":"10.0.2.4" - }, -@@ -177,13 +77,13 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", +- "interface":"eth-rt4-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", - "outLabel":16051, -+ "outLabel":3, - "installed":true, - "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16051, -+ "outLabel":3, - "installed":true, - "interface":"eth-rt4-1" - }, -@@ -194,41 +94,5 @@ "interface":"eth-sw1" } ] -- }, -- "16060":{ -- "inLabel":16060, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16060, -- "installed":true, +@@ -181,18 +55,6 @@ + "type":"SR (IS-IS)", + "outLabel":16050, + "installed":true, - "nexthop":"10.0.3.4" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16060, +- "outLabel":16050, - "installed":true, - "nexthop":"10.0.2.4" -- } -- ] -- }, -- "16061":{ -- "inLabel":16061, -- "installed":true, -- "nexthops":[ +- }, - { - "type":"SR (IS-IS)", -- "outLabel":16061, +- "outLabel":16050, +- "installed":true, + "nexthop":"10.0.1.3" + } + ] +@@ -204,18 +66,6 @@ + { + "type":"SR (IS-IS)", + "outLabel":16051, - "installed":true, - "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16061, +- "outLabel":16051, - "installed":true, - "interface":"eth-rt4-1" -- } -- ] - } - } +- }, +- { +- "type":"SR (IS-IS)", +- "outLabel":16051, + "installed":true, + "interface":"eth-sw1" + } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff index 22a5cb6579..7d20fad3f4 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step4/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step5/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,10 +15,34 @@ +--- rt2/step4/show_ip_route.ref 2020-09-25 17:49:01.763649797 -0300 ++++ rt2/step5/show_ip_route.ref 2020-09-25 17:50:12.360570411 -0300 +@@ -15,10 +15,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + }, + { @@ -29,13 +30,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + } ] } ], -@@ -38,10 +62,34 @@ +@@ -38,10 +64,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + }, + { @@ -64,20 +67,51 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + } ] } ], -@@ -60,14 +108,20 @@ +@@ -63,6 +115,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 3 + ] + }, + { +@@ -73,6 +128,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 3 + ] + } + ], +@@ -83,7 +141,8 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050 ++ 16050, ++ 16040 + ] + } + ] +@@ -114,14 +173,20 @@ "ip":"10.0.2.4", "afi":"ipv4", "interfaceName":"eth-rt4-1", - "active":true + "active":true, + "labels":[ -+ 3 ++ 16050 + ] }, { @@ -88,53 +122,32 @@ - "active":true + "active":true, + "labels":[ -+ 3 ++ 16050 + ] } ] } -@@ -99,7 +153,7 @@ - "interfaceName":"eth-rt4-1", +@@ -144,6 +209,9 @@ "active":true, - "labels":[ -- 3 -+ 16050 + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 16060 ] }, { -@@ -109,7 +163,7 @@ - "interfaceName":"eth-rt4-2", +@@ -154,6 +222,9 @@ "active":true, - "labels":[ -- 3 -+ 16050 + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 16060 ] } - ] -@@ -130,14 +184,20 @@ - "ip":"10.0.2.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16060 -+ ] - }, - { - "fib":true, - "ip":"10.0.3.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16060 -+ ] - } - ] - } -@@ -152,12 +212,34 @@ + ], +@@ -177,12 +248,40 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -161,13 +174,19 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff index 819a153f7a..9330964338 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step4/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step5/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,10 +14,32 @@ +--- rt2/step4/show_ipv6_route.ref 2020-09-25 17:49:02.995665853 -0300 ++++ rt2/step5/show_ipv6_route.ref 2020-09-25 17:50:13.636587060 -0300 +@@ -14,10 +14,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + }, + { @@ -27,13 +28,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + } ] } ], -@@ -36,10 +58,32 @@ +@@ -36,10 +60,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + }, + { @@ -60,71 +63,82 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + } ] } ], -@@ -57,13 +101,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-1", -- "active":true -+ "active":true, +@@ -60,6 +108,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], + "labels":[ + 3 -+ ] + ] }, { +@@ -69,6 +120,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 3 + ] + } + ], +@@ -78,7 +132,8 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16051 ++ 16051, ++ 16041 + ] + } + ] +@@ -107,13 +162,19 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-rt4-2", - "active":true + "active":true, + "labels":[ -+ 3 ++ 16051 ++ ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", +- "active":true ++ "active":true, ++ "labels":[ ++ 16051 + ] } ] } -@@ -84,7 +134,7 @@ - "interfaceName":"eth-rt4-1", +@@ -135,6 +196,9 @@ "active":true, - "labels":[ -- 3 -+ 16051 + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 16061 ] }, { -@@ -102,7 +152,7 @@ - "interfaceName":"eth-rt4-2", +@@ -144,6 +208,9 @@ "active":true, - "labels":[ -- 3 -+ 16051 + "backupIndex":[ + 0 ++ ], ++ "labels":[ ++ 16061 ] } - ] -@@ -122,13 +172,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16061 -+ ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt4-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16061 -+ ] - } - ] - } + ], diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff index 7f851effad..b1e44a727f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step4/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step5/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step4/show_mpls_table.ref 2020-09-25 17:49:00.551634001 -0300 ++++ rt2/step5/show_mpls_table.ref 2020-09-25 17:50:11.068553553 -0300 @@ -7,7 +7,23 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -75,11 +75,10 @@ } ] }, -@@ -43,12 +91,28 @@ +@@ -43,6 +91,84 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, -- "interface":"eth-sw1" + "interface":"eth-sw1", + "backupIndex":[ + 0, @@ -97,20 +96,37 @@ + "type":"SR (IS-IS)", + "outLabel":16051, + "interface":"eth-rt4-2" - } - ] - }, -- "16050":{ -- "inLabel":16050, ++ } ++ ] ++ }, + "16040":{ + "inLabel":16040, - "installed":true, - "nexthops":[ - { -@@ -62,6 +126,42 @@ - "outLabel":3, - "installed":true, - "nexthop":"10.0.2.4" ++ "installed":true, ++ "nexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":3, ++ "installed":true, ++ "nexthop":"10.0.3.4", ++ "backupIndex":[ ++ 0 ++ ] ++ }, ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":3, ++ "installed":true, ++ "nexthop":"10.0.2.4", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16050, ++ "nexthop":"10.0.1.3" + } + ] + }, @@ -122,89 +138,63 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "interface":"eth-rt4-2" ++ "interface":"eth-rt4-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "interface":"eth-rt4-1" ++ "interface":"eth-rt4-1", ++ "backupIndex":[ ++ 0 ++ ] + } -+ ] -+ }, -+ "16050":{ -+ "inLabel":16050, -+ "installed":true, -+ "nexthops":[ ++ ], ++ "backupNexthops":[ + { + "type":"SR (IS-IS)", -+ "outLabel":16050, -+ "installed":true, -+ "nexthop":"10.0.3.4" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16050, -+ "installed":true, -+ "nexthop":"10.0.2.4" - }, - { - "type":"SR (IS-IS)", -@@ -77,13 +177,13 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":3, + "outLabel":16051, - "installed":true, - "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", -- "outLabel":3, -+ "outLabel":16051, - "installed":true, - "interface":"eth-rt4-1" - }, -@@ -94,5 +194,41 @@ "interface":"eth-sw1" } ] -+ }, -+ "16060":{ -+ "inLabel":16060, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16060, -+ "installed":true, +@@ -55,6 +181,18 @@ + "type":"SR (IS-IS)", + "outLabel":16050, + "installed":true, + "nexthop":"10.0.3.4" + }, + { + "type":"SR (IS-IS)", -+ "outLabel":16060, ++ "outLabel":16050, + "installed":true, + "nexthop":"10.0.2.4" -+ } -+ ] -+ }, -+ "16061":{ -+ "inLabel":16061, -+ "installed":true, -+ "nexthops":[ ++ }, + { + "type":"SR (IS-IS)", -+ "outLabel":16061, ++ "outLabel":16050, ++ "installed":true, + "nexthop":"10.0.1.3" + } + ] +@@ -66,6 +204,18 @@ + { + "type":"SR (IS-IS)", + "outLabel":16051, + "installed":true, + "interface":"eth-rt4-2" + }, + { + "type":"SR (IS-IS)", -+ "outLabel":16061, ++ "outLabel":16051, + "installed":true, + "interface":"eth-rt4-1" -+ } -+ ] - } - } ++ }, ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16051, + "installed":true, + "interface":"eth-sw1" + } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff index 109ab8ea6a..c92195d704 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step6/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step7/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,34 +15,10 @@ +--- rt2/step6/show_ip_route.ref 2020-09-25 17:51:15.313392177 -0300 ++++ rt2/step7/show_ip_route.ref 2020-09-25 17:52:02.210004805 -0300 +@@ -15,36 +15,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - }, - { @@ -29,13 +30,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16010 - ] - } ] } ], -@@ -62,34 +38,10 @@ +@@ -64,36 +38,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - }, - { @@ -64,13 +67,50 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16050 +- 16050, +- 16030 - ] - } ] } ], -@@ -141,30 +93,21 @@ +@@ -113,9 +61,6 @@ + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -126,25 +71,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.3", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16050, +- 16040 +- ] +- } + ] + } + ], +@@ -163,30 +93,21 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -104,7 +144,7 @@ } ] } -@@ -212,34 +155,12 @@ +@@ -248,40 +169,12 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -130,14 +170,119 @@ - "ip":"10.0.2.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-1", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] - }, - { - "ip":"10.0.3.4", - "afi":"ipv4", - "interfaceName":"eth-rt4-2", -- "active":true +- "active":true, +- "labels":[ +- 16050 +- ] + "interfaceName":"eth-sw1" } ] } +@@ -296,30 +189,13 @@ + { + "ip":"10.0.2.4", + "afi":"ipv4", +- "interfaceName":"eth-rt4-1", +- "backupIndex":[ +- 0 +- ] ++ "interfaceName":"eth-rt4-1" + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.3", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16050 +- ] ++ "active":true + } + ] + } +@@ -335,29 +211,12 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", +- "interfaceName":"eth-rt4-2", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.3", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16050 +- ] ++ "interfaceName":"eth-rt4-2" + } + ] + } +@@ -494,31 +353,14 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.3", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16050 +- ] ++ "active":true + } + ] + } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff index 871fd98b7e..140c7b08bf 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step6/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step7/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,32 +14,10 @@ +--- rt2/step6/show_ipv6_route.ref 2020-09-25 17:51:16.549408319 -0300 ++++ rt2/step7/show_ipv6_route.ref 2020-09-25 17:52:03.438020851 -0300 +@@ -14,34 +14,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - }, - { @@ -27,13 +28,14 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16011 - ] - } ] } ], -@@ -58,32 +36,10 @@ +@@ -60,34 +36,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ - "interfaceName":"eth-rt4-1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - }, - { @@ -60,23 +63,49 @@ - "interfaceName":"eth-rt4-2", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16031 - ] - } ] } ], -@@ -132,28 +88,19 @@ - "fib":true, +@@ -106,9 +58,6 @@ + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -118,24 +67,10 @@ "afi":"ipv6", "interfaceName":"eth-rt4-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "afi":"ipv6", +- "interfaceName":"eth-sw1", - "active":true, - "labels":[ -- 16051 +- 16051, +- 16041 - ] -+ "active":true - }, - { +- } + ] + } + ], +@@ -153,28 +88,19 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-sw1", @@ -94,6 +123,16 @@ - "labels":[ - 16051 - ] ++ "active":true + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", +- "active":true, +- "labels":[ +- 16051 +- ] + "active":true } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff index ad48c50f32..f8476cd0bb 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step6/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step7/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step6/show_mpls_table.ref 2020-09-25 17:51:14.073375985 -0300 ++++ rt2/step7/show_mpls_table.ref 2020-09-25 17:52:00.973988653 -0300 @@ -7,23 +7,7 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -100,10 +100,62 @@ } ] }, -@@ -147,54 +83,6 @@ +@@ -119,26 +55,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.3.4", +- "backupIndex":[ +- 0 +- ] ++ "nexthop":"10.0.3.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.2.4", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16050, +- "nexthop":"10.0.1.3" ++ "nexthop":"10.0.2.4" } ] }, +@@ -150,74 +73,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt4-2", +- "backupIndex":[ +- 0 +- ] +- }, +- { +- "type":"SR (IS-IS)", +- "outLabel":3, +- "installed":true, +- "interface":"eth-rt4-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16051, +- "interface":"eth-sw1" +- } +- ] +- }, - "16050":{ - "inLabel":16050, - "installed":true, @@ -136,22 +188,20 @@ - "type":"SR (IS-IS)", - "outLabel":16051, - "installed":true, -- "interface":"eth-rt4-2" -- }, -- { -- "type":"SR (IS-IS)", + "interface":"eth-rt4-2" + }, + { + "type":"SR (IS-IS)", - "outLabel":16051, -- "installed":true, -- "interface":"eth-rt4-1" ++ "outLabel":3, + "installed":true, + "interface":"eth-rt4-1" - }, - { - "type":"SR (IS-IS)", - "outLabel":16051, - "installed":true, - "interface":"eth-sw1" -- } -- ] -- }, - "16060":{ - "inLabel":16060, - "installed":true, + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff index 3511a595c3..7d5237e740 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step7/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step8/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -15,10 +15,34 @@ +--- rt2/step7/show_ip_route.ref 2020-09-25 17:52:02.210004805 -0300 ++++ rt2/step8/show_ip_route.ref 2020-09-25 17:53:20.207024469 -0300 +@@ -15,10 +15,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -20,7 +20,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + }, + { @@ -29,13 +30,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16010 + ] + } ] } ], -@@ -38,10 +62,34 @@ +@@ -38,10 +64,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -55,7 +57,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + }, + { @@ -64,13 +67,50 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16050 ++ 16050, ++ 16030 + ] + } ] } ], -@@ -93,21 +141,30 @@ +@@ -61,6 +113,9 @@ + "afi":"ipv4", + "interfaceName":"eth-rt4-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -71,10 +126,25 @@ + "afi":"ipv4", + "interfaceName":"eth-rt4-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.3", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16050, ++ 16040 ++ ] ++ } + ] + } + ], +@@ -93,21 +163,30 @@ "ip":"10.0.1.3", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -104,7 +144,7 @@ } ] } -@@ -155,12 +212,34 @@ +@@ -169,12 +248,40 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -131,13 +171,118 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + } + ] + } +@@ -189,13 +296,30 @@ + { + "ip":"10.0.2.4", + "afi":"ipv4", +- "interfaceName":"eth-rt4-1" ++ "interfaceName":"eth-rt4-1", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.3", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + } + ] + } +@@ -211,12 +335,29 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.3.4", + "afi":"ipv4", +- "interfaceName":"eth-rt4-2" ++ "interfaceName":"eth-rt4-2", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.3", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16050 ++ ] + } + ] + } +@@ -353,14 +494,31 @@ + "ip":"10.0.2.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "fib":true, + "ip":"10.0.3.4", + "afi":"ipv4", + "interfaceName":"eth-rt4-2", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.3", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16050 ++ ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff index 96a60197ab..45322214e6 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt2/step7/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step8/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -@@ -14,10 +14,32 @@ +--- rt2/step7/show_ipv6_route.ref 2020-09-25 17:52:03.438020851 -0300 ++++ rt2/step8/show_ipv6_route.ref 2020-09-25 17:53:21.443040633 -0300 +@@ -14,10 +14,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -19,7 +19,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + }, + { @@ -27,13 +28,14 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16011 + ] + } ] } ], -@@ -36,10 +58,32 @@ +@@ -36,10 +60,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -52,7 +54,8 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + }, + { @@ -60,23 +63,49 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16031 + ] + } ] } ], -@@ -88,19 +132,28 @@ - "fib":true, +@@ -58,6 +106,9 @@ + "afi":"ipv6", + "interfaceName":"eth-rt4-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -67,10 +118,24 @@ "afi":"ipv6", "interfaceName":"eth-rt4-1", -- "active":true + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "afi":"ipv6", ++ "interfaceName":"eth-sw1", + "active":true, + "labels":[ -+ 16051 ++ 16051, ++ 16041 + ] - }, - { ++ } + ] + } + ], +@@ -88,19 +153,28 @@ "fib":true, "afi":"ipv6", "interfaceName":"eth-sw1", @@ -94,6 +123,16 @@ + "active":true, + "labels":[ + 16051 ++ ] + }, + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-rt4-1", +- "active":true ++ "active":true, ++ "labels":[ ++ 16051 + ] } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff index 04b8e99725..083c647802 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step7/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step8/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step7/show_mpls_table.ref 2020-09-25 17:52:00.973988653 -0300 ++++ rt2/step8/show_mpls_table.ref 2020-09-25 17:53:18.923007676 -0300 @@ -7,7 +7,23 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -100,10 +100,63 @@ } ] }, -@@ -83,6 +147,54 @@ +@@ -55,13 +119,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.3.4" ++ "nexthop":"10.0.3.4", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.2.4" ++ "nexthop":"10.0.2.4", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16050, ++ "nexthop":"10.0.1.3" } ] }, +@@ -73,13 +150,74 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt4-2" ++ "interface":"eth-rt4-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, ++ "interface":"eth-rt4-1", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16051, ++ "interface":"eth-sw1" ++ } ++ ] ++ }, + "16050":{ + "inLabel":16050, + "installed":true, @@ -142,16 +195,13 @@ + "type":"SR (IS-IS)", + "outLabel":16051, + "installed":true, -+ "interface":"eth-rt4-1" + "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16051, + "installed":true, + "interface":"eth-sw1" -+ } -+ ] -+ }, - "16060":{ - "inLabel":16060, - "installed":true, + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff index b7deb80554..15370a0a62 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff @@ -1,42 +1,51 @@ ---- rt2/step8/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step9/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step8/show_ip_route.ref 2020-09-25 17:53:20.207024469 -0300 ++++ rt2/step9/show_ip_route.ref 2020-09-25 17:54:37.908041089 -0300 @@ -31,7 +31,7 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ -- 16050 -+ 16500 +- 16050, ++ 16500, + 16010 ] }, - { -@@ -40,7 +40,7 @@ +@@ -41,7 +41,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ -- 16050 -+ 16500 +- 16050, ++ 16500, + 16010 ] } - ] -@@ -78,7 +78,7 @@ +@@ -80,7 +80,7 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ -- 16050 -+ 16500 +- 16050, ++ 16500, + 16030 ] }, - { -@@ -87,7 +87,7 @@ +@@ -90,7 +90,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ -- 16050 -+ 16500 +- 16050, ++ 16500, + 16030 ] } - ] -@@ -143,7 +143,7 @@ +@@ -141,7 +141,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050, ++ 16500, + 16040 + ] + } +@@ -165,7 +165,7 @@ "interfaceName":"eth-sw1", "active":true, "labels":[ @@ -45,7 +54,7 @@ ] }, { -@@ -153,7 +153,7 @@ +@@ -175,7 +175,7 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ @@ -54,7 +63,7 @@ ] }, { -@@ -163,7 +163,7 @@ +@@ -185,7 +185,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ @@ -63,3 +72,48 @@ ] } ] +@@ -271,7 +271,7 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ +- 16050 ++ 16500 + ] + }, + { +@@ -280,7 +280,7 @@ + "interfaceName":"eth-rt4-2", + "active":true, + "labels":[ +- 16050 ++ 16500 + ] + } + ] +@@ -318,7 +318,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050 ++ 16500 + ] + } + ] +@@ -356,7 +356,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050 ++ 16500 + ] + } + ] +@@ -517,7 +517,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16050 ++ 16500 + ] + } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff index cd634af4e6..2585f32595 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff @@ -1,51 +1,51 @@ ---- rt2/step8/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step9/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step8/show_ipv6_route.ref 2020-09-25 17:53:21.443040633 -0300 ++++ rt2/step9/show_ipv6_route.ref 2020-09-25 17:54:39.112056848 -0300 @@ -29,7 +29,7 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ -- 16051 -+ 16501 +- 16051, ++ 16501, + 16011 ] }, - { -@@ -37,7 +37,7 @@ +@@ -38,7 +38,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ -- 16051 -+ 16501 +- 16051, ++ 16501, + 16011 ] } - ] -@@ -73,7 +73,7 @@ +@@ -75,7 +75,7 @@ "interfaceName":"eth-rt4-1", "active":true, "labels":[ -- 16051 -+ 16501 +- 16051, ++ 16501, + 16031 ] }, - { -@@ -81,7 +81,7 @@ +@@ -84,7 +84,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ -- 16051 -+ 16501 +- 16051, ++ 16501, + 16031 ] } - ] -@@ -134,7 +134,7 @@ - "interfaceName":"eth-rt4-1", +@@ -132,7 +132,7 @@ + "interfaceName":"eth-sw1", "active":true, "labels":[ -- 16051 -+ 16501 +- 16051, ++ 16501, + 16041 ] - }, - { -@@ -143,7 +143,7 @@ + } +@@ -155,7 +155,7 @@ "interfaceName":"eth-sw1", "active":true, "labels":[ @@ -54,11 +54,20 @@ ] }, { -@@ -152,7 +152,7 @@ +@@ -164,7 +164,7 @@ "interfaceName":"eth-rt4-2", "active":true, "labels":[ - 16051 ++ 16501 + ] + }, + { +@@ -173,7 +173,7 @@ + "interfaceName":"eth-rt4-1", + "active":true, + "labels":[ +- 16051 + 16501 ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff index f195264f5a..b90b889eba 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt2/step8/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt2/step9/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 +--- rt2/step8/show_mpls_table.ref 2020-09-25 17:53:18.923007676 -0300 ++++ rt2/step9/show_mpls_table.ref 2020-09-25 17:54:36.640024493 -0300 @@ -17,12 +17,12 @@ "backupNexthops":[ { @@ -60,119 +60,123 @@ "interface":"eth-rt4-2" } ] -@@ -147,87 +147,87 @@ +@@ -137,7 +137,7 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16050, ++ "outLabel":16500, + "nexthop":"10.0.1.3" } ] - }, +@@ -168,55 +168,7 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16051, +- "interface":"eth-sw1" +- } +- ] +- }, - "16050":{ - "inLabel":16050, -+ "16060":{ -+ "inLabel":16060, - "installed":true, - "nexthops":[ - { - "type":"SR (IS-IS)", +- "installed":true, +- "nexthops":[ +- { +- "type":"SR (IS-IS)", - "outLabel":16050, -+ "outLabel":16060, - "installed":true, - "nexthop":"10.0.3.4" - }, - { - "type":"SR (IS-IS)", +- "installed":true, +- "nexthop":"10.0.3.4" +- }, +- { +- "type":"SR (IS-IS)", - "outLabel":16050, -+ "outLabel":16060, - "installed":true, - "nexthop":"10.0.2.4" +- "installed":true, +- "nexthop":"10.0.2.4" - }, - { - "type":"SR (IS-IS)", - "outLabel":16050, - "installed":true, - "nexthop":"10.0.1.3" - } - ] - }, +- } +- ] +- }, - "16051":{ - "inLabel":16051, -+ "16061":{ -+ "inLabel":16061, - "installed":true, - "nexthops":[ - { - "type":"SR (IS-IS)", +- "installed":true, +- "nexthops":[ +- { +- "type":"SR (IS-IS)", - "outLabel":16051, -+ "outLabel":16061, - "installed":true, - "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16051, -+ "outLabel":16061, - "installed":true, - "interface":"eth-rt4-1" +- "installed":true, +- "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", - "outLabel":16051, - "installed":true, -- "interface":"eth-sw1" +- "interface":"eth-rt4-1" +- }, +- { +- "type":"SR (IS-IS)", +- "outLabel":16051, +- "installed":true, ++ "outLabel":16501, + "interface":"eth-sw1" } ] - }, -- "16060":{ -- "inLabel":16060, +@@ -282,5 +234,53 @@ + "interface":"eth-sw1" + } + ] ++ }, + "16500":{ + "inLabel":16500, - "installed":true, - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16060, ++ "installed":true, ++ "nexthops":[ ++ { ++ "type":"SR (IS-IS)", + "outLabel":16500, - "installed":true, - "nexthop":"10.0.3.4" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16060, ++ "installed":true, ++ "nexthop":"10.0.3.4" ++ }, ++ { ++ "type":"SR (IS-IS)", + "outLabel":16500, - "installed":true, - "nexthop":"10.0.2.4" ++ "installed":true, ++ "nexthop":"10.0.2.4" + }, + { + "type":"SR (IS-IS)", + "outLabel":16500, + "installed":true, + "nexthop":"10.0.1.3" - } - ] - }, -- "16061":{ -- "inLabel":16061, ++ } ++ ] ++ }, + "16501":{ + "inLabel":16501, - "installed":true, - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16061, ++ "installed":true, ++ "nexthops":[ ++ { ++ "type":"SR (IS-IS)", + "outLabel":16501, - "installed":true, - "interface":"eth-rt4-2" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16061, ++ "installed":true, ++ "interface":"eth-rt4-2" ++ }, ++ { ++ "type":"SR (IS-IS)", + "outLabel":16501, - "installed":true, - "interface":"eth-rt4-1" ++ "installed":true, ++ "interface":"eth-rt4-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16501, + "installed":true, + "interface":"eth-sw1" - } - ] ++ } ++ ] } + } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref index 5a4e1ce033..8c37180daf 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref @@ -25,22 +25,24 @@ } ], "backupNexthops":[ - { - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ - 16040 - ] - }, { "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true, "labels":[ - 16040 + 16040, + 16010 + ] + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16040, + 16010 ] } ] @@ -72,22 +74,24 @@ } ], "backupNexthops":[ - { - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ - 16040 - ] - }, { "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true, "labels":[ - 16040 + 16040, + 16020 + ] + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16040, + 16020 ] } ] @@ -152,6 +156,9 @@ "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -162,10 +169,25 @@ "afi":"ipv4", "interfaceName":"eth-rt5-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16040, + 16050 + ] + } ] } ], @@ -185,6 +207,9 @@ "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16060 ] @@ -195,10 +220,21 @@ "afi":"ipv4", "interfaceName":"eth-rt5-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16060 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true + } ] } ], @@ -229,17 +265,23 @@ } ], "backupNexthops":[ - { - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", - "active":true - }, { "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", - "active":true + "active":true, + "labels":[ + 16040 + ] + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ + 16040 + ] } ] } @@ -267,17 +309,17 @@ } ], "backupNexthops":[ - { - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", - "active":true - }, { "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true } ] } @@ -305,17 +347,17 @@ } ], "backupNexthops":[ - { - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", - "active":true - }, { "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", "active":true + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true } ] } @@ -330,13 +372,30 @@ { "ip":"10.0.4.5", "afi":"ipv4", - "interfaceName":"eth-rt5-1" + "interfaceName":"eth-rt5-1", + "backupIndex":[ + 0 + ] }, { "ip":"10.0.5.5", "afi":"ipv4", "interfaceName":"eth-rt5-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16040 + ] } ] } @@ -352,12 +411,29 @@ "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "ip":"10.0.5.5", "afi":"ipv4", - "interfaceName":"eth-rt5-2" + "interfaceName":"eth-rt5-2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16040 + ] } ] } @@ -377,13 +453,27 @@ "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.5.5", "afi":"ipv4", "interfaceName":"eth-rt5-2", + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", "active":true } ] @@ -438,14 +528,31 @@ "ip":"10.0.4.5", "afi":"ipv4", "interfaceName":"eth-rt5-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.5.5", "afi":"ipv4", "interfaceName":"eth-rt5-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.1.2", + "afi":"ipv4", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16040 + ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref index 525a87f31d..5ddb24af5a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref @@ -26,18 +26,20 @@ "backupNexthops":[ { "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ - 16041 + 16041, + 16011 ] }, { "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ - 16041 + 16041, + 16011 ] } ] @@ -70,18 +72,20 @@ "backupNexthops":[ { "afi":"ipv6", - "interfaceName":"eth-rt5-2", + "interfaceName":"eth-rt5-1", "active":true, "labels":[ - 16041 + 16041, + 16021 ] }, { "afi":"ipv6", - "interfaceName":"eth-rt5-1", + "interfaceName":"eth-rt5-2", "active":true, "labels":[ - 16041 + 16041, + 16021 ] } ] @@ -97,6 +101,15 @@ "metric":30, "installed":true, "nexthops":[ + { + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16041 + ] + }, { "fib":true, "afi":"ipv6", @@ -114,15 +127,6 @@ "labels":[ 16041 ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-sw1", - "active":true, - "labels":[ - 16041 - ] } ] } @@ -142,6 +146,9 @@ "afi":"ipv6", "interfaceName":"eth-rt5-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -151,10 +158,24 @@ "afi":"ipv6", "interfaceName":"eth-rt5-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true, + "labels":[ + 16041, + 16051 + ] + } ] } ], @@ -173,6 +194,9 @@ "afi":"ipv6", "interfaceName":"eth-rt5-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16061 ] @@ -182,10 +206,20 @@ "afi":"ipv6", "interfaceName":"eth-rt5-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16061 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-sw1", + "active":true + } ] } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref index 13f5f2c703..f68d1f4244 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref +++ b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref @@ -18,12 +18,12 @@ { "type":"SR (IS-IS)", "outLabel":16040, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5" }, { "type":"SR (IS-IS)", "outLabel":16040, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5" } ] }, @@ -46,12 +46,12 @@ { "type":"SR (IS-IS)", "outLabel":16041, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1" }, { "type":"SR (IS-IS)", "outLabel":16041, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2" } ] }, @@ -74,12 +74,12 @@ { "type":"SR (IS-IS)", "outLabel":16040, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5" }, { "type":"SR (IS-IS)", "outLabel":16040, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5" } ] }, @@ -102,12 +102,12 @@ { "type":"SR (IS-IS)", "outLabel":16041, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1" }, { "type":"SR (IS-IS)", "outLabel":16041, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2" } ] }, @@ -119,7 +119,7 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.1.2" + "nexthop":"10.0.5.5" }, { "type":"SR (IS-IS)", @@ -131,7 +131,7 @@ "type":"SR (IS-IS)", "outLabel":16040, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.1.2" } ] }, @@ -143,7 +143,7 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-sw1" + "interface":"eth-rt5-2" }, { "type":"SR (IS-IS)", @@ -155,7 +155,7 @@ "type":"SR (IS-IS)", "outLabel":16041, "installed":true, - "interface":"eth-rt5-2" + "interface":"eth-sw1" } ] }, @@ -167,13 +167,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16040, + "nexthop":"10.0.1.2" } ] }, @@ -185,13 +198,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16041, + "interface":"eth-sw1" } ] }, @@ -203,13 +229,26 @@ "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16060, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.1.2" } ] }, @@ -221,13 +260,26 @@ "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16061, "installed":true, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-sw1" } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff index e5fe6e7589..707f95495d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step3/show_ip_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt3/step4/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -15,34 +15,10 @@ +--- rt3/step3/show_ip_route.ref 2020-09-25 17:48:05.506916984 -0300 ++++ rt3/step4/show_ip_route.ref 2020-09-25 17:49:01.963652403 -0300 +@@ -15,36 +15,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -15,27 +15,29 @@ - ], - "backupNexthops":[ - { -- "ip":"10.0.5.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5-2", -- "active":true, -- "labels":[ -- 16040 -- ] -- }, -- { - "ip":"10.0.4.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16040 +- 16040, +- 16010 +- ] +- }, +- { +- "ip":"10.0.5.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5-2", +- "active":true, +- "labels":[ +- 16040, +- 16010 - ] - } ] } ], -@@ -62,34 +38,10 @@ +@@ -64,36 +38,10 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -50,27 +52,29 @@ - ], - "backupNexthops":[ - { -- "ip":"10.0.5.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5-2", -- "active":true, -- "labels":[ -- 16040 -- ] -- }, -- { - "ip":"10.0.4.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16040 +- 16040, +- 16020 +- ] +- }, +- { +- "ip":"10.0.5.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5-2", +- "active":true, +- "labels":[ +- 16040, +- 16020 - ] - } ] } ], -@@ -108,30 +60,21 @@ +@@ -112,30 +60,21 @@ "ip":"10.0.1.2", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -104,7 +108,43 @@ } ] } -@@ -212,34 +155,12 @@ +@@ -156,9 +95,6 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -169,25 +105,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.2", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16040, +- 16050 +- ] +- } + ] + } + ], +@@ -248,40 +169,12 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -127,17 +167,122 @@ - ], - "backupNexthops":[ - { -- "ip":"10.0.5.5", -- "afi":"ipv4", -- "interfaceName":"eth-rt5-2", -- "active":true -- }, -- { - "ip":"10.0.4.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-1", -- "active":true +- "active":true, +- "labels":[ +- 16040 +- ] +- }, +- { +- "ip":"10.0.5.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5-2", +- "active":true, +- "labels":[ +- 16040 +- ] + "interfaceName":"eth-sw1" } ] } +@@ -372,30 +265,13 @@ + { + "ip":"10.0.4.5", + "afi":"ipv4", +- "interfaceName":"eth-rt5-1", +- "backupIndex":[ +- 0 +- ] ++ "interfaceName":"eth-rt5-1" + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.2", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16040 +- ] ++ "active":true + } + ] + } +@@ -411,29 +287,12 @@ + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", +- "interfaceName":"eth-rt5-2", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.2", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16040 +- ] ++ "interfaceName":"eth-rt5-2" + } + ] + } +@@ -528,31 +387,14 @@ + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.1.2", +- "afi":"ipv4", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16040 +- ] ++ "active":true + } + ] + } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff index ccfbbeae69..76d0ebc913 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step3/show_ipv6_route.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt3/step4/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -14,32 +14,10 @@ +--- rt3/step3/show_ipv6_route.ref 2020-09-25 17:48:06.790933702 -0300 ++++ rt3/step4/show_ipv6_route.ref 2020-09-25 17:49:03.199668512 -0300 +@@ -14,34 +14,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -16,24 +16,26 @@ - "backupNexthops":[ - { - "afi":"ipv6", -- "interfaceName":"eth-rt5-2", +- "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16041 +- 16041, +- 16011 - ] - }, - { - "afi":"ipv6", -- "interfaceName":"eth-rt5-1", +- "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ -- 16041 +- 16041, +- 16011 - ] - } ] } ], -@@ -58,32 +36,10 @@ +@@ -60,34 +36,10 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -49,24 +51,36 @@ - "backupNexthops":[ - { - "afi":"ipv6", -- "interfaceName":"eth-rt5-2", +- "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16041 +- 16041, +- 16021 - ] - }, - { - "afi":"ipv6", -- "interfaceName":"eth-rt5-1", +- "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ -- 16041 +- 16041, +- 16021 - ] - } ] } ], -@@ -101,28 +57,19 @@ +@@ -105,28 +57,19 @@ + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16041 +- ] ++ "active":true + }, + { "fib":true, "afi":"ipv6", "interfaceName":"eth-rt5-2", @@ -84,17 +98,42 @@ - "labels":[ - 16041 - ] -+ "active":true - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-sw1", -- "active":true, -- "labels":[ -- 16041 -- ] + "active":true } ] } +@@ -146,9 +89,6 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -158,24 +98,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "afi":"ipv6", +- "interfaceName":"eth-sw1", +- "active":true, +- "labels":[ +- 16041, +- 16051 +- ] +- } + ] + } + ], diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff index 64a8689a82..b888c9d273 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt3/step3/show_mpls_table.ref 2020-08-31 22:42:48.835561429 -0300 -+++ rt3/step4/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 +--- rt3/step3/show_mpls_table.ref 2020-09-25 17:48:04.214900164 -0300 ++++ rt3/step4/show_mpls_table.ref 2020-09-25 17:49:00.759636711 -0300 @@ -7,23 +7,7 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -15,12 +15,12 @@ - { - "type":"SR (IS-IS)", - "outLabel":16040, -- "nexthop":"10.0.5.5" +- "nexthop":"10.0.4.5" - }, - { - "type":"SR (IS-IS)", - "outLabel":16040, -- "nexthop":"10.0.4.5" +- "nexthop":"10.0.5.5" + "nexthop":"10.0.1.1" } ] @@ -40,12 +40,12 @@ - { - "type":"SR (IS-IS)", - "outLabel":16041, -- "interface":"eth-rt5-2" +- "interface":"eth-rt5-1" - }, - { - "type":"SR (IS-IS)", - "outLabel":16041, -- "interface":"eth-rt5-1" +- "interface":"eth-rt5-2" + "interface":"eth-sw1" } ] @@ -65,17 +65,17 @@ - { - "type":"SR (IS-IS)", - "outLabel":16040, -- "nexthop":"10.0.5.5" +- "nexthop":"10.0.4.5" - }, - { - "type":"SR (IS-IS)", - "outLabel":16040, -- "nexthop":"10.0.4.5" +- "nexthop":"10.0.5.5" + "nexthop":"10.0.1.2" } ] }, -@@ -91,71 +43,7 @@ +@@ -91,70 +43,6 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, @@ -90,12 +90,12 @@ - { - "type":"SR (IS-IS)", - "outLabel":16041, -- "interface":"eth-rt5-2" +- "interface":"eth-rt5-1" - }, - { - "type":"SR (IS-IS)", - "outLabel":16041, -- "interface":"eth-rt5-1" +- "interface":"eth-rt5-2" - } - ] - }, @@ -107,7 +107,7 @@ - "type":"SR (IS-IS)", - "outLabel":16040, - "installed":true, -- "nexthop":"10.0.1.2" +- "nexthop":"10.0.5.5" - }, - { - "type":"SR (IS-IS)", @@ -119,7 +119,7 @@ - "type":"SR (IS-IS)", - "outLabel":16040, - "installed":true, -- "nexthop":"10.0.5.5" +- "nexthop":"10.0.1.2" - } - ] - }, @@ -131,7 +131,7 @@ - "type":"SR (IS-IS)", - "outLabel":16041, - "installed":true, - "interface":"eth-sw1" +- "interface":"eth-rt5-2" - }, - { - "type":"SR (IS-IS)", @@ -143,7 +143,64 @@ - "type":"SR (IS-IS)", - "outLabel":16041, - "installed":true, -- "interface":"eth-rt5-2" + "interface":"eth-sw1" + } + ] +@@ -167,26 +55,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.5.5", +- "backupIndex":[ +- 0 +- ] ++ "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.4.5", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16040, +- "nexthop":"10.0.1.2" ++ "nexthop":"10.0.4.5" + } + ] + }, +@@ -198,26 +73,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt5-2", +- "backupIndex":[ +- 0 +- ] ++ "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt5-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16041, +- "interface":"eth-sw1" ++ "interface":"eth-rt5-1" } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff index de265cc255..8eac75bec7 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step4/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step5/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -15,10 +15,34 @@ +--- rt3/step4/show_ip_route.ref 2020-09-25 17:49:01.963652403 -0300 ++++ rt3/step5/show_ip_route.ref 2020-09-25 17:50:12.592573438 -0300 +@@ -15,10 +15,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -15,27 +15,29 @@ + ], + "backupNexthops":[ + { -+ "ip":"10.0.5.5", -+ "afi":"ipv4", -+ "interfaceName":"eth-rt5-2", -+ "active":true, -+ "labels":[ -+ 16040 -+ ] -+ }, -+ { + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ -+ 16040 ++ 16040, ++ 16010 ++ ] ++ }, ++ { ++ "ip":"10.0.5.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5-2", ++ "active":true, ++ "labels":[ ++ 16040, ++ 16010 + ] + } ] } ], -@@ -38,10 +62,34 @@ +@@ -38,10 +64,36 @@ "afi":"ipv4", "interfaceName":"eth-sw1", "active":true, @@ -50,27 +52,29 @@ + ], + "backupNexthops":[ + { -+ "ip":"10.0.5.5", -+ "afi":"ipv4", -+ "interfaceName":"eth-rt5-2", -+ "active":true, -+ "labels":[ -+ 16040 -+ ] -+ }, -+ { + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ -+ 16040 ++ 16040, ++ 16020 ++ ] ++ }, ++ { ++ "ip":"10.0.5.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5-2", ++ "active":true, ++ "labels":[ ++ 16040, ++ 16020 + ] + } ] } ], -@@ -60,21 +108,30 @@ +@@ -60,21 +112,30 @@ "ip":"10.0.1.2", "afi":"ipv4", "interfaceName":"eth-sw1", @@ -104,7 +108,43 @@ } ] } -@@ -155,12 +212,34 @@ +@@ -95,6 +156,9 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -105,10 +169,25 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.2", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16040, ++ 16050 ++ ] ++ } + ] + } + ], +@@ -169,12 +248,40 @@ { "ip":"10.0.1.1", "afi":"ipv4", @@ -128,16 +168,121 @@ + ], + "backupNexthops":[ + { -+ "ip":"10.0.5.5", -+ "afi":"ipv4", -+ "interfaceName":"eth-rt5-2", -+ "active":true -+ }, -+ { + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", -+ "active":true ++ "active":true, ++ "labels":[ ++ 16040 ++ ] ++ }, ++ { ++ "ip":"10.0.5.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5-2", ++ "active":true, ++ "labels":[ ++ 16040 ++ ] + } + ] + } +@@ -265,13 +372,30 @@ + { + "ip":"10.0.4.5", + "afi":"ipv4", +- "interfaceName":"eth-rt5-1" ++ "interfaceName":"eth-rt5-1", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.2", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16040 ++ ] + } + ] + } +@@ -287,12 +411,29 @@ + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.5.5", + "afi":"ipv4", +- "interfaceName":"eth-rt5-2" ++ "interfaceName":"eth-rt5-2", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.2", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16040 ++ ] + } + ] + } +@@ -387,14 +528,31 @@ + "ip":"10.0.4.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "fib":true, + "ip":"10.0.5.5", + "afi":"ipv4", + "interfaceName":"eth-rt5-2", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.1.2", ++ "afi":"ipv4", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16040 ++ ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff index 947d4271e8..fc55267ad1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step4/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step5/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -14,10 +14,32 @@ +--- rt3/step4/show_ipv6_route.ref 2020-09-25 17:49:03.199668512 -0300 ++++ rt3/step5/show_ipv6_route.ref 2020-09-25 17:50:13.840589722 -0300 +@@ -14,10 +14,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -16,24 +16,26 @@ + "backupNexthops":[ + { + "afi":"ipv6", -+ "interfaceName":"eth-rt5-2", ++ "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ -+ 16041 ++ 16041, ++ 16011 + ] + }, + { + "afi":"ipv6", -+ "interfaceName":"eth-rt5-1", ++ "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ -+ 16041 ++ 16041, ++ 16011 + ] + } ] } ], -@@ -36,10 +58,32 @@ +@@ -36,10 +60,34 @@ "afi":"ipv6", "interfaceName":"eth-sw1", "active":true, @@ -49,24 +51,36 @@ + "backupNexthops":[ + { + "afi":"ipv6", -+ "interfaceName":"eth-rt5-2", ++ "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ -+ 16041 ++ 16041, ++ 16021 + ] + }, + { + "afi":"ipv6", -+ "interfaceName":"eth-rt5-1", ++ "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ -+ 16041 ++ 16041, ++ 16021 + ] + } ] } ], -@@ -57,19 +101,28 @@ +@@ -57,19 +105,28 @@ + "fib":true, + "afi":"ipv6", + "interfaceName":"eth-sw1", +- "active":true ++ "active":true, ++ "labels":[ ++ 16041 ++ ] + }, + { "fib":true, "afi":"ipv6", "interfaceName":"eth-rt5-2", @@ -84,17 +98,42 @@ + "active":true, + "labels":[ + 16041 -+ ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-sw1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16041 + ] } ] } +@@ -89,6 +146,9 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -98,10 +158,24 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "afi":"ipv6", ++ "interfaceName":"eth-sw1", ++ "active":true, ++ "labels":[ ++ 16041, ++ 16051 ++ ] ++ } + ] + } + ], diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff index 3dd237b91b..4ed491e241 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt3/step4/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step5/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 +--- rt3/step4/show_mpls_table.ref 2020-09-25 17:49:00.759636711 -0300 ++++ rt3/step5/show_mpls_table.ref 2020-09-25 17:50:11.280556320 -0300 @@ -7,7 +7,23 @@ "type":"SR (IS-IS)", "outLabel":3, @@ -16,12 +16,12 @@ + { + "type":"SR (IS-IS)", + "outLabel":16040, -+ "nexthop":"10.0.5.5" ++ "nexthop":"10.0.4.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16040, -+ "nexthop":"10.0.4.5" ++ "nexthop":"10.0.5.5" } ] }, @@ -41,12 +41,12 @@ + { + "type":"SR (IS-IS)", + "outLabel":16041, -+ "interface":"eth-rt5-2" ++ "interface":"eth-rt5-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16041, -+ "interface":"eth-rt5-1" ++ "interface":"eth-rt5-2" } ] }, @@ -66,12 +66,12 @@ + { + "type":"SR (IS-IS)", + "outLabel":16040, -+ "nexthop":"10.0.5.5" ++ "nexthop":"10.0.4.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16040, -+ "nexthop":"10.0.4.5" ++ "nexthop":"10.0.5.5" } ] }, @@ -90,12 +90,12 @@ + { + "type":"SR (IS-IS)", + "outLabel":16041, -+ "interface":"eth-rt5-2" ++ "interface":"eth-rt5-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16041, -+ "interface":"eth-rt5-1" ++ "interface":"eth-rt5-2" + } + ] + }, @@ -107,13 +107,13 @@ + "type":"SR (IS-IS)", + "outLabel":16040, + "installed":true, -+ "nexthop":"10.0.4.5" ++ "nexthop":"10.0.5.5" + }, + { + "type":"SR (IS-IS)", + "outLabel":16040, + "installed":true, -+ "nexthop":"10.0.5.5" ++ "nexthop":"10.0.4.5" + }, + { + "type":"SR (IS-IS)", @@ -131,13 +131,13 @@ + "type":"SR (IS-IS)", + "outLabel":16041, + "installed":true, -+ "interface":"eth-rt5-1" ++ "interface":"eth-rt5-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16041, + "installed":true, -+ "interface":"eth-rt5-2" ++ "interface":"eth-rt5-1" + }, + { + "type":"SR (IS-IS)", @@ -146,3 +146,61 @@ "interface":"eth-sw1" } ] +@@ -55,13 +167,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.5.5" ++ "nexthop":"10.0.5.5", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.4.5" ++ "nexthop":"10.0.4.5", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16040, ++ "nexthop":"10.0.1.2" + } + ] + }, +@@ -73,13 +198,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt5-2" ++ "interface":"eth-rt5-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt5-1" ++ "interface":"eth-rt5-1", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16041, ++ "interface":"eth-sw1" + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff index 00f0bb031a..9273c75352 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff @@ -1,42 +1,42 @@ ---- rt3/step5/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step6/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 +--- rt3/step5/show_ip_route.ref 2020-09-25 17:50:12.592573438 -0300 ++++ rt3/step6/show_ip_route.ref 2020-09-25 17:51:15.521394894 -0300 @@ -31,7 +31,7 @@ - "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ -- 16040 -+ 30040 - ] - }, - { -@@ -40,7 +40,7 @@ "interfaceName":"eth-rt5-1", "active":true, "labels":[ -- 16040 -+ 30040 +- 16040, ++ 30040, + 16010 ] - } - ] -@@ -78,7 +78,7 @@ + }, +@@ -41,7 +41,7 @@ "interfaceName":"eth-rt5-2", "active":true, "labels":[ -- 16040 -+ 30040 +- 16040, ++ 30040, + 16010 ] - }, - { -@@ -87,7 +87,7 @@ + } +@@ -80,7 +80,7 @@ "interfaceName":"eth-rt5-1", "active":true, "labels":[ -- 16040 -+ 30040 +- 16040, ++ 30040, + 16020 + ] + }, +@@ -90,7 +90,7 @@ + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ +- 16040, ++ 30040, + 16020 ] } - ] -@@ -120,7 +120,7 @@ +@@ -124,7 +124,7 @@ "interfaceName":"eth-rt5-1", "active":true, "labels":[ @@ -45,7 +45,7 @@ ] }, { -@@ -130,7 +130,7 @@ +@@ -134,7 +134,7 @@ "interfaceName":"eth-rt5-2", "active":true, "labels":[ @@ -54,21 +54,48 @@ ] } ] -@@ -186,7 +186,7 @@ - "interfaceName":"eth-rt5-1", +@@ -185,7 +185,7 @@ "active":true, "labels":[ + 16040, +- 16050 ++ 30050 + ] + } + ] +@@ -211,7 +211,7 @@ + 0 + ], + "labels":[ - 16060 + 30060 ] }, { -@@ -196,7 +196,7 @@ - "interfaceName":"eth-rt5-2", - "active":true, +@@ -224,7 +224,7 @@ + 0 + ], "labels":[ - 16060 + 30060 ] } + ], +@@ -271,7 +271,7 @@ + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ +- 16040 ++ 30040 + ] + }, + { +@@ -280,7 +280,7 @@ + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ +- 16040 ++ 30040 + ] + } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff index 823cd4591f..f50be893e4 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff @@ -1,6 +1,42 @@ ---- rt3/step5/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step6/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 +--- rt3/step5/show_ipv6_route.ref 2020-09-25 17:50:13.840589722 -0300 ++++ rt3/step6/show_ipv6_route.ref 2020-09-25 17:51:16.757411035 -0300 @@ -29,7 +29,7 @@ + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ +- 16041, ++ 30041, + 16011 + ] + }, +@@ -38,7 +38,7 @@ + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ +- 16041, ++ 30041, + 16011 + ] + } +@@ -75,7 +75,7 @@ + "interfaceName":"eth-rt5-1", + "active":true, + "labels":[ +- 16041, ++ 30041, + 16021 + ] + }, +@@ -84,7 +84,7 @@ + "interfaceName":"eth-rt5-2", + "active":true, + "labels":[ +- 16041, ++ 30041, + 16021 + ] + } +@@ -116,7 +116,7 @@ "interfaceName":"eth-rt5-2", "active":true, "labels":[ @@ -9,7 +45,7 @@ ] }, { -@@ -37,7 +37,7 @@ +@@ -125,7 +125,7 @@ "interfaceName":"eth-rt5-1", "active":true, "labels":[ @@ -18,57 +54,30 @@ ] } ] -@@ -73,7 +73,7 @@ - "interfaceName":"eth-rt5-2", +@@ -173,7 +173,7 @@ "active":true, "labels":[ -- 16041 -+ 30041 - ] - }, - { -@@ -81,7 +81,7 @@ - "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16041 -+ 30041 + 16041, +- 16051 ++ 30051 ] } ] -@@ -103,7 +103,7 @@ - "interfaceName":"eth-rt5-2", - "active":true, - "labels":[ -- 16041 -+ 30041 - ] - }, - { -@@ -112,7 +112,7 @@ - "interfaceName":"eth-rt5-1", - "active":true, - "labels":[ -- 16041 -+ 30041 - ] - }, - { -@@ -174,7 +174,7 @@ - "interfaceName":"eth-rt5-2", - "active":true, +@@ -198,7 +198,7 @@ + 0 + ], "labels":[ - 16061 + 30061 ] }, { -@@ -183,7 +183,7 @@ - "interfaceName":"eth-rt5-1", - "active":true, +@@ -210,7 +210,7 @@ + 0 + ], "labels":[ - 16061 + 30061 ] } - ] + ], diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff index 1ad228b9c2..b63a728ef1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff @@ -1,18 +1,18 @@ ---- rt3/step5/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step6/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 +--- rt3/step5/show_mpls_table.ref 2020-09-25 17:50:11.280556320 -0300 ++++ rt3/step6/show_mpls_table.ref 2020-09-25 17:51:14.281378700 -0300 @@ -17,12 +17,12 @@ "backupNexthops":[ { "type":"SR (IS-IS)", - "outLabel":16040, + "outLabel":30040, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5" }, { "type":"SR (IS-IS)", - "outLabel":16040, + "outLabel":30040, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5" } ] @@ -45,12 +45,12 @@ @@ -21,13 +21,13 @@ "type":"SR (IS-IS)", - "outLabel":16041, + "outLabel":30041, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1" }, { "type":"SR (IS-IS)", - "outLabel":16041, + "outLabel":30041, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2" } ] @@ -73,12 +73,12 @@ @@ -36,13 +36,13 @@ "type":"SR (IS-IS)", - "outLabel":16040, + "outLabel":30040, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5" }, { "type":"SR (IS-IS)", - "outLabel":16040, + "outLabel":30040, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5" } ] @@ -101,12 +101,12 @@ @@ -51,13 +51,13 @@ "type":"SR (IS-IS)", - "outLabel":16041, + "outLabel":30041, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1" }, { "type":"SR (IS-IS)", - "outLabel":16041, + "outLabel":30041, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2" } ] @@ -117,13 +117,13 @@ @@ -67,14 +67,14 @@ - "outLabel":16040, + "outLabel":30040, "installed":true, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5" }, { "type":"SR (IS-IS)", - "outLabel":16040, + "outLabel":30040, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5" }, @@ -141,13 +141,13 @@ "nexthops":[ @@ -83,44 +83,48 @@ - "outLabel":16041, + "outLabel":30041, "installed":true, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2" }, { "type":"SR (IS-IS)", - "outLabel":16041, + "outLabel":30041, - "installed":true, - "interface":"eth-rt5-2" - }, -@@ -201,13 +201,13 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16060, -+ "outLabel":30060, - "installed":true, - "nexthop":"10.0.4.5" - }, - { - "type":"SR (IS-IS)", -- "outLabel":16060, -+ "outLabel":30060, - "installed":true, - "nexthop":"10.0.5.5" - } -@@ -219,13 +219,13 @@ - "nexthops":[ - { - "type":"SR (IS-IS)", -- "outLabel":16061, -+ "outLabel":30061, "installed":true, "interface":"eth-rt5-1" }, +@@ -227,7 +227,7 @@ + "nexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16060, ++ "outLabel":30060, + "installed":true, + "nexthop":"10.0.5.5", + "backupIndex":[ +@@ -236,7 +236,7 @@ + }, + { + "type":"SR (IS-IS)", +- "outLabel":16060, ++ "outLabel":30060, + "installed":true, + "nexthop":"10.0.4.5", + "backupIndex":[ +@@ -258,7 +258,7 @@ + "nexthops":[ { "type":"SR (IS-IS)", - "outLabel":16061, + "outLabel":30061, "installed":true, - "interface":"eth-rt5-2" - } + "interface":"eth-rt5-2", + "backupIndex":[ +@@ -267,7 +267,7 @@ + }, + { + "type":"SR (IS-IS)", +- "outLabel":16061, ++ "outLabel":30061, + "installed":true, + "interface":"eth-rt5-1", + "backupIndex":[ diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff index bee7c568e7..0ae87afa3b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff @@ -1,25 +1,32 @@ ---- rt3/step6/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step7/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -151,20 +151,14 @@ - "ip":"10.0.4.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-1", -- "active":true, +--- rt3/step6/show_ip_route.ref 2020-09-25 17:51:15.521394894 -0300 ++++ rt3/step7/show_ip_route.ref 2020-09-25 17:52:02.414007470 -0300 +@@ -158,9 +158,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], - "labels":[ - 3 -- ] -+ "active":true + ] }, { - "fib":true, - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", -- "active":true, +@@ -171,9 +168,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], - "labels":[ - 3 -- ] -+ "active":true + ] + } + ], +@@ -184,8 +178,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16040, +- 30050 ++ 16040 + ] } ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff index 05b4080304..f392f644c0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff @@ -1,24 +1,32 @@ ---- rt3/step6/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step7/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -141,19 +141,13 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5-2", -- "active":true, +--- rt3/step6/show_ipv6_route.ref 2020-09-25 17:51:16.757411035 -0300 ++++ rt3/step7/show_ipv6_route.ref 2020-09-25 17:52:03.650023622 -0300 +@@ -148,9 +148,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], - "labels":[ - 3 -- ] -+ "active":true + ] }, { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5-1", -- "active":true, +@@ -160,9 +157,6 @@ + "active":true, + "backupIndex":[ + 0 +- ], - "labels":[ - 3 -- ] -+ "active":true + ] + } + ], +@@ -172,8 +166,7 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16041, +- 30051 ++ 16041 + ] } ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff index 3fb37faea6..b74eb9579c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step6/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step7/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -159,42 +159,6 @@ +--- rt3/step6/show_mpls_table.ref 2020-09-25 17:51:14.281378700 -0300 ++++ rt3/step7/show_mpls_table.ref 2020-09-25 17:52:01.181991371 -0300 +@@ -159,68 +159,6 @@ } ] }, @@ -12,13 +12,26 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.4.5" +- "nexthop":"10.0.5.5", +- "backupIndex":[ +- 0 +- ] - }, - { - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "nexthop":"10.0.5.5" +- "nexthop":"10.0.4.5", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16040, +- "nexthop":"10.0.1.2" - } - ] - }, @@ -30,13 +43,26 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt5-1" +- "interface":"eth-rt5-2", +- "backupIndex":[ +- 0 +- ] - }, - { - "type":"SR (IS-IS)", - "outLabel":3, - "installed":true, -- "interface":"eth-rt5-2" +- "interface":"eth-rt5-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16041, +- "interface":"eth-sw1" - } - ] - }, diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff index c31d25261c..25b42f2825 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff @@ -1,25 +1,32 @@ ---- rt3/step7/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step8/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -151,14 +151,20 @@ - "ip":"10.0.4.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-1", -- "active":true -+ "active":true, +--- rt3/step7/show_ip_route.ref 2020-09-25 17:52:02.414007470 -0300 ++++ rt3/step8/show_ip_route.ref 2020-09-25 17:53:20.419027241 -0300 +@@ -158,6 +158,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], + "labels":[ + 3 -+ ] + ] }, { - "fib":true, - "ip":"10.0.5.5", - "afi":"ipv4", - "interfaceName":"eth-rt5-2", -- "active":true -+ "active":true, +@@ -168,6 +171,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], + "labels":[ + 3 -+ ] + ] + } + ], +@@ -178,7 +184,8 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16040 ++ 16040, ++ 30050 + ] } ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff index 759f28d263..42d9356c8a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff @@ -1,24 +1,32 @@ ---- rt3/step7/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step8/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -141,13 +141,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5-2", -- "active":true -+ "active":true, +--- rt3/step7/show_ipv6_route.ref 2020-09-25 17:52:03.650023622 -0300 ++++ rt3/step8/show_ipv6_route.ref 2020-09-25 17:53:21.643043250 -0300 +@@ -148,6 +148,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], + "labels":[ + 3 -+ ] + ] }, { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5-1", -- "active":true -+ "active":true, +@@ -157,6 +160,9 @@ + "active":true, + "backupIndex":[ + 0 ++ ], + "labels":[ + 3 -+ ] + ] + } + ], +@@ -166,7 +172,8 @@ + "interfaceName":"eth-sw1", + "active":true, + "labels":[ +- 16041 ++ 16041, ++ 30051 + ] } ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff index 0c2c8e2b09..bd40f954eb 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step7/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step8/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -159,6 +159,42 @@ +--- rt3/step7/show_mpls_table.ref 2020-09-25 17:52:01.181991371 -0300 ++++ rt3/step8/show_mpls_table.ref 2020-09-25 17:53:19.135010448 -0300 +@@ -159,6 +159,68 @@ } ] }, @@ -12,13 +12,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "nexthop":"10.0.4.5" ++ "nexthop":"10.0.5.5", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "nexthop":"10.0.5.5" ++ "nexthop":"10.0.4.5", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16040, ++ "nexthop":"10.0.1.2" + } + ] + }, @@ -30,13 +43,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "interface":"eth-rt5-1" ++ "interface":"eth-rt5-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, -+ "interface":"eth-rt5-2" ++ "interface":"eth-rt5-1", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16041, ++ "interface":"eth-sw1" + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff index e69de29bb2..687e84ad40 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff @@ -0,0 +1,11 @@ +--- rt3/step8/show_ip_route.ref 2020-09-25 17:53:20.419027241 -0300 ++++ rt3/step9/show_ip_route.ref 2020-09-25 17:54:38.112043759 -0300 +@@ -185,7 +185,7 @@ + "active":true, + "labels":[ + 16040, +- 30050 ++ 30500 + ] + } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff index e69de29bb2..4b76be66ac 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff @@ -0,0 +1,11 @@ +--- rt3/step8/show_ipv6_route.ref 2020-09-25 17:53:21.643043250 -0300 ++++ rt3/step9/show_ipv6_route.ref 2020-09-25 17:54:39.320059571 -0300 +@@ -173,7 +173,7 @@ + "active":true, + "labels":[ + 16041, +- 30051 ++ 30501 + ] + } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff index b0a4851750..6f6451e510 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt3/step8/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt3/step9/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -159,73 +159,73 @@ +--- rt3/step8/show_mpls_table.ref 2020-09-25 17:53:19.135010448 -0300 ++++ rt3/step9/show_mpls_table.ref 2020-09-25 17:54:36.852027268 -0300 +@@ -159,13 +159,13 @@ } ] }, @@ -15,14 +15,24 @@ - "outLabel":3, + "outLabel":30060, "installed":true, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5", + "backupIndex":[ +@@ -174,7 +174,7 @@ }, { "type":"SR (IS-IS)", - "outLabel":3, + "outLabel":30060, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5", + "backupIndex":[ +@@ -185,18 +185,18 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16040, ++ "outLabel":3, + "nexthop":"10.0.1.2" } ] }, @@ -37,14 +47,24 @@ - "outLabel":3, + "outLabel":30061, "installed":true, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2", + "backupIndex":[ +@@ -205,7 +205,7 @@ }, { "type":"SR (IS-IS)", - "outLabel":3, + "outLabel":30061, "installed":true, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1", + "backupIndex":[ +@@ -216,18 +216,18 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16041, ++ "outLabel":3, + "interface":"eth-sw1" } ] }, @@ -59,14 +79,24 @@ - "outLabel":30060, + "outLabel":3, "installed":true, - "nexthop":"10.0.4.5" + "nexthop":"10.0.5.5", + "backupIndex":[ +@@ -236,7 +236,7 @@ }, { "type":"SR (IS-IS)", - "outLabel":30060, + "outLabel":3, "installed":true, - "nexthop":"10.0.5.5" + "nexthop":"10.0.4.5", + "backupIndex":[ +@@ -247,18 +247,18 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":3, ++ "outLabel":16040, + "nexthop":"10.0.1.2" } ] }, @@ -81,12 +111,23 @@ - "outLabel":30061, + "outLabel":3, "installed":true, - "interface":"eth-rt5-1" + "interface":"eth-rt5-2", + "backupIndex":[ +@@ -267,7 +267,7 @@ }, { "type":"SR (IS-IS)", - "outLabel":30061, + "outLabel":3, "installed":true, - "interface":"eth-rt5-2" + "interface":"eth-rt5-1", + "backupIndex":[ +@@ -278,7 +278,7 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":3, ++ "outLabel":16041, + "interface":"eth-sw1" } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref index 3ee587ac49..168b90a3f6 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref @@ -15,6 +15,9 @@ "afi":"ipv4", "interfaceName":"eth-rt2-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16010 ] @@ -25,10 +28,21 @@ "afi":"ipv4", "interfaceName":"eth-rt2-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16010 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true + } ] } ], @@ -48,6 +62,9 @@ "afi":"ipv4", "interfaceName":"eth-rt2-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -58,10 +75,25 @@ "afi":"ipv4", "interfaceName":"eth-rt2-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16030, + 16020 + ] + } ] } ], @@ -137,10 +169,7 @@ "ip":"10.0.7.6", "afi":"ipv4", "interfaceName":"eth-rt6", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -174,10 +203,7 @@ "ip":"10.0.6.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -197,13 +223,27 @@ "ip":"10.0.2.2", "afi":"ipv4", "interfaceName":"eth-rt2-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.3.2", "afi":"ipv4", "interfaceName":"eth-rt2-2", + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", "active":true } ] @@ -219,13 +259,30 @@ { "ip":"10.0.2.2", "afi":"ipv4", - "interfaceName":"eth-rt2-1" + "interfaceName":"eth-rt2-1", + "backupIndex":[ + 0 + ] }, { "ip":"10.0.3.2", "afi":"ipv4", "interfaceName":"eth-rt2-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16030 + ] } ] } @@ -241,12 +298,29 @@ "ip":"10.0.2.2", "afi":"ipv4", "interfaceName":"eth-rt2-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "ip":"10.0.3.2", "afi":"ipv4", - "interfaceName":"eth-rt2-2" + "interfaceName":"eth-rt2-2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.5", + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16030 + ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref index 2f6b703d93..a4442ee089 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref @@ -12,8 +12,11 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16011 ] @@ -21,12 +24,22 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16011 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true + } ] } ], @@ -43,8 +56,11 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -52,12 +68,26 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, + "labels":[ + 16031, + 16021 + ] + } ] } ], @@ -74,7 +104,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-2", + "interfaceName":"eth-rt2-1", "active":true, "labels":[ 16031 @@ -92,7 +122,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt2-1", + "interfaceName":"eth-rt2-2", "active":true, "labels":[ 16031 @@ -128,10 +158,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt6", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -163,10 +190,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref index 5433d4f100..18354e947d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref +++ b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref @@ -7,13 +7,26 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.3.2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.2.2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.6.5" } ] }, @@ -25,13 +38,26 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-rt5" } ] }, @@ -43,13 +69,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.3.2" + "nexthop":"10.0.3.2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.2.2" + "nexthop":"10.0.2.2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16030, + "nexthop":"10.0.6.5" } ] }, @@ -61,13 +100,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt2-2" + "interface":"eth-rt2-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt2-1" + "interface":"eth-rt2-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16031, + "interface":"eth-rt5" } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff index 09a0eaa424..7dcdb744ac 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff @@ -1,121 +1,163 @@ ---- rt4/step3/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step4/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -14,20 +14,14 @@ - "ip":"10.0.2.2", +--- rt4/step3/show_ip_route.ref 2020-09-25 17:48:05.722919797 -0300 ++++ rt4/step4/show_ip_route.ref 2020-09-25 17:49:02.163655010 -0300 +@@ -15,9 +15,6 @@ "afi":"ipv4", "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 16010 -- ] -+ "active":true - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 16010 -- ] -+ "active":true - } - ] - } -@@ -47,20 +41,14 @@ - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } -@@ -80,30 +68,21 @@ - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 16030 -- ] -+ "active":true - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 16030 -- ] -+ "active":true - }, - { - "fib":true, - "ip":"10.0.6.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 16030 -- ] -+ "active":true - } - ] - } -@@ -123,24 +102,7 @@ - "ip":"10.0.6.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true, + "active":true, - "backupIndex":[ - 0 - ], + "labels":[ + 16010 + ] +@@ -28,21 +25,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 16010 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5", +- "active":true +- } + ] + } + ], +@@ -62,9 +48,6 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -75,25 +58,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5", +- "active":true, - "labels":[ -- 3 +- 16030, +- 16020 - ] - } + ] + } + ], +@@ -156,21 +124,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } - ], - "backupNexthops":[ - { - "ip":"10.0.7.6", - "afi":"ipv4", - "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } +- "active":true +- } ] } -@@ -160,24 +122,7 @@ - "ip":"10.0.7.6", + ], +@@ -190,21 +147,10 @@ "afi":"ipv4", "interfaceName":"eth-rt6", -- "active":true, + "active":true, - "backupIndex":[ - 0 - ], -- "labels":[ -- 3 + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5", +- "active":true +- } + ] + } + ], +@@ -223,27 +169,13 @@ + "ip":"10.0.2.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "fib":true, + "ip":"10.0.3.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5", + "active":true + } + ] +@@ -259,30 +191,13 @@ + { + "ip":"10.0.2.2", + "afi":"ipv4", +- "interfaceName":"eth-rt2-1", +- "backupIndex":[ +- 0 +- ] ++ "interfaceName":"eth-rt2-1" + }, + { + "ip":"10.0.3.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-2", +- "active":true, +- "backupIndex":[ +- 0 - ] - } - ], @@ -126,13 +168,45 @@ - "interfaceName":"eth-rt5", - "active":true, - "labels":[ -- 3 +- 16030 - ] + "active":true } ] } -@@ -266,31 +211,6 @@ +@@ -298,29 +213,12 @@ + "ip":"10.0.2.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "ip":"10.0.3.2", + "afi":"ipv4", +- "interfaceName":"eth-rt2-2", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.5", +- "afi":"ipv4", +- "interfaceName":"eth-rt5", +- "active":true, +- "labels":[ +- 16030 +- ] ++ "interfaceName":"eth-rt2-2" + } + ] + } +@@ -340,31 +238,6 @@ "ip":"10.0.6.5", "afi":"ipv4", "interfaceName":"eth-rt5", @@ -164,7 +238,7 @@ "active":true } ] -@@ -311,31 +231,6 @@ +@@ -385,31 +258,6 @@ "ip":"10.0.6.5", "afi":"ipv4", "interfaceName":"eth-rt5", @@ -196,7 +270,7 @@ "active":true } ] -@@ -351,18 +246,7 @@ +@@ -425,18 +273,7 @@ { "ip":"10.0.6.5", "afi":"ipv4", @@ -216,7 +290,7 @@ } ] } -@@ -377,18 +261,7 @@ +@@ -451,18 +288,7 @@ { "ip":"10.0.7.6", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff index c1f9fa4bba..b84ceaff1a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff @@ -1,118 +1,57 @@ ---- rt4/step3/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step4/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -13,19 +13,13 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 16011 -- ] -+ "active":true - }, - { - "fib":true, +--- rt4/step3/show_ipv6_route.ref 2020-09-25 17:48:06.998936410 -0300 ++++ rt4/step4/show_ipv6_route.ref 2020-09-25 17:49:03.399671119 -0300 +@@ -14,9 +14,6 @@ "afi":"ipv6", "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 16011 -- ] -+ "active":true - } - ] - } -@@ -44,19 +38,13 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } -@@ -75,28 +63,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true, -- "labels":[ -- 16031 -- ] -+ "active":true - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 16031 -- ] -+ "active":true - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-1", -- "active":true, -- "labels":[ -- 16031 -- ] -+ "active":true - } - ] - } -@@ -115,23 +94,7 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true, + "active":true, - "backupIndex":[ - 0 - ], -- "labels":[ -- 3 -- ] -- } + "labels":[ + 16011 + ] +@@ -26,20 +23,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt2-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 16011 + ] + } - ], - "backupNexthops":[ - { - "afi":"ipv6", -- "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } +- "interfaceName":"eth-rt5", +- "active":true +- } ] } -@@ -150,23 +113,7 @@ - "fib":true, + ], +@@ -58,9 +45,6 @@ "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true, + "interfaceName":"eth-rt2-1", + "active":true, - "backupIndex":[ - 0 - ], -- "labels":[ -- 3 -- ] -- } + "labels":[ + 3 + ] +@@ -70,24 +54,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt2-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } - ], - "backupNexthops":[ - { @@ -120,9 +59,52 @@ - "interfaceName":"eth-rt5", - "active":true, - "labels":[ -- 3 +- 16031, +- 16021 - ] -+ "active":true - } +- } ] } + ], +@@ -146,20 +116,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "afi":"ipv6", +- "interfaceName":"eth-rt6", +- "active":true +- } + ] + } + ], +@@ -178,20 +138,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt6", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "afi":"ipv6", +- "interfaceName":"eth-rt5", +- "active":true +- } + ] + } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff index 710f81708b..70e0108b0d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff @@ -1,135 +1,125 @@ ---- rt4/step3/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step4/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -1,210 +1,2 @@ - { -- "16010":{ -- "inLabel":16010, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16010, -- "installed":true, -- "nexthop":"10.0.3.2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16010, -- "installed":true, -- "nexthop":"10.0.2.2" +--- rt4/step3/show_mpls_table.ref 2020-09-25 17:48:04.418902820 -0300 ++++ rt4/step4/show_mpls_table.ref 2020-09-25 17:49:00.959639319 -0300 +@@ -7,26 +7,13 @@ + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, +- "nexthop":"10.0.3.2", +- "backupIndex":[ +- 0 +- ] ++ "nexthop":"10.0.3.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, +- "nexthop":"10.0.2.2", +- "backupIndex":[ +- 0 +- ] - } -- ] -- }, -- "16011":{ -- "inLabel":16011, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16011, -- "installed":true, -- "interface":"eth-rt2-2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16011, -- "installed":true, -- "interface":"eth-rt2-1" -- } -- ] -- }, -- "16020":{ -- "inLabel":16020, -- "installed":true, -- "nexthops":[ +- ], +- "backupNexthops":[ - { - "type":"SR (IS-IS)", - "outLabel":3, -- "installed":true, -- "nexthop":"10.0.3.2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "nexthop":"10.0.2.2" -- } -- ] -- }, -- "16021":{ -- "inLabel":16021, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "interface":"eth-rt2-2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, -- "interface":"eth-rt2-1" -- } -- ] -- }, -- "16030":{ -- "inLabel":16030, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16030, -- "installed":true, -- "nexthop":"10.0.3.2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16030, -- "installed":true, -- "nexthop":"10.0.2.2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16030, -- "installed":true, - "nexthop":"10.0.6.5" ++ "nexthop":"10.0.2.2" + } + ] + }, +@@ -38,26 +25,13 @@ + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, +- "interface":"eth-rt2-2", +- "backupIndex":[ +- 0 +- ] ++ "interface":"eth-rt2-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, +- "interface":"eth-rt2-1", +- "backupIndex":[ +- 0 +- ] - } -- ] -- }, -- "16031":{ -- "inLabel":16031, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16031, -- "installed":true, -- "interface":"eth-rt2-2" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16031, -- "installed":true, -- "interface":"eth-rt2-1" -- }, -- { -- "type":"SR (IS-IS)", -- "outLabel":16031, -- "installed":true, -- "interface":"eth-rt5" -- } -- ] -- }, -- "16050":{ -- "inLabel":16050, -- "installed":true, -- "nexthops":[ +- ], +- "backupNexthops":[ - { - "type":"SR (IS-IS)", - "outLabel":3, -- "installed":true, +- "interface":"eth-rt5" ++ "interface":"eth-rt2-1" + } + ] + }, +@@ -69,26 +43,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.3.2", +- "backupIndex":[ +- 0 +- ] ++ "nexthop":"10.0.3.2" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.2.2", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16030, +- "nexthop":"10.0.6.5" ++ "nexthop":"10.0.2.2" + } + ] + }, +@@ -100,26 +61,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt2-2", +- "backupIndex":[ +- 0 +- ] ++ "interface":"eth-rt2-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt2-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16031, +- "interface":"eth-rt5" ++ "interface":"eth-rt2-1" + } + ] + }, +@@ -179,17 +127,7 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, - "nexthop":"10.0.6.5", - "backupIndex":[ - 0 @@ -141,17 +131,14 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "nexthop":"10.0.7.6" -- } -- ] -- }, -- "16051":{ -- "inLabel":16051, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, ++ "nexthop":"10.0.6.5" + } + ] + }, +@@ -201,17 +139,7 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, - "interface":"eth-rt5", - "backupIndex":[ - 0 @@ -163,17 +150,14 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "interface":"eth-rt6" -- } -- ] -- }, -- "16060":{ -- "inLabel":16060, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, ++ "interface":"eth-rt5" + } + ] + }, +@@ -223,17 +151,7 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, - "nexthop":"10.0.7.6", - "backupIndex":[ - 0 @@ -185,17 +169,14 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "nexthop":"10.0.6.5" -- } -- ] -- }, -- "16061":{ -- "inLabel":16061, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "installed":true, ++ "nexthop":"10.0.7.6" + } + ] + }, +@@ -245,17 +163,7 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, - "interface":"eth-rt6", - "backupIndex":[ - 0 @@ -207,7 +188,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "interface":"eth-rt5" -- } -- ] -- } - } ++ "interface":"eth-rt6" + } + ] + } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff index e19f6b293c..aa319a3232 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff @@ -1,122 +1,164 @@ ---- rt4/step4/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step5/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -14,14 +14,20 @@ - "ip":"10.0.2.2", +--- rt4/step4/show_ip_route.ref 2020-09-25 17:49:02.163655010 -0300 ++++ rt4/step5/show_ip_route.ref 2020-09-25 17:50:12.800576153 -0300 +@@ -15,6 +15,9 @@ "afi":"ipv4", "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16010 -+ ] - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16010 -+ ] - } - ] - } -@@ -41,14 +47,20 @@ - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } -@@ -68,21 +80,30 @@ - "ip":"10.0.2.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16030 -+ ] - }, - { - "fib":true, - "ip":"10.0.3.2", - "afi":"ipv4", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16030 -+ ] - }, - { - "fib":true, - "ip":"10.0.6.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 16030 -+ ] - } - ] - } -@@ -102,7 +123,24 @@ - "ip":"10.0.6.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, + "active":true, + "backupIndex":[ + 0 + ], + "labels":[ + 16010 + ] +@@ -25,10 +28,21 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 16010 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5", ++ "active":true ++ } + ] + } + ], +@@ -48,6 +62,9 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -58,10 +75,25 @@ + "afi":"ipv4", + "interfaceName":"eth-rt2-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5", ++ "active":true, + "labels":[ -+ 3 ++ 16030, ++ 16020 + ] + } + ] + } + ], +@@ -124,10 +156,21 @@ + "afi":"ipv4", + "interfaceName":"eth-rt5", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.7.6", + "afi":"ipv4", + "interfaceName":"eth-rt6", -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } ++ "active":true ++ } ] } -@@ -122,7 +160,24 @@ - "ip":"10.0.7.6", + ], +@@ -147,10 +190,21 @@ "afi":"ipv4", "interfaceName":"eth-rt6", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5", ++ "active":true ++ } + ] + } + ], +@@ -169,13 +223,27 @@ + "ip":"10.0.2.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "fib":true, + "ip":"10.0.3.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-2", ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5", + "active":true + } + ] +@@ -191,13 +259,30 @@ + { + "ip":"10.0.2.2", + "afi":"ipv4", +- "interfaceName":"eth-rt2-1" ++ "interfaceName":"eth-rt2-1", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.3.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-2", - "active":true + "active":true, + "backupIndex":[ + 0 -+ ], -+ "labels":[ -+ 3 + ] + } + ], @@ -127,12 +169,44 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ -+ 3 ++ 16030 + ] } ] } -@@ -211,6 +266,31 @@ +@@ -213,12 +298,29 @@ + "ip":"10.0.2.2", + "afi":"ipv4", + "interfaceName":"eth-rt2-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.3.2", + "afi":"ipv4", +- "interfaceName":"eth-rt2-2" ++ "interfaceName":"eth-rt2-2", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.5", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt5", ++ "active":true, ++ "labels":[ ++ 16030 ++ ] + } + ] + } +@@ -238,6 +340,31 @@ "ip":"10.0.6.5", "afi":"ipv4", "interfaceName":"eth-rt5", @@ -164,7 +238,7 @@ "active":true } ] -@@ -231,6 +311,31 @@ +@@ -258,6 +385,31 @@ "ip":"10.0.6.5", "afi":"ipv4", "interfaceName":"eth-rt5", @@ -196,7 +270,7 @@ "active":true } ] -@@ -246,7 +351,18 @@ +@@ -273,7 +425,18 @@ { "ip":"10.0.6.5", "afi":"ipv4", @@ -216,7 +290,7 @@ } ] } -@@ -261,7 +377,18 @@ +@@ -288,7 +451,18 @@ { "ip":"10.0.7.6", "afi":"ipv4", diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff index 5289194396..1bd207854c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff @@ -1,119 +1,57 @@ ---- rt4/step4/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step5/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -13,13 +13,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16011 -+ ] - }, - { - "fib":true, +--- rt4/step4/show_ipv6_route.ref 2020-09-25 17:49:03.399671119 -0300 ++++ rt4/step5/show_ipv6_route.ref 2020-09-25 17:50:14.040592332 -0300 +@@ -14,6 +14,9 @@ "afi":"ipv6", "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16011 -+ ] - } - ] - } -@@ -38,13 +44,19 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } -@@ -63,19 +75,28 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-2", -- "active":true -+ "active":true, -+ "labels":[ -+ 16031 -+ ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 16031 -+ ] - }, - { - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt2-1", -- "active":true -+ "active":true, -+ "labels":[ -+ 16031 -+ ] - } - ] - } -@@ -94,7 +115,23 @@ - "fib":true, - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, + "active":true, + "backupIndex":[ + 0 + ], -+ "labels":[ -+ 3 -+ ] -+ } + "labels":[ + 16011 + ] +@@ -23,10 +26,20 @@ + "afi":"ipv6", + "interfaceName":"eth-rt2-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 16011 + ] + } + ], + "backupNexthops":[ + { + "afi":"ipv6", -+ "interfaceName":"eth-rt6", -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } ++ "interfaceName":"eth-rt5", ++ "active":true ++ } ] } -@@ -113,7 +150,23 @@ - "fib":true, + ], +@@ -45,6 +58,9 @@ "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true -+ "active":true, + "interfaceName":"eth-rt2-1", + "active":true, + "backupIndex":[ + 0 + ], -+ "labels":[ -+ 3 -+ ] -+ } + "labels":[ + 3 + ] +@@ -54,10 +70,24 @@ + "afi":"ipv6", + "interfaceName":"eth-rt2-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } + ], + "backupNexthops":[ + { @@ -121,8 +59,52 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ -+ 3 ++ 16031, ++ 16021 + ] - } ++ } ] } + ], +@@ -116,10 +146,20 @@ + "afi":"ipv6", + "interfaceName":"eth-rt5", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "afi":"ipv6", ++ "interfaceName":"eth-rt6", ++ "active":true ++ } + ] + } + ], +@@ -138,10 +178,20 @@ + "afi":"ipv6", + "interfaceName":"eth-rt6", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "afi":"ipv6", ++ "interfaceName":"eth-rt5", ++ "active":true ++ } + ] + } + ] diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff index 8bcd28aa2d..664b129a1b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff @@ -1,135 +1,126 @@ ---- rt4/step4/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step5/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -1,2 +1,210 @@ - { -+ "16010":{ -+ "inLabel":16010, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16010, -+ "installed":true, -+ "nexthop":"10.0.3.2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16010, -+ "installed":true, -+ "nexthop":"10.0.2.2" +--- rt4/step4/show_mpls_table.ref 2020-09-25 17:49:00.959639319 -0300 ++++ rt4/step5/show_mpls_table.ref 2020-09-25 17:50:11.488559034 -0300 +@@ -7,13 +7,26 @@ + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, +- "nexthop":"10.0.3.2" ++ "nexthop":"10.0.3.2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, +- "nexthop":"10.0.2.2" ++ "nexthop":"10.0.2.2", ++ "backupIndex":[ ++ 0 ++ ] + } -+ ] -+ }, -+ "16011":{ -+ "inLabel":16011, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16011, -+ "installed":true, -+ "interface":"eth-rt2-2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16011, -+ "installed":true, -+ "interface":"eth-rt2-1" -+ } -+ ] -+ }, -+ "16020":{ -+ "inLabel":16020, -+ "installed":true, -+ "nexthops":[ ++ ], ++ "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, -+ "installed":true, -+ "nexthop":"10.0.3.2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, -+ "nexthop":"10.0.2.2" -+ } -+ ] -+ }, -+ "16021":{ -+ "inLabel":16021, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, -+ "interface":"eth-rt2-2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, -+ "interface":"eth-rt2-1" -+ } -+ ] -+ }, -+ "16030":{ -+ "inLabel":16030, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16030, -+ "installed":true, -+ "nexthop":"10.0.3.2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16030, -+ "installed":true, -+ "nexthop":"10.0.2.2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16030, -+ "installed":true, + "nexthop":"10.0.6.5" + } + ] + }, +@@ -25,13 +38,26 @@ + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, +- "interface":"eth-rt2-2" ++ "interface":"eth-rt2-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, +- "interface":"eth-rt2-1" ++ "interface":"eth-rt2-1", ++ "backupIndex":[ ++ 0 ++ ] + } -+ ] -+ }, -+ "16031":{ -+ "inLabel":16031, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16031, -+ "installed":true, -+ "interface":"eth-rt2-2" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16031, -+ "installed":true, -+ "interface":"eth-rt2-1" -+ }, -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16031, -+ "installed":true, -+ "interface":"eth-rt5" -+ } -+ ] -+ }, -+ "16050":{ -+ "inLabel":16050, -+ "installed":true, -+ "nexthops":[ ++ ], ++ "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, -+ "installed":true, ++ "interface":"eth-rt5" + } + ] + }, +@@ -43,13 +69,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.3.2" ++ "nexthop":"10.0.3.2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.2.2" ++ "nexthop":"10.0.2.2", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16030, ++ "nexthop":"10.0.6.5" + } + ] + }, +@@ -61,13 +100,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt2-2" ++ "interface":"eth-rt2-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt2-1" ++ "interface":"eth-rt2-1", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16031, ++ "interface":"eth-rt5" + } + ] + }, +@@ -127,7 +179,17 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.6.5" + "nexthop":"10.0.6.5", + "backupIndex":[ + 0 @@ -141,17 +132,14 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.7.6" -+ } -+ ] -+ }, -+ "16051":{ -+ "inLabel":16051, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, + } + ] + }, +@@ -139,7 +201,17 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt5" + "interface":"eth-rt5", + "backupIndex":[ + 0 @@ -163,17 +151,14 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-rt6" -+ } -+ ] -+ }, -+ "16060":{ -+ "inLabel":16060, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, + } + ] + }, +@@ -151,7 +223,17 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.7.6" + "nexthop":"10.0.7.6", + "backupIndex":[ + 0 @@ -185,17 +170,14 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.6.5" -+ } -+ ] -+ }, -+ "16061":{ -+ "inLabel":16061, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "installed":true, + } + ] + }, +@@ -163,7 +245,17 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt6" + "interface":"eth-rt6", + "backupIndex":[ + 0 @@ -207,7 +189,6 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-rt5" -+ } -+ ] -+ } - } + } + ] + } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff index 03f31f7273..c758b89839 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff @@ -1,6 +1,33 @@ ---- rt4/step5/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step6/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -102,7 +102,7 @@ +--- rt4/step5/show_ip_route.ref 2020-09-25 17:50:12.800576153 -0300 ++++ rt4/step6/show_ip_route.ref 2020-09-25 17:51:15.725397558 -0300 +@@ -90,7 +90,7 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ +- 16030, ++ 30030, + 16020 + ] + } +@@ -134,7 +134,7 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ +- 16030 ++ 30030 + ] + } + ] +@@ -281,7 +281,7 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ +- 16030 ++ 30030 + ] + } + ] +@@ -319,7 +319,7 @@ "interfaceName":"eth-rt5", "active":true, "labels":[ diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff index 43621e117c..ca495216dd 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff @@ -1,6 +1,15 @@ ---- rt4/step5/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step6/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -86,7 +86,7 @@ +--- rt4/step5/show_ipv6_route.ref 2020-09-25 17:50:14.040592332 -0300 ++++ rt4/step6/show_ipv6_route.ref 2020-09-25 17:51:16.969413804 -0300 +@@ -84,7 +84,7 @@ + "interfaceName":"eth-rt5", + "active":true, + "labels":[ +- 16031, ++ 30031, + 16021 + ] + } +@@ -116,7 +116,7 @@ "interfaceName":"eth-rt5", "active":true, "labels":[ diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff index 871824bb6a..630e0419cf 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff @@ -1,6 +1,24 @@ ---- rt4/step5/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step6/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -89,7 +89,7 @@ +--- rt4/step5/show_mpls_table.ref 2020-09-25 17:50:11.488559034 -0300 ++++ rt4/step6/show_mpls_table.ref 2020-09-25 17:51:14.481381312 -0300 +@@ -87,7 +87,7 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16030, ++ "outLabel":30030, + "nexthop":"10.0.6.5" + } + ] +@@ -118,7 +118,7 @@ + "backupNexthops":[ + { + "type":"SR (IS-IS)", +- "outLabel":16031, ++ "outLabel":30031, + "interface":"eth-rt5" + } + ] +@@ -141,7 +141,7 @@ }, { "type":"SR (IS-IS)", @@ -9,7 +27,7 @@ "installed":true, "nexthop":"10.0.6.5" } -@@ -113,7 +113,7 @@ +@@ -165,7 +165,7 @@ }, { "type":"SR (IS-IS)", diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff index 1f1de16c0e..30e0dcf3c0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step6/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step7/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -126,9 +126,6 @@ +--- rt4/step6/show_ip_route.ref 2020-09-25 17:51:15.725397558 -0300 ++++ rt4/step7/show_ip_route.ref 2020-09-25 17:52:02.614010084 -0300 +@@ -158,9 +158,6 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -137,10 +134,7 @@ - "ip":"10.0.7.6", - "afi":"ipv4", - "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff index 1c2f0f6fef..2606027d75 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step6/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step7/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -118,9 +118,6 @@ +--- rt4/step6/show_ipv6_route.ref 2020-09-25 17:51:16.969413804 -0300 ++++ rt4/step7/show_ipv6_route.ref 2020-09-25 17:52:03.854026287 -0300 +@@ -148,9 +148,6 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -128,10 +125,7 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff index dfe7aef93a..5334cfd048 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step6/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step7/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -119,50 +119,6 @@ +--- rt4/step6/show_mpls_table.ref 2020-09-25 17:51:14.481381312 -0300 ++++ rt4/step7/show_mpls_table.ref 2020-09-25 17:52:01.385994037 -0300 +@@ -171,50 +171,6 @@ } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff index e9445650a7..b393970e42 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step7/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step8/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -126,6 +126,9 @@ +--- rt4/step7/show_ip_route.ref 2020-09-25 17:52:02.614010084 -0300 ++++ rt4/step8/show_ip_route.ref 2020-09-25 17:53:20.623029909 -0300 +@@ -158,6 +158,9 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -134,7 +137,10 @@ - "ip":"10.0.7.6", - "afi":"ipv4", - "interfaceName":"eth-rt6", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff index 0d699ad92e..8bad2edcf3 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step7/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step8/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -118,6 +118,9 @@ +--- rt4/step7/show_ipv6_route.ref 2020-09-25 17:52:03.854026287 -0300 ++++ rt4/step8/show_ipv6_route.ref 2020-09-25 17:53:21.843045865 -0300 +@@ -148,6 +148,9 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -125,7 +128,10 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff index 145d3b1fa1..d296dbdcaf 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step7/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step8/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -119,6 +119,50 @@ +--- rt4/step7/show_mpls_table.ref 2020-09-25 17:52:01.385994037 -0300 ++++ rt4/step8/show_mpls_table.ref 2020-09-25 17:53:19.371013534 -0300 +@@ -171,6 +171,50 @@ } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff index 6ae67bcfbe..408cbfb0ba 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff @@ -1,6 +1,6 @@ ---- rt4/step8/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt4/step9/show_mpls_table.ref 2020-08-31 22:42:48.839561398 -0300 -@@ -119,15 +119,15 @@ +--- rt4/step8/show_mpls_table.ref 2020-09-25 17:53:19.371013534 -0300 ++++ rt4/step9/show_mpls_table.ref 2020-09-25 17:54:37.064030042 -0300 +@@ -171,15 +171,15 @@ } ] }, @@ -19,7 +19,7 @@ "backupIndex":[ 0 ] -@@ -137,19 +137,19 @@ +@@ -189,19 +189,19 @@ { "type":"SR (IS-IS)", "outLabel":3, @@ -43,7 +43,7 @@ "backupIndex":[ 0 ] -@@ -159,19 +159,19 @@ +@@ -211,19 +211,19 @@ { "type":"SR (IS-IS)", "outLabel":3, @@ -67,7 +67,7 @@ "backupIndex":[ 0 ] -@@ -181,19 +181,19 @@ +@@ -233,19 +233,19 @@ { "type":"SR (IS-IS)", "outLabel":3, @@ -91,7 +91,7 @@ "backupIndex":[ 0 ] -@@ -203,7 +203,7 @@ +@@ -255,7 +255,7 @@ { "type":"SR (IS-IS)", "outLabel":3, diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref index ce320d0b12..f747065f9c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref @@ -15,6 +15,9 @@ "afi":"ipv4", "interfaceName":"eth-rt3-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16010 ] @@ -25,10 +28,21 @@ "afi":"ipv4", "interfaceName":"eth-rt3-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16010 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true + } ] } ], @@ -91,6 +105,9 @@ "afi":"ipv4", "interfaceName":"eth-rt3-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -101,10 +118,25 @@ "afi":"ipv4", "interfaceName":"eth-rt3-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16020, + 16030 + ] + } ] } ], @@ -137,10 +169,7 @@ "ip":"10.0.8.6", "afi":"ipv4", "interfaceName":"eth-rt6", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -174,10 +203,7 @@ "ip":"10.0.6.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -197,13 +223,27 @@ "ip":"10.0.4.3", "afi":"ipv4", "interfaceName":"eth-rt3-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "fib":true, "ip":"10.0.5.3", "afi":"ipv4", "interfaceName":"eth-rt3-2", + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", "active":true } ] @@ -309,13 +349,30 @@ { "ip":"10.0.4.3", "afi":"ipv4", - "interfaceName":"eth-rt3-1" + "interfaceName":"eth-rt3-1", + "backupIndex":[ + 0 + ] }, { "ip":"10.0.5.3", "afi":"ipv4", "interfaceName":"eth-rt3-2", - "active":true + "active":true, + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16020 + ] } ] } @@ -331,12 +388,29 @@ "ip":"10.0.4.3", "afi":"ipv4", "interfaceName":"eth-rt3-1", - "active":true + "active":true, + "backupIndex":[ + 0 + ] }, { "ip":"10.0.5.3", "afi":"ipv4", - "interfaceName":"eth-rt3-2" + "interfaceName":"eth-rt3-2", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "ip":"10.0.6.4", + "afi":"ipv4", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16020 + ] } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref index 5bda17760e..6c0a5e0b9b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref @@ -14,6 +14,9 @@ "afi":"ipv6", "interfaceName":"eth-rt3-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16011 ] @@ -23,10 +26,20 @@ "afi":"ipv6", "interfaceName":"eth-rt3-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 16011 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true + } ] } ], @@ -43,7 +56,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt3-1", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16021 @@ -52,7 +65,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt3-1", "active":true, "labels":[ 16021 @@ -85,6 +98,9 @@ "afi":"ipv6", "interfaceName":"eth-rt3-1", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] @@ -94,10 +110,24 @@ "afi":"ipv6", "interfaceName":"eth-rt3-2", "active":true, + "backupIndex":[ + 0 + ], "labels":[ 3 ] } + ], + "backupNexthops":[ + { + "afi":"ipv6", + "interfaceName":"eth-rt4", + "active":true, + "labels":[ + 16021, + 16031 + ] + } ] } ], @@ -128,10 +158,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt6", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -163,10 +190,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref index 84ba09910c..2b70392adc 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref +++ b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref @@ -7,13 +7,26 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.5.3" + "nexthop":"10.0.5.3", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.4.3" + "nexthop":"10.0.4.3", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "nexthop":"10.0.6.4" } ] }, @@ -25,13 +38,26 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt3-2" + "interface":"eth-rt3-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt3-1" + "interface":"eth-rt3-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-rt4" } ] }, @@ -91,13 +117,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.5.3" + "nexthop":"10.0.5.3", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "nexthop":"10.0.4.3" + "nexthop":"10.0.4.3", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16020, + "nexthop":"10.0.6.4" } ] }, @@ -109,13 +148,26 @@ "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt3-2" + "interface":"eth-rt3-2", + "backupIndex":[ + 0 + ] }, { "type":"SR (IS-IS)", "outLabel":3, "installed":true, - "interface":"eth-rt3-1" + "interface":"eth-rt3-1", + "backupIndex":[ + 0 + ] + } + ], + "backupNexthops":[ + { + "type":"SR (IS-IS)", + "outLabel":16021, + "interface":"eth-rt4" } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff index f9f01414c9..6402b51893 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff @@ -1,15 +1,54 @@ ---- rt5/step3/show_ip_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt5/step4/show_ip_route.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -69,7 +69,7 @@ +--- rt5/step3/show_ip_route.ref 2020-09-25 17:48:05.950922766 -0300 ++++ rt5/step4/show_ip_route.ref 2020-09-25 17:49:02.363657616 -0300 +@@ -81,10 +81,7 @@ + "ip":"10.0.6.4", + "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ +- "active":true, +- "labels":[ - 16020 -+ 3 - ] +- ] ++ "active":true } ] -@@ -126,9 +126,6 @@ + } +@@ -105,9 +102,6 @@ + "afi":"ipv4", + "interfaceName":"eth-rt3-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -118,25 +112,10 @@ + "afi":"ipv4", + "interfaceName":"eth-rt3-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.4", +- "afi":"ipv4", +- "interfaceName":"eth-rt4", +- "active":true, +- "labels":[ +- 16020, +- 16030 +- ] +- } + ] + } + ], +@@ -158,9 +137,6 @@ "active":true, "backupIndex":[ 0 @@ -19,15 +58,68 @@ ] } ], -@@ -137,10 +134,7 @@ - "ip":"10.0.8.6", +@@ -349,30 +325,13 @@ + { + "ip":"10.0.4.3", "afi":"ipv4", - "interfaceName":"eth-rt6", +- "interfaceName":"eth-rt3-1", +- "backupIndex":[ +- 0 +- ] ++ "interfaceName":"eth-rt3-1" + }, + { + "ip":"10.0.5.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-2", +- "active":true, +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.4", +- "afi":"ipv4", +- "interfaceName":"eth-rt4", - "active":true, - "labels":[ -- 3 +- 16020 - ] + "active":true } ] } +@@ -388,29 +347,12 @@ + "ip":"10.0.4.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-1", +- "active":true, +- "backupIndex":[ +- 0 +- ] ++ "active":true + }, + { + "ip":"10.0.5.3", + "afi":"ipv4", +- "interfaceName":"eth-rt3-2", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "ip":"10.0.6.4", +- "afi":"ipv4", +- "interfaceName":"eth-rt4", +- "active":true, +- "labels":[ +- 16020 +- ] ++ "interfaceName":"eth-rt3-2" + } + ] + } diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff index 3e3c7d8541..7a0135bf04 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff @@ -1,15 +1,53 @@ ---- rt5/step3/show_ipv6_route.ref 2020-08-31 22:42:48.839561398 -0300 -+++ rt5/step4/show_ipv6_route.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -55,7 +55,7 @@ +--- rt5/step3/show_ipv6_route.ref 2020-09-25 17:48:07.218939274 -0300 ++++ rt5/step4/show_ipv6_route.ref 2020-09-25 17:49:03.599673726 -0300 +@@ -57,10 +57,7 @@ + "fib":true, + "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ +- "active":true, +- "labels":[ - 16021 -+ 3 - ] +- ] ++ "active":true }, { -@@ -118,9 +118,6 @@ + "fib":true, +@@ -98,9 +95,6 @@ + "afi":"ipv6", + "interfaceName":"eth-rt3-1", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] +@@ -110,24 +104,10 @@ + "afi":"ipv6", + "interfaceName":"eth-rt3-2", + "active":true, +- "backupIndex":[ +- 0 +- ], + "labels":[ + 3 + ] + } +- ], +- "backupNexthops":[ +- { +- "afi":"ipv6", +- "interfaceName":"eth-rt4", +- "active":true, +- "labels":[ +- 16021, +- 16031 +- ] +- } + ] + } + ], +@@ -148,9 +128,6 @@ "active":true, "backupIndex":[ 0 @@ -19,15 +57,3 @@ ] } ], -@@ -128,10 +125,7 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff index 21c426e678..299dac7640 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff @@ -1,27 +1,88 @@ ---- rt5/step3/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt5/step4/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -53,7 +53,7 @@ - }, - { - "type":"SR (IS-IS)", +--- rt5/step3/show_mpls_table.ref 2020-09-25 17:48:04.626905528 -0300 ++++ rt5/step4/show_mpls_table.ref 2020-09-25 17:49:01.159641924 -0300 +@@ -76,12 +76,6 @@ + "outLabel":16020, + "installed":true, + "nexthop":"10.0.4.3" +- }, +- { +- "type":"SR (IS-IS)", - "outLabel":16020, -+ "outLabel":3, - "installed":true, - "nexthop":"10.0.6.4" - } -@@ -77,7 +77,7 @@ - }, - { - "type":"SR (IS-IS)", -- "outLabel":16021, -+ "outLabel":3, - "installed":true, - "interface":"eth-rt4" - } -@@ -119,50 +119,6 @@ +- "installed":true, +- "nexthop":"10.0.6.4" } ] }, +@@ -100,12 +94,6 @@ + "outLabel":16021, + "installed":true, + "interface":"eth-rt3-1" +- }, +- { +- "type":"SR (IS-IS)", +- "outLabel":16021, +- "installed":true, +- "interface":"eth-rt4" + } + ] + }, +@@ -117,26 +105,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.5.3", +- "backupIndex":[ +- 0 +- ] ++ "nexthop":"10.0.5.3" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.4.3", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16020, +- "nexthop":"10.0.6.4" ++ "nexthop":"10.0.4.3" + } + ] + }, +@@ -148,70 +123,13 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt3-2", +- "backupIndex":[ +- 0 +- ] ++ "interface":"eth-rt3-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt3-1", +- "backupIndex":[ +- 0 +- ] +- } +- ], +- "backupNexthops":[ +- { +- "type":"SR (IS-IS)", +- "outLabel":16021, +- "interface":"eth-rt4" +- } +- ] +- }, - "16040":{ - "inLabel":16040, - "installed":true, @@ -63,9 +124,7 @@ - "type":"SR (IS-IS)", - "outLabel":3, - "interface":"eth-rt6" -- } -- ] -- }, - "16060":{ - "inLabel":16060, - "installed":true, ++ "interface":"eth-rt3-1" + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff index 49253b130f..31f70b17a3 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff @@ -1,15 +1,54 @@ ---- rt5/step4/show_ip_route.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt5/step5/show_ip_route.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -69,7 +69,7 @@ +--- rt5/step4/show_ip_route.ref 2020-09-25 17:49:02.363657616 -0300 ++++ rt5/step5/show_ip_route.ref 2020-09-25 17:50:13.012578918 -0300 +@@ -81,7 +81,10 @@ + "ip":"10.0.6.4", + "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ -- 3 +- "active":true ++ "active":true, ++ "labels":[ + 16020 - ] ++ ] } ] -@@ -126,6 +126,9 @@ + } +@@ -102,6 +105,9 @@ + "afi":"ipv4", + "interfaceName":"eth-rt3-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -112,10 +118,25 @@ + "afi":"ipv4", + "interfaceName":"eth-rt3-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.4", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt4", ++ "active":true, ++ "labels":[ ++ 16020, ++ 16030 ++ ] ++ } + ] + } + ], +@@ -137,6 +158,9 @@ "active":true, "backupIndex":[ 0 @@ -19,14 +58,67 @@ ] } ], -@@ -134,7 +137,10 @@ - "ip":"10.0.8.6", +@@ -325,13 +349,30 @@ + { + "ip":"10.0.4.3", "afi":"ipv4", - "interfaceName":"eth-rt6", +- "interfaceName":"eth-rt3-1" ++ "interfaceName":"eth-rt3-1", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.5.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-2", - "active":true + "active":true, ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.4", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt4", ++ "active":true, + "labels":[ -+ 3 ++ 16020 ++ ] + } + ] + } +@@ -347,12 +388,29 @@ + "ip":"10.0.4.3", + "afi":"ipv4", + "interfaceName":"eth-rt3-1", +- "active":true ++ "active":true, ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "ip":"10.0.5.3", + "afi":"ipv4", +- "interfaceName":"eth-rt3-2" ++ "interfaceName":"eth-rt3-2", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "ip":"10.0.6.4", ++ "afi":"ipv4", ++ "interfaceName":"eth-rt4", ++ "active":true, ++ "labels":[ ++ 16020 + ] } ] diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff index 2ee7db9e7e..59d9755e18 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff @@ -1,15 +1,53 @@ ---- rt5/step4/show_ipv6_route.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt5/step5/show_ipv6_route.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -55,7 +55,7 @@ +--- rt5/step4/show_ipv6_route.ref 2020-09-25 17:49:03.599673726 -0300 ++++ rt5/step5/show_ipv6_route.ref 2020-09-25 17:50:14.248595046 -0300 +@@ -57,7 +57,10 @@ + "fib":true, + "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ -- 3 +- "active":true ++ "active":true, ++ "labels":[ + 16021 - ] ++ ] }, { -@@ -118,6 +118,9 @@ + "fib":true, +@@ -95,6 +98,9 @@ + "afi":"ipv6", + "interfaceName":"eth-rt3-1", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] +@@ -104,10 +110,24 @@ + "afi":"ipv6", + "interfaceName":"eth-rt3-2", + "active":true, ++ "backupIndex":[ ++ 0 ++ ], + "labels":[ + 3 + ] + } ++ ], ++ "backupNexthops":[ ++ { ++ "afi":"ipv6", ++ "interfaceName":"eth-rt4", ++ "active":true, ++ "labels":[ ++ 16021, ++ 16031 ++ ] ++ } + ] + } + ], +@@ -128,6 +148,9 @@ "active":true, "backupIndex":[ 0 @@ -19,15 +57,3 @@ ] } ], -@@ -125,7 +128,10 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt6", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff index 269b8ddc94..669c07e344 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff @@ -1,27 +1,89 @@ ---- rt5/step4/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt5/step5/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -@@ -53,7 +53,7 @@ - }, - { +--- rt5/step4/show_mpls_table.ref 2020-09-25 17:49:01.159641924 -0300 ++++ rt5/step5/show_mpls_table.ref 2020-09-25 17:50:11.696561748 -0300 +@@ -69,6 +69,12 @@ "type":"SR (IS-IS)", -- "outLabel":3, + "outLabel":16020, + "installed":true, ++ "nexthop":"10.0.6.4" ++ }, ++ { ++ "type":"SR (IS-IS)", + "outLabel":16020, ++ "installed":true, + "nexthop":"10.0.5.3" + }, + { +@@ -87,6 +93,12 @@ + "type":"SR (IS-IS)", + "outLabel":16021, "installed":true, - "nexthop":"10.0.6.4" - } -@@ -77,7 +77,7 @@ ++ "interface":"eth-rt4" ++ }, ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16021, ++ "installed":true, + "interface":"eth-rt3-2" + }, + { +@@ -105,13 +117,26 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "nexthop":"10.0.5.3" ++ "nexthop":"10.0.5.3", ++ "backupIndex":[ ++ 0 ++ ] }, { "type":"SR (IS-IS)", -- "outLabel":3, -+ "outLabel":16021, + "outLabel":3, "installed":true, - "interface":"eth-rt4" - } -@@ -119,6 +119,50 @@ +- "nexthop":"10.0.4.3" ++ "nexthop":"10.0.4.3", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16020, ++ "nexthop":"10.0.6.4" } ] }, +@@ -123,13 +148,70 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt3-2" ++ "interface":"eth-rt3-2", ++ "backupIndex":[ ++ 0 ++ ] + }, + { + "type":"SR (IS-IS)", + "outLabel":3, + "installed":true, +- "interface":"eth-rt3-1" ++ "interface":"eth-rt3-1", ++ "backupIndex":[ ++ 0 ++ ] ++ } ++ ], ++ "backupNexthops":[ ++ { ++ "type":"SR (IS-IS)", ++ "outLabel":16021, ++ "interface":"eth-rt4" ++ } ++ ] ++ }, + "16040":{ + "inLabel":16040, + "installed":true, @@ -63,9 +125,6 @@ + "type":"SR (IS-IS)", + "outLabel":3, + "interface":"eth-rt6" -+ } -+ ] -+ }, - "16060":{ - "inLabel":16060, - "installed":true, + } + ] + }, diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff index f70ac77e6a..a4f82cbf10 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt5/step5/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt5/step6/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 +--- rt5/step5/show_mpls_table.ref 2020-09-25 17:50:11.696561748 -0300 ++++ rt5/step6/show_mpls_table.ref 2020-09-25 17:51:14.685383977 -0300 @@ -1,6 +1,6 @@ { - "16010":{ @@ -9,7 +9,7 @@ "installed":true, "nexthops":[ { -@@ -17,8 +17,8 @@ +@@ -30,8 +30,8 @@ } ] }, @@ -20,7 +20,7 @@ "installed":true, "nexthops":[ { -@@ -35,8 +35,8 @@ +@@ -61,56 +61,56 @@ } ] }, @@ -31,7 +31,25 @@ "installed":true, "nexthops":[ { -@@ -59,8 +59,8 @@ + "type":"SR (IS-IS)", + "outLabel":16020, + "installed":true, +- "nexthop":"10.0.6.4" ++ "nexthop":"10.0.5.3" + }, + { + "type":"SR (IS-IS)", + "outLabel":16020, + "installed":true, +- "nexthop":"10.0.5.3" ++ "nexthop":"10.0.4.3" + }, + { + "type":"SR (IS-IS)", + "outLabel":16020, + "installed":true, +- "nexthop":"10.0.4.3" ++ "nexthop":"10.0.6.4" } ] }, @@ -42,7 +60,25 @@ "installed":true, "nexthops":[ { -@@ -83,8 +83,8 @@ + "type":"SR (IS-IS)", + "outLabel":16021, + "installed":true, +- "interface":"eth-rt4" ++ "interface":"eth-rt3-2" + }, + { + "type":"SR (IS-IS)", + "outLabel":16021, + "installed":true, +- "interface":"eth-rt3-2" ++ "interface":"eth-rt3-1" + }, + { + "type":"SR (IS-IS)", + "outLabel":16021, + "installed":true, +- "interface":"eth-rt3-1" ++ "interface":"eth-rt4" } ] }, @@ -53,7 +89,7 @@ "installed":true, "nexthops":[ { -@@ -101,8 +101,8 @@ +@@ -140,8 +140,8 @@ } ] }, @@ -64,7 +100,7 @@ "installed":true, "nexthops":[ { -@@ -119,8 +119,8 @@ +@@ -171,8 +171,8 @@ } ] }, @@ -75,7 +111,7 @@ "installed":true, "nexthops":[ { -@@ -141,8 +141,8 @@ +@@ -193,8 +193,8 @@ } ] }, @@ -86,7 +122,7 @@ "installed":true, "nexthops":[ { -@@ -163,8 +163,8 @@ +@@ -215,8 +215,8 @@ } ] }, @@ -97,7 +133,7 @@ "installed":true, "nexthops":[ { -@@ -185,8 +185,8 @@ +@@ -237,8 +237,8 @@ } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref index c9615d1e45..5bcef4c2f6 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref @@ -61,10 +61,7 @@ "ip":"10.0.8.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -98,10 +95,7 @@ "ip":"10.0.7.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -135,10 +129,7 @@ "ip":"10.0.8.5", "afi":"ipv4", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -172,10 +163,7 @@ "ip":"10.0.7.4", "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref index b69c1491ec..8294b07136 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref @@ -12,7 +12,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt4", + "interfaceName":"eth-rt5", "active":true, "labels":[ 16011 @@ -21,7 +21,7 @@ { "fib":true, "afi":"ipv6", - "interfaceName":"eth-rt5", + "interfaceName":"eth-rt4", "active":true, "labels":[ 16011 @@ -57,10 +57,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -92,10 +89,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -127,10 +121,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt5", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } @@ -162,10 +153,7 @@ { "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ - 3 - ] + "active":true } ] } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref index 2aa794124a..33dbf59204 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref +++ b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref @@ -7,13 +7,13 @@ "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.8.5" + "nexthop":"10.0.7.4" }, { "type":"SR (IS-IS)", "outLabel":16010, "installed":true, - "nexthop":"10.0.7.4" + "nexthop":"10.0.8.5" } ] }, @@ -25,13 +25,13 @@ "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt5" + "interface":"eth-rt4" }, { "type":"SR (IS-IS)", "outLabel":16011, "installed":true, - "interface":"eth-rt4" + "interface":"eth-rt5" } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff index 7e6810d6d3..04adaefe78 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff @@ -1,15 +1,18 @@ ---- rt6/step3/show_ip_route.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt6/step4/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -16,7 +16,7 @@ +--- rt6/step3/show_ip_route.ref 2020-09-25 17:48:06.154925422 -0300 ++++ rt6/step4/show_ip_route.ref 2020-09-25 17:49:02.583660484 -0300 +@@ -14,10 +14,7 @@ + "ip":"10.0.7.4", + "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ +- "active":true, +- "labels":[ - 16010 -+ 3 - ] +- ] ++ "active":true }, { -@@ -50,9 +50,6 @@ + "fib":true, +@@ -50,9 +47,6 @@ "active":true, "backupIndex":[ 0 @@ -19,19 +22,7 @@ ] } ], -@@ -61,10 +58,7 @@ - "ip":"10.0.8.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } -@@ -124,9 +118,6 @@ +@@ -118,9 +112,6 @@ "active":true, "backupIndex":[ 0 @@ -41,15 +32,3 @@ ] } ], -@@ -135,10 +126,7 @@ - "ip":"10.0.8.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff index 8c424f6065..20aa1ec83b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff @@ -1,15 +1,18 @@ ---- rt6/step3/show_ipv6_route.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt6/step4/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -15,7 +15,7 @@ +--- rt6/step3/show_ipv6_route.ref 2020-09-25 17:48:07.434942087 -0300 ++++ rt6/step4/show_ipv6_route.ref 2020-09-25 17:49:03.847676958 -0300 +@@ -22,10 +22,7 @@ + "fib":true, + "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ +- "active":true, +- "labels":[ - 16011 -+ 3 - ] - }, - { -@@ -47,9 +47,6 @@ +- ] ++ "active":true + } + ] + } +@@ -47,9 +44,6 @@ "active":true, "backupIndex":[ 0 @@ -19,19 +22,7 @@ ] } ], -@@ -57,10 +54,7 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } -@@ -117,9 +111,6 @@ +@@ -111,9 +105,6 @@ "active":true, "backupIndex":[ 0 @@ -41,15 +32,3 @@ ] } ], -@@ -127,10 +118,7 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff index 2ebbab8a2f..3f24547f6d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff @@ -1,70 +1,32 @@ ---- rt6/step3/show_mpls_table.ref 2020-08-31 22:42:48.843561366 -0300 -+++ rt6/step4/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -11,7 +11,7 @@ - }, - { +--- rt6/step3/show_mpls_table.ref 2020-09-25 17:48:04.842908340 -0300 ++++ rt6/step4/show_mpls_table.ref 2020-09-25 17:49:01.363644584 -0300 +@@ -7,12 +7,6 @@ "type":"SR (IS-IS)", + "outLabel":16010, + "installed":true, +- "nexthop":"10.0.7.4" +- }, +- { +- "type":"SR (IS-IS)", - "outLabel":16010, -+ "outLabel":3, - "installed":true, - "nexthop":"10.0.7.4" - } -@@ -29,53 +29,9 @@ - }, - { - "type":"SR (IS-IS)", -- "outLabel":16011, - "installed":true, -- "interface":"eth-rt4" -- } -- ] -- }, -- "16020":{ -- "inLabel":16020, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16020, -- "installed":true, -- "nexthop":"10.0.7.4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", - "outLabel":3, -- "nexthop":"10.0.8.5" -- } -- ] -- }, -- "16021":{ -- "inLabel":16021, -- "installed":true, -- "nexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":16021, - "installed":true, -- "interface":"eth-rt4", -- "backupIndex":[ -- 0 -- ] -- } -- ], -- "backupNexthops":[ -- { -- "type":"SR (IS-IS)", -- "outLabel":3, -- "interface":"eth-rt5" -+ "interface":"eth-rt4" + "nexthop":"10.0.8.5" } ] - }, -@@ -123,50 +79,6 @@ +@@ -25,12 +19,6 @@ + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, +- "interface":"eth-rt4" +- }, +- { +- "type":"SR (IS-IS)", +- "outLabel":16011, +- "installed":true, + "interface":"eth-rt5" + } + ] +@@ -123,50 +111,6 @@ } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff index 5151f71580..9f73a2904e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff @@ -1,15 +1,18 @@ ---- rt6/step4/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step5/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -16,7 +16,7 @@ +--- rt6/step4/show_ip_route.ref 2020-09-25 17:49:02.583660484 -0300 ++++ rt6/step5/show_ip_route.ref 2020-09-25 17:50:13.220581632 -0300 +@@ -14,7 +14,10 @@ + "ip":"10.0.7.4", + "afi":"ipv4", "interfaceName":"eth-rt4", - "active":true, - "labels":[ -- 3 +- "active":true ++ "active":true, ++ "labels":[ + 16010 - ] ++ ] }, { -@@ -50,6 +50,9 @@ + "fib":true, +@@ -47,6 +50,9 @@ "active":true, "backupIndex":[ 0 @@ -19,19 +22,7 @@ ] } ], -@@ -58,7 +61,10 @@ - "ip":"10.0.8.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } -@@ -118,6 +124,9 @@ +@@ -112,6 +118,9 @@ "active":true, "backupIndex":[ 0 @@ -41,15 +32,3 @@ ] } ], -@@ -126,7 +135,10 @@ - "ip":"10.0.8.5", - "afi":"ipv4", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff index 2ddc9f82b6..c9358d45b2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff @@ -1,15 +1,18 @@ ---- rt6/step4/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step5/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -15,7 +15,7 @@ +--- rt6/step4/show_ipv6_route.ref 2020-09-25 17:49:03.847676958 -0300 ++++ rt6/step5/show_ipv6_route.ref 2020-09-25 17:50:14.456597760 -0300 +@@ -22,7 +22,10 @@ + "fib":true, + "afi":"ipv6", "interfaceName":"eth-rt4", - "active":true, - "labels":[ -- 3 +- "active":true ++ "active":true, ++ "labels":[ + 16011 - ] - }, - { -@@ -47,6 +47,9 @@ ++ ] + } + ] + } +@@ -44,6 +47,9 @@ "active":true, "backupIndex":[ 0 @@ -19,19 +22,7 @@ ] } ], -@@ -54,7 +57,10 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } -@@ -111,6 +117,9 @@ +@@ -105,6 +111,9 @@ "active":true, "backupIndex":[ 0 @@ -41,15 +32,3 @@ ] } ], -@@ -118,7 +127,10 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt5", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff index 18354ea604..c9d67955ef 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff @@ -1,73 +1,32 @@ ---- rt6/step4/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step5/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -11,7 +11,7 @@ - }, - { +--- rt6/step4/show_mpls_table.ref 2020-09-25 17:49:01.363644584 -0300 ++++ rt6/step5/show_mpls_table.ref 2020-09-25 17:50:11.904564461 -0300 +@@ -7,6 +7,12 @@ "type":"SR (IS-IS)", -- "outLabel":3, + "outLabel":16010, + "installed":true, ++ "nexthop":"10.0.7.4" ++ }, ++ { ++ "type":"SR (IS-IS)", + "outLabel":16010, - "installed":true, - "nexthop":"10.0.7.4" - } -@@ -29,12 +29,56 @@ - }, - { - "type":"SR (IS-IS)", -- "outLabel":3, -+ "outLabel":16011, - "installed":true, - "interface":"eth-rt4" ++ "installed":true, + "nexthop":"10.0.8.5" } ] - }, -+ "16020":{ -+ "inLabel":16020, -+ "installed":true, -+ "nexthops":[ +@@ -19,6 +25,12 @@ + "type":"SR (IS-IS)", + "outLabel":16011, + "installed":true, ++ "interface":"eth-rt4" ++ }, + { + "type":"SR (IS-IS)", -+ "outLabel":16020, ++ "outLabel":16011, + "installed":true, -+ "nexthop":"10.0.7.4", -+ "backupIndex":[ -+ 0 -+ ] -+ } -+ ], -+ "backupNexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "nexthop":"10.0.8.5" -+ } -+ ] -+ }, -+ "16021":{ -+ "inLabel":16021, -+ "installed":true, -+ "nexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":16021, -+ "installed":true, -+ "interface":"eth-rt4", -+ "backupIndex":[ -+ 0 -+ ] -+ } -+ ], -+ "backupNexthops":[ -+ { -+ "type":"SR (IS-IS)", -+ "outLabel":3, -+ "interface":"eth-rt5" -+ } -+ ] -+ }, - "16030":{ - "inLabel":16030, - "installed":true, -@@ -79,6 +123,50 @@ + "interface":"eth-rt5" + } + ] +@@ -111,6 +123,50 @@ } ] }, diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff index cddb6ab4bc..527ec74958 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff @@ -1,5 +1,5 @@ ---- rt6/step5/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step6/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 +--- rt6/step5/show_ip_route.ref 2020-09-25 17:50:13.220581632 -0300 ++++ rt6/step6/show_ip_route.ref 2020-09-25 17:51:16.137402938 -0300 @@ -26,7 +26,7 @@ "interfaceName":"eth-rt5", "active":true, @@ -9,7 +9,7 @@ ] } ] -@@ -89,7 +89,7 @@ +@@ -86,7 +86,7 @@ 0 ], "labels":[ diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff index 389d87edc9..7b8f8022f2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff @@ -1,15 +1,15 @@ ---- rt6/step5/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step6/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -24,7 +24,7 @@ +--- rt6/step5/show_ipv6_route.ref 2020-09-25 17:50:14.456597760 -0300 ++++ rt6/step6/show_ipv6_route.ref 2020-09-25 17:51:17.401419446 -0300 +@@ -15,7 +15,7 @@ "interfaceName":"eth-rt5", "active":true, "labels":[ - 16011 + 30011 ] - } - ] -@@ -84,7 +84,7 @@ + }, + { +@@ -81,7 +81,7 @@ 0 ], "labels":[ diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff index 8d5385dd0c..edd5afeeb8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff @@ -1,23 +1,23 @@ ---- rt6/step5/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step6/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -5,7 +5,7 @@ - "nexthops":[ +--- rt6/step5/show_mpls_table.ref 2020-09-25 17:50:11.904564461 -0300 ++++ rt6/step6/show_mpls_table.ref 2020-09-25 17:51:14.893386692 -0300 +@@ -11,7 +11,7 @@ + }, { "type":"SR (IS-IS)", - "outLabel":16010, + "outLabel":30010, "installed":true, "nexthop":"10.0.8.5" + } +@@ -29,7 +29,7 @@ }, -@@ -23,7 +23,7 @@ - "nexthops":[ { "type":"SR (IS-IS)", - "outLabel":16011, + "outLabel":30011, "installed":true, "interface":"eth-rt5" - }, + } @@ -85,7 +85,7 @@ "nexthops":[ { diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff index e9b88ce90b..7553dd22e5 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt6/step6/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step7/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -161,9 +161,6 @@ +--- rt6/step6/show_ip_route.ref 2020-09-25 17:51:16.137402938 -0300 ++++ rt6/step7/show_ip_route.ref 2020-09-25 17:52:03.018015363 -0300 +@@ -152,9 +152,6 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -172,10 +169,7 @@ - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff index a65d3e8e40..b56890de0f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt6/step6/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step7/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -152,9 +152,6 @@ +--- rt6/step6/show_ipv6_route.ref 2020-09-25 17:51:17.401419446 -0300 ++++ rt6/step7/show_ipv6_route.ref 2020-09-25 17:52:04.270031723 -0300 +@@ -143,9 +143,6 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -162,10 +159,7 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt4", -- "active":true, -- "labels":[ -- 3 -- ] -+ "active":true - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff index 0d119554c7..ff043fb0bf 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt6/step6/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step7/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 +--- rt6/step6/show_mpls_table.ref 2020-09-25 17:51:14.893386692 -0300 ++++ rt6/step7/show_mpls_table.ref 2020-09-25 17:52:01.809999577 -0300 @@ -166,49 +166,5 @@ "interface":"eth-rt5" } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff index cb9d758f32..d0b25bffa3 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff @@ -1,6 +1,6 @@ ---- rt6/step7/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step8/show_ip_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -161,6 +161,9 @@ +--- rt6/step7/show_ip_route.ref 2020-09-25 17:52:03.018015363 -0300 ++++ rt6/step8/show_ip_route.ref 2020-09-25 17:53:21.035035298 -0300 +@@ -152,6 +152,9 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -169,7 +172,10 @@ - "ip":"10.0.7.4", - "afi":"ipv4", - "interfaceName":"eth-rt4", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff index cac719262d..203175510c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff @@ -1,6 +1,6 @@ ---- rt6/step7/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step8/show_ipv6_route.ref 2020-08-31 22:42:48.847561334 -0300 -@@ -152,6 +152,9 @@ +--- rt6/step7/show_ipv6_route.ref 2020-09-25 17:52:04.270031723 -0300 ++++ rt6/step8/show_ipv6_route.ref 2020-09-25 17:53:22.239051045 -0300 +@@ -143,6 +143,9 @@ "active":true, "backupIndex":[ 0 @@ -10,15 +10,3 @@ ] } ], -@@ -159,7 +162,10 @@ - { - "afi":"ipv6", - "interfaceName":"eth-rt4", -- "active":true -+ "active":true, -+ "labels":[ -+ 3 -+ ] - } - ] - } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff index 917954b077..535f30bf35 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt6/step7/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step8/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 +--- rt6/step7/show_mpls_table.ref 2020-09-25 17:52:01.809999577 -0300 ++++ rt6/step8/show_mpls_table.ref 2020-09-25 17:53:19.799019132 -0300 @@ -166,5 +166,49 @@ "interface":"eth-rt5" } diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff index 3c9558e56a..b6e5396554 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff @@ -1,5 +1,5 @@ ---- rt6/step8/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 -+++ rt6/step9/show_mpls_table.ref 2020-08-31 22:42:48.847561334 -0300 +--- rt6/step8/show_mpls_table.ref 2020-09-25 17:53:19.799019132 -0300 ++++ rt6/step9/show_mpls_table.ref 2020-09-25 17:54:37.492035644 -0300 @@ -167,8 +167,8 @@ } ] diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_route.json b/tests/topotests/isis-topo1-vrf/r1/r1_route.json index 77d2ad9c63..f0a3593a4c 100644 --- a/tests/topotests/isis-topo1-vrf/r1/r1_route.json +++ b/tests/topotests/isis-topo1-vrf/r1/r1_route.json @@ -19,20 +19,6 @@ } ], "10.0.20.0/24": [ - { - "distance": 115, - "metric": 20, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r1-eth0", - "ip": "10.0.20.1" - } - ], - "prefix": "10.0.20.0/24", - "protocol": "isis", - "vrfName": "r1-cust1" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_route.json b/tests/topotests/isis-topo1-vrf/r2/r2_route.json index 98252c5939..a26cdfad8e 100644 --- a/tests/topotests/isis-topo1-vrf/r2/r2_route.json +++ b/tests/topotests/isis-topo1-vrf/r2/r2_route.json @@ -19,20 +19,6 @@ } ], "10.0.21.0/24": [ - { - "distance": 115, - "metric": 20, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r2-eth0", - "ip": "10.0.21.1" - } - ], - "prefix": "10.0.21.0/24", - "protocol": "isis", - "vrfName": "r2-cust1" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_route.json b/tests/topotests/isis-topo1-vrf/r3/r3_route.json index de158876f1..9717df5c1a 100644 --- a/tests/topotests/isis-topo1-vrf/r3/r3_route.json +++ b/tests/topotests/isis-topo1-vrf/r3/r3_route.json @@ -49,20 +49,6 @@ } ], "10.0.20.0/24": [ - { - "distance": 115, - "metric": 20, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r3-eth0", - "ip": "10.0.20.2" - } - ], - "prefix": "10.0.20.0/24", - "protocol": "isis", - "vrfName": "r3-cust1" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_route.json b/tests/topotests/isis-topo1-vrf/r4/r4_route.json index b3ed4f2cbe..6cb79b0301 100644 --- a/tests/topotests/isis-topo1-vrf/r4/r4_route.json +++ b/tests/topotests/isis-topo1-vrf/r4/r4_route.json @@ -63,18 +63,6 @@ } ], "10.0.21.0/24": [ - { - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r4-eth0", - "ip": "10.0.21.2" - } - ], - "prefix": "10.0.21.0/24", - "protocol": "isis", - "vrfName": "r4-cust1" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1/r1/r1_route.json b/tests/topotests/isis-topo1/r1/r1_route.json index 123b4dd163..f94233a80f 100644 --- a/tests/topotests/isis-topo1/r1/r1_route.json +++ b/tests/topotests/isis-topo1/r1/r1_route.json @@ -18,19 +18,6 @@ } ], "10.0.20.0/24": [ - { - "distance": 115, - "metric": 10, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r1-eth0", - "ip": "10.0.20.1" - } - ], - "prefix": "10.0.20.0/24", - "protocol": "isis" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1/r2/r2_route.json b/tests/topotests/isis-topo1/r2/r2_route.json index fe2de05734..aab651eff0 100644 --- a/tests/topotests/isis-topo1/r2/r2_route.json +++ b/tests/topotests/isis-topo1/r2/r2_route.json @@ -18,19 +18,6 @@ } ], "10.0.21.0/24": [ - { - "distance": 115, - "metric": 10, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r2-eth0", - "ip": "10.0.21.1" - } - ], - "prefix": "10.0.21.0/24", - "protocol": "isis" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1/r3/r3_route.json b/tests/topotests/isis-topo1/r3/r3_route.json index 1f0fcdfcd6..61d05e80bb 100644 --- a/tests/topotests/isis-topo1/r3/r3_route.json +++ b/tests/topotests/isis-topo1/r3/r3_route.json @@ -46,19 +46,6 @@ } ], "10.0.20.0/24": [ - { - "distance": 115, - "metric": 10, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r3-eth0", - "ip": "10.0.20.2" - } - ], - "prefix": "10.0.20.0/24", - "protocol": "isis" - }, { "nexthops": [ { diff --git a/tests/topotests/isis-topo1/r4/r4_route.json b/tests/topotests/isis-topo1/r4/r4_route.json index 597e953c09..79361af4b5 100644 --- a/tests/topotests/isis-topo1/r4/r4_route.json +++ b/tests/topotests/isis-topo1/r4/r4_route.json @@ -15,19 +15,6 @@ } ], "10.0.21.0/24": [ - { - "distance": 115, - "metric": 10, - "nexthops": [ - { - "afi": "ipv4", - "interfaceName": "r4-eth0", - "ip": "10.0.21.2" - } - ], - "prefix": "10.0.21.0/24", - "protocol": "isis" - }, { "nexthops": [ { diff --git a/yang/frr-isisd.yang b/yang/frr-isisd.yang index 06d1a793b5..c3b39e3750 100644 --- a/yang/frr-isisd.yang +++ b/yang/frr-isisd.yang @@ -1381,6 +1381,12 @@ module frr-isisd { description "Configure last hop behavior."; } + leaf n-flag-clear { + type boolean; + default "false"; + description + "Not a node SID"; + } } } }