From: Renato Westphal Date: Fri, 20 Nov 2020 21:35:37 +0000 (-0300) Subject: tests: add IS-IS classic LFA unit tests X-Git-Tag: base_7.6~170^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=c8a4f331957ff49f2455837efcc5c43e0cb779f0;p=matthieu%2Ffrr.git tests: add IS-IS classic LFA unit tests These unit tests check the basic LFA loop-free condition on a variety of different network topologies. None of the implemented LFA tie-breakers are tested here. Signed-off-by: Renato Westphal --- diff --git a/tests/isisd/test_isis_spf.c b/tests/isisd/test_isis_spf.c index 4c89a5be0a..36ef93669b 100644 --- a/tests/isisd/test_isis_spf.c +++ b/tests/isisd/test_isis_spf.c @@ -39,6 +39,7 @@ enum test_type { TEST_SPF = 1, TEST_REVERSE_SPF, + TEST_LFA, TEST_TI_LFA, }; @@ -72,6 +73,38 @@ static void test_run_spf(struct vty *vty, const struct isis_topology *topology, isis_spftree_del(spftree); } +static void test_run_lfa(struct vty *vty, const struct isis_topology *topology, + const struct isis_test_node *root, + struct isis_area *area, struct lspdb_head *lspdb, + int level, int tree, + struct lfa_protected_resource *protected_resource) +{ + struct isis_spftree *spftree_self; + uint8_t flags; + + /* Run forward SPF in the root node. */ + flags = F_SPFTREE_NO_ADJACENCIES; + spftree_self = isis_spftree_new(area, lspdb, root->sysid, level, tree, + SPF_TYPE_FORWARD, flags); + isis_run_spf(spftree_self); + + /* Run forward SPF on all adjacent routers. */ + isis_spf_run_neighbors(spftree_self); + + /* Compute the LFA repair paths. */ + isis_lfa_compute(area, NULL, spftree_self, protected_resource); + + /* Print the SPT and the corresponding main/backup routing tables. */ + isis_print_spftree(vty, spftree_self); + vty_out(vty, "Main:\n"); + isis_print_routes(vty, spftree_self, false, false); + vty_out(vty, "Backup:\n"); + isis_print_routes(vty, spftree_self, false, true); + + /* Cleanup everything. */ + isis_spftree_del(spftree_self); +} + static void test_run_ti_lfa(struct vty *vty, const struct isis_topology *topology, const struct isis_test_node *root, @@ -120,7 +153,9 @@ static void test_run_ti_lfa(struct vty *vty, vty_out(vty, " %s\n", print_sys_hostname(node->sysid)); vty_out(vty, "\n"); - /* Print the post-convergence SPT and the correspoding routing table. */ + /* + * Print the post-convergence SPT and the corresponding routing table. + */ isis_print_spftree(vty, spftree_pc); isis_print_routes(vty, spftree_self, false, true); @@ -202,6 +237,11 @@ static int test_run(struct vty *vty, const struct isis_topology *topology, &area->lspdb[level - 1], level, tree, true); break; + case TEST_LFA: + test_run_lfa(vty, topology, root, area, + &area->lspdb[level - 1], level, + tree, &protected_resource); + break; case TEST_TI_LFA: test_run_ti_lfa(vty, topology, root, area, &area->lspdb[level - 1], level, @@ -221,10 +261,11 @@ static int test_run(struct vty *vty, const struct isis_topology *topology, } DEFUN(test_isis, test_isis_cmd, - "test isis topology (1-13) root HOSTNAME\ + "test isis topology (1-14) root HOSTNAME\ <\ spf\ |reverse-spf\ + |lfa system-id WORD [pseudonode-id <1-255>]\ |ti-lfa system-id WORD [pseudonode-id <1-255>] [node-protection]\ >\ [display-lspdb] [] []", @@ -236,6 +277,11 @@ DEFUN(test_isis, test_isis_cmd, "SPF root hostname\n" "Normal Shortest Path First\n" "Reverse Shortest Path First\n" + "Classic LFA\n" + "System ID\n" + "System ID\n" + "Pseudonode-ID\n" + "Pseudonode-ID\n" "Topology Independent LFA\n" "System ID\n" "System ID\n" @@ -281,7 +327,15 @@ DEFUN(test_isis, test_isis_cmd, test_type = TEST_SPF; else if (argv_find(argv, argc, "reverse-spf", &idx)) test_type = TEST_REVERSE_SPF; - else if (argv_find(argv, argc, "ti-lfa", &idx)) { + else if (argv_find(argv, argc, "lfa", &idx)) { + test_type = TEST_LFA; + + fail_sysid_str = argv[idx + 2]->arg; + if (argv_find(argv, argc, "pseudonode-id", &idx)) + fail_pseudonode_id = + strtoul(argv[idx + 1]->arg, NULL, 10); + protection_type = LFA_LINK_PROTECTION; + } else if (argv_find(argv, argc, "ti-lfa", &idx)) { test_type = TEST_TI_LFA; fail_sysid_str = argv[idx + 2]->arg; @@ -404,7 +458,7 @@ int main(int argc, char **argv) listnode_add(im->isis, isis); SET_FLAG(im->options, F_ISIS_UNIT_TEST); debug_spf_events |= DEBUG_SPF_EVENTS; - debug_tilfa |= DEBUG_TILFA; + debug_lfa |= DEBUG_LFA; debug_events |= DEBUG_EVENTS; debug_rte_events |= DEBUG_RTE_EVENTS; diff --git a/tests/isisd/test_isis_spf.in b/tests/isisd/test_isis_spf.in index 6bc5442f1e..93e18124e6 100644 --- a/tests/isisd/test_isis_spf.in +++ b/tests/isisd/test_isis_spf.in @@ -15,6 +15,22 @@ test isis topology 13 root rt1 spf ipv4-only test isis topology 4 root rt1 reverse-spf ipv4-only test isis topology 11 root rt1 reverse-spf +test isis topology 1 root rt1 lfa system-id rt2 +test isis topology 2 root rt4 lfa system-id rt1 pseudonode-id 1 +test isis topology 2 root rt4 lfa system-id rt6 +test isis topology 3 root rt1 lfa system-id rt2 +test isis topology 3 root rt1 lfa system-id rt3 +test isis topology 7 root rt1 lfa system-id rt4 +test isis topology 7 root rt7 lfa system-id rt8 +test isis topology 7 root rt8 lfa system-id rt11 +test isis topology 9 root rt3 lfa system-id rt1 +test isis topology 10 root rt8 lfa system-id rt5 +test isis topology 11 root rt3 lfa system-id rt5 +test isis topology 13 root rt4 lfa system-id rt3 +test isis topology 14 root rt1 lfa system-id rt1 pseudonode-id 1 +test isis topology 14 root rt1 lfa system-id rt2 +test isis topology 14 root rt5 lfa system-id rt4 + test isis topology 1 root rt1 ti-lfa system-id rt2 test isis topology 2 root rt1 ti-lfa system-id rt3 test isis topology 2 root rt1 ti-lfa system-id rt1 pseudonode-id 1 diff --git a/tests/isisd/test_isis_spf.refout b/tests/isisd/test_isis_spf.refout index d24176a097..dced6fb103 100644 --- a/tests/isisd/test_isis_spf.refout +++ b/tests/isisd/test_isis_spf.refout @@ -720,6 +720,1092 @@ IS-IS L1 IPv6 routing table: 2001:db8::5/128 30 - rt3 16051 2001:db8::6/128 40 - rt3 16061 +test# +test# test isis topology 1 root rt1 lfa system-id rt2 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) +rt5 TE-IS 20 rt3 - rt3(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +rt6 TE-IS 30 rt2 - rt4(4) + rt3 - rt5(4) +10.0.255.4/32 IP TE 30 rt2 - rt4(4) +10.0.255.5/32 IP TE 30 rt3 - rt5(4) +10.0.255.6/32 IP TE 40 rt2 - rt6(4) + rt3 - + +Main: +IS-IS L1 IPv4 routing table: + + 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 + +Backup: +IS-IS L1 IPv4 routing table: + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +2001:db8::1/128 IP6 internal 0 rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) +rt5 TE-IS 20 rt3 - rt3(4) +2001:db8::2/128 IP6 internal 20 rt2 - rt2(4) +2001:db8::3/128 IP6 internal 20 rt3 - rt3(4) +rt6 TE-IS 30 rt2 - rt4(4) + rt3 - rt5(4) +2001:db8::4/128 IP6 internal 30 rt2 - rt4(4) +2001:db8::5/128 IP6 internal 30 rt3 - rt5(4) +2001:db8::6/128 IP6 internal 40 rt2 - rt6(4) + rt3 - + +Main: +IS-IS L1 IPv6 routing table: + + 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 + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 2 root rt4 lfa system-id rt1 pseudonode-id 1 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt4 +10.0.255.4/32 IP internal 0 rt4(4) +rt1 TE-IS 10 rt1 - rt4(4) +rt5 TE-IS 10 rt5 - rt4(4) +rt6 TE-IS 10 rt6 - rt4(4) +rt1 pseudo_TE-IS 20 rt1 - rt1(4) + rt5 - rt5(4) +10.0.255.1/32 IP TE 20 rt1 - rt1(4) +10.0.255.5/32 IP TE 20 rt5 - rt5(4) +10.0.255.6/32 IP TE 20 rt6 - rt6(4) +rt2 TE-IS 25 rt1 - rt1(4) +10.0.255.2/32 IP TE 35 rt1 - rt2(4) +rt3 TE-IS 40 rt1 - rt1(4) +10.0.255.3/32 IP TE 50 rt1 - rt3(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 20 - rt1 implicit-null + 10.0.255.2/32 35 - rt1 16020 + 10.0.255.3/32 50 - rt1 16030 + 10.0.255.4/32 0 - - - + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 20 - rt6 implicit-null + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.2/32 40 - rt2 implicit-null + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt4 +2001:db8::4/128 IP6 internal 0 rt4(4) +rt1 TE-IS 10 rt1 - rt4(4) +rt5 TE-IS 10 rt5 - rt4(4) +rt6 TE-IS 10 rt6 - rt4(4) +rt1 pseudo_TE-IS 20 rt1 - rt1(4) + rt5 - rt5(4) +2001:db8::1/128 IP6 internal 20 rt1 - rt1(4) +2001:db8::5/128 IP6 internal 20 rt5 - rt5(4) +2001:db8::6/128 IP6 internal 20 rt6 - rt6(4) +rt2 TE-IS 25 rt1 - rt1(4) +2001:db8::2/128 IP6 internal 35 rt1 - rt2(4) +rt3 TE-IS 40 rt1 - rt1(4) +2001:db8::3/128 IP6 internal 50 rt1 - rt3(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 20 - rt1 implicit-null + 2001:db8::2/128 35 - rt1 16021 + 2001:db8::3/128 50 - rt1 16031 + 2001:db8::4/128 0 - - - + 2001:db8::5/128 20 - rt5 implicit-null + 2001:db8::6/128 20 - rt6 implicit-null + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::2/128 40 - rt2 implicit-null + +test# test isis topology 2 root rt4 lfa system-id rt6 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt4 +10.0.255.4/32 IP internal 0 rt4(4) +rt1 TE-IS 10 rt1 - rt4(4) +rt5 TE-IS 10 rt5 - rt4(4) +rt6 TE-IS 10 rt6 - rt4(4) +rt1 pseudo_TE-IS 20 rt1 - rt1(4) + rt5 - rt5(4) +10.0.255.1/32 IP TE 20 rt1 - rt1(4) +10.0.255.5/32 IP TE 20 rt5 - rt5(4) +10.0.255.6/32 IP TE 20 rt6 - rt6(4) +rt2 TE-IS 25 rt1 - rt1(4) +10.0.255.2/32 IP TE 35 rt1 - rt2(4) +rt3 TE-IS 40 rt1 - rt1(4) +10.0.255.3/32 IP TE 50 rt1 - rt3(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 20 - rt1 implicit-null + 10.0.255.2/32 35 - rt1 16020 + 10.0.255.3/32 50 - rt1 16030 + 10.0.255.4/32 0 - - - + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 20 - rt6 implicit-null + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.6/32 20 - rt5 16060 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt4 +2001:db8::4/128 IP6 internal 0 rt4(4) +rt1 TE-IS 10 rt1 - rt4(4) +rt5 TE-IS 10 rt5 - rt4(4) +rt6 TE-IS 10 rt6 - rt4(4) +rt1 pseudo_TE-IS 20 rt1 - rt1(4) + rt5 - rt5(4) +2001:db8::1/128 IP6 internal 20 rt1 - rt1(4) +2001:db8::5/128 IP6 internal 20 rt5 - rt5(4) +2001:db8::6/128 IP6 internal 20 rt6 - rt6(4) +rt2 TE-IS 25 rt1 - rt1(4) +2001:db8::2/128 IP6 internal 35 rt1 - rt2(4) +rt3 TE-IS 40 rt1 - rt1(4) +2001:db8::3/128 IP6 internal 50 rt1 - rt3(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 20 - rt1 implicit-null + 2001:db8::2/128 35 - rt1 16021 + 2001:db8::3/128 50 - rt1 16031 + 2001:db8::4/128 0 - - - + 2001:db8::5/128 20 - rt5 implicit-null + 2001:db8::6/128 20 - rt6 implicit-null + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::6/128 20 - rt5 16061 + +test# test isis topology 3 root rt1 lfa system-id rt2 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +rt5 TE-IS 30 rt2 - rt4(4) +rt6 TE-IS 30 rt2 - rt4(4) +10.0.255.4/32 IP TE 30 rt2 - rt4(4) +10.0.255.5/32 IP TE 40 rt2 - rt5(4) +10.0.255.6/32 IP TE 40 rt2 - rt6(4) + +Main: +IS-IS L1 IPv4 routing table: + + 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 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.2/32 20 - rt3 16020 + 10.0.255.4/32 30 - rt3 16040 + 10.0.255.5/32 40 - rt3 16050 + 10.0.255.6/32 40 - rt3 16060 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 3 root rt1 lfa system-id rt3 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +rt5 TE-IS 30 rt2 - rt4(4) +rt6 TE-IS 30 rt2 - rt4(4) +10.0.255.4/32 IP TE 30 rt2 - rt4(4) +10.0.255.5/32 IP TE 40 rt2 - rt5(4) +10.0.255.6/32 IP TE 40 rt2 - rt6(4) + +Main: +IS-IS L1 IPv4 routing table: + + 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 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.3/32 20 - rt2 16030 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +rt2 TE-IS 10 rt2 - rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 7 root rt1 lfa system-id rt4 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt4 TE-IS 10 rt4 - rt1(4) +rt5 TE-IS 20 rt4 - rt4(4) +rt7 TE-IS 20 rt4 - rt4(4) +10.0.255.4/32 IP TE 20 rt4 - rt4(4) +rt2 TE-IS 30 rt4 - rt5(4) +rt6 TE-IS 30 rt4 - rt5(4) +rt8 TE-IS 30 rt4 - rt5(4) + rt7(4) +10.0.255.5/32 IP TE 30 rt4 - rt5(4) +10.0.255.7/32 IP TE 30 rt4 - rt7(4) +rt10 TE-IS 40 rt4 - rt7(4) +rt3 TE-IS 40 rt4 - rt2(4) + rt6(4) +rt9 TE-IS 40 rt4 - rt8(4) +rt11 TE-IS 40 rt4 - rt8(4) +10.0.255.2/32 IP TE 40 rt4 - rt2(4) +10.0.255.6/32 IP TE 40 rt4 - rt6(4) +10.0.255.8/32 IP TE 40 rt4 - rt8(4) +rt12 TE-IS 50 rt4 - rt9(4) + rt11(4) +10.0.255.10/32 IP TE 50 rt4 - rt10(4) +10.0.255.3/32 IP TE 50 rt4 - rt3(4) +10.0.255.9/32 IP TE 50 rt4 - rt9(4) +10.0.255.11/32 IP TE 50 rt4 - rt11(4) +10.0.255.12/32 IP TE 60 rt4 - rt12(4) + +Main: +IS-IS L1 IPv4 routing table: + + 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 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.2/32 40 - rt2 implicit-null + 10.0.255.3/32 50 - rt2 16030 + 10.0.255.4/32 60 - rt2 16040 + 10.0.255.5/32 50 - rt2 16050 + 10.0.255.6/32 60 - rt2 16060 + 10.0.255.7/32 70 - rt2 16070 + 10.0.255.8/32 60 - rt2 16080 + 10.0.255.9/32 70 - rt2 16090 + 10.0.255.10/32 80 - rt2 16100 + 10.0.255.11/32 70 - rt2 16110 + 10.0.255.12/32 80 - rt2 16120 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +rt4 TE-IS 10 rt4 - rt1(4) +rt2 TE-IS 40 rt2 - rt1(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 7 root rt7 lfa system-id rt8 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt7 +10.0.255.7/32 IP internal 0 rt7(4) +rt4 TE-IS 10 rt4 - rt7(4) +rt8 TE-IS 10 rt8 - rt7(4) +rt10 TE-IS 20 rt10 - rt7(4) +rt1 TE-IS 20 rt4 - rt4(4) +rt5 TE-IS 20 rt4 - rt4(4) + rt8 - rt8(4) +rt9 TE-IS 20 rt8 - rt8(4) +rt11 TE-IS 20 rt8 - rt8(4) +10.0.255.4/32 IP TE 20 rt4 - rt4(4) +10.0.255.8/32 IP TE 20 rt8 - rt8(4) +rt2 TE-IS 30 rt4 - rt5(4) + rt8 - +rt6 TE-IS 30 rt4 - rt5(4) + rt8 - +rt12 TE-IS 30 rt8 - rt9(4) + rt11(4) +10.0.255.10/32 IP TE 30 rt10 - rt10(4) +10.0.255.1/32 IP TE 30 rt4 - rt1(4) +10.0.255.5/32 IP TE 30 rt4 - rt5(4) + rt8 - +10.0.255.9/32 IP TE 30 rt8 - rt9(4) +10.0.255.11/32 IP TE 30 rt8 - rt11(4) +rt3 TE-IS 40 rt4 - rt2(4) + rt8 - rt6(4) +10.0.255.2/32 IP TE 40 rt4 - rt2(4) + rt8 - +10.0.255.6/32 IP TE 40 rt4 - rt6(4) + rt8 - +10.0.255.12/32 IP TE 40 rt8 - rt12(4) +10.0.255.3/32 IP TE 50 rt4 - rt3(4) + rt8 - + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 30 - rt4 16010 + 10.0.255.2/32 40 - rt4 16020 + - rt8 16020 + 10.0.255.3/32 50 - rt4 16030 + - rt8 16030 + 10.0.255.4/32 20 - rt4 implicit-null + 10.0.255.5/32 30 - rt4 16050 + - rt8 16050 + 10.0.255.6/32 40 - rt4 16060 + - rt8 16060 + 10.0.255.7/32 0 - - - + 10.0.255.8/32 20 - rt8 implicit-null + 10.0.255.9/32 30 - rt8 16090 + 10.0.255.10/32 30 - rt10 implicit-null + 10.0.255.11/32 30 - rt8 16110 + 10.0.255.12/32 40 - rt8 16120 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------ + 10.0.255.8/32 40 - rt10 16080 + 10.0.255.9/32 50 - rt10 16090 + 10.0.255.11/32 30 - rt10 16110 + 10.0.255.12/32 40 - rt10 16120 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt7 +rt4 TE-IS 10 rt4 - rt7(4) +rt8 TE-IS 10 rt8 - rt7(4) +rt10 TE-IS 20 rt10 - rt7(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 7 root rt8 lfa system-id rt11 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt8 +10.0.255.8/32 IP internal 0 rt8(4) +rt5 TE-IS 10 rt5 - rt8(4) +rt7 TE-IS 10 rt7 - rt8(4) +rt9 TE-IS 10 rt9 - rt8(4) +rt11 TE-IS 10 rt11 - rt8(4) +rt2 TE-IS 20 rt5 - rt5(4) +rt4 TE-IS 20 rt5 - rt5(4) + rt7 - rt7(4) +rt6 TE-IS 20 rt5 - rt5(4) +rt12 TE-IS 20 rt9 - rt9(4) + rt11 - rt11(4) +rt10 TE-IS 20 rt11 - rt11(4) +10.0.255.5/32 IP TE 20 rt5 - rt5(4) +10.0.255.7/32 IP TE 20 rt7 - rt7(4) +10.0.255.9/32 IP TE 20 rt9 - rt9(4) +10.0.255.11/32 IP TE 20 rt11 - rt11(4) +rt3 TE-IS 30 rt5 - rt2(4) + rt6(4) +rt1 TE-IS 30 rt5 - rt4(4) + rt7 - +10.0.255.2/32 IP TE 30 rt5 - rt2(4) +10.0.255.4/32 IP TE 30 rt5 - rt4(4) + rt7 - +10.0.255.6/32 IP TE 30 rt5 - rt6(4) +10.0.255.12/32 IP TE 30 rt9 - rt12(4) + rt11 - +10.0.255.10/32 IP TE 30 rt11 - rt10(4) +10.0.255.3/32 IP TE 40 rt5 - rt3(4) +10.0.255.1/32 IP TE 40 rt5 - rt1(4) + rt7 - + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------------- + 10.0.255.1/32 40 - rt5 16010 + - rt7 16010 + 10.0.255.2/32 30 - rt5 16020 + 10.0.255.3/32 40 - rt5 16030 + 10.0.255.4/32 30 - rt5 16040 + - rt7 16040 + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 30 - rt5 16060 + 10.0.255.7/32 20 - rt7 implicit-null + 10.0.255.8/32 0 - - - + 10.0.255.9/32 20 - rt9 implicit-null + 10.0.255.10/32 30 - rt11 16100 + 10.0.255.11/32 20 - rt11 implicit-null + 10.0.255.12/32 30 - rt9 16120 + - rt11 16120 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------ + 10.0.255.10/32 30 - rt7 16100 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt8 +rt5 TE-IS 10 rt5 - rt8(4) +rt7 TE-IS 10 rt7 - rt8(4) +rt9 TE-IS 10 rt9 - rt8(4) +rt11 TE-IS 10 rt11 - rt8(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 9 root rt3 lfa system-id rt1 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt3 +10.0.255.3/32 IP internal 0 rt3(4) +rt1 TE-IS 10 rt1 - rt3(4) +rt2 TE-IS 20 rt1 - rt1(4) +10.0.255.1/32 IP TE 20 rt1 - rt1(4) +rt4 TE-IS 30 rt1 - rt2(4) +10.0.255.2/32 IP TE 30 rt1 - rt2(4) +rt5 TE-IS 40 rt1 - rt4(4) +10.0.255.4/32 IP TE 40 rt1 - rt4(4) +rt9 TE-IS 50 rt1 - rt5(4) +10.0.255.5/32 IP TE 50 rt1 - rt5(4) +rt6 TE-IS 60 rt1 - rt4(4) + rt9(4) +rt7 TE-IS 60 rt1 - rt4(4) + rt9(4) +rt8 TE-IS 60 rt1 - rt4(4) + rt9(4) +10.0.255.9/32 IP TE 60 rt1 - rt9(4) +10.0.255.6/32 IP TE 70 rt1 - rt6(4) +10.0.255.7/32 IP TE 70 rt1 - rt7(4) +10.0.255.8/32 IP TE 70 rt1 - rt8(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 20 - rt1 implicit-null + 10.0.255.2/32 30 - rt1 16020 + 10.0.255.3/32 0 - - - + 10.0.255.4/32 40 - rt1 16040 + 10.0.255.5/32 50 - rt1 16050 + 10.0.255.6/32 70 - rt1 16060 + 10.0.255.7/32 70 - rt1 16070 + 10.0.255.8/32 70 - rt1 16080 + 10.0.255.9/32 60 - rt1 16090 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 120 - rt4 16010 + 10.0.255.2/32 110 - rt4 16020 + 10.0.255.4/32 100 - rt4 implicit-null + 10.0.255.5/32 110 - rt4 16050 + 10.0.255.6/32 130 - rt4 16060 + 10.0.255.7/32 130 - rt4 16070 + 10.0.255.8/32 130 - rt4 16080 + 10.0.255.9/32 120 - rt4 16090 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt3 +2001:db8::3/128 IP6 internal 0 rt3(4) +rt1 TE-IS 10 rt1 - rt3(4) +rt2 TE-IS 20 rt1 - rt1(4) +2001:db8::1/128 IP6 internal 20 rt1 - rt1(4) +rt4 TE-IS 30 rt1 - rt2(4) +2001:db8::2/128 IP6 internal 30 rt1 - rt2(4) +rt5 TE-IS 40 rt1 - rt4(4) +2001:db8::4/128 IP6 internal 40 rt1 - rt4(4) +rt9 TE-IS 50 rt1 - rt5(4) +2001:db8::5/128 IP6 internal 50 rt1 - rt5(4) +rt6 TE-IS 60 rt1 - rt4(4) + rt9(4) +rt7 TE-IS 60 rt1 - rt4(4) + rt9(4) +rt8 TE-IS 60 rt1 - rt4(4) + rt9(4) +2001:db8::9/128 IP6 internal 60 rt1 - rt9(4) +2001:db8::6/128 IP6 internal 70 rt1 - rt6(4) +2001:db8::7/128 IP6 internal 70 rt1 - rt7(4) +2001:db8::8/128 IP6 internal 70 rt1 - rt8(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 20 - rt1 implicit-null + 2001:db8::2/128 30 - rt1 16021 + 2001:db8::3/128 0 - - - + 2001:db8::4/128 40 - rt1 16041 + 2001:db8::5/128 50 - rt1 16051 + 2001:db8::6/128 70 - rt1 16061 + 2001:db8::7/128 70 - rt1 16071 + 2001:db8::8/128 70 - rt1 16081 + 2001:db8::9/128 60 - rt1 16091 + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 120 - rt4 16011 + 2001:db8::2/128 110 - rt4 16021 + 2001:db8::4/128 100 - rt4 implicit-null + 2001:db8::5/128 110 - rt4 16051 + 2001:db8::6/128 130 - rt4 16061 + 2001:db8::7/128 130 - rt4 16071 + 2001:db8::8/128 130 - rt4 16081 + 2001:db8::9/128 120 - rt4 16091 + +test# test isis topology 10 root rt8 lfa system-id rt5 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt8 +10.0.255.8/32 IP internal 0 rt8(4) +rt5 TE-IS 10 rt5 - rt8(4) +rt2 TE-IS 20 rt5 - rt5(4) +10.0.255.5/32 IP TE 20 rt5 - rt5(4) +rt1 TE-IS 30 rt5 - rt2(4) +10.0.255.2/32 IP TE 30 rt5 - rt2(4) +10.0.255.1/32 IP TE 40 rt5 - rt1(4) +rt6 TE-IS 50 rt6 - rt8(4) +rt7 TE-IS 50 rt7 - rt8(4) +rt3 TE-IS 50 rt5 - rt1(4) +rt4 TE-IS 50 rt5 - rt1(4) +10.0.255.6/32 IP TE 60 rt6 - rt6(4) +10.0.255.7/32 IP TE 60 rt7 - rt7(4) +10.0.255.3/32 IP TE 60 rt5 - rt3(4) +10.0.255.4/32 IP TE 60 rt5 - rt4(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 40 - rt5 16010 + 10.0.255.2/32 30 - rt5 16020 + 10.0.255.3/32 60 - rt5 16030 + 10.0.255.4/32 60 - rt5 16040 + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 60 - rt6 implicit-null + 10.0.255.7/32 60 - rt7 implicit-null + 10.0.255.8/32 0 - - - + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.1/32 80 - rt6 16010 + - rt7 16010 + 10.0.255.2/32 90 - rt6 16020 + - rt7 16020 + 10.0.255.3/32 60 - rt6 16030 + - rt7 16030 + 10.0.255.4/32 60 - rt6 16040 + - rt7 16040 + 10.0.255.5/32 100 - rt6 16050 + - rt7 16050 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt8 +2001:db8::8/128 IP6 internal 0 rt8(4) +rt5 TE-IS 10 rt5 - rt8(4) +rt2 TE-IS 20 rt5 - rt5(4) +2001:db8::5/128 IP6 internal 20 rt5 - rt5(4) +rt1 TE-IS 30 rt5 - rt2(4) +2001:db8::2/128 IP6 internal 30 rt5 - rt2(4) +2001:db8::1/128 IP6 internal 40 rt5 - rt1(4) +rt6 TE-IS 50 rt6 - rt8(4) +rt7 TE-IS 50 rt7 - rt8(4) +rt3 TE-IS 50 rt5 - rt1(4) +rt4 TE-IS 50 rt5 - rt1(4) +2001:db8::6/128 IP6 internal 60 rt6 - rt6(4) +2001:db8::7/128 IP6 internal 60 rt7 - rt7(4) +2001:db8::3/128 IP6 internal 60 rt5 - rt3(4) +2001:db8::4/128 IP6 internal 60 rt5 - rt4(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 40 - rt5 16011 + 2001:db8::2/128 30 - rt5 16021 + 2001:db8::3/128 60 - rt5 16031 + 2001:db8::4/128 60 - rt5 16041 + 2001:db8::5/128 20 - rt5 implicit-null + 2001:db8::6/128 60 - rt6 implicit-null + 2001:db8::7/128 60 - rt7 implicit-null + 2001:db8::8/128 0 - - - + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::1/128 80 - rt6 16011 + - rt7 16011 + 2001:db8::2/128 90 - rt6 16021 + - rt7 16021 + 2001:db8::3/128 60 - rt6 16031 + - rt7 16031 + 2001:db8::4/128 60 - rt6 16041 + - rt7 16041 + 2001:db8::5/128 100 - rt6 16051 + - rt7 16051 + +test# test isis topology 11 root rt3 lfa system-id rt5 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt3 +10.0.255.3/32 IP internal 0 rt3(4) +rt1 TE-IS 10 rt1 - rt3(4) +rt2 TE-IS 10 rt2 - rt3(4) +rt5 TE-IS 10 rt5 - rt3(4) +rt2 pseudo_TE-IS 20 rt1 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) + rt5 - rt5(4) +rt6 TE-IS 20 rt5 - rt5(4) +10.0.255.1/32 IP TE 20 rt1 - rt1(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.5/32 IP TE 20 rt5 - rt5(4) +10.0.255.4/32 IP TE 30 rt2 - rt4(4) + rt5 - +10.0.255.6/32 IP TE 30 rt5 - rt6(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 20 - rt1 implicit-null + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 0 - - - + 10.0.255.4/32 30 - rt2 16040 + - rt5 16040 + 10.0.255.5/32 20 - rt5 implicit-null + 10.0.255.6/32 30 - rt5 16060 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.5/32 30 - rt2 16050 + 10.0.255.6/32 30 - rt2 16060 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt3 +2001:db8::3/128 IP6 internal 0 rt3(4) +rt1 TE-IS 10 rt1 - rt3(4) +rt2 TE-IS 10 rt2 - rt3(4) +rt5 TE-IS 10 rt5 - rt3(4) +rt2 pseudo_TE-IS 20 rt1 - rt1(4) +rt4 TE-IS 20 rt2 - rt2(4) + rt5 - rt5(4) +rt6 TE-IS 20 rt5 - rt5(4) +2001:db8::1/128 IP6 internal 20 rt1 - rt1(4) +2001:db8::2/128 IP6 internal 20 rt2 - rt2(4) +2001:db8::5/128 IP6 internal 20 rt5 - rt5(4) +2001:db8::4/128 IP6 internal 30 rt2 - rt4(4) + rt5 - +2001:db8::6/128 IP6 internal 30 rt5 - rt6(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------------ + 2001:db8::1/128 20 - rt1 implicit-null + 2001:db8::2/128 20 - rt2 implicit-null + 2001:db8::3/128 0 - - - + 2001:db8::4/128 30 - rt2 16041 + - rt5 16041 + 2001:db8::5/128 20 - rt5 implicit-null + 2001:db8::6/128 30 - rt5 16061 + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::5/128 30 - rt2 16051 + 2001:db8::6/128 30 - rt2 16061 + +test# test isis topology 13 root rt4 lfa system-id rt3 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt4 +10.0.255.4/32 IP internal 0 rt4(4) +rt2 TE-IS 10 rt2 - rt4(4) +rt3 TE-IS 10 rt3 - rt4(4) +rt1 TE-IS 20 rt2 - rt2(4) + rt3 - rt3(4) +rt5 TE-IS 20 rt3 - rt3(4) +rt6 TE-IS 20 rt3 - rt3(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +rt7 TE-IS 30 rt3 - rt5(4) + rt6(4) +10.0.255.1/32 IP TE 30 rt2 - rt1(4) + rt3 - +10.0.255.5/32 IP TE 30 rt3 - rt5(4) +10.0.255.6/32 IP TE 30 rt3 - rt6(4) +10.0.255.7/32 IP TE 40 rt3 - rt7(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.1/32 30 - rt2 16010 + - rt3 16010 + 10.0.255.2/32 20 - rt2 implicit-null + 10.0.255.3/32 20 - rt3 implicit-null + 10.0.255.4/32 0 - - - + 10.0.255.5/32 30 - rt3 16050 + 10.0.255.6/32 30 - rt3 16060 + 10.0.255.7/32 40 - rt3 16070 + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ---------------------------------------------------------- + 10.0.255.3/32 110 - rt5 16030 + 10.0.255.5/32 100 - rt5 implicit-null + 10.0.255.6/32 120 - rt5 16060 + 10.0.255.7/32 110 - rt5 16070 + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt4 +rt2 TE-IS 10 rt2 - rt4(4) +rt3 TE-IS 10 rt3 - rt4(4) +rt5 TE-IS 100 rt5 - rt4(4) + +Main: +IS-IS L1 IPv6 routing table: + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 14 root rt1 lfa system-id rt1 pseudonode-id 1 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 10 rt4 - rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt1 +rt5 TE-IS 20 rt4 - rt4(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +10.0.255.4/32 IP TE 20 rt4 - rt4(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.5/32 IP TE 30 rt4 - rt5(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 - + 10.0.255.3/32 20 - rt3 - + 10.0.255.4/32 20 - rt4 - + 10.0.255.5/32 30 - rt4 - + +Backup: +IS-IS L1 IPv4 routing table: + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +2001:db8::1/128 IP6 internal 0 rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 10 rt4 - rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt1 +rt5 TE-IS 20 rt4 - rt4(4) +2001:db8::3/128 IP6 internal 20 rt3 - rt3(4) +2001:db8::4/128 IP6 internal 20 rt4 - rt4(4) +2001:db8::2/128 IP6 internal 20 rt2 - rt2(4) +2001:db8::5/128 IP6 internal 30 rt4 - rt5(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 - + 2001:db8::3/128 20 - rt3 - + 2001:db8::4/128 20 - rt4 - + 2001:db8::5/128 30 - rt4 - + +Backup: +IS-IS L1 IPv6 routing table: + +test# test isis topology 14 root rt1 lfa system-id rt2 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt1 +10.0.255.1/32 IP internal 0 rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 10 rt4 - rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt1 +rt5 TE-IS 20 rt4 - rt4(4) +10.0.255.3/32 IP TE 20 rt3 - rt3(4) +10.0.255.4/32 IP TE 20 rt4 - rt4(4) +10.0.255.2/32 IP TE 20 rt2 - rt2(4) +10.0.255.5/32 IP TE 30 rt4 - rt5(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.1/32 0 - - - + 10.0.255.2/32 20 - rt2 - + 10.0.255.3/32 20 - rt3 - + 10.0.255.4/32 20 - rt4 - + 10.0.255.5/32 30 - rt4 - + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.2/32 20 - rt3 - + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt1 +2001:db8::1/128 IP6 internal 0 rt1(4) +rt3 TE-IS 10 rt3 - rt1(4) +rt4 TE-IS 10 rt4 - rt1(4) +rt2 TE-IS 10 rt2 - rt1(4) +rt1 +rt5 TE-IS 20 rt4 - rt4(4) +2001:db8::3/128 IP6 internal 20 rt3 - rt3(4) +2001:db8::4/128 IP6 internal 20 rt4 - rt4(4) +2001:db8::2/128 IP6 internal 20 rt2 - rt2(4) +2001:db8::5/128 IP6 internal 30 rt4 - rt5(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::1/128 0 - - - + 2001:db8::2/128 20 - rt2 - + 2001:db8::3/128 20 - rt3 - + 2001:db8::4/128 20 - rt4 - + 2001:db8::5/128 30 - rt4 - + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::2/128 20 - rt3 - + +test# test isis topology 14 root rt5 lfa system-id rt4 +IS-IS paths to level-1 routers that speak IP +Vertex Type Metric Next-Hop Interface Parent +rt5 +10.0.255.5/32 IP internal 0 rt5(4) +rt4 TE-IS 10 rt4 - rt5(4) +rt1 pseudo_TE-IS 20 rt4 - rt4(4) +rt1 TE-IS 20 rt4 - rt1(2) +rt3 TE-IS 20 rt4 - rt1(2) +10.0.255.4/32 IP TE 20 rt4 - rt4(4) +rt2 TE-IS 30 rt4 - rt1(4) + rt3(4) +10.0.255.1/32 IP TE 30 rt4 - rt1(4) +10.0.255.3/32 IP TE 30 rt4 - rt3(4) +10.0.255.2/32 IP TE 40 rt4 - rt2(4) + +Main: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.1/32 30 - rt4 - + 10.0.255.2/32 40 - rt4 - + 10.0.255.3/32 30 - rt4 - + 10.0.255.4/32 20 - rt4 - + 10.0.255.5/32 0 - - - + +Backup: +IS-IS L1 IPv4 routing table: + + Prefix Metric Interface Nexthop Label(s) + ----------------------------------------------------- + 10.0.255.1/32 60 - rt3 - + 10.0.255.2/32 60 - rt3 - + 10.0.255.3/32 50 - rt3 - + 10.0.255.4/32 60 - rt3 - + +IS-IS paths to level-1 routers that speak IPv6 +Vertex Type Metric Next-Hop Interface Parent +rt5 +2001:db8::5/128 IP6 internal 0 rt5(4) +rt4 TE-IS 10 rt4 - rt5(4) +rt1 pseudo_TE-IS 20 rt4 - rt4(4) +rt1 TE-IS 20 rt4 - rt1(2) +rt3 TE-IS 20 rt4 - rt1(2) +2001:db8::4/128 IP6 internal 20 rt4 - rt4(4) +rt2 TE-IS 30 rt4 - rt1(4) + rt3(4) +2001:db8::1/128 IP6 internal 30 rt4 - rt1(4) +2001:db8::3/128 IP6 internal 30 rt4 - rt3(4) +2001:db8::2/128 IP6 internal 40 rt4 - rt2(4) + +Main: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::1/128 30 - rt4 - + 2001:db8::2/128 40 - rt4 - + 2001:db8::3/128 30 - rt4 - + 2001:db8::4/128 20 - rt4 - + 2001:db8::5/128 0 - - - + +Backup: +IS-IS L1 IPv6 routing table: + + Prefix Metric Interface Nexthop Label(s) + ------------------------------------------------------- + 2001:db8::1/128 60 - rt3 - + 2001:db8::2/128 60 - rt3 - + 2001:db8::3/128 50 - rt3 - + 2001:db8::4/128 60 - rt3 - + test# test# test isis topology 1 root rt1 ti-lfa system-id rt2 P-space (self): diff --git a/tests/isisd/test_topologies.c b/tests/isisd/test_topologies.c index ee89407a79..ca103948f3 100644 --- a/tests/isisd/test_topologies.c +++ b/tests/isisd/test_topologies.c @@ -531,6 +531,34 @@ * | +---------------------+ | * | | | | * +---------+ +---------+ + + * Test topology 14: + * ================= + * + * +---------+ +---------+ + * | | | | + * | RT1 | | RT2 | + * | +--------------+ | + * | | | | + * +----+----+ +----+----+ + * | | + * | | + * | | + * | +----+----+ + * | | | + * | | RT3 | + * +-------------------+ | + * | | | + * | +----+----+ + * | | + * | |50 + * | | + * +----+----+ +----+----+ + * | | | | + * | RT4 | | RT5 | + * | +--------------+ | + * | | | | + * +---------+ +---------+ */ struct isis_topology test_topologies[] = { @@ -3301,6 +3329,158 @@ struct isis_topology test_topologies[] = { }, }, }, + { + .number = 14, + .nodes = { + { + .hostname = "rt1", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + .level = IS_LEVEL_1, + .router_id = "10.0.255.1", + .protocols = { + .ipv4 = true, + .ipv6 = true, + }, + .networks = { + "10.0.255.1/32", + "2001:db8::1/128", + }, + .adjacencies = { + { + .hostname = "rt1", + .pseudonode_id = 1, + .metric = 10, + }, + { + .hostname = "rt2", + .metric = 10, + }, + }, + }, + { + .hostname = "rt2", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + .level = IS_LEVEL_1, + .router_id = "10.0.255.2", + .protocols = { + .ipv4 = true, + .ipv6 = true, + }, + .networks = { + "10.0.255.2/32", + "2001:db8::2/128", + }, + .adjacencies = { + { + .hostname = "rt1", + .metric = 20, + }, + { + .hostname = "rt3", + .metric = 10, + }, + }, + }, + { + .hostname = "rt3", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}, + .level = IS_LEVEL_1, + .router_id = "10.0.255.3", + .protocols = { + .ipv4 = true, + .ipv6 = true, + }, + .networks = { + "10.0.255.3/32", + "2001:db8::3/128", + }, + .adjacencies = { + { + .hostname = "rt1", + .pseudonode_id = 1, + .metric = 10, + }, + { + .hostname = "rt2", + .metric = 10, + }, + { + .hostname = "rt5", + .metric = 50, + }, + }, + }, + { + .hostname = "rt4", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x04}, + .level = IS_LEVEL_1, + .router_id = "10.0.255.4", + .protocols = { + .ipv4 = true, + .ipv6 = true, + }, + .networks = { + "10.0.255.4/32", + "2001:db8::4/128", + }, + .adjacencies = { + { + .hostname = "rt1", + .pseudonode_id = 1, + .metric = 10, + }, + { + .hostname = "rt5", + .metric = 10, + }, + }, + }, + { + .hostname = "rt5", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x05}, + .level = IS_LEVEL_1, + .router_id = "10.0.255.5", + .protocols = { + .ipv4 = true, + .ipv6 = true, + }, + .networks = { + "10.0.255.5/32", + "2001:db8::5/128", + }, + .adjacencies = { + { + .hostname = "rt4", + .metric = 10, + }, + { + .hostname = "rt3", + .metric = 50, + }, + }, + }, + { + .hostname = "rt1", + .sysid = {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + .pseudonode_id = 1, + .level = IS_LEVEL_1, + .adjacencies = { + { + .hostname = "rt1", + .metric = 0, + }, + { + .hostname = "rt3", + .metric = 0, + }, + { + .hostname = "rt4", + .metric = 0, + }, + }, + }, + }, + }, { /* sentinel */ },