]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: add IS-IS classic LFA unit tests
authorRenato Westphal <renato@opensourcerouting.org>
Fri, 20 Nov 2020 21:35:37 +0000 (18:35 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Tue, 24 Nov 2020 23:15:52 +0000 (20:15 -0300)
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 <renato@opensourcerouting.org>
tests/isisd/test_isis_spf.c
tests/isisd/test_isis_spf.in
tests/isisd/test_isis_spf.refout
tests/isisd/test_topologies.c

index 4c89a5be0a267663b79ef741a6fb5f513999e765..36ef93669bc5f0a575cd9fe78e24e4f456a8549d 100644 (file)
@@ -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] [<ipv4-only|ipv6-only>] [<level-1-only|level-2-only>]",
@@ -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;
 
index 6bc5442f1e927003d8d7084cffb3f9f969e9e75a..93e18124e6b6155e24bb1f86bcc93e439564fe10 100644 (file)
@@ -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
index d24176a097e08f3c98b04eda169dcc1dc8266fd9..dced6fb1037bf03fb1ee6febf55abc66a0a57154 100644 (file)
@@ -720,6 +720,1092 @@ IS-IS L1 IPv6 routing table:
  2001:db8::5/128  30      -          rt3      16051          \r
  2001:db8::6/128  40      -          rt3      16061          \r
 \r
