]> git.puffer.fish Git - mirror/frr.git/commitdiff
topotests: isis-tilfa add a switchover test after linkdown
authorLouis Scalbert <louis.scalbert@6wind.com>
Tue, 12 Apr 2022 13:20:53 +0000 (15:20 +0200)
committerLouis Scalbert <louis.scalbert@6wind.com>
Tue, 24 May 2022 08:06:05 +0000 (10:06 +0200)
Add a switchover test that consists in shutting down an interface.

Check that the switchover between primary and backup happens before the
SPF re-computation.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
55 files changed:
tests/topotests/isis_tilfa_topo1/rt1/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step10/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step10/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step10/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff [new file with mode: 0644]
tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py

diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..a8d6e6c
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/rt1/step11/show_ip_route.ref
++++ b/rt1/step12/show_ip_route.ref
+@@ -110,16 +110,6 @@
+           "labels":[
+             16060
+           ]
+-        },
+-        {
+-          "fib":true,
+-          "ip":"10.0.1.3",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16060
+-          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..637c59f
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/rt1/step11/show_ipv6_route.ref
++++ b/rt1/step12/show_ipv6_route.ref
+@@ -105,15 +105,6 @@
+           "labels":[
+             16061
+           ]
+-        },
+-        {
+-          "fib":true,
+-          "afi":"ipv6",
+-          "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16061
+-          ]
+         }
+       ]
+     }
diff --git a/tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e110bf4
--- /dev/null
@@ -0,0 +1,28 @@
+--- a/rt1/step11/show_mpls_table.ref
++++ b/rt1/step12/show_mpls_table.ref
+@@ -79,12 +79,6 @@
+         "type":"SR (IS-IS)",
+         "outLabel":16060,
+         "installed":true,
+-        "nexthop":"10.0.1.3"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16060,
+-        "installed":true,
+         "nexthop":"10.0.1.2"
+       }
+     ]
+@@ -96,12 +90,6 @@
+       {
+         "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/rt2/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..84a3644
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/rt2/step11/show_mpls_table.ref
++++ b/rt2/step12/show_mpls_table.ref
+@@ -199,7 +199,7 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16060,
++        "outLabel":16500,
+         "nexthop":"10.0.1.3"
+       }
+     ]
+@@ -230,7 +230,7 @@
+     "backupNexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":16061,
++        "outLabel":16501,
+         "interface":"eth-sw1"
+       }
+     ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..8695cf8
--- /dev/null
@@ -0,0 +1,58 @@
+--- a/rt3/step11/show_ip_route.ref
++++ b/rt3/step12/show_ip_route.ref
+@@ -198,44 +198,37 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":30,
++      "metric":40,
+       "installed":true,
+       "nexthops":[
+         {
+           "fib":true,
+-          "ip":"10.0.4.5",
++          "ip":"10.0.1.2",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt5-1",
++          "interfaceName":"eth-sw1",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+-            30060
++            16060
+           ]
+         },
+         {
+           "fib":true,
+-          "ip":"10.0.5.5",
++          "ip":"10.0.4.5",
+           "afi":"ipv4",
+-          "interfaceName":"eth-rt5-2",
++          "interfaceName":"eth-rt5-1",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             30060
+           ]
+-        }
+-      ],
+-      "backupNexthops":[
++        },
+         {
+-          "ip":"10.0.1.2",
++          "fib":true,
++          "ip":"10.0.5.5",
+           "afi":"ipv4",
+-          "interfaceName":"eth-sw1",
++          "interfaceName":"eth-rt5-2",
+           "active":true,
+           "labels":[
+-            16060
++            30060
+           ]
+         }
+       ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..661d0fe
--- /dev/null
@@ -0,0 +1,45 @@
+--- a/rt3/step11/show_ipv6_route.ref
++++ b/rt3/step12/show_ipv6_route.ref
+@@ -186,7 +186,7 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":30,
++      "metric":40,
+       "installed":true,
+       "nexthops":[
+         {
+@@ -194,9 +194,6 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-1",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             30061
+           ]
+@@ -206,23 +203,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5-2",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             30061
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-sw1",
+-          "active":true,
+-          "labels":[
+-            16061
+-          ]
+-        }
+       ]
+     }
+   ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..30941b3
--- /dev/null
@@ -0,0 +1,60 @@
+--- a/rt3/step11/show_mpls_table.ref
++++ b/rt3/step12/show_mpls_table.ref
+@@ -165,27 +165,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30060,
+-        "installed":true,
+-        "nexthop":"10.0.5.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30060,
+-        "installed":true,
+-        "nexthop":"10.0.4.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16060,
++        "installed":true,
+         "nexthop":"10.0.1.2"
+       }
+     ]
+@@ -196,27 +177,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30061,
+-        "installed":true,
+-        "interface":"eth-rt5-2",
+-        "backupIndex":[
+-          0
+-        ]
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30061,
+-        "installed":true,
+-        "interface":"eth-rt5-1",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16061,
++        "installed":true,
+         "interface":"eth-sw1"
+       }
+     ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..2645c59
--- /dev/null
@@ -0,0 +1,144 @@
+--- a/rt4/step11/show_ip_route.ref
++++ b/rt4/step12/show_ip_route.ref
+@@ -160,23 +160,13 @@
+           "interfaceName":"eth-rt5",
+           "active":true,
+           "backupIndex":[
+-            0
++            0,
++            1
+           ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            16500
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -196,24 +186,10 @@
+           "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":[
+-            30060
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -352,19 +328,12 @@
+           "active":true,
+           "backupIndex":[
+             0,
+-            1,
+-            2
++            1
+           ]
+         }
+       ],
+       "backupNexthops":[
+         {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+@@ -397,19 +366,12 @@
+           "active":true,
+           "backupIndex":[
+             0,
+-            1,
+-            2
++            1
+           ]
+         }
+       ],
+       "backupNexthops":[
+         {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+           "ip":"10.0.2.2",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt2-1",
+@@ -439,14 +401,6 @@
+             0
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.7.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        }
+       ]
+     }
+   ],
+@@ -460,18 +414,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"
+         }
+       ]
+     }
+@@ -492,13 +435,6 @@
+           "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/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..37e3185
--- /dev/null
@@ -0,0 +1,50 @@
+--- a/rt4/step11/show_ipv6_route.ref
++++ b/rt4/step12/show_ipv6_route.ref
+@@ -149,23 +149,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt5",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            16501
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -184,23 +171,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt6",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            30061
+-          ]
+-        }
+       ]
+     }
+   ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..186291a
--- /dev/null
@@ -0,0 +1,78 @@
+--- a/rt4/step11/show_mpls_table.ref
++++ b/rt4/step12/show_mpls_table.ref
+@@ -179,17 +179,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.7.6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30060,
+-        "nexthop":"10.0.6.5"
++        "nexthop":"10.0.7.6"
+       }
+     ]
+   },
+@@ -201,17 +191,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30061,
+-        "interface":"eth-rt5"
++        "interface":"eth-rt6"
+       }
+     ]
+   },
+@@ -223,17 +203,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.6.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16500,
+-        "nexthop":"10.0.7.6"
++        "nexthop":"10.0.6.5"
+       }
+     ]
+   },
+@@ -245,17 +215,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16501,
+-        "interface":"eth-rt6"
++        "interface":"eth-rt5"
+       }
+     ]
+   }
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..3d21c04
--- /dev/null
@@ -0,0 +1,151 @@
+--- a/rt5/step11/show_ip_route.ref
++++ b/rt5/step12/show_ip_route.ref
+@@ -159,24 +159,10 @@
+           "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":[
+-            16040
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -187,25 +173,11 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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",
+@@ -276,19 +248,12 @@
+           "active":true,
+           "backupIndex":[
+             0,
+-            1,
+-            2
++            1
+           ]
+         }
+       ],
+       "backupNexthops":[
+         {
+-          "ip":"10.0.8.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+           "ip":"10.0.4.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt3-1",
+@@ -321,19 +286,12 @@
+           "active":true,
+           "backupIndex":[
+             0,
+-            1,
+-            2
++            1
+           ]
+         }
+       ],
+       "backupNexthops":[
+         {
+-          "ip":"10.0.8.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        },
+-        {
+           "ip":"10.0.4.3",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt3-1",
+@@ -439,14 +397,6 @@
+             0
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "ip":"10.0.8.6",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt6",
+-          "active":true
+-        }
+       ]
+     }
+   ],
+@@ -465,39 +415,6 @@
+           "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/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..66a9dac
--- /dev/null
@@ -0,0 +1,53 @@
+--- a/rt5/step11/show_ipv6_route.ref
++++ b/rt5/step12/show_ipv6_route.ref
+@@ -149,23 +149,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt6",
+-          "active":true,
+-          "labels":[
+-            16041
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -176,25 +163,12 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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":[
diff --git a/tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..cdfc407
--- /dev/null
@@ -0,0 +1,80 @@
+--- a/rt5/step11/show_mpls_table.ref
++++ b/rt5/step12/show_mpls_table.ref
+@@ -179,17 +179,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.6.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16040,
+-        "nexthop":"10.0.8.6"
++        "nexthop":"10.0.6.4"
+       }
+     ]
+   },
+@@ -201,17 +191,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":16041,
+-        "interface":"eth-rt6"
++        "interface":"eth-rt4"
+       }
+     ]
+   },
+@@ -221,18 +201,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.8.6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16060,
++        "installed":true,
+         "nexthop":"10.0.6.4"
+       }
+     ]
+@@ -243,18 +213,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt6",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16061,
++        "installed":true,
+         "interface":"eth-rt4"
+       }
+     ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step10/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step10/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..e477e87
--- /dev/null
@@ -0,0 +1,125 @@
+--- a/rt6/step10/show_ip_route.ref
++++ b/rt6/step11/show_ip_route.ref
+@@ -76,25 +76,11 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":30,
++      "metric":40,
+       "installed":true,
+       "nexthops":[
+         {
+           "fib":true,
+-          "ip":"10.0.8.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            30030
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+           "ip":"10.0.7.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
+@@ -150,25 +136,11 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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",
+@@ -276,22 +248,11 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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",
+@@ -307,22 +268,11 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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",
+@@ -389,19 +339,9 @@
+       "prefix":"10.0.8.0\/24",
+       "protocol":"isis",
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "nexthops":[
+         {
+-          "ip":"10.0.8.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "backupIndex":[
+-            0
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+           "ip":"10.0.7.4",
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..12e0b59
--- /dev/null
@@ -0,0 +1,56 @@
+--- a/rt6/step10/show_ipv6_route.ref
++++ b/rt6/step11/show_ipv6_route.ref
+@@ -72,25 +72,12 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":30,
++      "metric":40,
+       "installed":true,
+       "nexthops":[
+         {
+           "fib":true,
+           "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+-          "labels":[
+-            30031
+-          ]
+-        }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+           "active":true,
+           "labels":[
+@@ -142,25 +129,12 @@
+       "selected":true,
+       "destSelected":true,
+       "distance":115,
+-      "metric":20,
++      "metric":30,
+       "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":[
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step11/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..387dcca
--- /dev/null
@@ -0,0 +1,106 @@
+--- a/rt6/step10/show_mpls_table.ref
++++ b/rt6/step11/show_mpls_table.ref
+@@ -8,12 +8,6 @@
+         "outLabel":16010,
+         "installed":true,
+         "nexthop":"10.0.7.4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30010,
+-        "installed":true,
+-        "nexthop":"10.0.8.5"
+       }
+     ]
+   },
+@@ -26,12 +20,6 @@
+         "outLabel":16011,
+         "installed":true,
+         "interface":"eth-rt4"
+-      },
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30011,
+-        "installed":true,
+-        "interface":"eth-rt5"
+       }
+     ]
+   },
+@@ -85,18 +73,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30030,
+-        "installed":true,
+-        "nexthop":"10.0.8.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16030,
++        "installed":true,
+         "nexthop":"10.0.7.4"
+       }
+     ]
+@@ -107,17 +85,6 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":30031,
+-        "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16031,
+         "interface":"eth-rt4"
+       }
+@@ -173,18 +140,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "nexthop":"10.0.8.5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16500,
++        "installed":true,
+         "nexthop":"10.0.7.4"
+       }
+     ]
+@@ -195,18 +152,8 @@
+     "nexthops":[
+       {
+         "type":"SR (IS-IS)",
+-        "outLabel":3,
+-        "installed":true,
+-        "interface":"eth-rt5",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+         "outLabel":16501,
++        "installed":true,
+         "interface":"eth-rt4"
+       }
+     ]
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ip_route.ref.diff
new file mode 100644 (file)
index 0000000..1086b6e
--- /dev/null
@@ -0,0 +1,153 @@
+--- a/rt6/step12/show_ip_route.ref
++++ b/rt6/step12/show_ip_route.ref
+@@ -18,16 +18,6 @@
+           "labels":[
+             16010
+           ]
+-        },
+-        {
+-          "fib":true,
+-          "ip":"10.0.8.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            30010
+-          ]
+         }
+       ]
+     }
+@@ -48,24 +38,10 @@
+           "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":[
+-            30020
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -108,24 +84,10 @@
+           "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":[
+-            30040
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -168,13 +130,6 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
+           "active":true
+-        },
+-        {
+-          "fib":true,
+-          "ip":"10.0.8.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true
+         }
+       ]
+     }
+@@ -194,17 +149,6 @@
+           "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
+         }
+       ]
+@@ -225,17 +169,6 @@
+           "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
+         }
+       ]
+@@ -297,13 +230,6 @@
+           "afi":"ipv4",
+           "interfaceName":"eth-rt4",
+           "active":true
+-        },
+-        {
+-          "fib":true,
+-          "ip":"10.0.8.5",
+-          "afi":"ipv4",
+-          "interfaceName":"eth-rt5",
+-          "active":true
+         }
+       ]
+     }
+@@ -318,18 +244,7 @@
+         {
+           "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
++          "interfaceName":"eth-rt4"
+         }
+       ]
+     }
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_ipv6_route.ref.diff
new file mode 100644 (file)
index 0000000..571c66f
--- /dev/null
@@ -0,0 +1,66 @@
+--- a/rt6/step12/show_ipv6_route.ref
++++ b/rt6/step12/show_ipv6_route.ref
+@@ -17,15 +17,6 @@
+           "labels":[
+             16011
+           ]
+-        },
+-        {
+-          "fib":true,
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            30011
+-          ]
+         }
+       ]
+     }
+@@ -45,23 +36,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             16021
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            30021
+-          ]
+-        }
+       ]
+     }
+   ],
+@@ -102,23 +80,10 @@
+           "afi":"ipv6",
+           "interfaceName":"eth-rt4",
+           "active":true,
+-          "backupIndex":[
+-            0
+-          ],
+           "labels":[
+             3
+           ]
+         }
+-      ],
+-      "backupNexthops":[
+-        {
+-          "afi":"ipv6",
+-          "interfaceName":"eth-rt5",
+-          "active":true,
+-          "labels":[
+-            30041
+-          ]
+-        }
+       ]
+     }
+   ],
diff --git a/tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step12/show_mpls_table.ref.diff
new file mode 100644 (file)
index 0000000..18322f1
--- /dev/null
@@ -0,0 +1,78 @@
+--- a/rt6/step12/show_mpls_table.ref
++++ b/rt6/step12/show_mpls_table.ref
+@@ -31,17 +31,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":16020,
+         "installed":true,
+-        "nexthop":"10.0.7.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30020,
+-        "nexthop":"10.0.8.5"
++        "nexthop":"10.0.7.4"
+       }
+     ]
+   },
+@@ -53,17 +43,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":16021,
+         "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30021,
+-        "interface":"eth-rt5"
++        "interface":"eth-rt4"
+       }
+     ]
+   },
+@@ -98,17 +78,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "nexthop":"10.0.7.4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30040,
+-        "nexthop":"10.0.8.5"
++        "nexthop":"10.0.7.4"
+       }
+     ]
+   },
+@@ -120,17 +90,7 @@
+         "type":"SR (IS-IS)",
+         "outLabel":3,
+         "installed":true,
+-        "interface":"eth-rt4",
+-        "backupIndex":[
+-          0
+-        ]
+-      }
+-    ],
+-    "backupNexthops":[
+-      {
+-        "type":"SR (IS-IS)",
+-        "outLabel":30041,
+-        "interface":"eth-rt5"
++        "interface":"eth-rt4"
+       }
+     ]
+   },
\ No newline at end of file
index 07e91f1a48684e8ab1ae19094fade5e5ef4ecebe..171a36d3e73cc78b9fba9995665c3c92a6799bb4 100755 (executable)
@@ -144,7 +144,7 @@ def build_topo(tgen):
     ]
     for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
         outputs[rname] = {}
