]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: add remote LFA unit tests
authorRenato Westphal <renato@opensourcerouting.org>
Tue, 1 Dec 2020 03:12:08 +0000 (00:12 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Sat, 9 Jan 2021 01:22:11 +0000 (22:22 -0300)
Extend the existing SPF unit testing infrastructure so that it can
test RLFA as well.

These new unit tests are useful to test the RLFA PQ node
computation on several different network topologies in a timely
manner. Artificial LDP labels (starting from 50000) are used to
activate the computed RLFAs.

It's worth mentioning that the computed backup routing tables
contain both local LFAs and remote LFAs, as running RLFA separately
isn't possible.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
tests/isisd/test_common.c
tests/isisd/test_common.h
tests/isisd/test_isis_spf.c
tests/isisd/test_isis_spf.in
tests/isisd/test_isis_spf.refout

index 5fa604c7499c2be8ff90f8d6d23d1fffc32a2212..5b2028ffd409600a284f97bbf8f5e5060a808190 100644 (file)
@@ -69,6 +69,24 @@ test_find_adjacency(const struct isis_test_node *tnode, const char *hostname)
        return NULL;
 }
 
+mpls_label_t test_topology_node_ldp_label(const struct isis_topology *topology,
+                                         struct in_addr router_id)
+{
+       for (size_t i = 0; topology->nodes[i].hostname[0]; i++) {
+               const struct isis_test_node *tnode = &topology->nodes[i];
+               struct in_addr node_router_id;
+
+               if (!tnode->router_id)
+                       continue;
+
+               (void)inet_pton(AF_INET, tnode->router_id, &node_router_id);
+               if (IPV4_ADDR_SAME(&router_id, &node_router_id))
+                       return (50000 + (i + 1) * 100);
+       }
+
+       return MPLS_INVALID_LABEL;
+}
+
 static struct isis_lsp *lsp_add(struct lspdb_head *lspdb,
                                struct isis_area *area, int level,
                                const uint8_t *sysid, uint8_t pseudonode_id)
index 6fd0d3813e5ad4b26b2ce68ba854f3c3c9c3b166..3359a893acf3e9be6b019fad27c9913f535d74b1 100644 (file)
@@ -70,6 +70,9 @@ test_topology_find_node(const struct isis_topology *topology,
                        const char *hostname, uint8_t pseudonode_id);
 extern const struct isis_topology *
 test_topology_find(struct isis_topology *test_topologies, uint16_t number);
+extern mpls_label_t
+test_topology_node_ldp_label(const struct isis_topology *topology,
+                            struct in_addr router_id);
 extern int test_topology_load(const struct isis_topology *topology,
                              struct isis_area *area,
                              struct lspdb_head lspdb[]);
index 36ef93669bc5f0a575cd9fe78e24e4f456a8549d..e06944a037e2ec267e5a358f277b25034acb9c64 100644 (file)
@@ -31,6 +31,7 @@
 #include "isisd/isisd.h"
 #include "isisd/isis_dynhn.h"
 #include "isisd/isis_misc.h"
+#include "isisd/isis_route.h"
 #include "isisd/isis_spf.h"
 #include "isisd/isis_spf_private.h"
 
@@ -40,6 +41,7 @@ enum test_type {
        TEST_SPF = 1,
        TEST_REVERSE_SPF,
        TEST_LFA,
+       TEST_RLFA,
        TEST_TI_LFA,
 };
 
@@ -105,6 +107,86 @@ static void test_run_lfa(struct vty *vty, const struct isis_topology *topology,
        isis_spftree_del(spftree_self);
 }
 