+test# \r
+test# test isis topology 1 root rt1 lfa system-id rt2\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt6                  TE-IS        30     rt2                  -         rt4(4)\r
+                                         rt3                  -         rt5(4)\r
+10.0.255.4/32        IP TE        30     rt2                  -         rt4(4)\r
+10.0.255.5/32        IP TE        30     rt3                  -         rt5(4)\r
+10.0.255.6/32        IP TE        40     rt2                  -         rt6(4)\r
+                                         rt3                  -         \r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  0       -          -        -              \r
+ 10.0.255.2/32  20      -          rt2      implicit-null  \r
+ 10.0.255.3/32  20      -          rt3      implicit-null  \r
+ 10.0.255.4/32  30      -          rt2      16040          \r
+ 10.0.255.5/32  30      -          rt3      16050          \r
+ 10.0.255.6/32  40      -          rt2      16060          \r
+                        -          rt3      16060          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+2001:db8::1/128      IP6 internal 0                                     rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+2001:db8::2/128      IP6 internal 20     rt2                  -         rt2(4)\r
+2001:db8::3/128      IP6 internal 20     rt3                  -         rt3(4)\r
+rt6                  TE-IS        30     rt2                  -         rt4(4)\r
+                                         rt3                  -         rt5(4)\r
+2001:db8::4/128      IP6 internal 30     rt2                  -         rt4(4)\r
+2001:db8::5/128      IP6 internal 30     rt3                  -         rt5(4)\r
+2001:db8::6/128      IP6 internal 40     rt2                  -         rt6(4)\r
+                                         rt3                  -         \r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  0       -          -        -              \r
+ 2001:db8::2/128  20      -          rt2      implicit-null  \r
+ 2001:db8::3/128  20      -          rt3      implicit-null  \r
+ 2001:db8::4/128  30      -          rt2      16041          \r
+ 2001:db8::5/128  30      -          rt3      16051          \r
+ 2001:db8::6/128  40      -          rt2      16061          \r
+                          -          rt3      16061          \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 2 root rt4 lfa system-id rt1 pseudonode-id 1\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+10.0.255.4/32        IP internal  0                                     rt4(4)\r
+rt1                  TE-IS        10     rt1                  -         rt4(4)\r
+rt5                  TE-IS        10     rt5                  -         rt4(4)\r
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt5                  -         rt5(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt2                  TE-IS        25     rt1                  -         rt1(4)\r
+10.0.255.2/32        IP TE        35     rt1                  -         rt2(4)\r
+rt3                  TE-IS        40     rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        50     rt1                  -         rt3(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  20      -          rt1      implicit-null  \r
+ 10.0.255.2/32  35      -          rt1      16020          \r
+ 10.0.255.3/32  50      -          rt1      16030          \r
+ 10.0.255.4/32  0       -          -        -              \r
+ 10.0.255.5/32  20      -          rt5      implicit-null  \r
+ 10.0.255.6/32  20      -          rt6      implicit-null  \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.2/32  40      -          rt2      implicit-null  \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+2001:db8::4/128      IP6 internal 0                                     rt4(4)\r
+rt1                  TE-IS        10     rt1                  -         rt4(4)\r
+rt5                  TE-IS        10     rt5                  -         rt4(4)\r
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt5                  -         rt5(4)\r
+2001:db8::1/128      IP6 internal 20     rt1                  -         rt1(4)\r
+2001:db8::5/128      IP6 internal 20     rt5                  -         rt5(4)\r
+2001:db8::6/128      IP6 internal 20     rt6                  -         rt6(4)\r
+rt2                  TE-IS        25     rt1                  -         rt1(4)\r
+2001:db8::2/128      IP6 internal 35     rt1                  -         rt2(4)\r
+rt3                  TE-IS        40     rt1                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 50     rt1                  -         rt3(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  20      -          rt1      implicit-null  \r
+ 2001:db8::2/128  35      -          rt1      16021          \r
+ 2001:db8::3/128  50      -          rt1      16031          \r
+ 2001:db8::4/128  0       -          -        -              \r
+ 2001:db8::5/128  20      -          rt5      implicit-null  \r
+ 2001:db8::6/128  20      -          rt6      implicit-null  \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::2/128  40      -          rt2      implicit-null  \r
+\r
+test# test isis topology 2 root rt4 lfa system-id rt6\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+10.0.255.4/32        IP internal  0                                     rt4(4)\r
+rt1                  TE-IS        10     rt1                  -         rt4(4)\r
+rt5                  TE-IS        10     rt5                  -         rt4(4)\r
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt5                  -         rt5(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt2                  TE-IS        25     rt1                  -         rt1(4)\r
+10.0.255.2/32        IP TE        35     rt1                  -         rt2(4)\r
+rt3                  TE-IS        40     rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        50     rt1                  -         rt3(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  20      -          rt1      implicit-null  \r
+ 10.0.255.2/32  35      -          rt1      16020          \r
+ 10.0.255.3/32  50      -          rt1      16030          \r
+ 10.0.255.4/32  0       -          -        -              \r
+ 10.0.255.5/32  20      -          rt5      implicit-null  \r
+ 10.0.255.6/32  20      -          rt6      implicit-null  \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.6/32  20      -          rt5      16060     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+2001:db8::4/128      IP6 internal 0                                     rt4(4)\r
+rt1                  TE-IS        10     rt1                  -         rt4(4)\r
+rt5                  TE-IS        10     rt5                  -         rt4(4)\r
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt5                  -         rt5(4)\r
+2001:db8::1/128      IP6 internal 20     rt1                  -         rt1(4)\r
+2001:db8::5/128      IP6 internal 20     rt5                  -         rt5(4)\r
+2001:db8::6/128      IP6 internal 20     rt6                  -         rt6(4)\r
+rt2                  TE-IS        25     rt1                  -         rt1(4)\r
+2001:db8::2/128      IP6 internal 35     rt1                  -         rt2(4)\r
+rt3                  TE-IS        40     rt1                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 50     rt1                  -         rt3(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  20      -          rt1      implicit-null  \r
+ 2001:db8::2/128  35      -          rt1      16021          \r
+ 2001:db8::3/128  50      -          rt1      16031          \r
+ 2001:db8::4/128  0       -          -        -              \r
+ 2001:db8::5/128  20      -          rt5      implicit-null  \r
+ 2001:db8::6/128  20      -          rt6      implicit-null  \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::6/128  20      -          rt5      16061     \r
+\r
+test# test isis topology 3 root rt1 lfa system-id rt2\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt5                  TE-IS        30     rt2                  -         rt4(4)\r
+rt6                  TE-IS        30     rt2                  -         rt4(4)\r
+10.0.255.4/32        IP TE        30     rt2                  -         rt4(4)\r
+10.0.255.5/32        IP TE        40     rt2                  -         rt5(4)\r
+10.0.255.6/32        IP TE        40     rt2                  -         rt6(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  0       -          -        -              \r
+ 10.0.255.2/32  20      -          rt2      implicit-null  \r
+ 10.0.255.3/32  20      -          rt3      implicit-null  \r
+ 10.0.255.4/32  30      -          rt2      16040          \r
+ 10.0.255.5/32  40      -          rt2      16050          \r
+ 10.0.255.6/32  40      -          rt2      16060          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.2/32  20      -          rt3      16020     \r
+ 10.0.255.4/32  30      -          rt3      16040     \r
+ 10.0.255.5/32  40      -          rt3      16050     \r
+ 10.0.255.6/32  40      -          rt3      16060     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 3 root rt1 lfa system-id rt3\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt5                  TE-IS        30     rt2                  -         rt4(4)\r
+rt6                  TE-IS        30     rt2                  -         rt4(4)\r
+10.0.255.4/32        IP TE        30     rt2                  -         rt4(4)\r
+10.0.255.5/32        IP TE        40     rt2                  -         rt5(4)\r
+10.0.255.6/32        IP TE        40     rt2                  -         rt6(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  0       -          -        -              \r
+ 10.0.255.2/32  20      -          rt2      implicit-null  \r
+ 10.0.255.3/32  20      -          rt3      implicit-null  \r
+ 10.0.255.4/32  30      -          rt2      16040          \r
+ 10.0.255.5/32  40      -          rt2      16050          \r
+ 10.0.255.6/32  40      -          rt2      16060          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.3/32  20      -          rt2      16030     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 7 root rt1 lfa system-id rt4\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+rt7                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+rt2                  TE-IS        30     rt4                  -         rt5(4)\r
+rt6                  TE-IS        30     rt4                  -         rt5(4)\r
+rt8                  TE-IS        30     rt4                  -         rt5(4)\r
+                                                                        rt7(4)\r
+10.0.255.5/32        IP TE        30     rt4                  -         rt5(4)\r
+10.0.255.7/32        IP TE        30     rt4                  -         rt7(4)\r
+rt10                 TE-IS        40     rt4                  -         rt7(4)\r
+rt3                  TE-IS        40     rt4                  -         rt2(4)\r
+                                                                        rt6(4)\r
+rt9                  TE-IS        40     rt4                  -         rt8(4)\r
+rt11                 TE-IS        40     rt4                  -         rt8(4)\r
+10.0.255.2/32        IP TE        40     rt4                  -         rt2(4)\r
+10.0.255.6/32        IP TE        40     rt4                  -         rt6(4)\r
+10.0.255.8/32        IP TE        40     rt4                  -         rt8(4)\r
+rt12                 TE-IS        50     rt4                  -         rt9(4)\r
+                                                                        rt11(4)\r
+10.0.255.10/32       IP TE        50     rt4                  -         rt10(4)\r
+10.0.255.3/32        IP TE        50     rt4                  -         rt3(4)\r
+10.0.255.9/32        IP TE        50     rt4                  -         rt9(4)\r
+10.0.255.11/32       IP TE        50     rt4                  -         rt11(4)\r
+10.0.255.12/32       IP TE        60     rt4                  -         rt12(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)       \r
+ -----------------------------------------------------------\r
+ 10.0.255.1/32   0       -          -        -              \r
+ 10.0.255.2/32   40      -          rt4      16020          \r
+ 10.0.255.3/32   50      -          rt4      16030          \r
+ 10.0.255.4/32   20      -          rt4      implicit-null  \r
+ 10.0.255.5/32   30      -          rt4      16050          \r
+ 10.0.255.6/32   40      -          rt4      16060          \r
+ 10.0.255.7/32   30      -          rt4      16070          \r
+ 10.0.255.8/32   40      -          rt4      16080          \r
+ 10.0.255.9/32   50      -          rt4      16090          \r
+ 10.0.255.10/32  50      -          rt4      16100          \r
+ 10.0.255.11/32  50      -          rt4      16110          \r
+ 10.0.255.12/32  60      -          rt4      16120          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)       \r
+ -----------------------------------------------------------\r
+ 10.0.255.2/32   40      -          rt2      implicit-null  \r
+ 10.0.255.3/32   50      -          rt2      16030          \r
+ 10.0.255.4/32   60      -          rt2      16040          \r
+ 10.0.255.5/32   50      -          rt2      16050          \r
+ 10.0.255.6/32   60      -          rt2      16060          \r
+ 10.0.255.7/32   70      -          rt2      16070          \r
+ 10.0.255.8/32   60      -          rt2      16080          \r
+ 10.0.255.9/32   70      -          rt2      16090          \r
+ 10.0.255.10/32  80      -          rt2      16100          \r
+ 10.0.255.11/32  70      -          rt2      16110          \r
+ 10.0.255.12/32  80      -          rt2      16120          \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt2                  TE-IS        40     rt2                  -         rt1(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 7 root rt7 lfa system-id rt8\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt7                                                                   \r
+10.0.255.7/32        IP internal  0                                     rt7(4)\r
+rt4                  TE-IS        10     rt4                  -         rt7(4)\r
+rt8                  TE-IS        10     rt8                  -         rt7(4)\r
+rt10                 TE-IS        20     rt10                 -         rt7(4)\r
+rt1                  TE-IS        20     rt4                  -         rt4(4)\r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+                                         rt8                  -         rt8(4)\r
+rt9                  TE-IS        20     rt8                  -         rt8(4)\r
+rt11                 TE-IS        20     rt8                  -         rt8(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.8/32        IP TE        20     rt8                  -         rt8(4)\r
+rt2                  TE-IS        30     rt4                  -         rt5(4)\r
+                                         rt8                  -         \r
+rt6                  TE-IS        30     rt4                  -         rt5(4)\r
+                                         rt8                  -         \r
+rt12                 TE-IS        30     rt8                  -         rt9(4)\r
+                                                                        rt11(4)\r
+10.0.255.10/32       IP TE        30     rt10                 -         rt10(4)\r
+10.0.255.1/32        IP TE        30     rt4                  -         rt1(4)\r
+10.0.255.5/32        IP TE        30     rt4                  -         rt5(4)\r
+                                         rt8                  -         \r
+10.0.255.9/32        IP TE        30     rt8                  -         rt9(4)\r
+10.0.255.11/32       IP TE        30     rt8                  -         rt11(4)\r
+rt3                  TE-IS        40     rt4                  -         rt2(4)\r
+                                         rt8                  -         rt6(4)\r
+10.0.255.2/32        IP TE        40     rt4                  -         rt2(4)\r
+                                         rt8                  -         \r
+10.0.255.6/32        IP TE        40     rt4                  -         rt6(4)\r
+                                         rt8                  -         \r
+10.0.255.12/32       IP TE        40     rt8                  -         rt12(4)\r
+10.0.255.3/32        IP TE        50     rt4                  -         rt3(4)\r
+                                         rt8                  -         \r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)       \r
+ -----------------------------------------------------------\r
+ 10.0.255.1/32   30      -          rt4      16010          \r
+ 10.0.255.2/32   40      -          rt4      16020          \r
+                         -          rt8      16020          \r
+ 10.0.255.3/32   50      -          rt4      16030          \r
+                         -          rt8      16030          \r
+ 10.0.255.4/32   20      -          rt4      implicit-null  \r
+ 10.0.255.5/32   30      -          rt4      16050          \r
+                         -          rt8      16050          \r
+ 10.0.255.6/32   40      -          rt4      16060          \r
+                         -          rt8      16060          \r
+ 10.0.255.7/32   0       -          -        -              \r
+ 10.0.255.8/32   20      -          rt8      implicit-null  \r
+ 10.0.255.9/32   30      -          rt8      16090          \r
+ 10.0.255.10/32  30      -          rt10     implicit-null  \r
+ 10.0.255.11/32  30      -          rt8      16110          \r
+ 10.0.255.12/32  40      -          rt8      16120          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)  \r
+ ------------------------------------------------------\r
+ 10.0.255.8/32   40      -          rt10     16080     \r
+ 10.0.255.9/32   50      -          rt10     16090     \r
+ 10.0.255.11/32  30      -          rt10     16110     \r
+ 10.0.255.12/32  40      -          rt10     16120     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt7                                                                   \r
+rt4                  TE-IS        10     rt4                  -         rt7(4)\r
+rt8                  TE-IS        10     rt8                  -         rt7(4)\r
+rt10                 TE-IS        20     rt10                 -         rt7(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 7 root rt8 lfa system-id rt11\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt8                                                                   \r
+10.0.255.8/32        IP internal  0                                     rt8(4)\r
+rt5                  TE-IS        10     rt5                  -         rt8(4)\r
+rt7                  TE-IS        10     rt7                  -         rt8(4)\r
+rt9                  TE-IS        10     rt9                  -         rt8(4)\r
+rt11                 TE-IS        10     rt11                 -         rt8(4)\r
+rt2                  TE-IS        20     rt5                  -         rt5(4)\r
+rt4                  TE-IS        20     rt5                  -         rt5(4)\r
+                                         rt7                  -         rt7(4)\r
+rt6                  TE-IS        20     rt5                  -         rt5(4)\r
+rt12                 TE-IS        20     rt9                  -         rt9(4)\r
+                                         rt11                 -         rt11(4)\r
+rt10                 TE-IS        20     rt11                 -         rt11(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+10.0.255.7/32        IP TE        20     rt7                  -         rt7(4)\r
+10.0.255.9/32        IP TE        20     rt9                  -         rt9(4)\r
+10.0.255.11/32       IP TE        20     rt11                 -         rt11(4)\r
+rt3                  TE-IS        30     rt5                  -         rt2(4)\r
+                                                                        rt6(4)\r
+rt1                  TE-IS        30     rt5                  -         rt4(4)\r
+                                         rt7                  -         \r
+10.0.255.2/32        IP TE        30     rt5                  -         rt2(4)\r
+10.0.255.4/32        IP TE        30     rt5                  -         rt4(4)\r
+                                         rt7                  -         \r
+10.0.255.6/32        IP TE        30     rt5                  -         rt6(4)\r
+10.0.255.12/32       IP TE        30     rt9                  -         rt12(4)\r
+                                         rt11                 -         \r
+10.0.255.10/32       IP TE        30     rt11                 -         rt10(4)\r
+10.0.255.3/32        IP TE        40     rt5                  -         rt3(4)\r
+10.0.255.1/32        IP TE        40     rt5                  -         rt1(4)\r
+                                         rt7                  -         \r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)       \r
+ -----------------------------------------------------------\r
+ 10.0.255.1/32   40      -          rt5      16010          \r
+                         -          rt7      16010          \r
+ 10.0.255.2/32   30      -          rt5      16020          \r
+ 10.0.255.3/32   40      -          rt5      16030          \r
+ 10.0.255.4/32   30      -          rt5      16040          \r
+                         -          rt7      16040          \r
+ 10.0.255.5/32   20      -          rt5      implicit-null  \r
+ 10.0.255.6/32   30      -          rt5      16060          \r
+ 10.0.255.7/32   20      -          rt7      implicit-null  \r
+ 10.0.255.8/32   0       -          -        -              \r
+ 10.0.255.9/32   20      -          rt9      implicit-null  \r
+ 10.0.255.10/32  30      -          rt11     16100          \r
+ 10.0.255.11/32  20      -          rt11     implicit-null  \r
+ 10.0.255.12/32  30      -          rt9      16120          \r
+                         -          rt11     16120          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix          Metric  Interface  Nexthop  Label(s)  \r
+ ------------------------------------------------------\r
+ 10.0.255.10/32  30      -          rt7      16100     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt8                                                                   \r
+rt5                  TE-IS        10     rt5                  -         rt8(4)\r
+rt7                  TE-IS        10     rt7                  -         rt8(4)\r
+rt9                  TE-IS        10     rt9                  -         rt8(4)\r
+rt11                 TE-IS        10     rt11                 -         rt8(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 9 root rt3 lfa system-id rt1\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt3                                                                   \r
+10.0.255.3/32        IP internal  0                                     rt3(4)\r
+rt1                  TE-IS        10     rt1                  -         rt3(4)\r
+rt2                  TE-IS        20     rt1                  -         rt1(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+rt4                  TE-IS        30     rt1                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt1                  -         rt2(4)\r
+rt5                  TE-IS        40     rt1                  -         rt4(4)\r
+10.0.255.4/32        IP TE        40     rt1                  -         rt4(4)\r
+rt9                  TE-IS        50     rt1                  -         rt5(4)\r
+10.0.255.5/32        IP TE        50     rt1                  -         rt5(4)\r
+rt6                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+rt7                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+rt8                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+10.0.255.9/32        IP TE        60     rt1                  -         rt9(4)\r
+10.0.255.6/32        IP TE        70     rt1                  -         rt6(4)\r
+10.0.255.7/32        IP TE        70     rt1                  -         rt7(4)\r
+10.0.255.8/32        IP TE        70     rt1                  -         rt8(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  20      -          rt1      implicit-null  \r
+ 10.0.255.2/32  30      -          rt1      16020          \r
+ 10.0.255.3/32  0       -          -        -              \r
+ 10.0.255.4/32  40      -          rt1      16040          \r
+ 10.0.255.5/32  50      -          rt1      16050          \r
+ 10.0.255.6/32  70      -          rt1      16060          \r
+ 10.0.255.7/32  70      -          rt1      16070          \r
+ 10.0.255.8/32  70      -          rt1      16080          \r
+ 10.0.255.9/32  60      -          rt1      16090          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  120     -          rt4      16010          \r
+ 10.0.255.2/32  110     -          rt4      16020          \r
+ 10.0.255.4/32  100     -          rt4      implicit-null  \r
+ 10.0.255.5/32  110     -          rt4      16050          \r
+ 10.0.255.6/32  130     -          rt4      16060          \r
+ 10.0.255.7/32  130     -          rt4      16070          \r
+ 10.0.255.8/32  130     -          rt4      16080          \r
+ 10.0.255.9/32  120     -          rt4      16090          \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt3                                                                   \r
+2001:db8::3/128      IP6 internal 0                                     rt3(4)\r
+rt1                  TE-IS        10     rt1                  -         rt3(4)\r
+rt2                  TE-IS        20     rt1                  -         rt1(4)\r
+2001:db8::1/128      IP6 internal 20     rt1                  -         rt1(4)\r
+rt4                  TE-IS        30     rt1                  -         rt2(4)\r
+2001:db8::2/128      IP6 internal 30     rt1                  -         rt2(4)\r
+rt5                  TE-IS        40     rt1                  -         rt4(4)\r
+2001:db8::4/128      IP6 internal 40     rt1                  -         rt4(4)\r
+rt9                  TE-IS        50     rt1                  -         rt5(4)\r
+2001:db8::5/128      IP6 internal 50     rt1                  -         rt5(4)\r
+rt6                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+rt7                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+rt8                  TE-IS        60     rt1                  -         rt4(4)\r
+                                                                        rt9(4)\r
+2001:db8::9/128      IP6 internal 60     rt1                  -         rt9(4)\r
+2001:db8::6/128      IP6 internal 70     rt1                  -         rt6(4)\r
+2001:db8::7/128      IP6 internal 70     rt1                  -         rt7(4)\r
+2001:db8::8/128      IP6 internal 70     rt1                  -         rt8(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  20      -          rt1      implicit-null  \r
+ 2001:db8::2/128  30      -          rt1      16021          \r
+ 2001:db8::3/128  0       -          -        -              \r
+ 2001:db8::4/128  40      -          rt1      16041          \r
+ 2001:db8::5/128  50      -          rt1      16051          \r
+ 2001:db8::6/128  70      -          rt1      16061          \r
+ 2001:db8::7/128  70      -          rt1      16071          \r
+ 2001:db8::8/128  70      -          rt1      16081          \r
+ 2001:db8::9/128  60      -          rt1      16091          \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  120     -          rt4      16011          \r
+ 2001:db8::2/128  110     -          rt4      16021          \r
+ 2001:db8::4/128  100     -          rt4      implicit-null  \r
+ 2001:db8::5/128  110     -          rt4      16051          \r
+ 2001:db8::6/128  130     -          rt4      16061          \r
+ 2001:db8::7/128  130     -          rt4      16071          \r
+ 2001:db8::8/128  130     -          rt4      16081          \r
+ 2001:db8::9/128  120     -          rt4      16091          \r
+\r
+test# test isis topology 10 root rt8 lfa system-id rt5\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt8                                                                   \r
+10.0.255.8/32        IP internal  0                                     rt8(4)\r
+rt5                  TE-IS        10     rt5                  -         rt8(4)\r
+rt2                  TE-IS        20     rt5                  -         rt5(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+rt1                  TE-IS        30     rt5                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt5                  -         rt2(4)\r
+10.0.255.1/32        IP TE        40     rt5                  -         rt1(4)\r
+rt6                  TE-IS        50     rt6                  -         rt8(4)\r
+rt7                  TE-IS        50     rt7                  -         rt8(4)\r
+rt3                  TE-IS        50     rt5                  -         rt1(4)\r
+rt4                  TE-IS        50     rt5                  -         rt1(4)\r
+10.0.255.6/32        IP TE        60     rt6                  -         rt6(4)\r
+10.0.255.7/32        IP TE        60     rt7                  -         rt7(4)\r
+10.0.255.3/32        IP TE        60     rt5                  -         rt3(4)\r
+10.0.255.4/32        IP TE        60     rt5                  -         rt4(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  40      -          rt5      16010          \r
+ 10.0.255.2/32  30      -          rt5      16020          \r
+ 10.0.255.3/32  60      -          rt5      16030          \r
+ 10.0.255.4/32  60      -          rt5      16040          \r
+ 10.0.255.5/32  20      -          rt5      implicit-null  \r
+ 10.0.255.6/32  60      -          rt6      implicit-null  \r
+ 10.0.255.7/32  60      -          rt7      implicit-null  \r
+ 10.0.255.8/32  0       -          -        -              \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.1/32  80      -          rt6      16010     \r
+                        -          rt7      16010     \r
+ 10.0.255.2/32  90      -          rt6      16020     \r
+                        -          rt7      16020     \r
+ 10.0.255.3/32  60      -          rt6      16030     \r
+                        -          rt7      16030     \r
+ 10.0.255.4/32  60      -          rt6      16040     \r
+                        -          rt7      16040     \r
+ 10.0.255.5/32  100     -          rt6      16050     \r
+                        -          rt7      16050     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt8                                                                   \r
+2001:db8::8/128      IP6 internal 0                                     rt8(4)\r
+rt5                  TE-IS        10     rt5                  -         rt8(4)\r
+rt2                  TE-IS        20     rt5                  -         rt5(4)\r
+2001:db8::5/128      IP6 internal 20     rt5                  -         rt5(4)\r
+rt1                  TE-IS        30     rt5                  -         rt2(4)\r
+2001:db8::2/128      IP6 internal 30     rt5                  -         rt2(4)\r
+2001:db8::1/128      IP6 internal 40     rt5                  -         rt1(4)\r
+rt6                  TE-IS        50     rt6                  -         rt8(4)\r
+rt7                  TE-IS        50     rt7                  -         rt8(4)\r
+rt3                  TE-IS        50     rt5                  -         rt1(4)\r
+rt4                  TE-IS        50     rt5                  -         rt1(4)\r
+2001:db8::6/128      IP6 internal 60     rt6                  -         rt6(4)\r
+2001:db8::7/128      IP6 internal 60     rt7                  -         rt7(4)\r
+2001:db8::3/128      IP6 internal 60     rt5                  -         rt3(4)\r
+2001:db8::4/128      IP6 internal 60     rt5                  -         rt4(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  40      -          rt5      16011          \r
+ 2001:db8::2/128  30      -          rt5      16021          \r
+ 2001:db8::3/128  60      -          rt5      16031          \r
+ 2001:db8::4/128  60      -          rt5      16041          \r
+ 2001:db8::5/128  20      -          rt5      implicit-null  \r
+ 2001:db8::6/128  60      -          rt6      implicit-null  \r
+ 2001:db8::7/128  60      -          rt7      implicit-null  \r
+ 2001:db8::8/128  0       -          -        -              \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::1/128  80      -          rt6      16011     \r
+                          -          rt7      16011     \r
+ 2001:db8::2/128  90      -          rt6      16021     \r
+                          -          rt7      16021     \r
+ 2001:db8::3/128  60      -          rt6      16031     \r
+                          -          rt7      16031     \r
+ 2001:db8::4/128  60      -          rt6      16041     \r
+                          -          rt7      16041     \r
+ 2001:db8::5/128  100     -          rt6      16051     \r
+                          -          rt7      16051     \r
+\r
+test# test isis topology 11 root rt3 lfa system-id rt5\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt3                                                                   \r
+10.0.255.3/32        IP internal  0                                     rt3(4)\r
+rt1                  TE-IS        10     rt1                  -         rt3(4)\r
+rt2                  TE-IS        10     rt2                  -         rt3(4)\r
+rt5                  TE-IS        10     rt5                  -         rt3(4)\r
+rt2                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+                                         rt5                  -         rt5(4)\r
+rt6                  TE-IS        20     rt5                  -         rt5(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+10.0.255.4/32        IP TE        30     rt2                  -         rt4(4)\r
+                                         rt5                  -         \r
+10.0.255.6/32        IP TE        30     rt5                  -         rt6(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  20      -          rt1      implicit-null  \r
+ 10.0.255.2/32  20      -          rt2      implicit-null  \r
+ 10.0.255.3/32  0       -          -        -              \r
+ 10.0.255.4/32  30      -          rt2      16040          \r
+                        -          rt5      16040          \r
+ 10.0.255.5/32  20      -          rt5      implicit-null  \r
+ 10.0.255.6/32  30      -          rt5      16060          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.5/32  30      -          rt2      16050     \r
+ 10.0.255.6/32  30      -          rt2      16060     \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt3                                                                   \r
+2001:db8::3/128      IP6 internal 0                                     rt3(4)\r
+rt1                  TE-IS        10     rt1                  -         rt3(4)\r
+rt2                  TE-IS        10     rt2                  -         rt3(4)\r
+rt5                  TE-IS        10     rt5                  -         rt3(4)\r
+rt2                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+                                         rt5                  -         rt5(4)\r
+rt6                  TE-IS        20     rt5                  -         rt5(4)\r
+2001:db8::1/128      IP6 internal 20     rt1                  -         rt1(4)\r
+2001:db8::2/128      IP6 internal 20     rt2                  -         rt2(4)\r
+2001:db8::5/128      IP6 internal 20     rt5                  -         rt5(4)\r
+2001:db8::4/128      IP6 internal 30     rt2                  -         rt4(4)\r
+                                         rt5                  -         \r
+2001:db8::6/128      IP6 internal 30     rt5                  -         rt6(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  20      -          rt1      implicit-null  \r
+ 2001:db8::2/128  20      -          rt2      implicit-null  \r
+ 2001:db8::3/128  0       -          -        -              \r
+ 2001:db8::4/128  30      -          rt2      16041          \r
+                          -          rt5      16041          \r
+ 2001:db8::5/128  20      -          rt5      implicit-null  \r
+ 2001:db8::6/128  30      -          rt5      16061          \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::5/128  30      -          rt2      16051     \r
+ 2001:db8::6/128  30      -          rt2      16061     \r
+\r
+test# test isis topology 13 root rt4 lfa system-id rt3\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+10.0.255.4/32        IP internal  0                                     rt4(4)\r
+rt2                  TE-IS        10     rt2                  -         rt4(4)\r
+rt3                  TE-IS        10     rt3                  -         rt4(4)\r
+rt1                  TE-IS        20     rt2                  -         rt2(4)\r
+                                         rt3                  -         rt3(4)\r
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+rt6                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt7                  TE-IS        30     rt3                  -         rt5(4)\r
+                                                                        rt6(4)\r
+10.0.255.1/32        IP TE        30     rt2                  -         rt1(4)\r
+                                         rt3                  -         \r
+10.0.255.5/32        IP TE        30     rt3                  -         rt5(4)\r
+10.0.255.6/32        IP TE        30     rt3                  -         rt6(4)\r
+10.0.255.7/32        IP TE        40     rt3                  -         rt7(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.1/32  30      -          rt2      16010          \r
+                        -          rt3      16010          \r
+ 10.0.255.2/32  20      -          rt2      implicit-null  \r
+ 10.0.255.3/32  20      -          rt3      implicit-null  \r
+ 10.0.255.4/32  0       -          -        -              \r
+ 10.0.255.5/32  30      -          rt3      16050          \r
+ 10.0.255.6/32  30      -          rt3      16060          \r
+ 10.0.255.7/32  40      -          rt3      16070          \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)       \r
+ ----------------------------------------------------------\r
+ 10.0.255.3/32  110     -          rt5      16030          \r
+ 10.0.255.5/32  100     -          rt5      implicit-null  \r
+ 10.0.255.6/32  120     -          rt5      16060          \r
+ 10.0.255.7/32  110     -          rt5      16070          \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt4                                                                   \r
+rt2                  TE-IS        10     rt2                  -         rt4(4)\r
+rt3                  TE-IS        10     rt3                  -         rt4(4)\r
+rt5                  TE-IS        100    rt5                  -         rt4(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 14 root rt1 lfa system-id rt1 pseudonode-id 1\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt1                                                                   \r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.5/32        IP TE        30     rt4                  -         rt5(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.1/32  0       -          -        -         \r
+ 10.0.255.2/32  20      -          rt2      -         \r
+ 10.0.255.3/32  20      -          rt3      -         \r
+ 10.0.255.4/32  20      -          rt4      -         \r
+ 10.0.255.5/32  30      -          rt4      -         \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+2001:db8::1/128      IP6 internal 0                                     rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt1                                                                   \r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+2001:db8::3/128      IP6 internal 20     rt3                  -         rt3(4)\r
+2001:db8::4/128      IP6 internal 20     rt4                  -         rt4(4)\r
+2001:db8::2/128      IP6 internal 20     rt2                  -         rt2(4)\r
+2001:db8::5/128      IP6 internal 30     rt4                  -         rt5(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::1/128  0       -          -        -         \r
+ 2001:db8::2/128  20      -          rt2      -         \r
+ 2001:db8::3/128  20      -          rt3      -         \r
+ 2001:db8::4/128  20      -          rt4      -         \r
+ 2001:db8::5/128  30      -          rt4      -         \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+test# test isis topology 14 root rt1 lfa system-id rt2\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+10.0.255.1/32        IP internal  0                                     rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt1                                                                   \r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.5/32        IP TE        30     rt4                  -         rt5(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.1/32  0       -          -        -         \r
+ 10.0.255.2/32  20      -          rt2      -         \r
+ 10.0.255.3/32  20      -          rt3      -         \r
+ 10.0.255.4/32  20      -          rt4      -         \r
+ 10.0.255.5/32  30      -          rt4      -         \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.2/32  20      -          rt3      -         \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt1                                                                   \r
+2001:db8::1/128      IP6 internal 0                                     rt1(4)\r
+rt3                  TE-IS        10     rt3                  -         rt1(4)\r
+rt4                  TE-IS        10     rt4                  -         rt1(4)\r
+rt2                  TE-IS        10     rt2                  -         rt1(4)\r
+rt1                                                                   \r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+2001:db8::3/128      IP6 internal 20     rt3                  -         rt3(4)\r
+2001:db8::4/128      IP6 internal 20     rt4                  -         rt4(4)\r
+2001:db8::2/128      IP6 internal 20     rt2                  -         rt2(4)\r
+2001:db8::5/128      IP6 internal 30     rt4                  -         rt5(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::1/128  0       -          -        -         \r
+ 2001:db8::2/128  20      -          rt2      -         \r
+ 2001:db8::3/128  20      -          rt3      -         \r
+ 2001:db8::4/128  20      -          rt4      -         \r
+ 2001:db8::5/128  30      -          rt4      -         \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::2/128  20      -          rt3      -         \r
+\r
+test# test isis topology 14 root rt5 lfa system-id rt4\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt5                                                                   \r
+10.0.255.5/32        IP internal  0                                     rt5(4)\r
+rt4                  TE-IS        10     rt4                  -         rt5(4)\r
+rt1                  pseudo_TE-IS 20     rt4                  -         rt4(4)\r
+rt1                  TE-IS        20     rt4                  -         rt1(2)\r
+rt3                  TE-IS        20     rt4                  -         rt1(2)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+rt2                  TE-IS        30     rt4                  -         rt1(4)\r
+                                                                        rt3(4)\r
+10.0.255.1/32        IP TE        30     rt4                  -         rt1(4)\r
+10.0.255.3/32        IP TE        30     rt4                  -         rt3(4)\r
+10.0.255.2/32        IP TE        40     rt4                  -         rt2(4)\r
+\r
+Main:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.1/32  30      -          rt4      -         \r
+ 10.0.255.2/32  40      -          rt4      -         \r
+ 10.0.255.3/32  30      -          rt4      -         \r
+ 10.0.255.4/32  20      -          rt4      -         \r
+ 10.0.255.5/32  0       -          -        -         \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+ Prefix         Metric  Interface  Nexthop  Label(s)  \r
+ -----------------------------------------------------\r
+ 10.0.255.1/32  60      -          rt3      -         \r
+ 10.0.255.2/32  60      -          rt3      -         \r
+ 10.0.255.3/32  50      -          rt3      -         \r
+ 10.0.255.4/32  60      -          rt3      -         \r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt5                                                                   \r
+2001:db8::5/128      IP6 internal 0                                     rt5(4)\r
+rt4                  TE-IS        10     rt4                  -         rt5(4)\r
+rt1                  pseudo_TE-IS 20     rt4                  -         rt4(4)\r
+rt1                  TE-IS        20     rt4                  -         rt1(2)\r
+rt3                  TE-IS        20     rt4                  -         rt1(2)\r
+2001:db8::4/128      IP6 internal 20     rt4                  -         rt4(4)\r
+rt2                  TE-IS        30     rt4                  -         rt1(4)\r
+                                                                        rt3(4)\r
+2001:db8::1/128      IP6 internal 30     rt4                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 30     rt4                  -         rt3(4)\r
+2001:db8::2/128      IP6 internal 40     rt4                  -         rt2(4)\r
+\r
+Main:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::1/128  30      -          rt4      -         \r
+ 2001:db8::2/128  40      -          rt4      -         \r
+ 2001:db8::3/128  30      -          rt4      -         \r
+ 2001:db8::4/128  20      -          rt4      -         \r
+ 2001:db8::5/128  0       -          -        -         \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)  \r
+ -------------------------------------------------------\r
+ 2001:db8::1/128  60      -          rt3      -         \r
+ 2001:db8::2/128  60      -          rt3      -         \r
+ 2001:db8::3/128  50      -          rt3      -         \r
+ 2001:db8::4/128  60      -          rt3      -         \r
+\r
 test# \r
 test# test isis topology 1 root rt1 ti-lfa system-id rt2\r
 P-space (self):\r
index ee89407a79d60238bba0f7d843b90ef6e84a6318..ca103948f3c906425aa87b6417fdf3ccc0b383f2 100644 (file)
  * |         +---------------------+         |
  * |         |                     |         |
  * +---------+                     +---------+
+
+ * 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 */
        },