-        for step in range(1, 9 + 1):
+        for step in range(1, 12 + 1):
             outputs[rname][step] = {}
             for file in files:
                 if step == 1:
@@ -200,7 +200,7 @@ def teardown_module(mod):
     tgen.stop_topology()
 
 
-def router_compare_json_output(rname, command, reference):
+def router_compare_json_output(rname, command, reference, count=120):
     "Compare router JSON output"
 
     logger.info('Comparing router "%s" "%s" output', rname, command)
@@ -210,7 +210,7 @@ def router_compare_json_output(rname, command, 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)
+    _, diff = topotest.run_and_expect(test_func, None, count=count, wait=0.5)
     assertmsg = '"{}" JSON output mismatches the expected result'.format(rname)
     assert diff is None, assertmsg
 
@@ -740,6 +740,167 @@ def test_mpls_lib_step9():
         )
 
 
+#
+# Step 10
+#
+# Action(s):
+# - Setting spf-delay-ietf init-delay of 15s
+#
+# Expected changes:
+# - No routing table change
+# - At the end of test, SPF reacts to a failure in 15s
+#
+def test_rib_ipv4_step10():
+    logger.info("Test (step 10): 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("Setting spf-delay-ietf init-delay of 15s")
+    tgen.net["rt6"].cmd(
+        'vtysh -c "conf t" -c "router isis 1" -c "spf-delay-ietf init-delay 15000 short-delay 0 long-delay 0 holddown 0 time-to-learn 0"'
+    )
+
+    for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
+        router_compare_json_output(
+            rname, "show ip route isis json", outputs[rname][10]["show_ip_route.ref"]
+        )
+
+
+def test_rib_ipv6_step10():
+    logger.info("Test (step 10): 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][10]["show_ipv6_route.ref"],
+        )
+
+
+def test_mpls_lib_step10():
+    logger.info("Test (step 10): 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][10]["show_mpls_table.ref"]
+        )
+
+
+#
+# Step 11
+#
+# Action(s):
+# - shut the eth-rt5 interface on rt6
+#
+# Expected changes:
+# - Route switchover of routes via eth-rt5
+#
+def test_rt6_step11():
+    logger.info(
+        "Test (step 11): Check IPv4/6 RIB and MPLS table after a LFA switchover"
+    )
+    tgen = get_topogen()
+
+    # Skip if previous fatal error condition is raised
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    logger.info(
+        "Shut a rt6 interface to rt5 from the switch side and check fast-reroute"
+    )
+    tgen.net.cmd_raises("ip link set %s down" % tgen.net["s8"].intfs[1])
+
+    rname = "rt6"
+    router_compare_json_output(
+        rname,
+        "show ip route isis json",
+        outputs[rname][11]["show_ip_route.ref"],
+        count=1,
+    )
+    router_compare_json_output(
+        rname,
+        "show ipv6 route isis json",
+        outputs[rname][11]["show_ipv6_route.ref"],
+        count=1,
+    )
+    router_compare_json_output(
+        rname,
+        "show mpls table json",
+        outputs[rname][11]["show_mpls_table.ref"],
+        count=1,
+    )
+
+
+#
+# Step 12
+#
+# Action(s): wait for the convergence and SPF computation on rt6
+#
+# Expected changes:
+# - convergence of IPv4/6 RIB and MPLS table
+#
+def test_rib_ipv4_step12():
+    logger.info("Test (step 12): 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("Check SPF convergence")
+    for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
+        router_compare_json_output(
+            rname,
+            "show ip route isis json",
+            outputs[rname][12]["show_ip_route.ref"],
+        )
+
+
+def test_rib_ipv6_step12():
+    logger.info("Test (step 12): 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][12]["show_ipv6_route.ref"],
+        )
+
+
+def test_mpls_lib_step12():
+    logger.info("Test (step 12): 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][12]["show_mpls_table.ref"],
+        )
+
+
 # Memory leak test template
 def test_memory_leak():
     "Run the memory leak test and report results."