]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: add IS-IS TI-LFA topotest
authorRenato Westphal <renato@opensourcerouting.org>
Thu, 20 Aug 2020 22:53:47 +0000 (19:53 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Wed, 14 Oct 2020 19:27:37 +0000 (16:27 -0300)
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
182 files changed:
tests/topotests/isis-tilfa-topo1/__init__.py [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt1/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt2/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt3/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt4/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt5/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/isisd.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/rt6/zebra.conf [new file with mode: 0644]
tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py [new file with mode: 0755]

diff --git a/tests/topotests/isis-tilfa-topo1/__init__.py b/tests/topotests/isis-tilfa-topo1/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt1/isisd.conf
new file mode 100644 (file)
index 0000000..a447a2a
--- /dev/null
@@ -0,0 +1,33 @@
+password 1
+hostname rt1
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-sw1
+ ip router isis 1
+ ipv6 router isis 1
+ isis hello-multiplier 3
+ isis priority 100
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0001.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 1.1.1.1/32 index 10
+ segment-routing prefix 2001:db8:1000::1/128 index 11
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..92b7437
--- /dev/null
@@ -0,0 +1,294 @@
+{
+  "2.2.2.2\/32":[
+    {
+      "prefix":"2.2.2.2\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "3.3.3.3\/32":[
+    {
+      "prefix":"3.3.3.3\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "4.4.4.4\/32":[
+    {
+      "prefix":"4.4.4.4\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        }
+      ]
+    }
+  ],
+  "5.5.5.5\/32":[
+    {
+      "prefix":"5.5.5.5\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        }
+      ]
+    }
+  ],
+  "6.6.6.6\/32":[
+    {
+      "prefix":"6.6.6.6\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":40,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1"
+        },
+        {
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1"
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..3232121
--- /dev/null
@@ -0,0 +1,121 @@
+{
+  "2001:db8:1000::2\/128":[
+    {
+      "prefix":"2001:db8:1000::2\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::3\/128":[
+    {
+      "prefix":"2001:db8:1000::3\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::4\/128":[
+    {
+      "prefix":"2001:db8:1000::4\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::5\/128":[
+    {
+      "prefix":"2001:db8:1000::5\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::6\/128":[
+    {
+      "prefix":"2001:db8:1000::6\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":40,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..e3ed7c2
--- /dev/null
@@ -0,0 +1,134 @@
+{
+  "16020":{
+    "inLabel":16020,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.2"
+      }
+    ]
+  },
+  "16021":{
+    "inLabel":16021,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  },
+  "16030":{
+    "inLabel":16030,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.3"
+      }
+    ]
+  },
+  "16031":{
+    "inLabel":16031,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  },
+  "16040":{
+    "inLabel":16040,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "installed":true,
+        "nexthop":"10.0.1.2"
+      }
+    ]
+  },
+  "16041":{
+    "inLabel":16041,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  },
+  "16050":{
+    "inLabel":16050,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "installed":true,
+        "nexthop":"10.0.1.3"
+      }
+    ]
+  },
+  "16051":{
+    "inLabel":16051,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  },
+  "16060":{
+    "inLabel":16060,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.1.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.1.3"
+      }
+    ]
+  },
+  "16061":{
+    "inLabel":16061,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-sw1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..69dcc91
--- /dev/null
@@ -0,0 +1,34 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-sw1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0003",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 64,
+                  "state": "up"
+                },
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0002",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 64,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..ccea94c
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step3/show_ip_route.ref        2020-08-31 22:42:48.831561460 -0300
++++ rt1/step4/show_ip_route.ref        2020-08-31 22:42:48.831561460 -0300
+@@ -60,10 +60,7 @@
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..13e0988
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step3/show_ipv6_route.ref      2020-08-31 22:42:48.831561460 -0300
++++ rt1/step4/show_ipv6_route.ref      2020-08-31 22:42:48.831561460 -0300
+@@ -57,10 +57,7 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..9531fbc
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt1/step3/show_mpls_table.ref      2020-08-31 22:42:48.831561460 -0300
++++ rt1/step4/show_mpls_table.ref      2020-08-31 22:42:48.831561460 -0300
+@@ -47,30 +47,6 @@
+       }
+     ]
+   },
+-  "16040":{
+-    "inLabel":16040,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "installed":true,
+-        "nexthop":"10.0.1.2"
+-      }
+-    ]
+-  },
+-  "16041":{
+-    "inLabel":16041,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "installed":true,
+-        "interface":"eth-sw1"
+-      }
+-    ]
+-  },
+   "16050":{
+     "inLabel":16050,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..2a2cb76
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step4/show_ip_route.ref        2020-08-31 22:42:48.831561460 -0300
++++ rt1/step5/show_ip_route.ref        2020-08-31 22:42:48.831561460 -0300
+@@ -60,7 +60,10 @@
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16040
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..94bf3c1
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step4/show_ipv6_route.ref      2020-08-31 22:42:48.831561460 -0300
++++ rt1/step5/show_ipv6_route.ref      2020-08-31 22:42:48.831561460 -0300
+@@ -57,7 +57,10 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16041
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..0fd252e
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt1/step4/show_mpls_table.ref      2020-08-31 22:42:48.831561460 -0300
++++ rt1/step5/show_mpls_table.ref      2020-08-31 22:42:48.831561460 -0300
+@@ -47,6 +47,30 @@
+       }
+     ]
+   },
++  "16040":{
++    "inLabel":16040,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "installed":true,
++        "nexthop":"10.0.1.2"
++      }
++    ]
++  },
++  "16041":{
++    "inLabel":16041,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "installed":true,
++        "interface":"eth-sw1"
++      }
++    ]
++  },
+   "16050":{
+     "inLabel":16050,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..22f7ce9
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step6/show_ip_route.ref        2020-08-31 22:42:48.831561460 -0300
++++ rt1/step7/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -83,10 +83,7 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..4b07bd7
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step6/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step7/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -79,10 +79,7 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..b62ca10
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt1/step6/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step7/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -71,30 +71,6 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.1.3"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-sw1"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..2bf88c8
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step7/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt1/step8/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -83,7 +83,10 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16050
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..a01038a
--- /dev/null
@@ -0,0 +1,14 @@
+--- rt1/step7/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step8/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -79,7 +79,10 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16051
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e3f8361
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt1/step7/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step8/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -71,6 +71,30 @@
+       }
+     ]
+   },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.1.3"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "installed":true,
++        "interface":"eth-sw1"
++      }
++    ]
++  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..c10f97b
--- /dev/null
@@ -0,0 +1,11 @@
+--- rt1/step8/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt1/step9/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -85,7 +85,7 @@
+           "interfaceName":"eth-sw1",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..7a909f6
--- /dev/null
@@ -0,0 +1,11 @@
+--- rt1/step8/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step9/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -81,7 +81,7 @@
+           "interfaceName":"eth-sw1",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..b794a67
--- /dev/null
@@ -0,0 +1,64 @@
+--- rt1/step8/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt1/step9/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -71,30 +71,6 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.1.3"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-sw1"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
+@@ -129,6 +105,30 @@
+         "installed":true,
+         "interface":"eth-sw1"
+       }
++    ]
++  },
++  "16500":{
++    "inLabel":16500,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16500,
++        "installed":true,
++        "nexthop":"10.0.1.3"
++      }
++    ]
++  },
++  "16501":{
++    "inLabel":16501,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16501,
++        "installed":true,
++        "interface":"eth-sw1"
++      }
+     ]
+   }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt1/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt1/zebra.conf
new file mode 100644 (file)
index 0000000..9d71d30
--- /dev/null
@@ -0,0 +1,19 @@
+log file zebra.log
+!
+hostname rt1
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 1.1.1.1/32
+ ipv6 address 2001:db8:1000::1/128
+!
+interface eth-sw1
+ ip address 10.0.1.1/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt2/isisd.conf
new file mode 100644 (file)
index 0000000..1a756e2
--- /dev/null
@@ -0,0 +1,45 @@
+hostname rt2
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-sw1
+ ip router isis 1
+ ipv6 router isis 1
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt4-1
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt4-2
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0002.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 2.2.2.2/32 index 20
+ segment-routing prefix 2001:db8:1000::2/128 index 21
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..7c6f6f8
--- /dev/null
@@ -0,0 +1,453 @@
+{
+  "1.1.1.1\/32":[
+    {
+      "prefix":"1.1.1.1\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.1",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        }
+      ]
+    }
+  ],
+  "3.3.3.3\/32":[
+    {
+      "prefix":"3.3.3.3\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        }
+      ]
+    }
+  ],
+  "4.4.4.4\/32":[
+    {
+      "prefix":"4.4.4.4\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "5.5.5.5\/32":[
+    {
+      "prefix":"5.5.5.5\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16050
+          ]
+        }
+      ]
+    }
+  ],
+  "6.6.6.6\/32":[
+    {
+      "prefix":"6.6.6.6\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.1.1",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "backupIndex":[
+            0,
+            1
+          ]
+        },
+        {
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1"
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2"
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.2.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4-2",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..68569b7
--- /dev/null
@@ -0,0 +1,192 @@
+{
+  "2001:db8:1000::1\/128":[
+    {
+      "prefix":"2001:db8:1000::1\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        },
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::3\/128":[
+    {
+      "prefix":"2001:db8:1000::3\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        },
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::4\/128":[
+    {
+      "prefix":"2001:db8:1000::4\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::5\/128":[
+    {
+      "prefix":"2001:db8:1000::5\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16051
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::6\/128":[
+    {
+      "prefix":"2001:db8:1000::6\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-1",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4-2",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..4c18e20
--- /dev/null
@@ -0,0 +1,234 @@
+{
+  "16010":{
+    "inLabel":16010,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "nexthop":"10.0.2.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "nexthop":"10.0.3.4"
+      }
+    ]
+  },
+  "16011":{
+    "inLabel":16011,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "interface":"eth-rt4-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "interface":"eth-rt4-2"
+      }
+    ]
+  },
+  "16030":{
+    "inLabel":16030,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.3",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "nexthop":"10.0.2.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "nexthop":"10.0.3.4"
+      }
+    ]
+  },
+  "16031":{
+    "inLabel":16031,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "interface":"eth-rt4-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "interface":"eth-rt4-2"
+      }
+    ]
+  },
+  "16040":{
+    "inLabel":16040,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.3.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.2.4"
+      }
+    ]
+  },
+  "16041":{
+    "inLabel":16041,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt4-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt4-1"
+      }
+    ]
+  },
+  "16050":{
+    "inLabel":16050,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "installed":true,
+        "nexthop":"10.0.3.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "installed":true,
+        "nexthop":"10.0.2.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16050,
+        "installed":true,
+        "nexthop":"10.0.1.3"
+      }
+    ]
+  },
+  "16051":{
+    "inLabel":16051,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "installed":true,
+        "interface":"eth-rt4-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "installed":true,
+        "interface":"eth-rt4-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16051,
+        "installed":true,
+        "interface":"eth-sw1"
+      }
+    ]
+  },
+  "16060":{
+    "inLabel":16060,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.3.4"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.2.4"
+      }
+    ]
+  },
+  "16061":{
+    "inLabel":16061,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-rt4-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-rt4-1"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..280c761
--- /dev/null
@@ -0,0 +1,74 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-rt4-1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0004",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt4-2",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0004",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-sw1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0001",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 100,
+                  "state": "up"
+                },
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0003",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 64,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..2423776
--- /dev/null
@@ -0,0 +1,159 @@
+--- rt2/step1/show_ip_route.ref        2020-08-31 15:36:25.999825589 -0300
++++ rt2/step2/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,34 +15,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -62,34 +38,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -212,34 +164,12 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
++          "interfaceName":"eth-sw1"
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true
++          "interfaceName":"eth-sw1"
+         }
+       ]
+     }
+@@ -301,24 +231,6 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+           "active":true
+         }
+       ]
+@@ -339,24 +251,6 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+           "active":true
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..7c9f1e9
--- /dev/null
@@ -0,0 +1,68 @@
+--- rt2/step1/show_ipv6_route.ref      2020-08-31 15:36:25.999825589 -0300
++++ rt2/step2/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,32 +14,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -58,32 +36,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..1c3e037
--- /dev/null
@@ -0,0 +1,102 @@
+--- rt2/step1/show_mpls_table.ref      2020-08-31 15:36:25.999825589 -0300
++++ rt2/step2/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,23 +7,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.1"
+       }
+     ]
+   },
+@@ -35,23 +19,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -63,23 +31,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.3"
+       }
+     ]
+   },
+@@ -91,23 +43,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..4613c2c
--- /dev/null
@@ -0,0 +1,159 @@
+--- rt2/step2/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step3/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,10 +15,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -38,10 +62,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -164,12 +212,34 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true
+         }
+       ]
+     }
+@@ -231,6 +301,24 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
++          "active":true,
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
+           "active":true
+         }
+       ]
+@@ -251,6 +339,24 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
++          "active":true,
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
+           "active":true
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..84b5283
--- /dev/null
@@ -0,0 +1,68 @@
+--- rt2/step2/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step3/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,10 +14,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
+@@ -36,10 +58,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..5dc90e4
--- /dev/null
@@ -0,0 +1,102 @@
+--- rt2/step2/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step3/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,7 +7,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1"
++        "nexthop":"10.0.1.1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -19,7 +35,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
+@@ -31,7 +63,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3"
++        "nexthop":"10.0.1.3",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -43,7 +91,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..f703db5
--- /dev/null
@@ -0,0 +1,173 @@
+--- rt2/step3/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step4/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,34 +15,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -62,34 +38,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -108,20 +60,14 @@
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -153,7 +99,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16050
++            3
+           ]
+         },
+         {
+@@ -163,7 +109,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16050
++            3
+           ]
+         }
+       ]
+@@ -184,20 +130,14 @@
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16060
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16060
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -212,34 +152,12 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
++          "interfaceName":"eth-sw1"
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true
++          "interfaceName":"eth-sw1"
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..fdd4a51
--- /dev/null
@@ -0,0 +1,130 @@
+--- rt2/step3/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step4/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,32 +14,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -58,32 +36,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -101,19 +57,13 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -134,7 +84,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16051
++            3
+           ]
+         },
+         {
+@@ -152,7 +102,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16051
++            3
+           ]
+         }
+       ]
+@@ -172,19 +122,13 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16061
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16061
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..dcc4532
--- /dev/null
@@ -0,0 +1,212 @@
+--- rt2/step3/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step4/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,23 +7,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.1"
+       }
+     ]
+   },
+@@ -35,23 +19,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -63,23 +31,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.3"
+       }
+     ]
+   },
+@@ -91,59 +43,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
+-      }
+-    ]
+-  },
+-  "16040":{
+-    "inLabel":16040,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.3.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.2.4"
+-      }
+-    ]
+-  },
+-  "16041":{
+-    "inLabel":16041,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt4-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt4-1"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -153,13 +53,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.3.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.2.4"
+       },
+@@ -177,13 +77,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":3,
+         "installed":true,
+         "interface":"eth-rt4-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":3,
+         "installed":true,
+         "interface":"eth-rt4-1"
+       },
+@@ -194,41 +94,5 @@
+         "interface":"eth-sw1"
+       }
+     ]
+-  },
+-  "16060":{
+-    "inLabel":16060,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16060,
+-        "installed":true,
+-        "nexthop":"10.0.3.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16060,
+-        "installed":true,
+-        "nexthop":"10.0.2.4"
+-      }
+-    ]
+-  },
+-  "16061":{
+-    "inLabel":16061,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16061,
+-        "installed":true,
+-        "interface":"eth-rt4-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16061,
+-        "installed":true,
+-        "interface":"eth-rt4-1"
+-      }
+-    ]
+   }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..22a5cb6
--- /dev/null
@@ -0,0 +1,173 @@
+--- rt2/step4/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step5/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,10 +15,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -38,10 +62,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -60,14 +108,20 @@
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -99,7 +153,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            3
++            16050
+           ]
+         },
+         {
+@@ -109,7 +163,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            3
++            16050
+           ]
+         }
+       ]
+@@ -130,14 +184,20 @@
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16060
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16060
++          ]
+         }
+       ]
+     }
+@@ -152,12 +212,34 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..819a153
--- /dev/null
@@ -0,0 +1,130 @@
+--- rt2/step4/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step5/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,10 +14,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
+@@ -36,10 +58,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
+@@ -57,13 +101,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -84,7 +134,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            3
++            16051
+           ]
+         },
+         {
+@@ -102,7 +152,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            3
++            16051
+           ]
+         }
+       ]
+@@ -122,13 +172,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16061
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16061
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..7f851ef
--- /dev/null
@@ -0,0 +1,210 @@
+--- rt2/step4/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step5/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,7 +7,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1"
++        "nexthop":"10.0.1.1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -19,7 +35,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
+@@ -31,7 +63,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3"
++        "nexthop":"10.0.1.3",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -43,12 +91,28 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
++  "16040":{
++    "inLabel":16040,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -62,6 +126,42 @@
+         "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.2.4"
++      }
++    ]
++  },
++  "16041":{
++    "inLabel":16041,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt4-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt4-1"
++      }
++    ]
++  },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.3.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.2.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+@@ -77,13 +177,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16051,
+         "installed":true,
+         "interface":"eth-rt4-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16051,
+         "installed":true,
+         "interface":"eth-rt4-1"
+       },
+@@ -94,5 +194,41 @@
+         "interface":"eth-sw1"
+       }
+     ]
++  },
++  "16060":{
++    "inLabel":16060,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16060,
++        "installed":true,
++        "nexthop":"10.0.3.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16060,
++        "installed":true,
++        "nexthop":"10.0.2.4"
++      }
++    ]
++  },
++  "16061":{
++    "inLabel":16061,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16061,
++        "installed":true,
++        "interface":"eth-rt4-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16061,
++        "installed":true,
++        "interface":"eth-rt4-1"
++      }
++    ]
+   }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..109ab8e
--- /dev/null
@@ -0,0 +1,143 @@
+--- rt2/step6/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step7/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,34 +15,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -62,34 +38,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -141,30 +93,21 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16050
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -212,34 +155,12 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
++          "interfaceName":"eth-sw1"
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.2.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.4",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true
++          "interfaceName":"eth-sw1"
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..871fd98
--- /dev/null
@@ -0,0 +1,100 @@
+--- rt2/step6/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step7/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,32 +14,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -58,32 +36,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -132,28 +88,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true,
+-          "labels":[
+-            16051
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..ad48c50
--- /dev/null
@@ -0,0 +1,157 @@
+--- rt2/step6/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step7/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,23 +7,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.1"
+       }
+     ]
+   },
+@@ -35,23 +19,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -63,23 +31,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "nexthop":"10.0.3.4"
++        "nexthop":"10.0.1.3"
+       }
+     ]
+   },
+@@ -91,23 +43,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "interface":"eth-rt4-2"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -147,54 +83,6 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.3.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.1.3"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-rt4-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-sw1"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..3511a59
--- /dev/null
@@ -0,0 +1,143 @@
+--- rt2/step7/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step8/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -15,10 +15,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -38,10 +62,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16050
++          ]
++        }
+       ]
+     }
+   ],
+@@ -93,21 +141,30 @@
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16050
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.2.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16050
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16050
++          ]
+         }
+       ]
+     }
+@@ -155,12 +212,34 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
+         },
+         {
+           "ip":"10.0.1.3",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.2.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.4",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt4-2",
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..96a6019
--- /dev/null
@@ -0,0 +1,100 @@
+--- rt2/step7/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step8/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -14,10 +14,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
+@@ -36,10 +58,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-1",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt4-2",
++          "active":true,
++          "labels":[
++            16051
++          ]
++        }
+       ]
+     }
+   ],
+@@ -88,19 +132,28 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16051
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16051
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16051
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..04b8e99
--- /dev/null
@@ -0,0 +1,157 @@
+--- rt2/step7/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step8/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -7,7 +7,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1"
++        "nexthop":"10.0.1.1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -19,7 +35,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
+@@ -31,7 +63,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.3"
++        "nexthop":"10.0.1.3",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "nexthop":"10.0.3.4"
+       }
+     ]
+   },
+@@ -43,7 +91,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "interface":"eth-rt4-2"
+       }
+     ]
+   },
+@@ -83,6 +147,54 @@
+       }
+     ]
+   },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.3.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16050,
++        "installed":true,
++        "nexthop":"10.0.1.3"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "installed":true,
++        "interface":"eth-rt4-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "installed":true,
++        "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16051,
++        "installed":true,
++        "interface":"eth-sw1"
++      }
++    ]
++  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..b7deb80
--- /dev/null
@@ -0,0 +1,65 @@
+--- rt2/step8/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt2/step9/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
+@@ -31,7 +31,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         },
+         {
+@@ -40,7 +40,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         }
+       ]
+@@ -78,7 +78,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         },
+         {
+@@ -87,7 +87,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         }
+       ]
+@@ -143,7 +143,7 @@
+           "interfaceName":"eth-sw1",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         },
+         {
+@@ -153,7 +153,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         },
+         {
+@@ -163,7 +163,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16050
++            16500
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..cd634af
--- /dev/null
@@ -0,0 +1,65 @@
+--- rt2/step8/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step9/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -29,7 +29,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         },
+         {
+@@ -37,7 +37,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         }
+       ]
+@@ -73,7 +73,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         },
+         {
+@@ -81,7 +81,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         }
+       ]
+@@ -134,7 +134,7 @@
+           "interfaceName":"eth-rt4-1",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         },
+         {
+@@ -143,7 +143,7 @@
+           "interfaceName":"eth-sw1",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         },
+         {
+@@ -152,7 +152,7 @@
+           "interfaceName":"eth-rt4-2",
+           "active":true,
+           "labels":[
+-            16051
++            16501
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..f195264
--- /dev/null
@@ -0,0 +1,178 @@
+--- rt2/step8/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt2/step9/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
+@@ -17,12 +17,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16500,
+         "nexthop":"10.0.2.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16500,
+         "nexthop":"10.0.3.4"
+       }
+     ]
+@@ -45,12 +45,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16501,
+         "interface":"eth-rt4-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16501,
+         "interface":"eth-rt4-2"
+       }
+     ]
+@@ -73,12 +73,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16500,
+         "nexthop":"10.0.2.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16500,
+         "nexthop":"10.0.3.4"
+       }
+     ]
+@@ -101,12 +101,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16501,
+         "interface":"eth-rt4-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16501,
+         "interface":"eth-rt4-2"
+       }
+     ]
+@@ -147,87 +147,87 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
++  "16060":{
++    "inLabel":16060,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16060,
+         "installed":true,
+         "nexthop":"10.0.3.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16050,
++        "outLabel":16060,
+         "installed":true,
+         "nexthop":"10.0.2.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16050,
+-        "installed":true,
+-        "nexthop":"10.0.1.3"
+       }
+     ]
+   },
+-  "16051":{
+-    "inLabel":16051,
++  "16061":{
++    "inLabel":16061,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16061,
+         "installed":true,
+         "interface":"eth-rt4-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16051,
++        "outLabel":16061,
+         "installed":true,
+         "interface":"eth-rt4-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16051,
+-        "installed":true,
+-        "interface":"eth-sw1"
+       }
+     ]
+   },
+-  "16060":{
+-    "inLabel":16060,
++  "16500":{
++    "inLabel":16500,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16060,
++        "outLabel":16500,
+         "installed":true,
+         "nexthop":"10.0.3.4"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16060,
++        "outLabel":16500,
+         "installed":true,
+         "nexthop":"10.0.2.4"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16500,
++        "installed":true,
++        "nexthop":"10.0.1.3"
+       }
+     ]
+   },
+-  "16061":{
+-    "inLabel":16061,
++  "16501":{
++    "inLabel":16501,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16061,
++        "outLabel":16501,
+         "installed":true,
+         "interface":"eth-rt4-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16061,
++        "outLabel":16501,
+         "installed":true,
+         "interface":"eth-rt4-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16501,
++        "installed":true,
++        "interface":"eth-sw1"
+       }
+     ]
+   }
diff --git a/tests/topotests/isis-tilfa-topo1/rt2/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt2/zebra.conf
new file mode 100644 (file)
index 0000000..dcb0686
--- /dev/null
@@ -0,0 +1,25 @@
+log file zebra.log
+!
+hostname rt2
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 2.2.2.2/32
+ ipv6 address 2001:db8:1000::2/128
+!
+interface eth-sw1
+ ip address 10.0.1.2/24
+!
+interface eth-rt4-1
+ ip address 10.0.2.2/24
+!
+interface eth-rt4-2
+ ip address 10.0.3.2/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt3/isisd.conf
new file mode 100644 (file)
index 0000000..986bf28
--- /dev/null
@@ -0,0 +1,45 @@
+hostname rt3
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-sw1
+ ip router isis 1
+ ipv6 router isis 1
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt5-1
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt5-2
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0003.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 3.3.3.3/32 index 30
+ segment-routing prefix 2001:db8:1000::3/128 index 31
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..5a4e1ce
--- /dev/null
@@ -0,0 +1,453 @@
+{
+  "1.1.1.1\/32":[
+    {
+      "prefix":"1.1.1.1\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.1",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        },
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        }
+      ]
+    }
+  ],
+  "2.2.2.2\/32":[
+    {
+      "prefix":"2.2.2.2\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        },
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        }
+      ]
+    }
+  ],
+  "4.4.4.4\/32":[
+    {
+      "prefix":"4.4.4.4\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16040
+          ]
+        }
+      ]
+    }
+  ],
+  "5.5.5.5\/32":[
+    {
+      "prefix":"5.5.5.5\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "6.6.6.6\/32":[
+    {
+      "prefix":"6.6.6.6\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16060
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.1.1",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "backupIndex":[
+            0,
+            1
+          ]
+        },
+        {
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        },
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        },
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        },
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1"
+        },
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2"
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.1.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-sw1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5-2",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..525a87f
--- /dev/null
@@ -0,0 +1,192 @@
+{
+  "2001:db8:1000::1\/128":[
+    {
+      "prefix":"2001:db8:1000::1\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        },
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::2\/128":[
+    {
+      "prefix":"2001:db8:1000::2\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "backupIndex":[
+            0,
+            1
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        },
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::4\/128":[
+    {
+      "prefix":"2001:db8:1000::4\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-sw1",
+          "active":true,
+          "labels":[
+            16041
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::5\/128":[
+    {
+      "prefix":"2001:db8:1000::5\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::6\/128":[
+    {
+      "prefix":"2001:db8:1000::6\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-2",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5-1",
+          "active":true,
+          "labels":[
+            16061
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..13f5f2c
--- /dev/null
@@ -0,0 +1,234 @@
+{
+  "16010":{
+    "inLabel":16010,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "nexthop":"10.0.5.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "nexthop":"10.0.4.5"
+      }
+    ]
+  },
+  "16011":{
+    "inLabel":16011,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "interface":"eth-rt5-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "interface":"eth-rt5-1"
+      }
+    ]
+  },
+  "16020":{
+    "inLabel":16020,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.1.2",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "nexthop":"10.0.5.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "nexthop":"10.0.4.5"
+      }
+    ]
+  },
+  "16021":{
+    "inLabel":16021,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-sw1",
+        "backupIndex":[
+          0,
+          1
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "interface":"eth-rt5-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "interface":"eth-rt5-1"
+      }
+    ]
+  },
+  "16040":{
+    "inLabel":16040,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "installed":true,
+        "nexthop":"10.0.1.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "installed":true,
+        "nexthop":"10.0.4.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16040,
+        "installed":true,
+        "nexthop":"10.0.5.5"
+      }
+    ]
+  },
+  "16041":{
+    "inLabel":16041,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "installed":true,
+        "interface":"eth-sw1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "installed":true,
+        "interface":"eth-rt5-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16041,
+        "installed":true,
+        "interface":"eth-rt5-2"
+      }
+    ]
+  },
+  "16050":{
+    "inLabel":16050,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.4.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.5.5"
+      }
+    ]
+  },
+  "16051":{
+    "inLabel":16051,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt5-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt5-2"
+      }
+    ]
+  },
+  "16060":{
+    "inLabel":16060,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.4.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16060,
+        "installed":true,
+        "nexthop":"10.0.5.5"
+      }
+    ]
+  },
+  "16061":{
+    "inLabel":16061,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-rt5-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16061,
+        "installed":true,
+        "interface":"eth-rt5-2"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..606595e
--- /dev/null
@@ -0,0 +1,74 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-rt5-1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0005",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt5-2",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0005",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-sw1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0001",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 100,
+                  "state": "up"
+                },
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0002",
+                  "neighbor-extended-circuit-id": 2,
+                  "hold-timer": 9,
+                  "neighbor-priority": 64,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e5fe6e7
--- /dev/null
@@ -0,0 +1,143 @@
+--- rt3/step3/show_ip_route.ref        2020-08-31 22:42:48.835561429 -0300
++++ rt3/step4/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -15,34 +15,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.5.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
+-        },
+-        {
+-          "ip":"10.0.4.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -62,34 +38,10 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.5.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
+-        },
+-        {
+-          "ip":"10.0.4.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -108,30 +60,21 @@
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.4.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.5.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16040
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -212,34 +155,12 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
++          "interfaceName":"eth-sw1"
+         },
+         {
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "backupIndex":[
+-            0,
+-            1
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.5.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-2",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.4.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5-1",
+-          "active":true
++          "interfaceName":"eth-sw1"
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..ccfbbea
--- /dev/null
@@ -0,0 +1,100 @@
+--- rt3/step3/show_ipv6_route.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt3/step4/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -14,32 +14,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -58,32 +36,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0,
+-            1
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
+-        },
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -101,28 +57,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..64a8689
--- /dev/null
@@ -0,0 +1,149 @@
+--- rt3/step3/show_mpls_table.ref      2020-08-31 22:42:48.835561429 -0300
++++ rt3/step4/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -7,23 +7,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "nexthop":"10.0.5.5"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "nexthop":"10.0.4.5"
++        "nexthop":"10.0.1.1"
+       }
+     ]
+   },
+@@ -35,23 +19,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "interface":"eth-rt5-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "interface":"eth-rt5-1"
++        "interface":"eth-sw1"
+       }
+     ]
+   },
+@@ -63,23 +31,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.2",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "nexthop":"10.0.5.5"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "nexthop":"10.0.4.5"
++        "nexthop":"10.0.1.2"
+       }
+     ]
+   },
+@@ -91,71 +43,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1",
+-        "backupIndex":[
+-          0,
+-          1
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "interface":"eth-rt5-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "interface":"eth-rt5-1"
+-      }
+-    ]
+-  },
+-  "16040":{
+-    "inLabel":16040,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "installed":true,
+-        "nexthop":"10.0.1.2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "installed":true,
+-        "nexthop":"10.0.4.5"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "installed":true,
+-        "nexthop":"10.0.5.5"
+-      }
+-    ]
+-  },
+-  "16041":{
+-    "inLabel":16041,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "installed":true,
+         "interface":"eth-sw1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "installed":true,
+-        "interface":"eth-rt5-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "installed":true,
+-        "interface":"eth-rt5-2"
+       }
+     ]
+   },
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..de265cc
--- /dev/null
@@ -0,0 +1,143 @@
+--- rt3/step4/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt3/step5/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -15,10 +15,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.5.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-2",
++          "active":true,
++          "labels":[
++            16040
++          ]
++        },
++        {
++          "ip":"10.0.4.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-1",
++          "active":true,
++          "labels":[
++            16040
++          ]
++        }
+       ]
+     }
+   ],
+@@ -38,10 +62,34 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.5.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-2",
++          "active":true,
++          "labels":[
++            16040
++          ]
++        },
++        {
++          "ip":"10.0.4.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-1",
++          "active":true,
++          "labels":[
++            16040
++          ]
++        }
+       ]
+     }
+   ],
+@@ -60,21 +108,30 @@
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16040
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.4.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16040
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.5.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16040
++          ]
+         }
+       ]
+     }
+@@ -155,12 +212,34 @@
+         {
+           "ip":"10.0.1.1",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
+         },
+         {
+           "ip":"10.0.1.2",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1"
++          "interfaceName":"eth-sw1",
++          "backupIndex":[
++            0,
++            1
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.5.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-2",
++          "active":true
++        },
++        {
++          "ip":"10.0.4.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5-1",
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..947d427
--- /dev/null
@@ -0,0 +1,100 @@
+--- rt3/step4/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step5/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -14,10 +14,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt5-2",
++          "active":true,
++          "labels":[
++            16041
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt5-1",
++          "active":true,
++          "labels":[
++            16041
++          ]
++        }
+       ]
+     }
+   ],
+@@ -36,10 +58,32 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+           "active":true,
++          "backupIndex":[
++            0,
++            1
++          ],
+           "labels":[
+             3
+           ]
+         }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt5-2",
++          "active":true,
++          "labels":[
++            16041
++          ]
++        },
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt5-1",
++          "active":true,
++          "labels":[
++            16041
++          ]
++        }
+       ]
+     }
+   ],
+@@ -57,19 +101,28 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16041
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16041
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-sw1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16041
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..3dd237b
--- /dev/null
@@ -0,0 +1,148 @@
+--- rt3/step4/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step5/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -7,7 +7,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.1"
++        "nexthop":"10.0.1.1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "nexthop":"10.0.5.5"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "nexthop":"10.0.4.5"
+       }
+     ]
+   },
+@@ -19,7 +35,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-sw1"
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "interface":"eth-rt5-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "interface":"eth-rt5-1"
+       }
+     ]
+   },
+@@ -31,7 +63,23 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.1.2"
++        "nexthop":"10.0.1.2",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "nexthop":"10.0.5.5"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "nexthop":"10.0.4.5"
+       }
+     ]
+   },
+@@ -43,6 +91,70 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
++        "interface":"eth-sw1",
++        "backupIndex":[
++          0,
++          1
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "interface":"eth-rt5-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "interface":"eth-rt5-1"
++      }
++    ]
++  },
++  "16040":{
++    "inLabel":16040,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "installed":true,
++        "nexthop":"10.0.4.5"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "installed":true,
++        "nexthop":"10.0.5.5"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16040,
++        "installed":true,
++        "nexthop":"10.0.1.2"
++      }
++    ]
++  },
++  "16041":{
++    "inLabel":16041,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "installed":true,
++        "interface":"eth-rt5-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "installed":true,
++        "interface":"eth-rt5-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16041,
++        "installed":true,
+         "interface":"eth-sw1"
+       }
+     ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..00f0bb0
--- /dev/null
@@ -0,0 +1,74 @@
+--- rt3/step5/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt3/step6/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -31,7 +31,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         },
+         {
+@@ -40,7 +40,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         }
+       ]
+@@ -78,7 +78,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         },
+         {
+@@ -87,7 +87,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         }
+       ]
+@@ -120,7 +120,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         },
+         {
+@@ -130,7 +130,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16040
++            30040
+           ]
+         }
+       ]
+@@ -186,7 +186,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16060
++            30060
+           ]
+         },
+         {
+@@ -196,7 +196,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16060
++            30060
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..823cd45
--- /dev/null
@@ -0,0 +1,74 @@
+--- rt3/step5/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step6/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -29,7 +29,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         },
+         {
+@@ -37,7 +37,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         }
+       ]
+@@ -73,7 +73,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         },
+         {
+@@ -81,7 +81,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         }
+       ]
+@@ -103,7 +103,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         },
+         {
+@@ -112,7 +112,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16041
++            30041
+           ]
+         },
+         {
+@@ -174,7 +174,7 @@
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16061
++            30061
+           ]
+         },
+         {
+@@ -183,7 +183,7 @@
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+           "labels":[
+-            16061
++            30061
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..1ad228b
--- /dev/null
@@ -0,0 +1,126 @@
+--- rt3/step5/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step6/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -17,12 +17,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "nexthop":"10.0.5.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "nexthop":"10.0.4.5"
+       }
+     ]
+@@ -45,12 +45,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "interface":"eth-rt5-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "interface":"eth-rt5-1"
+       }
+     ]
+@@ -73,12 +73,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "nexthop":"10.0.5.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "nexthop":"10.0.4.5"
+       }
+     ]
+@@ -101,12 +101,12 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "interface":"eth-rt5-2"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "interface":"eth-rt5-1"
+       }
+     ]
+@@ -117,13 +117,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "installed":true,
+         "nexthop":"10.0.4.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16040,
++        "outLabel":30040,
+         "installed":true,
+         "nexthop":"10.0.5.5"
+       },
+@@ -141,13 +141,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "installed":true,
+         "interface":"eth-rt5-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16041,
++        "outLabel":30041,
+         "installed":true,
+         "interface":"eth-rt5-2"
+       },
+@@ -201,13 +201,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16060,
++        "outLabel":30060,
+         "installed":true,
+         "nexthop":"10.0.4.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16060,
++        "outLabel":30060,
+         "installed":true,
+         "nexthop":"10.0.5.5"
+       }
+@@ -219,13 +219,13 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16061,
++        "outLabel":30061,
+         "installed":true,
+         "interface":"eth-rt5-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16061,
++        "outLabel":30061,
+         "installed":true,
+         "interface":"eth-rt5-2"
+       }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..bee7c56
--- /dev/null
@@ -0,0 +1,25 @@
+--- rt3/step6/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt3/step7/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -151,20 +151,14 @@
+           "ip":"10.0.4.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.5.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..05b4080
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt3/step6/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step7/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -141,19 +141,13 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..3fb37fa
--- /dev/null
@@ -0,0 +1,45 @@
+--- rt3/step6/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step7/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -159,42 +159,6 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.4.5"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.5.5"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5-2"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..c31d252
--- /dev/null
@@ -0,0 +1,25 @@
+--- rt3/step7/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt3/step8/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -151,14 +151,20 @@
+           "ip":"10.0.4.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.5.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..759f28d
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt3/step7/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step8/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -141,13 +141,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..0c2c8e2
--- /dev/null
@@ -0,0 +1,45 @@
+--- rt3/step7/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step8/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -159,6 +159,42 @@
+       }
+     ]
+   },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.4.5"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.5.5"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt5-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt5-2"
++      }
++    ]
++  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..b0a4851
--- /dev/null
@@ -0,0 +1,92 @@
+--- rt3/step8/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt3/step9/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -159,73 +159,73 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
++  "16060":{
++    "inLabel":16060,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":30060,
+         "installed":true,
+         "nexthop":"10.0.4.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":30060,
+         "installed":true,
+         "nexthop":"10.0.5.5"
+       }
+     ]
+   },
+-  "16051":{
+-    "inLabel":16051,
++  "16061":{
++    "inLabel":16061,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":30061,
+         "installed":true,
+         "interface":"eth-rt5-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":30061,
+         "installed":true,
+         "interface":"eth-rt5-2"
+       }
+     ]
+   },
+-  "16060":{
+-    "inLabel":16060,
++  "16500":{
++    "inLabel":16500,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30060,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.4.5"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30060,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.5.5"
+       }
+     ]
+   },
+-  "16061":{
+-    "inLabel":16061,
++  "16501":{
++    "inLabel":16501,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30061,
++        "outLabel":3,
+         "installed":true,
+         "interface":"eth-rt5-1"
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30061,
++        "outLabel":3,
+         "installed":true,
+         "interface":"eth-rt5-2"
+       }
diff --git a/tests/topotests/isis-tilfa-topo1/rt3/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt3/zebra.conf
new file mode 100644 (file)
index 0000000..3254529
--- /dev/null
@@ -0,0 +1,25 @@
+log file zebra.log
+!
+hostname rt3
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 3.3.3.3/32
+ ipv6 address 2001:db8:1000::3/128
+!
+interface eth-sw1
+ ip address 10.0.1.3/24
+!
+interface eth-rt5-1
+ ip address 10.0.4.3/24
+!
+interface eth-rt5-2
+ ip address 10.0.5.3/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt4/isisd.conf
new file mode 100644 (file)
index 0000000..7d41106
--- /dev/null
@@ -0,0 +1,53 @@
+hostname rt4
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-rt2-1
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt2-2
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt5
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt6
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0004.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 4.4.4.4/32 index 40
+ segment-routing prefix 2001:db8:1000::4/128 index 41
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..3ee587a
--- /dev/null
@@ -0,0 +1,423 @@
+{
+  "1.1.1.1\/32":[
+    {
+      "prefix":"1.1.1.1\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        }
+      ]
+    }
+  ],
+  "2.2.2.2\/32":[
+    {
+      "prefix":"2.2.2.2\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "3.3.3.3\/32":[
+    {
+      "prefix":"3.3.3.3\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            16030
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            16030
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            16030
+          ]
+        }
+      ]
+    }
+  ],
+  "5.5.5.5\/32":[
+    {
+      "prefix":"5.5.5.5\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "6.6.6.6\/32":[
+    {
+      "prefix":"6.6.6.6\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1"
+        },
+        {
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2"
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0,
+            1,
+            2
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        },
+        {
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0,
+            1,
+            2
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        },
+        {
+          "ip":"10.0.2.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.3.2",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt2-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.7.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..2f6b703
--- /dev/null
@@ -0,0 +1,174 @@
+{
+  "2001:db8:1000::1\/128":[
+    {
+      "prefix":"2001:db8:1000::1\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::2\/128":[
+    {
+      "prefix":"2001:db8:1000::2\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::3\/128":[
+    {
+      "prefix":"2001:db8:1000::3\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-2",
+          "active":true,
+          "labels":[
+            16031
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            16031
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt2-1",
+          "active":true,
+          "labels":[
+            16031
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::5\/128":[
+    {
+      "prefix":"2001:db8:1000::5\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::6\/128":[
+    {
+      "prefix":"2001:db8:1000::6\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..5433d4f
--- /dev/null
@@ -0,0 +1,210 @@
+{
+  "16010":{
+    "inLabel":16010,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.3.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.2.2"
+      }
+    ]
+  },
+  "16011":{
+    "inLabel":16011,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt2-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt2-1"
+      }
+    ]
+  },
+  "16020":{
+    "inLabel":16020,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.3.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.2.2"
+      }
+    ]
+  },
+  "16021":{
+    "inLabel":16021,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt2-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt2-1"
+      }
+    ]
+  },
+  "16030":{
+    "inLabel":16030,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16030,
+        "installed":true,
+        "nexthop":"10.0.3.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16030,
+        "installed":true,
+        "nexthop":"10.0.2.2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16030,
+        "installed":true,
+        "nexthop":"10.0.6.5"
+      }
+    ]
+  },
+  "16031":{
+    "inLabel":16031,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16031,
+        "installed":true,
+        "interface":"eth-rt2-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16031,
+        "installed":true,
+        "interface":"eth-rt2-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16031,
+        "installed":true,
+        "interface":"eth-rt5"
+      }
+    ]
+  },
+  "16050":{
+    "inLabel":16050,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.6.5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.7.6"
+      }
+    ]
+  },
+  "16051":{
+    "inLabel":16051,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt6"
+      }
+    ]
+  },
+  "16060":{
+    "inLabel":16060,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.7.6",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.6.5"
+      }
+    ]
+  },
+  "16061":{
+    "inLabel":16061,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt6",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt5"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..9d7a19e
--- /dev/null
@@ -0,0 +1,86 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-rt2-1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0002",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt2-2",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0002",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt5",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0005",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt6",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0006",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..09a0eaa
--- /dev/null
@@ -0,0 +1,238 @@
+--- rt4/step3/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt4/step4/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -14,20 +14,14 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            16010
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            16010
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -47,20 +41,14 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -80,30 +68,21 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            16030
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            16030
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            16030
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -123,24 +102,7 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            3
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -160,24 +122,7 @@
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            3
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.6.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -266,31 +211,6 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0,
+-            1,
+-            2
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.2.2",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt2-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.2",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt2-2",
+           "active":true
+         }
+       ]
+@@ -311,31 +231,6 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0,
+-            1,
+-            2
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.2.2",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt2-1",
+-          "active":true
+-        },
+-        {
+-          "ip":"10.0.3.2",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt2-2",
+           "active":true
+         }
+       ]
+@@ -351,18 +246,7 @@
+         {
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "backupIndex":[
+-            0
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
++          "interfaceName":"eth-rt5"
+         }
+       ]
+     }
+@@ -377,18 +261,7 @@
+         {
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "backupIndex":[
+-            0
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.6.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true
++          "interfaceName":"eth-rt6"
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..c1f9fa4
--- /dev/null
@@ -0,0 +1,128 @@
+--- rt4/step3/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step4/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -13,19 +13,13 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            16011
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            16011
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -44,19 +38,13 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -75,28 +63,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true,
+-          "labels":[
+-            16031
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            16031
+-          ]
++          "active":true
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true,
+-          "labels":[
+-            16031
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -115,23 +94,7 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            3
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -150,23 +113,7 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            3
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..710f817
--- /dev/null
@@ -0,0 +1,213 @@
+--- rt4/step3/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step4/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -1,210 +1,2 @@
+ {
+-  "16010":{
+-    "inLabel":16010,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16010,
+-        "installed":true,
+-        "nexthop":"10.0.3.2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16010,
+-        "installed":true,
+-        "nexthop":"10.0.2.2"
+-      }
+-    ]
+-  },
+-  "16011":{
+-    "inLabel":16011,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16011,
+-        "installed":true,
+-        "interface":"eth-rt2-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16011,
+-        "installed":true,
+-        "interface":"eth-rt2-1"
+-      }
+-    ]
+-  },
+-  "16020":{
+-    "inLabel":16020,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.3.2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.2.2"
+-      }
+-    ]
+-  },
+-  "16021":{
+-    "inLabel":16021,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt2-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt2-1"
+-      }
+-    ]
+-  },
+-  "16030":{
+-    "inLabel":16030,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16030,
+-        "installed":true,
+-        "nexthop":"10.0.3.2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16030,
+-        "installed":true,
+-        "nexthop":"10.0.2.2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16030,
+-        "installed":true,
+-        "nexthop":"10.0.6.5"
+-      }
+-    ]
+-  },
+-  "16031":{
+-    "inLabel":16031,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16031,
+-        "installed":true,
+-        "interface":"eth-rt2-2"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16031,
+-        "installed":true,
+-        "interface":"eth-rt2-1"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16031,
+-        "installed":true,
+-        "interface":"eth-rt5"
+-      }
+-    ]
+-  },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.6.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.7.6"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt6"
+-      }
+-    ]
+-  },
+-  "16060":{
+-    "inLabel":16060,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.7.6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.6.5"
+-      }
+-    ]
+-  },
+-  "16061":{
+-    "inLabel":16061,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt5"
+-      }
+-    ]
+-  }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e19f6b2
--- /dev/null
@@ -0,0 +1,238 @@
+--- rt4/step4/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt4/step5/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -14,14 +14,20 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16010
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16010
++          ]
+         }
+       ]
+     }
+@@ -41,14 +47,20 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -68,21 +80,30 @@
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16030
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.3.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16030
++          ]
+         },
+         {
+           "fib":true,
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            16030
++          ]
+         }
+       ]
+     }
+@@ -102,7 +123,24 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "backupIndex":[
++            0
++          ],
++          "labels":[
++            3
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.7.6",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt6",
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -122,7 +160,24 @@
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "backupIndex":[
++            0
++          ],
++          "labels":[
++            3
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.6.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5",
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -211,6 +266,31 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
++          "active":true,
++          "backupIndex":[
++            0,
++            1,
++            2
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.7.6",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt6",
++          "active":true
++        },
++        {
++          "ip":"10.0.2.2",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt2-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.2",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt2-2",
+           "active":true
+         }
+       ]
+@@ -231,6 +311,31 @@
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
++          "active":true,
++          "backupIndex":[
++            0,
++            1,
++            2
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.7.6",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt6",
++          "active":true
++        },
++        {
++          "ip":"10.0.2.2",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt2-1",
++          "active":true
++        },
++        {
++          "ip":"10.0.3.2",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt2-2",
+           "active":true
+         }
+       ]
+@@ -246,7 +351,18 @@
+         {
+           "ip":"10.0.6.5",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt5"
++          "interfaceName":"eth-rt5",
++          "backupIndex":[
++            0
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.7.6",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt6",
++          "active":true
+         }
+       ]
+     }
+@@ -261,7 +377,18 @@
+         {
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt6"
++          "interfaceName":"eth-rt6",
++          "backupIndex":[
++            0
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "ip":"10.0.6.5",
++          "afi":"ipv4",
++          "interfaceName":"eth-rt5",
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..5289194
--- /dev/null
@@ -0,0 +1,128 @@
+--- rt4/step4/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step5/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -13,13 +13,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16011
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16011
++          ]
+         }
+       ]
+     }
+@@ -38,13 +44,19 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -63,19 +75,28 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-2",
+-          "active":true
++          "active":true,
++          "labels":[
++            16031
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            16031
++          ]
+         },
+         {
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt2-1",
+-          "active":true
++          "active":true,
++          "labels":[
++            16031
++          ]
+         }
+       ]
+     }
+@@ -94,7 +115,23 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "backupIndex":[
++            0
++          ],
++          "labels":[
++            3
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt6",
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -113,7 +150,23 @@
+           "fib":true,
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "backupIndex":[
++            0
++          ],
++          "labels":[
++            3
++          ]
++        }
++      ],
++      "backupNexthops":[
++        {
++          "afi":"ipv6",
++          "interfaceName":"eth-rt5",
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..8bcd28a
--- /dev/null
@@ -0,0 +1,213 @@
+--- rt4/step4/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step5/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -1,2 +1,210 @@
+ {
++  "16010":{
++    "inLabel":16010,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16010,
++        "installed":true,
++        "nexthop":"10.0.3.2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16010,
++        "installed":true,
++        "nexthop":"10.0.2.2"
++      }
++    ]
++  },
++  "16011":{
++    "inLabel":16011,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16011,
++        "installed":true,
++        "interface":"eth-rt2-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16011,
++        "installed":true,
++        "interface":"eth-rt2-1"
++      }
++    ]
++  },
++  "16020":{
++    "inLabel":16020,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.3.2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.2.2"
++      }
++    ]
++  },
++  "16021":{
++    "inLabel":16021,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt2-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt2-1"
++      }
++    ]
++  },
++  "16030":{
++    "inLabel":16030,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16030,
++        "installed":true,
++        "nexthop":"10.0.3.2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16030,
++        "installed":true,
++        "nexthop":"10.0.2.2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16030,
++        "installed":true,
++        "nexthop":"10.0.6.5"
++      }
++    ]
++  },
++  "16031":{
++    "inLabel":16031,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16031,
++        "installed":true,
++        "interface":"eth-rt2-2"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16031,
++        "installed":true,
++        "interface":"eth-rt2-1"
++      },
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16031,
++        "installed":true,
++        "interface":"eth-rt5"
++      }
++    ]
++  },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.6.5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.7.6"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt6"
++      }
++    ]
++  },
++  "16060":{
++    "inLabel":16060,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.7.6",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.6.5"
++      }
++    ]
++  },
++  "16061":{
++    "inLabel":16061,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt6",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt5"
++      }
++    ]
++  }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..03f31f7
--- /dev/null
@@ -0,0 +1,11 @@
+--- rt4/step5/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt4/step6/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -102,7 +102,7 @@
+           "interfaceName":"eth-rt5",
+           "active":true,
+           "labels":[
+-            16030
++            30030
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..43621e1
--- /dev/null
@@ -0,0 +1,11 @@
+--- rt4/step5/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step6/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -86,7 +86,7 @@
+           "interfaceName":"eth-rt5",
+           "active":true,
+           "labels":[
+-            16031
++            30031
+           ]
+         },
+         {
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..871824b
--- /dev/null
@@ -0,0 +1,20 @@
+--- rt4/step5/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step6/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -89,7 +89,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16030,
++        "outLabel":30030,
+         "installed":true,
+         "nexthop":"10.0.6.5"
+       }
+@@ -113,7 +113,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16031,
++        "outLabel":30031,
+         "installed":true,
+         "interface":"eth-rt5"
+       }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..1f1de16
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt4/step6/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt4/step7/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -126,9 +126,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -137,10 +134,7 @@
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..1c2f0f6
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt4/step6/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step7/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -118,9 +118,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -128,10 +125,7 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..dfe7aef
--- /dev/null
@@ -0,0 +1,53 @@
+--- rt4/step6/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step7/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -119,50 +119,6 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.6.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.7.6"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt6"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e944565
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt4/step7/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt4/step8/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
+@@ -126,6 +126,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -134,7 +137,10 @@
+           "ip":"10.0.7.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..0d699ad
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt4/step7/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step8/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -118,6 +118,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -125,7 +128,10 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..145d3b1
--- /dev/null
@@ -0,0 +1,53 @@
+--- rt4/step7/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step8/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -119,6 +119,50 @@
+       }
+     ]
+   },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.6.5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.7.6"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt6"
++      }
++    ]
++  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..6ae67bc
--- /dev/null
@@ -0,0 +1,102 @@
+--- rt4/step8/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt4/step9/show_mpls_table.ref      2020-08-31 22:42:48.839561398 -0300
+@@ -119,15 +119,15 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
++  "16060":{
++    "inLabel":16060,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.6.5",
++        "nexthop":"10.0.7.6",
+         "backupIndex":[
+           0
+         ]
+@@ -137,19 +137,19 @@
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+-        "nexthop":"10.0.7.6"
++        "nexthop":"10.0.6.5"
+       }
+     ]
+   },
+-  "16051":{
+-    "inLabel":16051,
++  "16061":{
++    "inLabel":16061,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt5",
++        "interface":"eth-rt6",
+         "backupIndex":[
+           0
+         ]
+@@ -159,19 +159,19 @@
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+-        "interface":"eth-rt6"
++        "interface":"eth-rt5"
+       }
+     ]
+   },
+-  "16060":{
+-    "inLabel":16060,
++  "16500":{
++    "inLabel":16500,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.7.6",
++        "nexthop":"10.0.6.5",
+         "backupIndex":[
+           0
+         ]
+@@ -181,19 +181,19 @@
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+-        "nexthop":"10.0.6.5"
++        "nexthop":"10.0.7.6"
+       }
+     ]
+   },
+-  "16061":{
+-    "inLabel":16061,
++  "16501":{
++    "inLabel":16501,
+     "installed":true,
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt6",
++        "interface":"eth-rt5",
+         "backupIndex":[
+           0
+         ]
+@@ -203,7 +203,7 @@
+       {
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+-        "interface":"eth-rt5"
++        "interface":"eth-rt6"
+       }
+     ]
+   }
diff --git a/tests/topotests/isis-tilfa-topo1/rt4/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt4/zebra.conf
new file mode 100644 (file)
index 0000000..4945897
--- /dev/null
@@ -0,0 +1,28 @@
+log file zebra.log
+!
+hostname rt4
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 4.4.4.4/32
+ ipv6 address 2001:db8:1000::4/128
+!
+interface eth-rt2-1
+ ip address 10.0.2.4/24
+!
+interface eth-rt2-2
+ ip address 10.0.3.4/24
+!
+interface eth-rt5
+ ip address 10.0.6.4/24
+!
+interface eth-rt6
+ ip address 10.0.7.4/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt5/isisd.conf
new file mode 100644 (file)
index 0000000..be52eb0
--- /dev/null
@@ -0,0 +1,53 @@
+hostname rt5
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-rt3-1
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt3-2
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt4
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt6
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0005.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 5.5.5.5/32 index 50
+ segment-routing prefix 2001:db8:1000::5/128 index 51
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..ce320d0
--- /dev/null
@@ -0,0 +1,423 @@
+{
+  "1.1.1.1\/32":[
+    {
+      "prefix":"1.1.1.1\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        }
+      ]
+    }
+  ],
+  "2.2.2.2\/32":[
+    {
+      "prefix":"2.2.2.2\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            16020
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            16020
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            16020
+          ]
+        }
+      ]
+    }
+  ],
+  "3.3.3.3\/32":[
+    {
+      "prefix":"3.3.3.3\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "4.4.4.4\/32":[
+    {
+      "prefix":"4.4.4.4\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "6.6.6.6\/32":[
+    {
+      "prefix":"6.6.6.6\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0,
+            1,
+            2
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        },
+        {
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0,
+            1,
+            2
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        },
+        {
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1"
+        },
+        {
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.4.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-1",
+          "active":true
+        },
+        {
+          "ip":"10.0.5.3",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt3-2"
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.8.6",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt6",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.6.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..5bda177
--- /dev/null
@@ -0,0 +1,174 @@
+{
+  "2001:db8:1000::1\/128":[
+    {
+      "prefix":"2001:db8:1000::1\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::2\/128":[
+    {
+      "prefix":"2001:db8:1000::2\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            16021
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            16021
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            16021
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::3\/128":[
+    {
+      "prefix":"2001:db8:1000::3\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-1",
+          "active":true,
+          "labels":[
+            3
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt3-2",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::4\/128":[
+    {
+      "prefix":"2001:db8:1000::4\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::6\/128":[
+    {
+      "prefix":"2001:db8:1000::6\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt6",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..84ba099
--- /dev/null
@@ -0,0 +1,210 @@
+{
+  "16010":{
+    "inLabel":16010,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.5.3"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.4.3"
+      }
+    ]
+  },
+  "16011":{
+    "inLabel":16011,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt3-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt3-1"
+      }
+    ]
+  },
+  "16020":{
+    "inLabel":16020,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16020,
+        "installed":true,
+        "nexthop":"10.0.5.3"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16020,
+        "installed":true,
+        "nexthop":"10.0.4.3"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16020,
+        "installed":true,
+        "nexthop":"10.0.6.4"
+      }
+    ]
+  },
+  "16021":{
+    "inLabel":16021,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16021,
+        "installed":true,
+        "interface":"eth-rt3-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16021,
+        "installed":true,
+        "interface":"eth-rt3-1"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16021,
+        "installed":true,
+        "interface":"eth-rt4"
+      }
+    ]
+  },
+  "16030":{
+    "inLabel":16030,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.5.3"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.4.3"
+      }
+    ]
+  },
+  "16031":{
+    "inLabel":16031,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt3-2"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt3-1"
+      }
+    ]
+  },
+  "16040":{
+    "inLabel":16040,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.6.4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.8.6"
+      }
+    ]
+  },
+  "16041":{
+    "inLabel":16041,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt6"
+      }
+    ]
+  },
+  "16060":{
+    "inLabel":16060,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.8.6",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.6.4"
+      }
+    ]
+  },
+  "16061":{
+    "inLabel":16061,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt6",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt4"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..4a3e626
--- /dev/null
@@ -0,0 +1,86 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-rt3-1",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0003",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt3-2",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0003",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt4",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0004",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt6",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0006",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..f9f0141
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt5/step3/show_ip_route.ref        2020-08-31 22:42:48.839561398 -0300
++++ rt5/step4/show_ip_route.ref        2020-08-31 22:42:48.843561366 -0300
+@@ -69,7 +69,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            16020
++            3
+           ]
+         }
+       ]
+@@ -126,9 +126,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -137,10 +134,7 @@
+           "ip":"10.0.8.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..3e3c7d8
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt5/step3/show_ipv6_route.ref      2020-08-31 22:42:48.839561398 -0300
++++ rt5/step4/show_ipv6_route.ref      2020-08-31 22:42:48.843561366 -0300
+@@ -55,7 +55,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            16021
++            3
+           ]
+         },
+         {
+@@ -118,9 +118,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -128,10 +125,7 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..21c426e
--- /dev/null
@@ -0,0 +1,71 @@
+--- rt5/step3/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt5/step4/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
+@@ -53,7 +53,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16020,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.6.4"
+       }
+@@ -77,7 +77,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16021,
++        "outLabel":3,
+         "installed":true,
+         "interface":"eth-rt4"
+       }
+@@ -119,50 +119,6 @@
+       }
+     ]
+   },
+-  "16040":{
+-    "inLabel":16040,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.6.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.8.6"
+-      }
+-    ]
+-  },
+-  "16041":{
+-    "inLabel":16041,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt6"
+-      }
+-    ]
+-  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..49253b1
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt5/step4/show_ip_route.ref        2020-08-31 22:42:48.843561366 -0300
++++ rt5/step5/show_ip_route.ref        2020-08-31 22:42:48.843561366 -0300
+@@ -69,7 +69,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            3
++            16020
+           ]
+         }
+       ]
+@@ -126,6 +126,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -134,7 +137,10 @@
+           "ip":"10.0.8.6",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..2ee7db9
--- /dev/null
@@ -0,0 +1,33 @@
+--- rt5/step4/show_ipv6_route.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt5/step5/show_ipv6_route.ref      2020-08-31 22:42:48.843561366 -0300
+@@ -55,7 +55,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            3
++            16021
+           ]
+         },
+         {
+@@ -118,6 +118,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -125,7 +128,10 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..269b8dd
--- /dev/null
@@ -0,0 +1,71 @@
+--- rt5/step4/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt5/step5/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
+@@ -53,7 +53,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16020,
+         "installed":true,
+         "nexthop":"10.0.6.4"
+       }
+@@ -77,7 +77,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16021,
+         "installed":true,
+         "interface":"eth-rt4"
+       }
+@@ -119,6 +119,50 @@
+       }
+     ]
+   },
++  "16040":{
++    "inLabel":16040,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.6.4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.8.6"
++      }
++    ]
++  },
++  "16041":{
++    "inLabel":16041,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt6"
++      }
++    ]
++  },
+   "16060":{
+     "inLabel":16060,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..f70ac77
--- /dev/null
@@ -0,0 +1,110 @@
+--- rt5/step5/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt5/step6/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
+@@ -1,6 +1,6 @@
+ {
+-  "16010":{
+-    "inLabel":16010,
++  "30010":{
++    "inLabel":30010,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -17,8 +17,8 @@
+       }
+     ]
+   },
+-  "16011":{
+-    "inLabel":16011,
++  "30011":{
++    "inLabel":30011,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -35,8 +35,8 @@
+       }
+     ]
+   },
+-  "16020":{
+-    "inLabel":16020,
++  "30020":{
++    "inLabel":30020,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -59,8 +59,8 @@
+       }
+     ]
+   },
+-  "16021":{
+-    "inLabel":16021,
++  "30021":{
++    "inLabel":30021,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -83,8 +83,8 @@
+       }
+     ]
+   },
+-  "16030":{
+-    "inLabel":16030,
++  "30030":{
++    "inLabel":30030,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -101,8 +101,8 @@
+       }
+     ]
+   },
+-  "16031":{
+-    "inLabel":16031,
++  "30031":{
++    "inLabel":30031,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -119,8 +119,8 @@
+       }
+     ]
+   },
+-  "16040":{
+-    "inLabel":16040,
++  "30040":{
++    "inLabel":30040,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -141,8 +141,8 @@
+       }
+     ]
+   },
+-  "16041":{
+-    "inLabel":16041,
++  "30041":{
++    "inLabel":30041,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -163,8 +163,8 @@
+       }
+     ]
+   },
+-  "16060":{
+-    "inLabel":16060,
++  "30060":{
++    "inLabel":30060,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -185,8 +185,8 @@
+       }
+     ]
+   },
+-  "16061":{
+-    "inLabel":16061,
++  "30061":{
++    "inLabel":30061,
+     "installed":true,
+     "nexthops":[
+       {
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt5/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt5/zebra.conf
new file mode 100644 (file)
index 0000000..4cfea1a
--- /dev/null
@@ -0,0 +1,28 @@
+log file zebra.log
+!
+hostname rt5
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 5.5.5.5/32
+ ipv6 address 2001:db8:1000::5/128
+!
+interface eth-rt3-1
+ ip address 10.0.4.5/24
+!
+interface eth-rt3-2
+ ip address 10.0.5.5/24
+!
+interface eth-rt4
+ ip address 10.0.6.5/24
+!
+interface eth-rt6
+ ip address 10.0.8.5/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/isisd.conf b/tests/topotests/isis-tilfa-topo1/rt6/isisd.conf
new file mode 100644 (file)
index 0000000..db47622
--- /dev/null
@@ -0,0 +1,39 @@
+hostname rt6
+log file isisd.log
+!
+debug isis events
+debug isis route-events
+debug isis spf-events
+debug isis sr-events
+debug isis lsp-gen
+!
+interface lo
+ ip router isis 1
+ ipv6 router isis 1
+ isis passive
+!
+interface eth-rt4
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+interface eth-rt5
+ ip router isis 1
+ ipv6 router isis 1
+ isis network point-to-point
+ isis hello-multiplier 3
+ isis fast-reroute ti-lfa
+!
+router isis 1
+ net 49.0000.0000.0000.0006.00
+ is-type level-1
+ lsp-gen-interval 2
+ topology ipv6-unicast
+ segment-routing on
+ segment-routing global-block 16000 23999
+ segment-routing node-msd 8
+ segment-routing prefix 6.6.6.6/32 index 60
+ segment-routing prefix 2001:db8:1000::6/128 index 61
+!
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref
new file mode 100644 (file)
index 0000000..c9615d1
--- /dev/null
@@ -0,0 +1,413 @@
+{
+  "1.1.1.1\/32":[
+    {
+      "prefix":"1.1.1.1\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":40,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        },
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            16010
+          ]
+        }
+      ]
+    }
+  ],
+  "2.2.2.2\/32":[
+    {
+      "prefix":"2.2.2.2\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            16020
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "3.3.3.3\/32":[
+    {
+      "prefix":"3.3.3.3\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            16030
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "4.4.4.4\/32":[
+    {
+      "prefix":"4.4.4.4\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "5.5.5.5\/32":[
+    {
+      "prefix":"5.5.5.5\/32",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "10.0.1.0\/24":[
+    {
+      "prefix":"10.0.1.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.2.0\/24":[
+    {
+      "prefix":"10.0.2.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.3.0\/24":[
+    {
+      "prefix":"10.0.3.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.4.0\/24":[
+    {
+      "prefix":"10.0.4.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.5.0\/24":[
+    {
+      "prefix":"10.0.5.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.6.0\/24":[
+    {
+      "prefix":"10.0.6.0\/24",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        },
+        {
+          "fib":true,
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.7.0\/24":[
+    {
+      "prefix":"10.0.7.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "active":true
+        }
+      ]
+    }
+  ],
+  "10.0.8.0\/24":[
+    {
+      "prefix":"10.0.8.0\/24",
+      "protocol":"isis",
+      "distance":115,
+      "metric":20,
+      "nexthops":[
+        {
+          "ip":"10.0.8.5",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt5",
+          "backupIndex":[
+            0
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "ip":"10.0.7.4",
+          "afi":"ipv4",
+          "interfaceName":"eth-rt4",
+          "active":true
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref
new file mode 100644 (file)
index 0000000..b69c149
--- /dev/null
@@ -0,0 +1,173 @@
+{
+  "2001:db8:1000::1\/128":[
+    {
+      "prefix":"2001:db8:1000::1\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":40,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        },
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            16011
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::2\/128":[
+    {
+      "prefix":"2001:db8:1000::2\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            16021
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::3\/128":[
+    {
+      "prefix":"2001:db8:1000::3\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":30,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            16031
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::4\/128":[
+    {
+      "prefix":"2001:db8:1000::4\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ],
+  "2001:db8:1000::5\/128":[
+    {
+      "prefix":"2001:db8:1000::5\/128",
+      "protocol":"isis",
+      "selected":true,
+      "destSelected":true,
+      "distance":115,
+      "metric":20,
+      "installed":true,
+      "nexthops":[
+        {
+          "fib":true,
+          "afi":"ipv6",
+          "interfaceName":"eth-rt5",
+          "active":true,
+          "backupIndex":[
+            0
+          ],
+          "labels":[
+            3
+          ]
+        }
+      ],
+      "backupNexthops":[
+        {
+          "afi":"ipv6",
+          "interfaceName":"eth-rt4",
+          "active":true,
+          "labels":[
+            3
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref
new file mode 100644 (file)
index 0000000..2aa7941
--- /dev/null
@@ -0,0 +1,214 @@
+{
+  "16010":{
+    "inLabel":16010,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.8.5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16010,
+        "installed":true,
+        "nexthop":"10.0.7.4"
+      }
+    ]
+  },
+  "16011":{
+    "inLabel":16011,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt5"
+      },
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16011,
+        "installed":true,
+        "interface":"eth-rt4"
+      }
+    ]
+  },
+  "16020":{
+    "inLabel":16020,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16020,
+        "installed":true,
+        "nexthop":"10.0.7.4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.8.5"
+      }
+    ]
+  },
+  "16021":{
+    "inLabel":16021,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16021,
+        "installed":true,
+        "interface":"eth-rt4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt5"
+      }
+    ]
+  },
+  "16030":{
+    "inLabel":16030,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16030,
+        "installed":true,
+        "nexthop":"10.0.8.5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.7.4"
+      }
+    ]
+  },
+  "16031":{
+    "inLabel":16031,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":16031,
+        "installed":true,
+        "interface":"eth-rt5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt4"
+      }
+    ]
+  },
+  "16040":{
+    "inLabel":16040,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.7.4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.8.5"
+      }
+    ]
+  },
+  "16041":{
+    "inLabel":16041,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt4",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt5"
+      }
+    ]
+  },
+  "16050":{
+    "inLabel":16050,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "nexthop":"10.0.8.5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "nexthop":"10.0.7.4"
+      }
+    ]
+  },
+  "16051":{
+    "inLabel":16051,
+    "installed":true,
+    "nexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "installed":true,
+        "interface":"eth-rt5",
+        "backupIndex":[
+          0
+        ]
+      }
+    ],
+    "backupNexthops":[
+      {
+        "type":"SR (IS-IS)",
+        "outLabel":3,
+        "interface":"eth-rt4"
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref
new file mode 100644 (file)
index 0000000..49c40a4
--- /dev/null
@@ -0,0 +1,46 @@
+{
+  "frr-interface:lib": {
+    "interface": [
+      {
+        "name": "eth-rt4",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0004",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      },
+      {
+        "name": "eth-rt5",
+        "vrf": "default",
+        "state": {
+          "frr-isisd:isis": {
+            "adjacencies": {
+              "adjacency": [
+                {
+                  "neighbor-sys-type": "level-1",
+                  "neighbor-sysid": "0000.0000.0005",
+                  "neighbor-extended-circuit-id": 0,
+                  "hold-timer": 9,
+                  "neighbor-priority": 0,
+                  "state": "up"
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..7e6810d
--- /dev/null
@@ -0,0 +1,55 @@
+--- rt6/step3/show_ip_route.ref        2020-08-31 22:42:48.843561366 -0300
++++ rt6/step4/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
+@@ -16,7 +16,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            16010
++            3
+           ]
+         },
+         {
+@@ -50,9 +50,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            16020
+           ]
+         }
+       ],
+@@ -61,10 +58,7 @@
+           "ip":"10.0.8.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -124,9 +118,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -135,10 +126,7 @@
+           "ip":"10.0.8.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..8c424f6
--- /dev/null
@@ -0,0 +1,55 @@
+--- rt6/step3/show_ipv6_route.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt6/step4/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -15,7 +15,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            16011
++            3
+           ]
+         },
+         {
+@@ -47,9 +47,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            16021
+           ]
+         }
+       ],
+@@ -57,10 +54,7 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
+@@ -117,9 +111,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -127,10 +118,7 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..2ebbab8
--- /dev/null
@@ -0,0 +1,117 @@
+--- rt6/step3/show_mpls_table.ref      2020-08-31 22:42:48.843561366 -0300
++++ rt6/step4/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -11,7 +11,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16010,
++        "outLabel":3,
+         "installed":true,
+         "nexthop":"10.0.7.4"
+       }
+@@ -29,53 +29,9 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16011,
+-        "installed":true,
+-        "interface":"eth-rt4"
+-      }
+-    ]
+-  },
+-  "16020":{
+-    "inLabel":16020,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16020,
+-        "installed":true,
+-        "nexthop":"10.0.7.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":3,
+-        "nexthop":"10.0.8.5"
+-      }
+-    ]
+-  },
+-  "16021":{
+-    "inLabel":16021,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16021,
+         "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt5"
++        "interface":"eth-rt4"
+       }
+     ]
+   },
+@@ -123,50 +79,6 @@
+       }
+     ]
+   },
+-  "16040":{
+-    "inLabel":16040,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.7.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.8.5"
+-      }
+-    ]
+-  },
+-  "16041":{
+-    "inLabel":16041,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt5"
+-      }
+-    ]
+-  },
+   "16050":{
+     "inLabel":16050,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..5151f71
--- /dev/null
@@ -0,0 +1,55 @@
+--- rt6/step4/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
++++ rt6/step5/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
+@@ -16,7 +16,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            3
++            16010
+           ]
+         },
+         {
+@@ -50,6 +50,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            16020
+           ]
+         }
+       ],
+@@ -58,7 +61,10 @@
+           "ip":"10.0.8.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -118,6 +124,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -126,7 +135,10 @@
+           "ip":"10.0.8.5",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..2ddc9f8
--- /dev/null
@@ -0,0 +1,55 @@
+--- rt6/step4/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step5/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -15,7 +15,7 @@
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+-            3
++            16011
+           ]
+         },
+         {
+@@ -47,6 +47,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            16021
+           ]
+         }
+       ],
+@@ -54,7 +57,10 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
+@@ -111,6 +117,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -118,7 +127,10 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..18354ea
--- /dev/null
@@ -0,0 +1,120 @@
+--- rt6/step4/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step5/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -11,7 +11,7 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16010,
+         "installed":true,
+         "nexthop":"10.0.7.4"
+       }
+@@ -29,12 +29,56 @@
+       },
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
++        "outLabel":16011,
+         "installed":true,
+         "interface":"eth-rt4"
+       }
+     ]
+   },
++  "16020":{
++    "inLabel":16020,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16020,
++        "installed":true,
++        "nexthop":"10.0.7.4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.8.5"
++      }
++    ]
++  },
++  "16021":{
++    "inLabel":16021,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":16021,
++        "installed":true,
++        "interface":"eth-rt4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt5"
++      }
++    ]
++  },
+   "16030":{
+     "inLabel":16030,
+     "installed":true,
+@@ -79,6 +123,50 @@
+       }
+     ]
+   },
++  "16040":{
++    "inLabel":16040,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.7.4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.8.5"
++      }
++    ]
++  },
++  "16041":{
++    "inLabel":16041,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt4",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt5"
++      }
++    ]
++  },
+   "16050":{
+     "inLabel":16050,
+     "installed":true,
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..cddb6ab
--- /dev/null
@@ -0,0 +1,20 @@
+--- rt6/step5/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
++++ rt6/step6/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
+@@ -26,7 +26,7 @@
+           "interfaceName":"eth-rt5",
+           "active":true,
+           "labels":[
+-            16010
++            30010
+           ]
+         }
+       ]
+@@ -89,7 +89,7 @@
+             0
+           ],
+           "labels":[
+-            16030
++            30030
+           ]
+         }
+       ],
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..389d87e
--- /dev/null
@@ -0,0 +1,20 @@
+--- rt6/step5/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step6/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -24,7 +24,7 @@
+           "interfaceName":"eth-rt5",
+           "active":true,
+           "labels":[
+-            16011
++            30011
+           ]
+         }
+       ]
+@@ -84,7 +84,7 @@
+             0
+           ],
+           "labels":[
+-            16031
++            30031
+           ]
+         }
+       ],
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..8d5385d
--- /dev/null
@@ -0,0 +1,38 @@
+--- rt6/step5/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step6/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -5,7 +5,7 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16010,
++        "outLabel":30010,
+         "installed":true,
+         "nexthop":"10.0.8.5"
+       },
+@@ -23,7 +23,7 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16011,
++        "outLabel":30011,
+         "installed":true,
+         "interface":"eth-rt5"
+       },
+@@ -85,7 +85,7 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16030,
++        "outLabel":30030,
+         "installed":true,
+         "nexthop":"10.0.8.5",
+         "backupIndex":[
+@@ -107,7 +107,7 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16031,
++        "outLabel":30031,
+         "installed":true,
+         "interface":"eth-rt5",
+         "backupIndex":[
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e9b88ce
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt6/step6/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
++++ rt6/step7/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
+@@ -161,9 +161,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -172,10 +169,7 @@
+           "ip":"10.0.7.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..a65d3e8
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt6/step6/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step7/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -152,9 +152,6 @@
+           "active":true,
+           "backupIndex":[
+             0
+-          ],
+-          "labels":[
+-            3
+           ]
+         }
+       ],
+@@ -162,10 +159,7 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+-          "active":true,
+-          "labels":[
+-            3
+-          ]
++          "active":true
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..0d11955
--- /dev/null
@@ -0,0 +1,52 @@
+--- rt6/step6/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step7/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -166,49 +166,5 @@
+         "interface":"eth-rt5"
+       }
+     ]
+-  },
+-  "16050":{
+-    "inLabel":16050,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.8.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "nexthop":"10.0.7.4"
+-      }
+-    ]
+-  },
+-  "16051":{
+-    "inLabel":16051,
+-    "installed":true,
+-    "nexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "interface":"eth-rt4"
+-      }
+-    ]
+   }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..cb9d758
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt6/step7/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
++++ rt6/step8/show_ip_route.ref        2020-08-31 22:42:48.847561334 -0300
+@@ -161,6 +161,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -169,7 +172,10 @@
+           "ip":"10.0.7.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..cac7192
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt6/step7/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step8/show_ipv6_route.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -152,6 +152,9 @@
+           "active":true,
+           "backupIndex":[
+             0
++          ],
++          "labels":[
++            3
+           ]
+         }
+       ],
+@@ -159,7 +162,10 @@
+         {
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+-          "active":true
++          "active":true,
++          "labels":[
++            3
++          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..917954b
--- /dev/null
@@ -0,0 +1,52 @@
+--- rt6/step7/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step8/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -166,5 +166,49 @@
+         "interface":"eth-rt5"
+       }
+     ]
++  },
++  "16050":{
++    "inLabel":16050,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "nexthop":"10.0.8.5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "nexthop":"10.0.7.4"
++      }
++    ]
++  },
++  "16051":{
++    "inLabel":16051,
++    "installed":true,
++    "nexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "installed":true,
++        "interface":"eth-rt5",
++        "backupIndex":[
++          0
++        ]
++      }
++    ],
++    "backupNexthops":[
++      {
++        "type":"SR (IS-IS)",
++        "outLabel":3,
++        "interface":"eth-rt4"
++      }
++    ]
+   }
+ }
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff b/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..3c9558e
--- /dev/null
@@ -0,0 +1,24 @@
+--- rt6/step8/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
++++ rt6/step9/show_mpls_table.ref      2020-08-31 22:42:48.847561334 -0300
+@@ -167,8 +167,8 @@
+       }
+     ]
+   },
+-  "16050":{
+-    "inLabel":16050,
++  "16500":{
++    "inLabel":16500,
+     "installed":true,
+     "nexthops":[
+       {
+@@ -189,8 +189,8 @@
+       }
+     ]
+   },
+-  "16051":{
+-    "inLabel":16051,
++  "16501":{
++    "inLabel":16501,
+     "installed":true,
+     "nexthops":[
+       {
diff --git a/tests/topotests/isis-tilfa-topo1/rt6/zebra.conf b/tests/topotests/isis-tilfa-topo1/rt6/zebra.conf
new file mode 100644 (file)
index 0000000..6084010
--- /dev/null
@@ -0,0 +1,22 @@
+log file zebra.log
+!
+hostname rt6
+!
+debug zebra kernel
+debug zebra packet
+debug zebra mpls
+!
+interface lo
+ ip address 6.6.6.6/32
+ ipv6 address 2001:db8:1000::6/128
+!
+interface eth-rt4
+ ip address 10.0.7.6/24
+!
+interface eth-rt5
+ ip address 10.0.8.6/24
+!
+ip forwarding
+!
+line vty
+!
diff --git a/tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py b/tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py
new file mode 100755 (executable)
index 0000000..6bc097b
--- /dev/null
@@ -0,0 +1,674 @@
+#!/usr/bin/env python
+
+#
+# test_isis_tilfa_topo1.py
+# Part of NetDEF Topology Tests
+#
+# Copyright (c) 2020 by
+# Network Device Education Foundation, Inc. ("NetDEF")
+#
+# Permission to use, copy, modify, and/or distribute this software
+# for any purpose with or without fee is hereby granted, provided
+# that the above copyright notice and this permission notice appear
+# in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
+# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+#
+
+"""
+test_isis_tilfa_topo1.py:
+
+                         +---------+
+                         |         |
+                         |   RT1   |
+                         | 1.1.1.1 |
+                         |         |
+                         +---------+
+                              |eth-sw1
+                              |
+                              |
+                              |
+         +---------+          |          +---------+
+         |         |          |          |         |
+         |   RT2   |eth-sw1   |   eth-sw1|   RT3   |
+         | 2.2.2.2 +----------+----------+ 3.3.3.3 |
+         |         |     10.0.1.0/24     |         |
+         +---------+                     +---------+
+    eth-rt4-1|  |eth-rt4-2          eth-rt5-1|  |eth-rt5-2
+             |  |                            |  |
+  10.0.2.0/24|  |10.0.3.0/24      10.0.4.0/24|  |10.0.5.0/24
+             |  |                            |  |
+    eth-rt2-1|  |eth-rt2-2          eth-rt3-1|  |eth-rt3-2
+         +---------+                     +---------+
+         |         |                     |         |
+         |   RT4   |     10.0.6.0/24     |   RT5   |
+         | 4.4.4.4 +---------------------+ 5.5.5.5 |
+         |         |eth-rt5       eth-rt4|         |
+         +---------+                     +---------+
+       eth-rt6|                                |eth-rt6
+              |                                |
+   10.0.7.0/24|                                |10.0.8.0/24
+              |          +---------+           |
+              |          |         |           |
+              |          |   RT6   |           |
+              +----------+ 6.6.6.6 +-----------+
+                  eth-rt4|         |eth-rt5
+                         +---------+
+"""
+
+import os
+import sys
+import pytest
+import json
+import re
+import tempfile
+from time import sleep
+from functools import partial
+
+# Save the Current Working Directory to find configuration files.
+CWD = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(os.path.join(CWD, '../'))
+
+# pylint: disable=C0413
+# Import topogen and topotest helpers
+from lib import topotest
+from lib.topogen import Topogen, TopoRouter, get_topogen
+from lib.topolog import logger
+
+# Required to instantiate the topology builder class.
+from mininet.topo import Topo
+
+# Global multi-dimensional dictionary containing all expected outputs
+outputs = {}
+
+class TemplateTopo(Topo):
+    "Test topology builder"
+    def build(self, *_args, **_opts):
+        "Build function"
+        tgen = get_topogen(self)
+
+        #
+        # Define FRR Routers
+        #
+        for router in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+            tgen.add_router(router)
+
+        #
+        # Define connections
+        #
+        switch = tgen.add_switch('s1')
+        switch.add_link(tgen.gears['rt1'], nodeif="eth-sw1")
+        switch.add_link(tgen.gears['rt2'], nodeif="eth-sw1")
+        switch.add_link(tgen.gears['rt3'], nodeif="eth-sw1")
+
+        switch = tgen.add_switch('s2')
+        switch.add_link(tgen.gears['rt2'], nodeif="eth-rt4-1")
+        switch.add_link(tgen.gears['rt4'], nodeif="eth-rt2-1")
+
+        switch = tgen.add_switch('s3')
+        switch.add_link(tgen.gears['rt2'], nodeif="eth-rt4-2")
+        switch.add_link(tgen.gears['rt4'], nodeif="eth-rt2-2")
+
+        switch = tgen.add_switch('s4')
+        switch.add_link(tgen.gears['rt3'], nodeif="eth-rt5-1")
+        switch.add_link(tgen.gears['rt5'], nodeif="eth-rt3-1")
+
+        switch = tgen.add_switch('s5')
+        switch.add_link(tgen.gears['rt3'], nodeif="eth-rt5-2")
+        switch.add_link(tgen.gears['rt5'], nodeif="eth-rt3-2")
+
+        switch = tgen.add_switch('s6')
+        switch.add_link(tgen.gears['rt4'], nodeif="eth-rt5")
+        switch.add_link(tgen.gears['rt5'], nodeif="eth-rt4")
+
+        switch = tgen.add_switch('s7')
+        switch.add_link(tgen.gears['rt4'], nodeif="eth-rt6")
+        switch.add_link(tgen.gears['rt6'], nodeif="eth-rt4")
+
+        switch = tgen.add_switch('s8')
+        switch.add_link(tgen.gears['rt5'], nodeif="eth-rt6")
+        switch.add_link(tgen.gears['rt6'], nodeif="eth-rt5")
+
+        #
+        # Populate multi-dimensional dictionary containing all expected outputs
+        #
+        files = ["show_ip_route.ref",
+                 "show_ipv6_route.ref",
+                 "show_mpls_table.ref",
+                 "show_yang_interface_isis_adjacencies.ref"]
+        for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+            outputs[rname] = {}
+            for step in range(1, 9 + 1):
+                outputs[rname][step] = {}
+                for file in files:
+                    if step == 1:
+                        # Get snapshots relative to the expected initial network convergence
+                        filename = '{}/{}/step{}/{}'.format(CWD, rname, step, file)
+                        outputs[rname][step][file] = open(filename).read()
+                    else:
+                        if file == "show_yang_interface_isis_adjacencies.ref":
+                            continue
+
+                        # Get diff relative to the previous step
+                        filename = '{}/{}/step{}/{}.diff'.format(CWD, rname, step, file)
+
+                        # Create temporary files in order to apply the diff
+                        f_in = tempfile.NamedTemporaryFile()
+                        f_in.write(outputs[rname][step - 1][file])
+                        f_in.flush()
+                        f_out = tempfile.NamedTemporaryFile()
+                        os.system("patch -s -o %s %s %s" %(f_out.name, f_in.name, filename))
+
+                        # Store the updated snapshot and remove the temporary files
+                        outputs[rname][step][file] = open(f_out.name).read()
+                        f_in.close()
+                        f_out.close()
+
+def setup_module(mod):
+    "Sets up the pytest environment"
+    tgen = Topogen(TemplateTopo, mod.__name__)
+    tgen.start_topology()
+
+    router_list = tgen.routers()
+
+    # For all registered routers, load the zebra configuration file
+    for rname, router in router_list.iteritems():
+        router.load_config(
+            TopoRouter.RD_ZEBRA,
+            os.path.join(CWD, '{}/zebra.conf'.format(rname))
+        )
+        router.load_config(
+            TopoRouter.RD_ISIS,
+            os.path.join(CWD, '{}/isisd.conf'.format(rname))
+        )
+
+    tgen.start_router()
+
+def teardown_module(mod):
+    "Teardown the pytest environment"
+    tgen = get_topogen()
+
+    # This function tears down the whole topology.
+    tgen.stop_topology()
+
+def router_compare_json_output(rname, command, reference):
+    "Compare router JSON output"
+
+    logger.info('Comparing router "%s" "%s" output', rname, command)
+
+    tgen = get_topogen()
+    expected = json.loads(reference)
+
+    # Run test function until we get an result. Wait at most 60 seconds.
+    test_func = partial(topotest.router_json_cmp,
+        tgen.gears[rname], command, expected)
+    _, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5)
+    assertmsg = '"{}" JSON output mismatches the expected result'.format(rname)
+    assert diff is None, assertmsg
+
+#
+# Step 1
+#
+# Test initial network convergence
+#
+def test_isis_adjacencies_step1():
+    logger.info("Test (step 1): check IS-IS adjacencies")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show yang operational-data /frr-interface:lib isisd",
+                                   outputs[rname][1]["show_yang_interface_isis_adjacencies.ref"])
+
+def test_rib_ipv4_step1():
+    logger.info("Test (step 1): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][1]["show_ip_route.ref"])
+
+def test_rib_ipv6_step1():
+    logger.info("Test (step 1): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][1]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step1():
+    logger.info("Test (step 1): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][1]["show_mpls_table.ref"])
+
+#
+# Step 2
+#
+# Action(s):
+# -Disable TI-LFA link protection on rt2's eth-sw1 interface
+#
+# Expected changes:
+# -rt2 should uninstall the backup nexthops from destinations reachable over eth-sw1.
+#
+def test_rib_ipv4_step2():
+    logger.info("Test (step 2): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Disabling TI-LFA link protection on rt2\'s eth-sw1 interface')
+    tgen.net['rt2'].cmd('vtysh -c "conf t" -c "interface eth-sw1" -c "no isis fast-reroute ti-lfa"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][2]["show_ip_route.ref"])
+
+def test_rib_ipv6_step2():
+    logger.info("Test (step 2): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][2]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step2():
+    logger.info("Test (step 2): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][2]["show_mpls_table.ref"])
+
+#
+# Step 3
+#
+# Action(s):
+# -Enable TI-LFA link protection on rt2's eth-sw1 interface
+#
+# Expected changes:
+# -rt2 should install backup nexthops for destinations reachable over eth-sw1.
+#
+def test_rib_ipv4_step3():
+    logger.info("Test (step 3): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Enabling TI-LFA link protection on rt2\'s eth-sw1 interface')
+    tgen.net['rt2'].cmd('vtysh -c "conf t" -c "interface eth-sw1" -c "isis fast-reroute ti-lfa"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][3]["show_ip_route.ref"])
+
+def test_rib_ipv6_step3():
+    logger.info("Test (step 3): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][3]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step3():
+    logger.info("Test (step 3): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][3]["show_mpls_table.ref"])
+
+#
+# Step 4
+#
+# Action(s):
+# -Disable SR on rt4
+#
+# Expected changes:
+# -rt4 should uninstall all Prefix-SIDs from the network
+# -rt4 should uninstall all TI-LFA backup nexthops
+# -All routers should uninstall rt4's Prefix-SIDs
+# -All routers should uninstall all SR labels for destinations whose nexthop is rt4
+# -All routers should uninstall all TI-LFA backup nexthops that point to rt4
+# -All routers should uninstall all TI-LFA backup nexthops that use rt4's Prefix-SIDs
+#
+def test_rib_ipv4_step4():
+    logger.info("Test (step 4): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Disabling SR on rt4')
+    tgen.net['rt4'].cmd('vtysh -c "conf t" -c "router isis 1" -c "no segment-routing on"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][4]["show_ip_route.ref"])
+
+def test_rib_ipv6_step4():
+    logger.info("Test (step 4): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][4]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step4():
+    logger.info("Test (step 4): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][4]["show_mpls_table.ref"])
+
+#
+# Step 5
+#
+# Action(s):
+# -Enable SR on rt4
+#
+# Expected changes:
+# -Reverse all changes done on the previous step
+#
+def test_rib_ipv4_step5():
+    logger.info("Test (step 5): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Enabling SR on rt4')
+    tgen.net['rt4'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing on"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][5]["show_ip_route.ref"])
+
+def test_rib_ipv6_step5():
+    logger.info("Test (step 5): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][5]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step5():
+    logger.info("Test (step 5): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][5]["show_mpls_table.ref"])
+
+#
+# Step 6
+#
+# Action(s):
+# -Change rt5's SRGB
+#
+# Expected changes:
+# -All routers should update all SR labels for destinations whose primary or backup nexthop is rt5
+#
+def test_rib_ipv4_step6():
+    logger.info("Test (step 6): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Changing rt5\'s SRGB')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing global-block 30000 37999"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][6]["show_ip_route.ref"])
+
+def test_rib_ipv6_step6():
+    logger.info("Test (step 6): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][6]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step6():
+    logger.info("Test (step 6): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][6]["show_mpls_table.ref"])
+
+#
+# Step 7
+#
+# Action(s):
+# -Delete rt5's Prefix-SIDs
+#
+# Expected changes:
+# -All routers should uninstall rt5's Prefix-SIDs
+# -All routers should uninstall all TI-LFA backup nexthops that use rt5's Prefix-SIDs
+#
+def test_rib_ipv4_step7():
+    logger.info("Test (step 7): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Deleting rt5\'s Prefix-SIDs')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "no segment-routing prefix 5.5.5.5/32 index 50"')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "no segment-routing prefix 2001:db8:1000::5/128 index 51"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][7]["show_ip_route.ref"])
+
+def test_rib_ipv6_step7():
+    logger.info("Test (step 7): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][7]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step7():
+    logger.info("Test (step 7): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][7]["show_mpls_table.ref"])
+
+#
+# Step 8
+#
+# Action(s):
+# -Re-add rt5's Prefix-SIDs
+#
+# Expected changes:
+# -Reverse all changes done on the previous step
+#
+def test_rib_ipv4_step8():
+    logger.info("Test (step 8): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Re-adding rt5\'s Prefix-SIDs')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing prefix 5.5.5.5/32 index 50"')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing prefix 2001:db8:1000::5/128 index 51"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][8]["show_ip_route.ref"])
+
+def test_rib_ipv6_step8():
+    logger.info("Test (step 8): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][8]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step8():
+    logger.info("Test (step 8): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][8]["show_mpls_table.ref"])
+
+#
+# Step 9
+#
+# Action(s):
+# -Change rt5's Prefix-SIDs
+#
+# Expected changes:
+# -All routers should update rt5's Prefix-SIDs
+# -All routers should update all TI-LFA backup nexthops that use rt5's Prefix-SIDs
+#
+def test_rib_ipv4_step9():
+    logger.info("Test (step 9): verify IPv4 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info('Re-adding rt5\'s Prefix-SIDs')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing prefix 5.5.5.5/32 index 500"')
+    tgen.net['rt5'].cmd('vtysh -c "conf t" -c "router isis 1" -c "segment-routing prefix 2001:db8:1000::5/128 index 501"')
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ip route isis json",
+                                   outputs[rname][9]["show_ip_route.ref"])
+
+def test_rib_ipv6_step9():
+    logger.info("Test (step 9): verify IPv6 RIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show ipv6 route isis json",
+                                   outputs[rname][9]["show_ipv6_route.ref"])
+
+def test_mpls_lib_step9():
+    logger.info("Test (step 9): verify MPLS LIB")
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    for rname in ['rt1', 'rt2', 'rt3', 'rt4', 'rt5', 'rt6']:
+        router_compare_json_output(rname, "show mpls table json",
+                                   outputs[rname][9]["show_mpls_table.ref"])
+
+# Memory leak test template
+def test_memory_leak():
+    "Run the memory leak test and report results."
+    tgen = get_topogen()
+    if not tgen.is_memleak_enabled():
+        pytest.skip('Memory leak test/report is disabled')
+
+    tgen.report_memory_leaks()
+
+if __name__ == '__main__':
+    args = ["-s"] + sys.argv[1:]
+    sys.exit(pytest.main(args))