+static void test_run_rlfa(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;
+       struct isis_spftree *spftree_reverse;
+       struct isis_spftree *spftree_pc;
+       struct isis_spf_node *spf_node, *node;
+       struct rlfa *rlfa;
+       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 reverse SPF in the root node. */
+       spftree_reverse = isis_spf_reverse_run(spftree_self);
+
+       /* Run forward SPF on all adjacent routers. */
+       isis_spf_run_neighbors(spftree_self);
+
+       /* Compute the local LFA repair paths. */
+       isis_lfa_compute(area, NULL, spftree_self, protected_resource);
+
+       /* Compute the remote LFA repair paths. */
+       spftree_pc = isis_rlfa_compute(area, spftree_self, spftree_reverse, 0,
+                                      protected_resource);
+
+       /* Print the extended P-space and Q-space. */
+       vty_out(vty, "P-space (self):\n");
+       RB_FOREACH (node, isis_spf_nodes, &spftree_pc->lfa.p_space)
+               vty_out(vty, " %s\n", print_sys_hostname(node->sysid));
+       vty_out(vty, "\n");
+       RB_FOREACH (spf_node, isis_spf_nodes, &spftree_self->adj_nodes) {
+               if (RB_EMPTY(isis_spf_nodes, &spf_node->lfa.p_space))
+                       continue;
+               vty_out(vty, "P-space (%s):\n",
+                       print_sys_hostname(spf_node->sysid));
+               RB_FOREACH (node, isis_spf_nodes, &spf_node->lfa.p_space)
+                       vty_out(vty, " %s\n", print_sys_hostname(node->sysid));
+               vty_out(vty, "\n");
+       }
+       vty_out(vty, "Q-space:\n");
+       RB_FOREACH (node, isis_spf_nodes, &spftree_pc->lfa.q_space)
+               vty_out(vty, " %s\n", print_sys_hostname(node->sysid));
+       vty_out(vty, "\n");
+
+       /* Print the post-convergence SPT. */
+       isis_print_spftree(vty, spftree_pc);
+
+       /*
+        * Activate the computed RLFAs (if any) using artificial LDP labels for
+        * the PQ nodes.
+        */
+       frr_each_safe (rlfa_tree, &spftree_self->lfa.remote.rlfas, rlfa) {
+               struct zapi_rlfa_response response = {};
+
+               response.pq_label = test_topology_node_ldp_label(
+                       topology, rlfa->pq_address);
+               assert(response.pq_label != MPLS_INVALID_LABEL);
+               isis_rlfa_activate(spftree_self, rlfa, &response);
+       }
+
+       /* 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);
+       isis_spftree_del(spftree_reverse);
+       isis_spftree_del(spftree_pc);
+}
+
 static void test_run_ti_lfa(struct vty *vty,
                            const struct isis_topology *topology,
                            const struct isis_test_node *root,
@@ -242,6 +324,11 @@ static int test_run(struct vty *vty, const struct isis_topology *topology,
                                             &area->lspdb[level - 1], level,
                                             tree, &protected_resource);
                                break;
+                       case TEST_RLFA:
+                               test_run_rlfa(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,
@@ -266,6 +353,7 @@ DEFUN(test_isis, test_isis_cmd,
           spf\
           |reverse-spf\
           |lfa system-id WORD [pseudonode-id <1-255>]\
+          |remote-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>]",
@@ -282,6 +370,11 @@ DEFUN(test_isis, test_isis_cmd,
       "System ID\n"
       "Pseudonode-ID\n"
       "Pseudonode-ID\n"
+      "Remote LFA\n"
+      "System ID\n"
+      "System ID\n"
+      "Pseudonode-ID\n"
+      "Pseudonode-ID\n"
       "Topology Independent LFA\n"
       "System ID\n"
       "System ID\n"
@@ -330,6 +423,14 @@ DEFUN(test_isis, test_isis_cmd,
        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, "remote-lfa", &idx)) {
+               test_type = TEST_RLFA;
+
                fail_sysid_str = argv[idx + 2]->arg;
                if (argv_find(argv, argc, "pseudonode-id", &idx))
                        fail_pseudonode_id =
index 93e18124e6b6155e24bb1f86bcc93e439564fe10..f8f65ffdf795eaf8ebe83298de7105f6c3648a3b 100644 (file)
@@ -31,6 +31,18 @@ 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 remote-lfa system-id rt2
+test isis topology 2 root rt5 remote-lfa system-id rt1 pseudonode-id 1
+test isis topology 3 root rt5 remote-lfa system-id rt4 ipv4-only
+test isis topology 3 root rt5 remote-lfa system-id rt3 ipv4-only
+test isis topology 5 root rt1 remote-lfa system-id rt2 ipv4-only
+test isis topology 6 root rt4 remote-lfa system-id rt3 ipv4-only
+test isis topology 7 root rt11 remote-lfa system-id rt8 ipv4-only
+test isis topology 7 root rt6 remote-lfa system-id rt5 ipv4-only
+test isis topology 8 root rt2 remote-lfa system-id rt5 ipv4-only
+test isis topology 11 root rt2 remote-lfa system-id rt4
+test isis topology 13 root rt1 remote-lfa system-id rt3 ipv4-only
+
 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 dced6fb1037bf03fb1ee6febf55abc66a0a57154..024f7256e0bd61df7daa32337d5625a08d7b629e 100644 (file)
@@ -1806,6 +1806,1227 @@ IS-IS L1 IPv6 routing table:
  2001:db8::3/128  50      -          rt3      -         \r
  2001:db8::4/128  60      -          rt3      -         \r
 \r
+test# \r
+test# test isis topology 1 root rt1 remote-lfa system-id rt2\r
+P-space (self):\r
+ rt3\r
+ rt5\r
+\r
+P-space (rt3):\r
+ rt3\r
+ rt5\r
+ rt6\r
+\r
+Q-space:\r
+ rt2\r
+ rt4\r
+ rt6\r
+\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
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt6                  TE-IS        30     rt3                  -         rt5(4)\r
+10.0.255.5/32        IP TE        30     rt3                  -         rt5(4)\r
+rt4                  TE-IS        40     rt3                  -         rt6(4)\r
+10.0.255.6/32        IP TE        40     rt3                  -         rt6(4)\r
+rt2                  TE-IS        50     rt3                  -         rt4(4)\r
+10.0.255.4/32        IP TE        50     rt3                  -         rt4(4)\r
+10.0.255.2/32        IP TE        60     rt3                  -         rt2(4)\r
+\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
+ Prefix         Metric  Interface  Nexthop  Label(s)     \r
+ --------------------------------------------------------\r
+ 10.0.255.2/32  60      -          rt3      50600/16020  \r
+ 10.0.255.4/32  50      -          rt3      50600/16040  \r
+\r
+P-space (self):\r
+ rt3\r
+ rt5\r
+\r
+P-space (rt3):\r
+ rt3\r
+ rt5\r
+ rt6\r
+\r
+Q-space:\r
+ rt2\r
+ rt4\r
+ rt6\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
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+2001:db8::3/128      IP6 internal 20     rt3                  -         rt3(4)\r
+rt6                  TE-IS        30     rt3                  -         rt5(4)\r
+2001:db8::5/128      IP6 internal 30     rt3                  -         rt5(4)\r
+rt4                  TE-IS        40     rt3                  -         rt6(4)\r
+2001:db8::6/128      IP6 internal 40     rt3                  -         rt6(4)\r
+rt2                  TE-IS        50     rt3                  -         rt4(4)\r
+2001:db8::4/128      IP6 internal 50     rt3                  -         rt4(4)\r
+2001:db8::2/128      IP6 internal 60     rt3                  -         rt2(4)\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
+ Prefix           Metric  Interface  Nexthop  Label(s)     \r
+ ----------------------------------------------------------\r
+ 2001:db8::2/128  60      -          rt3      50600/16021  \r
+ 2001:db8::4/128  50      -          rt3      50600/16041  \r
+\r
+test# test isis topology 2 root rt5 remote-lfa system-id rt1 pseudonode-id 1\r
+P-space (self):\r
+ rt6\r
+\r
+P-space (rt3):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+\r
+P-space (rt6):\r
+ rt4\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt4                  TE-IS        20     rt6                  -         rt6(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt1                  pseudo_TE-IS 30     rt6                  -         rt4(4)\r
+rt1                  TE-IS        30     rt6                  -         rt1(2)\r
+10.0.255.4/32        IP TE        30     rt6                  -         rt4(4)\r
+rt3                  TE-IS        40     rt3                  -         rt5(4)\r
+10.0.255.1/32        IP TE        40     rt6                  -         rt1(4)\r
+rt2                  TE-IS        45     rt6                  -         rt1(4)\r
+10.0.255.3/32        IP TE        50     rt3                  -         rt3(4)\r
+10.0.255.2/32        IP TE        55     rt6                  -         rt2(4)\r
+\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
+rt1                  TE-IS        10     rt1                  -         rt5(4)\r
+rt4                  TE-IS        10     rt4                  -         rt5(4)\r
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt4                  -         rt4(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(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     rt3                  -         rt5(4)\r
+                                         rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        50     rt3                  -         rt3(4)\r
+                                         rt1                  -         \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      -          rt3      implicit-null  \r
+                        -          rt1      implicit-null  \r
+ 10.0.255.4/32  20      -          rt4      implicit-null  \r
+ 10.0.255.5/32  0       -          -        -              \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.1/32  40      -          rt6      50400/16010  \r
+ 10.0.255.2/32  55      -          rt6      50400/16020  \r
+ 10.0.255.4/32  30      -          rt6      50400/16040  \r
+\r
+P-space (self):\r
+ rt6\r
+\r
+P-space (rt3):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+\r
+P-space (rt6):\r
+ rt4\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt4                  TE-IS        20     rt6                  -         rt6(4)\r
+2001:db8::6/128      IP6 internal 20     rt6                  -         rt6(4)\r
+rt1                  pseudo_TE-IS 30     rt6                  -         rt4(4)\r
+rt1                  TE-IS        30     rt6                  -         rt1(2)\r
+2001:db8::4/128      IP6 internal 30     rt6                  -         rt4(4)\r
+rt3                  TE-IS        40     rt3                  -         rt5(4)\r
+2001:db8::1/128      IP6 internal 40     rt6                  -         rt1(4)\r
+rt2                  TE-IS        45     rt6                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 50     rt3                  -         rt3(4)\r
+2001:db8::2/128      IP6 internal 55     rt6                  -         rt2(4)\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
+rt1                  TE-IS        10     rt1                  -         rt5(4)\r
+rt4                  TE-IS        10     rt4                  -         rt5(4)\r
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt1                  pseudo_TE-IS 20     rt1                  -         rt1(4)\r
+                                         rt4                  -         rt4(4)\r
+2001:db8::1/128      IP6 internal 20     rt1                  -         rt1(4)\r
+2001:db8::4/128      IP6 internal 20     rt4                  -         rt4(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     rt3                  -         rt5(4)\r
+                                         rt1                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 50     rt3                  -         rt3(4)\r
+                                         rt1                  -         \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      -          rt3      implicit-null  \r
+                          -          rt1      implicit-null  \r
+ 2001:db8::4/128  20      -          rt4      implicit-null  \r
+ 2001:db8::5/128  0       -          -        -              \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::1/128  40      -          rt6      50400/16011  \r
+ 2001:db8::2/128  55      -          rt6      50400/16021  \r
+ 2001:db8::4/128  30      -          rt6      50400/16041  \r
+\r
+test# test isis topology 3 root rt5 remote-lfa system-id rt4 ipv4-only\r
+P-space (self):\r
+ rt6\r
+\r
+P-space (rt3):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\r
+P-space (rt6):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt4                  TE-IS        20     rt6                  -         rt6(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt3                  TE-IS        30     rt3                  -         rt5(4)\r
+rt2                  TE-IS        30     rt6                  -         rt4(4)\r
+10.0.255.4/32        IP TE        30     rt6                  -         rt4(4)\r
+rt1                  TE-IS        40     rt3                  -         rt3(4)\r
+                                         rt6                  -         rt2(4)\r
+10.0.255.3/32        IP TE        40     rt3                  -         rt3(4)\r
+10.0.255.2/32        IP TE        40     rt6                  -         rt2(4)\r
+10.0.255.1/32        IP TE        50     rt3                  -         rt1(4)\r
+                                         rt6                  -         \r
+\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt2                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt3                  TE-IS        30     rt3                  -         rt5(4)\r
+                                         rt4                  -         rt2(4)\r
+rt1                  TE-IS        30     rt4                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt4                  -         rt2(4)\r
+10.0.255.3/32        IP TE        40     rt3                  -         rt3(4)\r
+                                         rt4                  -         \r
+10.0.255.1/32        IP TE        40     rt4                  -         rt1(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      -          rt4      16010          \r
+ 10.0.255.2/32  30      -          rt4      16020          \r
+ 10.0.255.3/32  40      -          rt3      implicit-null  \r
+                        -          rt4      implicit-null  \r
+ 10.0.255.4/32  20      -          rt4      implicit-null  \r
+ 10.0.255.5/32  0       -          -        -              \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.1/32  40      -          rt3      16010     \r
+                        -          rt6      16010     \r
+ 10.0.255.2/32  30      -          rt3      16020     \r
+                        -          rt6      16020     \r
+ 10.0.255.4/32  20      -          rt3      16040     \r
+                        -          rt6      16040     \r
+\r
+test# test isis topology 3 root rt5 remote-lfa system-id rt3 ipv4-only\r
+P-space (self):\r
+ rt1\r
+ rt2\r
+ rt4\r
+ rt6\r
+\r
+P-space (rt4):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\r
+P-space (rt6):\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt6\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt2                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt1                  TE-IS        30     rt4                  -         rt2(4)\r
+rt3                  TE-IS        30     rt4                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt4                  -         rt2(4)\r
+10.0.255.1/32        IP TE        40     rt4                  -         rt1(4)\r
+10.0.255.3/32        IP TE        40     rt4                  -         rt3(4)\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt5(4)\r
+rt2                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt3                  TE-IS        30     rt3                  -         rt5(4)\r
+                                         rt4                  -         rt2(4)\r
+rt1                  TE-IS        30     rt4                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt4                  -         rt2(4)\r
+10.0.255.3/32        IP TE        40     rt3                  -         rt3(4)\r
+                                         rt4                  -         \r
+10.0.255.1/32        IP TE        40     rt4                  -         rt1(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      -          rt4      16010          \r
+ 10.0.255.2/32  30      -          rt4      16020          \r
+ 10.0.255.3/32  40      -          rt3      implicit-null  \r
+                        -          rt4      implicit-null  \r
+ 10.0.255.4/32  20      -          rt4      implicit-null  \r
+ 10.0.255.5/32  0       -          -        -              \r
+ 10.0.255.6/32  20      -          rt6      implicit-null  \r
+\r
+Backup:\r
+IS-IS L1 IPv4 routing table:\r
+\r
+test# test isis topology 5 root rt1 remote-lfa system-id rt2 ipv4-only\r
+P-space (self):\r
+ rt3\r
+ rt5\r
+ rt7\r
+\r
+P-space (rt3):\r
+ rt3\r
+ rt5\r
+ rt7\r
+ rt8\r
+\r
+Q-space:\r
+ rt2\r
+ rt4\r
+ rt6\r
+ rt8\r
+\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
+rt5                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt7                  TE-IS        30     rt3                  -         rt5(4)\r
+10.0.255.5/32        IP TE        30     rt3                  -         rt5(4)\r
+rt8                  TE-IS        40     rt3                  -         rt7(4)\r
+10.0.255.7/32        IP TE        40     rt3                  -         rt7(4)\r
+rt6                  TE-IS        50     rt3                  -         rt8(4)\r
+10.0.255.8/32        IP TE        50     rt3                  -         rt8(4)\r
+rt4                  TE-IS        60     rt3                  -         rt6(4)\r
+10.0.255.6/32        IP TE        60     rt3                  -         rt6(4)\r
+rt2                  TE-IS        70     rt3                  -         rt4(4)\r
+10.0.255.4/32        IP TE        70     rt3                  -         rt4(4)\r
+10.0.255.2/32        IP TE        80     rt3                  -         rt2(4)\r
+\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
+rt7                  TE-IS        30     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
+rt8                  TE-IS        40     rt2                  -         rt6(4)\r
+                                         rt3                  -         rt7(4)\r
+10.0.255.6/32        IP TE        40     rt2                  -         rt6(4)\r
+10.0.255.7/32        IP TE        40     rt3                  -         rt7(4)\r
+10.0.255.8/32        IP TE        50     rt2                  -         rt8(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
+ 10.0.255.7/32  40      -          rt3      16070          \r
+ 10.0.255.8/32  50      -          rt2      16080          \r
+                        -          rt3      16080          \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  80      -          rt3      50800/16020  \r
+ 10.0.255.4/32  70      -          rt3      50800/16040  \r
+ 10.0.255.6/32  60      -          rt3      50800/16060  \r
+\r
+test# test isis topology 6 root rt4 remote-lfa system-id rt3 ipv4-only\r
+P-space (self):\r
+ rt2\r
+ rt5\r
+ rt6\r
+ rt7\r
+ rt8\r
+\r
+P-space (rt2):\r
+ rt1\r
+ rt2\r
+\r
+P-space (rt6):\r
+ rt5\r
+ rt6\r
+ rt7\r
+ rt8\r
+\r
+Q-space:\r
+ rt1\r
+ rt3\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  TE-IS        20     rt2                  -         rt2(4)\r
+rt5                  TE-IS        20     rt6                  -         rt6(4)\r
+rt8                  TE-IS        20     rt6                  -         rt6(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt3                  TE-IS        30     rt2                  -         rt1(4)\r
+rt7                  TE-IS        30     rt6                  -         rt5(4)\r
+                                                                        rt8(4)\r
+10.0.255.1/32        IP TE        30     rt2                  -         rt1(4)\r
+10.0.255.5/32        IP TE        30     rt6                  -         rt5(4)\r
+10.0.255.8/32        IP TE        30     rt6                  -         rt8(4)\r
+10.0.255.3/32        IP TE        40     rt2                  -         rt3(4)\r
+10.0.255.7/32        IP TE        40     rt6                  -         rt7(4)\r
+\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
+rt6                  TE-IS        10     rt6                  -         rt4(4)\r
+rt1                  TE-IS        20     rt2                  -         rt2(4)\r
+                                         rt3                  -         rt3(4)\r
+rt5                  TE-IS        20     rt6                  -         rt6(4)\r
+rt8                  TE-IS        20     rt6                  -         rt6(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
+10.0.255.6/32        IP TE        20     rt6                  -         rt6(4)\r
+rt7                  TE-IS        30     rt6                  -         rt5(4)\r
+                                                                        rt8(4)\r
+10.0.255.1/32        IP TE        30     rt2                  -         rt1(4)\r
+                                         rt3                  -         \r
+10.0.255.5/32        IP TE        30     rt6                  -         rt5(4)\r
+10.0.255.8/32        IP TE        30     rt6                  -         rt8(4)\r
+10.0.255.7/32        IP TE        40     rt6                  -         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      -          rt6      16050          \r
+ 10.0.255.6/32  20      -          rt6      implicit-null  \r
+ 10.0.255.7/32  40      -          rt6      16070          \r
+ 10.0.255.8/32  30      -          rt6      16080          \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  40      -          rt2      50100/16030  \r
+\r
+test# test isis topology 7 root rt11 remote-lfa system-id rt8 ipv4-only\r
+P-space (self):\r
+ rt10\r
+ rt12\r
+\r
+P-space (rt10):\r
+ rt1\r
+ rt4\r
+ rt7\r
+ rt10\r
+\r
+P-space (rt12):\r
+ rt9\r
+ rt12\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt3\r
+ rt4\r
+ rt5\r
+ rt6\r
+ rt7\r
+ rt8\r
+ rt9\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt11                                                                  \r
+10.0.255.11/32       IP internal  0                                     rt11(4)\r
+rt10                 TE-IS        10     rt10                 -         rt11(4)\r
+rt12                 TE-IS        10     rt12                 -         rt11(4)\r
+rt9                  TE-IS        20     rt12                 -         rt12(4)\r
+10.0.255.10/32       IP TE        20     rt10                 -         rt10(4)\r
+10.0.255.12/32       IP TE        20     rt12                 -         rt12(4)\r
+rt7                  TE-IS        30     rt10                 -         rt10(4)\r
+rt8                  TE-IS        30     rt12                 -         rt9(4)\r
+10.0.255.9/32        IP TE        30     rt12                 -         rt9(4)\r
+rt4                  TE-IS        40     rt10                 -         rt7(4)\r
+rt5                  TE-IS        40     rt12                 -         rt8(4)\r
+10.0.255.7/32        IP TE        40     rt10                 -         rt7(4)\r
+10.0.255.8/32        IP TE        40     rt12                 -         rt8(4)\r
+rt6                  TE-IS        50     rt12                 -         rt9(4)\r
+                                                                        rt5(4)\r
+rt1                  TE-IS        50     rt10                 -         rt4(4)\r
+rt2                  TE-IS        50     rt12                 -         rt5(4)\r
+10.0.255.4/32        IP TE        50     rt10                 -         rt4(4)\r
+10.0.255.5/32        IP TE        50     rt12                 -         rt5(4)\r
+rt3                  TE-IS        60     rt12                 -         rt6(4)\r
+                                                                        rt2(4)\r
+10.0.255.6/32        IP TE        60     rt12                 -         rt6(4)\r
+10.0.255.1/32        IP TE        60     rt10                 -         rt1(4)\r
+10.0.255.2/32        IP TE        60     rt12                 -         rt2(4)\r
+10.0.255.3/32        IP TE        70     rt12                 -         rt3(4)\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt11                                                                  \r
+10.0.255.11/32       IP internal  0                                     rt11(4)\r
+rt8                  TE-IS        10     rt8                  -         rt11(4)\r
+rt10                 TE-IS        10     rt10                 -         rt11(4)\r
+rt12                 TE-IS        10     rt12                 -         rt11(4)\r
+rt5                  TE-IS        20     rt8                  -         rt8(4)\r
+rt7                  TE-IS        20     rt8                  -         rt8(4)\r
+rt9                  TE-IS        20     rt8                  -         rt8(4)\r
+                                         rt12                 -         rt12(4)\r
+10.0.255.8/32        IP TE        20     rt8                  -         rt8(4)\r
+10.0.255.10/32       IP TE        20     rt10                 -         rt10(4)\r
+10.0.255.12/32       IP TE        20     rt12                 -         rt12(4)\r
+rt2                  TE-IS        30     rt8                  -         rt5(4)\r
+rt4                  TE-IS        30     rt8                  -         rt5(4)\r
+                                                                        rt7(4)\r
+rt6                  TE-IS        30     rt8                  -         rt5(4)\r
+10.0.255.5/32        IP TE        30     rt8                  -         rt5(4)\r
+10.0.255.7/32        IP TE        30     rt8                  -         rt7(4)\r
+10.0.255.9/32        IP TE        30     rt8                  -         rt9(4)\r
+                                         rt12                 -         \r
+rt3                  TE-IS        40     rt8                  -         rt2(4)\r
+                                                                        rt6(4)\r
+rt1                  TE-IS        40     rt8                  -         rt4(4)\r
+10.0.255.2/32        IP TE        40     rt8                  -         rt2(4)\r
+10.0.255.4/32        IP TE        40     rt8                  -         rt4(4)\r
+10.0.255.6/32        IP TE        40     rt8                  -         rt6(4)\r
+10.0.255.3/32        IP TE        50     rt8                  -         rt3(4)\r
+10.0.255.1/32        IP TE        50     rt8                  -         rt1(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   50      -          rt8      16010          \r
+ 10.0.255.2/32   40      -          rt8      16020          \r
+ 10.0.255.3/32   50      -          rt8      16030          \r
+ 10.0.255.4/32   40      -          rt8      16040          \r
+ 10.0.255.5/32   30      -          rt8      16050          \r
+ 10.0.255.6/32   40      -          rt8      16060          \r
+ 10.0.255.7/32   30      -          rt8      16070          \r
+ 10.0.255.8/32   20      -          rt8      implicit-null  \r
+ 10.0.255.9/32   30      -          rt8      16090          \r
+                         -          rt12     16090          \r
+ 10.0.255.10/32  20      -          rt10     implicit-null  \r
+ 10.0.255.11/32  0       -          -        -              \r
+ 10.0.255.12/32  20      -          rt12     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.1/32  50      -          rt10     16010        \r
+ 10.0.255.2/32  60      -          rt12     50900/16020  \r
+ 10.0.255.3/32  70      -          rt12     50900/16030  \r
+ 10.0.255.4/32  40      -          rt10     16040        \r
+ 10.0.255.5/32  50      -          rt12     50900/16050  \r
+ 10.0.255.6/32  60      -          rt12     50900/16060  \r
+ 10.0.255.7/32  30      -          rt10     16070        \r
+ 10.0.255.8/32  40      -          rt12     50900/16080  \r
+\r
+test# test isis topology 7 root rt6 remote-lfa system-id rt5 ipv4-only\r
+P-space (self):\r
+ rt3\r
+\r
+P-space (rt3):\r
+ rt2\r
+ rt3\r
+\r
+P-space (rt9):\r
+ rt1\r
+ rt2\r
+ rt4\r
+ rt5\r
+ rt7\r
+ rt8\r
+ rt9\r
+ rt10\r
+ rt11\r
+ rt12\r
+\r
+Q-space:\r
+ rt1\r
+ rt2\r
+ rt4\r
+ rt5\r
+ rt7\r
+ rt8\r
+ rt9\r
+ rt10\r
+ rt11\r
+ rt12\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt6                                                                   \r
+10.0.255.6/32        IP internal  0                                     rt6(4)\r
+rt3                  TE-IS        10     rt3                  -         rt6(4)\r
+rt2                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt9                  TE-IS        30     rt9                  -         rt6(4)\r
+rt5                  TE-IS        30     rt3                  -         rt2(4)\r
+10.0.255.2/32        IP TE        30     rt3                  -         rt2(4)\r
+rt8                  TE-IS        40     rt9                  -         rt9(4)\r
+                                         rt3                  -         rt5(4)\r
+rt12                 TE-IS        40     rt9                  -         rt9(4)\r
+rt4                  TE-IS        40     rt3                  -         rt5(4)\r
+10.0.255.9/32        IP TE        40     rt9                  -         rt9(4)\r
+10.0.255.5/32        IP TE        40     rt3                  -         rt5(4)\r
+rt7                  TE-IS        50     rt9                  -         rt8(4)\r
+                                         rt3                  -         rt4(4)\r
+rt11                 TE-IS        50     rt9                  -         rt8(4)\r
+                                         rt3                  -         rt12(4)\r
+rt1                  TE-IS        50     rt3                  -         rt4(4)\r
+10.0.255.8/32        IP TE        50     rt9                  -         rt8(4)\r
+                                         rt3                  -         \r
+10.0.255.12/32       IP TE        50     rt9                  -         rt12(4)\r
+10.0.255.4/32        IP TE        50     rt3                  -         rt4(4)\r
+rt10                 TE-IS        60     rt9                  -         rt11(4)\r
+                                         rt3                  -         \r
+10.0.255.7/32        IP TE        60     rt9                  -         rt7(4)\r
+                                         rt3                  -         \r
+10.0.255.11/32       IP TE        60     rt9                  -         rt11(4)\r
+                                         rt3                  -         \r
+10.0.255.1/32        IP TE        60     rt3                  -         rt1(4)\r
+10.0.255.10/32       IP TE        70     rt9                  -         rt10(4)\r
+                                         rt3                  -         \r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt6                                                                   \r
+10.0.255.6/32        IP internal  0                                     rt6(4)\r
+rt3                  TE-IS        10     rt3                  -         rt6(4)\r
+rt5                  TE-IS        10     rt5                  -         rt6(4)\r
+rt2                  TE-IS        20     rt3                  -         rt3(4)\r
+                                         rt5                  -         rt5(4)\r
+rt4                  TE-IS        20     rt5                  -         rt5(4)\r
+rt8                  TE-IS        20     rt5                  -         rt5(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+rt9                  TE-IS        30     rt9                  -         rt6(4)\r
+                                         rt5                  -         rt8(4)\r
+rt1                  TE-IS        30     rt5                  -         rt4(4)\r
+rt7                  TE-IS        30     rt5                  -         rt4(4)\r
+                                                                        rt8(4)\r
+rt11                 TE-IS        30     rt5                  -         rt8(4)\r
+10.0.255.2/32        IP TE        30     rt3                  -         rt2(4)\r
+                                         rt5                  -         \r
+10.0.255.4/32        IP TE        30     rt5                  -         rt4(4)\r
+10.0.255.8/32        IP TE        30     rt5                  -         rt8(4)\r
+rt12                 TE-IS        40     rt9                  -         rt9(4)\r
+                                         rt5                  -         rt11(4)\r
+rt10                 TE-IS        40     rt5                  -         rt11(4)\r
+10.0.255.9/32        IP TE        40     rt9                  -         rt9(4)\r
+                                         rt5                  -         \r
+10.0.255.1/32        IP TE        40     rt5                  -         rt1(4)\r
+10.0.255.7/32        IP TE        40     rt5                  -         rt7(4)\r
+10.0.255.11/32       IP TE        40     rt5                  -         rt11(4)\r
+10.0.255.12/32       IP TE        50     rt9                  -         rt12(4)\r
+                                         rt5                  -         \r
+10.0.255.10/32       IP TE        50     rt5                  -         rt10(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      -          rt3      16020          \r
+                         -          rt5      16020          \r
+ 10.0.255.3/32   20      -          rt3      implicit-null  \r
+ 10.0.255.4/32   30      -          rt5      16040          \r
+ 10.0.255.5/32   20      -          rt5      implicit-null  \r
+ 10.0.255.6/32   0       -          -        -              \r
+ 10.0.255.7/32   40      -          rt5      16070          \r
+ 10.0.255.8/32   30      -          rt5      16080          \r
+ 10.0.255.9/32   40      -          rt9      implicit-null  \r
+                         -          rt5      implicit-null  \r
+ 10.0.255.10/32  50      -          rt5      16100          \r
+ 10.0.255.11/32  40      -          rt5      16110          \r
+ 10.0.255.12/32  50      -          rt9      16120          \r
+                         -          rt5      16120          \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   70      -          rt9      16010     \r
+ 10.0.255.4/32   60      -          rt9      16040     \r
+ 10.0.255.5/32   50      -          rt9      16050     \r
+ 10.0.255.7/32   50      -          rt9      16070     \r
+ 10.0.255.8/32   40      -          rt9      16080     \r
+ 10.0.255.10/32  60      -          rt9      16100     \r
+ 10.0.255.11/32  50      -          rt9      16110     \r
+\r
+test# test isis topology 8 root rt2 remote-lfa system-id rt5 ipv4-only\r
+P-space (self):\r
+ rt1\r
+ rt3\r
+ rt4\r
+ rt7\r
+ rt10\r
+\r
+P-space (rt1):\r
+ rt1\r
+ rt4\r
+ rt7\r
+ rt10\r
+\r
+P-space (rt3):\r
+ rt3\r
+ rt6\r
+\r
+Q-space:\r
+ rt5\r
+ rt6\r
+ rt8\r
+ rt9\r
+ rt11\r
+ rt12\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+10.0.255.2/32        IP internal  0                                     rt2(4)\r
+rt1                  TE-IS        10     rt1                  -         rt2(4)\r
+rt3                  TE-IS        10     rt3                  -         rt2(4)\r
+rt4                  TE-IS        20     rt1                  -         rt1(4)\r
+rt6                  TE-IS        20     rt3                  -         rt3(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+rt7                  TE-IS        30     rt1                  -         rt4(4)\r
+rt5                  TE-IS        30     rt3                  -         rt6(4)\r
+10.0.255.4/32        IP TE        30     rt1                  -         rt4(4)\r
+10.0.255.6/32        IP TE        30     rt3                  -         rt6(4)\r
+rt10                 TE-IS        40     rt1                  -         rt7(4)\r
+rt8                  TE-IS        40     rt3                  -         rt5(4)\r
+10.0.255.7/32        IP TE        40     rt1                  -         rt7(4)\r
+10.0.255.5/32        IP TE        40     rt3                  -         rt5(4)\r
+rt9                  TE-IS        50     rt3                  -         rt8(4)\r
+rt11                 TE-IS        50     rt3                  -         rt8(4)\r
+10.0.255.10/32       IP TE        50     rt1                  -         rt10(4)\r
+10.0.255.8/32        IP TE        50     rt3                  -         rt8(4)\r
+rt12                 TE-IS        60     rt3                  -         rt9(4)\r
+                                                                        rt11(4)\r
+10.0.255.9/32        IP TE        60     rt3                  -         rt9(4)\r
+10.0.255.11/32       IP TE        60     rt3                  -         rt11(4)\r
+10.0.255.12/32       IP TE        70     rt3                  -         rt12(4)\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+10.0.255.2/32        IP internal  0                                     rt2(4)\r
+rt1                  TE-IS        10     rt1                  -         rt2(4)\r
+rt3                  TE-IS        10     rt3                  -         rt2(4)\r
+rt5                  TE-IS        10     rt5                  -         rt2(4)\r
+rt4                  TE-IS        20     rt1                  -         rt1(4)\r
+rt6                  TE-IS        20     rt3                  -         rt3(4)\r
+                                         rt5                  -         rt5(4)\r
+rt8                  TE-IS        20     rt5                  -         rt5(4)\r
+10.0.255.1/32        IP TE        20     rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        20     rt3                  -         rt3(4)\r
+10.0.255.5/32        IP TE        20     rt5                  -         rt5(4)\r
+rt7                  TE-IS        30     rt1                  -         rt4(4)\r
+rt9                  TE-IS        30     rt5                  -         rt8(4)\r
+rt11                 TE-IS        30     rt5                  -         rt8(4)\r
+10.0.255.4/32        IP TE        30     rt1                  -         rt4(4)\r
+10.0.255.6/32        IP TE        30     rt3                  -         rt6(4)\r
+                                         rt5                  -         \r
+10.0.255.8/32        IP TE        30     rt5                  -         rt8(4)\r
+rt10                 TE-IS        40     rt1                  -         rt7(4)\r
+rt12                 TE-IS        40     rt5                  -         rt9(4)\r
+                                                                        rt11(4)\r
+10.0.255.7/32        IP TE        40     rt1                  -         rt7(4)\r
+10.0.255.9/32        IP TE        40     rt5                  -         rt9(4)\r
+10.0.255.11/32       IP TE        40     rt5                  -         rt11(4)\r
+10.0.255.10/32       IP TE        50     rt1                  -         rt10(4)\r
+10.0.255.12/32       IP TE        50     rt5                  -         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   20      -          rt1      implicit-null  \r
+ 10.0.255.2/32   0       -          -        -              \r
+ 10.0.255.3/32   20      -          rt3      implicit-null  \r
+ 10.0.255.4/32   30      -          rt1      16040          \r
+ 10.0.255.5/32   20      -          rt5      implicit-null  \r
+ 10.0.255.6/32   30      -          rt3      16060          \r
+                         -          rt5      16060          \r
+ 10.0.255.7/32   40      -          rt1      16070          \r
+ 10.0.255.8/32   30      -          rt5      16080          \r
+ 10.0.255.9/32   40      -          rt5      16090          \r
+ 10.0.255.10/32  50      -          rt1      16100          \r
+ 10.0.255.11/32  40      -          rt5      16110          \r
+ 10.0.255.12/32  50      -          rt5      16120          \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   40      -          rt3      50600/16050  \r
+ 10.0.255.8/32   50      -          rt3      50600/16080  \r
+ 10.0.255.9/32   60      -          rt3      50600/16090  \r
+ 10.0.255.11/32  60      -          rt3      50600/16110  \r
+ 10.0.255.12/32  70      -          rt3      50600/16120  \r
+\r
+test# test isis topology 11 root rt2 remote-lfa system-id rt4\r
+P-space (self):\r
+\r
+P-space (rt1):\r
+ rt1\r
+ rt3\r
+ rt5\r
+\r
+P-space (rt3):\r
+ rt1\r
+ rt3\r
+ rt5\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt3\r
+ rt4\r
+ rt5\r
+ rt6\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+10.0.255.2/32        IP internal  0                                     rt2(4)\r
+rt1                  TE-IS        50     rt1                  -         rt2(4)\r
+rt3                  TE-IS        50     rt3                  -         rt2(4)\r
+rt2                                                                   \r
+rt5                  TE-IS        60     rt3                  -         rt3(4)\r
+10.0.255.1/32        IP TE        60     rt1                  -         rt1(4)\r
+10.0.255.3/32        IP TE        60     rt3                  -         rt3(4)\r
+rt4                  TE-IS        70     rt3                  -         rt5(4)\r
+rt6                  TE-IS        70     rt3                  -         rt5(4)\r
+10.0.255.5/32        IP TE        70     rt3                  -         rt5(4)\r
+10.0.255.4/32        IP TE        80     rt3                  -         rt4(4)\r
+10.0.255.6/32        IP TE        80     rt3                  -         rt6(4)\r
+\r
+IS-IS paths to level-1 routers that speak IP\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+10.0.255.2/32        IP internal  0                                     rt2(4)\r
+rt4                  TE-IS        10     rt4                  -         rt2(4)\r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+rt6                  TE-IS        20     rt4                  -         rt4(4)\r
+10.0.255.4/32        IP TE        20     rt4                  -         rt4(4)\r
+rt3                  TE-IS        30     rt4                  -         rt5(4)\r
+10.0.255.5/32        IP TE        30     rt4                  -         rt5(4)\r
+10.0.255.6/32        IP TE        30     rt4                  -         rt6(4)\r
+rt2                                                                   \r
+rt1                  TE-IS        40     rt4                  -         rt2(2)\r
+10.0.255.3/32        IP TE        40     rt4                  -         rt3(4)\r
+10.0.255.1/32        IP TE        50     rt4                  -         rt1(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  50      -          rt4      16010          \r
+ 10.0.255.2/32  0       -          -        -              \r
+ 10.0.255.3/32  40      -          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  30      -          rt4      16060          \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  50      -          rt1      implicit-null  \r
+                        -          rt3      16010          \r
+ 10.0.255.3/32  50      -          rt1      16030          \r
+                        -          rt3      implicit-null  \r
+ 10.0.255.4/32  80      -          rt3      50500/16040    \r
+ 10.0.255.5/32  60      -          rt1      16050          \r
+                        -          rt3      16050          \r
+ 10.0.255.6/32  70      -          rt3      16060          \r
+\r
+P-space (self):\r
+\r
+P-space (rt1):\r
+ rt1\r
+ rt3\r
+ rt5\r
+\r
+P-space (rt3):\r
+ rt1\r
+ rt3\r
+ rt5\r
+ rt6\r
+\r
+Q-space:\r
+ rt1\r
+ rt3\r
+ rt4\r
+ rt5\r
+ rt6\r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+2001:db8::2/128      IP6 internal 0                                     rt2(4)\r
+rt1                  TE-IS        50     rt1                  -         rt2(4)\r
+rt3                  TE-IS        50     rt3                  -         rt2(4)\r
+rt2                                                                   \r
+rt5                  TE-IS        60     rt3                  -         rt3(4)\r
+2001:db8::1/128      IP6 internal 60     rt1                  -         rt1(4)\r
+2001:db8::3/128      IP6 internal 60     rt3                  -         rt3(4)\r
+rt4                  TE-IS        70     rt3                  -         rt5(4)\r
+rt6                  TE-IS        70     rt3                  -         rt5(4)\r
+2001:db8::5/128      IP6 internal 70     rt3                  -         rt5(4)\r
+2001:db8::4/128      IP6 internal 80     rt3                  -         rt4(4)\r
+2001:db8::6/128      IP6 internal 80     rt3                  -         rt6(4)\r
+\r
+IS-IS paths to level-1 routers that speak IPv6\r
+Vertex               Type         Metric Next-Hop             Interface Parent\r
+rt2                                                                   \r
+2001:db8::2/128      IP6 internal 0                                     rt2(4)\r
+rt4                  TE-IS        10     rt4                  -         rt2(4)\r
+rt5                  TE-IS        20     rt4                  -         rt4(4)\r
+rt6                  TE-IS        20     rt4                  -         rt4(4)\r
+2001:db8::4/128      IP6 internal 20     rt4                  -         rt4(4)\r
+rt3                  TE-IS        30     rt4                  -         rt5(4)\r
+2001:db8::5/128      IP6 internal 30     rt4                  -         rt5(4)\r
+2001:db8::6/128      IP6 internal 30     rt4                  -         rt6(4)\r
+rt2                                                                   \r
+rt1                  TE-IS        40     rt4                  -         rt2(2)\r
+2001:db8::3/128      IP6 internal 40     rt4                  -         rt3(4)\r
+2001:db8::1/128      IP6 internal 50     rt4                  -         rt1(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  50      -          rt4      16011          \r
+ 2001:db8::2/128  0       -          -        -              \r
+ 2001:db8::3/128  40      -          rt4      16031          \r
+ 2001:db8::4/128  20      -          rt4      implicit-null  \r
+ 2001:db8::5/128  30      -          rt4      16051          \r
+ 2001:db8::6/128  30      -          rt4      16061          \r
+\r
+Backup:\r
+IS-IS L1 IPv6 routing table:\r
+\r
+ Prefix           Metric  Interface  Nexthop  Label(s)       \r
+ ------------------------------------------------------------\r
+ 2001:db8::1/128  50      -          rt1      implicit-null  \r
+                          -          rt3      16011          \r
+ 2001:db8::3/128  50      -          rt1      16031          \r
+                          -          rt3      implicit-null  \r
+ 2001:db8::4/128  80      -          rt3      50500/16041    \r
+ 2001:db8::5/128  60      -          rt1      16051          \r
+                          -          rt3      16051          \r
+ 2001:db8::6/128  70      -          rt3      16061          \r
+\r
+test# test isis topology 13 root rt1 remote-lfa system-id rt3 ipv4-only\r
+P-space (self):\r
+ rt2\r
+\r
+P-space (rt2):\r
+ rt2\r
+ rt4\r
+\r
+Q-space:\r
+ rt3\r
+ rt4\r
+ rt5\r
+ rt6\r
+ rt7\r
+\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
+rt4                  TE-IS        20     rt2                  -         rt2(4)\r
+10.0.255.2/32        IP TE        20     rt2                  -         rt2(4)\r
+rt3                  TE-IS        30     rt2                  -         rt4(4)\r
+10.0.255.4/32        IP TE        30     rt2                  -         rt4(4)\r
+rt5                  TE-IS        40     rt2                  -         rt3(4)\r
+rt6                  TE-IS        40     rt2                  -         rt3(4)\r
+10.0.255.3/32        IP TE        40     rt2                  -         rt3(4)\r
+rt7                  TE-IS        50     rt2                  -         rt5(4)\r
+                                                                        rt6(4)\r
+10.0.255.5/32        IP TE        50     rt2                  -         rt5(4)\r
+10.0.255.6/32        IP TE        50     rt2                  -         rt6(4)\r
+10.0.255.7/32        IP TE        60     rt2                  -         rt7(4)\r
+\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
+                                         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.4/32        IP TE        30     rt2                  -         rt4(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  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
+                        -          rt3      16040          \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  40      -          rt2      50400/16030  \r
+ 10.0.255.5/32  50      -          rt2      50400/16050  \r
+ 10.0.255.6/32  50      -          rt2      50400/16060  \r
+ 10.0.255.7/32  60      -          rt2      50400/16070  \r
+\r
 test# \r
 test# test isis topology 1 root rt1 ti-lfa system-id rt2\r
 P-space (self):\r