tests: rework isis_tilfa_topo1 to fix timing issues

In this topotest, steps 10-15 were added to test the IS-IS switchover
functionality. In short, two cases were tested: switchover after a
link down event and switchover after a BFD down event. Both cases
were tested in sequence on the same router, rt6. This involved the
following steps:
- Setting the SPF delay timer to 15 seconds
- Shutting down the eth-rt5 interface from the switch side
- Testing the post-switchover RIB and LIB (triggered by the link down
  event)
- Testing the post-SPF RIB and LIB
- Bringing the eth-rt5 interface back up
- Configuring a BFD session between rt6 and rt5
- Shutting down the eth-rt5 interface from the switch side once again
- Testing the post-switchover RIB and LIB (triggered by the BFD down
  event)
- Testing the post-SPF RIB and LIB

Since the time window to test the post-switchover RIB and LIB was too
narrow (10 seconds), these tests were having sporadic failures.

To resolve this problem, we can simplify the switchover test as follows:
- Setting the SPF delay timer to 60 seconds (not 15)
- Disabling "link-detect" on rt6's eth-rt5 interface
- Shutting down the eth-rt5 interface from the switch side
- On rt6, testing the post-switchover RIB and LIB (triggered by the
  BFD down event)
- On rt5, testing the post-switchover RIB and LIB (triggered by the
  link down event)

Notice how we can test both post-link-down and post-BFD-down switchover
cases simultaneously by having different "link-detect" configurations
on rt5 and rt6. Additionally, by using a larger SPF delay timer, the
time window to test the post-switchover RIB and LIB is much larger
and less prone to sporadic failures.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
Renato Westphal 2024-06-07 10:41:38 -03:00
parent 19c3e0eca6
commit 04655c5f74
64 changed files with 1673 additions and 1707 deletions

View File

@ -1,19 +0,0 @@
--- 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
- ]
}
]
}

View File

@ -1,18 +0,0 @@
--- 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
- ]
}
]
}

View File

@ -1,28 +0,0 @@
--- 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"
}

View File

@ -1,20 +0,0 @@
--- 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"
}
]

View File

@ -1,58 +0,0 @@
--- 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
]
}
]

View File

@ -1,45 +0,0 @@
--- 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
- ]
- }
]
}
]

View File

@ -1,60 +0,0 @@
--- 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"
}
]

View File

@ -1,144 +0,0 @@
--- 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
}
]
}

View File

@ -1,50 +0,0 @@
--- 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
- ]
- }
]
}
]

View File

@ -1,78 +0,0 @@
--- 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"
}
]
}

View File

@ -0,0 +1,482 @@
{
"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,
"backupIndex":[
0
],
"labels":[
16010
]
},
{
"fib":true,
"ip":"10.0.5.3",
"afi":"ipv4",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
],
"labels":[
16010
]
}
],
"backupNexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"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,
"backupIndex":[
0
],
"labels":[
3
]
},
{
"fib":true,
"ip":"10.0.5.3",
"afi":"ipv4",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
],
"labels":[
3
]
}
],
"backupNexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16020,
16030
]
}
]
}
],
"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":[
16040
]
}
]
}
],
"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.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16060
]
}
]
}
],
"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,
"backupIndex":[
0
]
},
{
"fib":true,
"ip":"10.0.5.3",
"afi":"ipv4",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"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",
"backupIndex":[
0
]
},
{
"ip":"10.0.5.3",
"afi":"ipv4",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16020
]
}
]
}
],
"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,
"backupIndex":[
0
]
},
{
"ip":"10.0.5.3",
"afi":"ipv4",
"interfaceName":"eth-rt3-2",
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16020
]
}
]
}
],
"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":30,
"nexthops":[
{
"ip":"10.0.6.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true
}
]
}
]
}

View File

@ -0,0 +1,229 @@
{
"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,
"backupIndex":[
0
],
"labels":[
16011
]
},
{
"fib":true,
"afi":"ipv6",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
],
"labels":[
16011
]
}
],
"backupNexthops":[
{
"afi":"ipv6",
"interfaceName":"eth-rt4",
"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-rt3-2",
"active":true,
"labels":[
16021
]
},
{
"fib":true,
"afi":"ipv6",
"interfaceName":"eth-rt4",
"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,
"backupIndex":[
0
],
"labels":[
3
]
},
{
"fib":true,
"afi":"ipv6",
"interfaceName":"eth-rt3-2",
"active":true,
"backupIndex":[
0
],
"labels":[
3
]
}
],
"backupNexthops":[
{
"afi":"ipv6",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16021,
16031
]
}
]
}
],
"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,
1
],
"labels":[
3
]
}
],
"backupNexthops":[
{
"afi":"ipv6",
"interfaceName":"eth-rt3-1",
"active":true,
"labels":[
16021,
16041
]
},
{
"afi":"ipv6",
"interfaceName":"eth-rt3-2",
"active":true,
"labels":[
16021,
16041
]
}
]
}
],
"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",
"active":true,
"backupIndex":[
0,
1
],
"labels":[
16061
]
}
],
"backupNexthops":[
{
"afi":"ipv6",
"interfaceName":"eth-rt3-1",
"active":true,
"labels":[
16021,
16061
]
},
{
"afi":"ipv6",
"interfaceName":"eth-rt3-2",
"active":true,
"labels":[
16021,
16061
]
}
]
}
]
}

View File

@ -0,0 +1,301 @@
{
"30010":{
"inLabel":30010,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16010,
"installed":true,
"nexthop":"10.0.5.3",
"interface":"eth-rt3-2",
"backupIndex":[
0
]
},
{
"type":"SR (IS-IS)",
"outLabel":16010,
"installed":true,
"nexthop":"10.0.4.3",
"interface":"eth-rt3-1",
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16010,
"nexthop":"10.0.6.4",
"interface":"eth-rt4"
}
]
},
"30011":{
"inLabel":30011,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16011,
"installed":true,
"interface":"eth-rt3-2",
"backupIndex":[
0
]
},
{
"type":"SR (IS-IS)",
"outLabel":16011,
"installed":true,
"interface":"eth-rt3-1",
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16011,
"interface":"eth-rt4"
}
]
},
"30020":{
"inLabel":30020,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16020,
"installed":true,
"nexthop":"10.0.5.3",
"interface":"eth-rt3-2"
},
{
"type":"SR (IS-IS)",
"outLabel":16020,
"installed":true,
"nexthop":"10.0.4.3",
"interface":"eth-rt3-1"
},
{
"type":"SR (IS-IS)",
"outLabel":16020,
"installed":true,
"nexthop":"10.0.6.4",
"interface":"eth-rt4"
}
]
},
"30021":{
"inLabel":30021,
"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"
}
]
},
"30030":{
"inLabel":30030,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"nexthop":"10.0.5.3",
"interface":"eth-rt3-2",
"backupIndex":[
0
]
},
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"nexthop":"10.0.4.3",
"interface":"eth-rt3-1",
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16020,
"nexthop":"10.0.6.4",
"interface":"eth-rt4"
}
]
},
"30031":{
"inLabel":30031,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"interface":"eth-rt3-2",
"backupIndex":[
0
]
},
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"interface":"eth-rt3-1",
"backupIndex":[
0
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16021,
"interface":"eth-rt4"
}
]
},
"30040":{
"inLabel":30040,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"nexthop":"10.0.6.4",
"interface":"eth-rt4",
"backupIndex":[
0,
1
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16020,
"nexthop":"10.0.4.3",
"interface":"eth-rt3-1"
},
{
"type":"SR (IS-IS)",
"outLabel":16020,
"nexthop":"10.0.5.3",
"interface":"eth-rt3-2"
}
]
},
"30041":{
"inLabel":30041,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"interface":"eth-rt4",
"backupIndex":[
0,
1
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16021,
"interface":"eth-rt3-1"
},
{
"type":"SR (IS-IS)",
"outLabel":16021,
"interface":"eth-rt3-2"
}
]
},
"30060":{
"inLabel":30060,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16060,
"installed":true,
"nexthop":"10.0.6.4",
"interface":"eth-rt4",
"backupIndex":[
0,
1
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16020,
"nexthop":"10.0.4.3",
"interface":"eth-rt3-1"
},
{
"type":"SR (IS-IS)",
"outLabel":16020,
"nexthop":"10.0.5.3",
"interface":"eth-rt3-2"
}
]
},
"30061":{
"inLabel":30061,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16061,
"installed":true,
"interface":"eth-rt4",
"backupIndex":[
0,
1
]
}
],
"backupNexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16021,
"interface":"eth-rt3-1"
},
{
"type":"SR (IS-IS)",
"outLabel":16021,
"interface":"eth-rt3-2"
}
]
}
}

View File

@ -1,151 +0,0 @@
--- 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
}
]

View File

@ -1,53 +0,0 @@
--- 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":[

View File

@ -1,80 +0,0 @@
--- 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"
}
]

View File

@ -0,0 +1,6 @@
{
"multihop":false,
"peer":"10.0.8.5",
"interface":"eth-rt5",
"status":"down"
}

View File

@ -0,0 +1,6 @@
{
"multihop":false,
"peer":"10.0.8.5",
"interface":"eth-rt5",
"status":"up"
}

View File

@ -0,0 +1,354 @@
{
"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":[
30010
]
}
]
}
],
"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":[
30020
]
}
]
}
],
"3.3.3.3\/32":[
{
"prefix":"3.3.3.3\/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":[
16030
]
}
]
}
],
"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":[
30040
]
}
]
}
],
"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.7.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16500
]
}
]
}
],
"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":30,
"installed":true,
"nexthops":[
{
"fib":true,
"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":30,
"installed":true,
"nexthops":[
{
"fib":true,
"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":30,
"nexthops":[
{
"fib":true,
"ip":"10.0.7.4",
"afi":"ipv4",
"interfaceName":"eth-rt4",
"active":true
}
]
}
]
}

View File

@ -0,0 +1,112 @@
{
"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
]
}
]
}
],
"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,
"labels":[
16021
]
}
]
}
],
"2001:db8:1000::3\/128":[
{
"prefix":"2001:db8:1000::3\/128",
"protocol":"isis",
"selected":true,
"destSelected":true,
"distance":115,
"metric":40,
"installed":true,
"nexthops":[
{
"fib":true,
"afi":"ipv6",
"interfaceName":"eth-rt4",
"active":true,
"labels":[
16031
]
}
]
}
],
"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,
"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",
"active":true,
"labels":[
16501
]
}
]
}
]
}

View File

@ -0,0 +1,127 @@
{
"16010":{
"inLabel":16010,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16010,
"installed":true,
"nexthop":"10.0.7.4",
"interface":"eth-rt4"
}
]
},
"16011":{
"inLabel":16011,
"installed":true,
"nexthops":[
{
"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",
"interface":"eth-rt4"
}
]
},
"16021":{
"inLabel":16021,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16021,
"installed":true,
"interface":"eth-rt4"
}
]
},
"16030":{
"inLabel":16030,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16030,
"installed":true,
"nexthop":"10.0.7.4",
"interface":"eth-rt4"
}
]
},
"16031":{
"inLabel":16031,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16031,
"installed":true,
"interface":"eth-rt4"
}
]
},
"16040":{
"inLabel":16040,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"nexthop":"10.0.7.4",
"interface":"eth-rt4"
}
]
},
"16041":{
"inLabel":16041,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":3,
"installed":true,
"interface":"eth-rt4"
}
]
},
"16500":{
"inLabel":16500,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16500,
"installed":true,
"nexthop":"10.0.7.4",
"interface":"eth-rt4"
}
]
},
"16501":{
"inLabel":16501,
"installed":true,
"nexthops":[
{
"type":"SR (IS-IS)",
"outLabel":16501,
"installed":true,
"interface":"eth-rt4"
}
]
}
}

View File

@ -1,125 +0,0 @@
--- 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",

View File

@ -1,56 +0,0 @@
--- 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":[

View File

@ -1,106 +0,0 @@
--- 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"
}
]

View File

@ -1,153 +0,0 @@
--- 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"
}
]
}

View File

@ -1,66 +0,0 @@
--- 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
- ]
- }
]
}
],

View File

@ -1,78 +0,0 @@
--- 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"
}
]
},

View File

@ -16,6 +16,7 @@ interface eth-rt4
! !
interface eth-rt5 interface eth-rt5
ip address 10.0.8.6/24 ip address 10.0.8.6/24
no link-detect
! !
ip forwarding ip forwarding
! !

View File

@ -131,7 +131,7 @@ def build_topo(tgen):
] ]
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
outputs[rname] = {} outputs[rname] = {}
for step in range(1, 12 + 1): for step in range(1, 9 + 1):
outputs[rname][step] = {} outputs[rname][step] = {}
for file in files: for file in files:
if step == 1: if step == 1:
@ -158,6 +158,15 @@ def build_topo(tgen):
outputs[rname][step][file] = open(f_out.name).read() outputs[rname][step][file] = open(f_out.name).read()
f_in.close() f_in.close()
f_out.close() f_out.close()
# HACK: use full snapshots for step 10
step = 10
for rname in ["rt5", "rt6"]:
outputs[rname][step] = {}
for file in files:
if file == "show_yang_interface_isis_adjacencies.ref":
continue
filename = "{}/{}/step{}/{}".format(CWD, rname, step, file)
outputs[rname][step][file] = open(filename).read()
def setup_module(mod): def setup_module(mod):
@ -176,7 +185,7 @@ def setup_module(mod):
TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)) TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname))
) )
router.load_config( router.load_config(
TopoRouter.RD_BFD, os.path.join(CWD, "/dev/null".format(rname)) TopoRouter.RD_BFD, os.path.join(CWD, "{}/bfdd.conf".format(rname))
) )
tgen.start_router() tgen.start_router()
@ -734,11 +743,17 @@ def test_mpls_lib_step9():
# Step 10 # Step 10
# #
# Action(s): # Action(s):
# - Setting spf-delay-ietf init-delay of 15s # - Enable ISIS BFD between rt5 and rt6
# - Verify that the BFD session is up
# - Configure an SPF delay-ietf initial delay of 60 seconds on both rt5 and rt6
# - Shut down the eth-rt5 interface on rt6 from the switch side to test fast-reroute
# #
# Expected changes: # Expected changes:
# - No routing table change # - Verify that the BFD session is down
# - At the end of test, SPF reacts to a failure in 15s # - Routes should switch over to use alternate paths
# - On rt5, the switchover should be triggered by the link down event
# - On rt6, the switchover should be triggered by the BFD down event, since it has
# link-detect disabled on the eth-rt5 interface
# #
def test_rib_ipv4_step10(): def test_rib_ipv4_step10():
logger.info("Test (step 10): verify IPv4 RIB") logger.info("Test (step 10): verify IPv4 RIB")
@ -748,12 +763,42 @@ def test_rib_ipv4_step10():
if tgen.routers_have_failure(): if tgen.routers_have_failure():
pytest.skip(tgen.errors) pytest.skip(tgen.errors)
logger.info("Setting spf-delay-ietf init-delay of 15s") logger.info("Enabling ISIS BFD between rt5 and rt6")
tgen.net["rt6"].cmd( tgen.net["rt5"].cmd('vtysh -c "conf t" -c "int eth-rt6" -c "isis bfd"')
'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"' tgen.net["rt6"].cmd('vtysh -c "conf t" -c "int eth-rt5" -c "isis bfd"')
logger.info("Checking if the BFD session is up")
expect = (
'{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"up"}'
)
router_compare_json_output(
"rt6",
"show bfd peer 10.0.8.5 json",
expect,
) )
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: logger.info("Setting SPF delay-ietf initial delay to 60 seconds")
for rname in ["rt5", "rt6"]:
tgen.net[rname].cmd(
'vtysh -c "conf t" -c "router isis 1" -c "spf-delay-ietf init-delay 60000 short-delay 0 long-delay 0 holddown 0 time-to-learn 0"'
)
logger.info(
"Shutting down rt5 interface to rt6 from the switch side to test fast-reroute"
)
tgen.net.cmd_raises("ip link set %s down" % tgen.net["s8"].intfs[0])
logger.info("Verifying if the BFD session is down")
expect = (
'{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"down"}'
)
router_compare_json_output(
"rt6",
"show bfd peer 10.0.8.5 json",
expect,
)
for rname in ["rt5", "rt6"]:
router_compare_json_output( router_compare_json_output(
rname, "show ip route isis json", outputs[rname][10]["show_ip_route.ref"] rname, "show ip route isis json", outputs[rname][10]["show_ip_route.ref"]
) )
@ -767,7 +812,7 @@ def test_rib_ipv6_step10():
if tgen.routers_have_failure(): if tgen.routers_have_failure():
pytest.skip(tgen.errors) pytest.skip(tgen.errors)
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: for rname in ["rt5", "rt6"]:
router_compare_json_output( router_compare_json_output(
rname, rname,
"show ipv6 route isis json", "show ipv6 route isis json",
@ -783,321 +828,12 @@ def test_mpls_lib_step10():
if tgen.routers_have_failure(): if tgen.routers_have_failure():
pytest.skip(tgen.errors) 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=20,
)
router_compare_json_output(
rname,
"show ipv6 route isis json",
outputs[rname][11]["show_ipv6_route.ref"],
count=20,
)
router_compare_json_output(
rname,
"show mpls table json",
outputs[rname][11]["show_mpls_table.ref"],
count=20,
)
#
# 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"],
)
#
# Step 13
#
# Action(s):
# - unshut the rt6 to rt5 interface
# - Setup BFD
#
# Expected changes:
# - All route tables go back to previous state situation
# - At the end of test, next SPF is scheduled in approximatively 15s
#
def test_rib_ipv4_step13():
logger.info("Test (step 13): 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("Unsetting spf-delay-ietf init-delay of 15s")
tgen.net["rt6"].cmd('vtysh -c "conf t" -c "router isis 1" -c "no spf-delay-ietf"')
logger.info(
"Unshut the rt6 interface to rt5 from the switch side and check fast-reroute"
)
tgen.net.cmd_raises("ip link set %s up" % tgen.net["s8"].intfs[1])
logger.info("Setup BFD on rt5 and rt6")
for rname in ["rt5", "rt6"]: for rname in ["rt5", "rt6"]:
conf_file = os.path.join(CWD, "{}/bfdd.conf".format(rname))
tgen.net[rname].cmd("vtysh -f {}".format(conf_file))
expect = (
'[{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"up"}]'
)
router_compare_json_output("rt6", "show bfd peers json", expect)
# Unset link detection. We want zebra to consider linkdow as operationaly up
# in order that BFD triggers LFA instead of the interface down
# reset spf-interval
logger.info("Set spf-interval to 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"]
)
logger.info("Set ISIS BFD")
tgen.net["rt5"].cmd('vtysh -c "conf t" -c "int eth-rt6" -c "isis bfd"')
tgen.net["rt6"].cmd('vtysh -c "conf t" -c "int eth-rt5" -c "isis bfd"')
expect = (
'[{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"up"}]'
)
router_compare_json_output(
rname,
"show bfd peers json",
expect,
)
def test_rib_ipv6_step13():
logger.info("Test (step 13): 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_step13():
logger.info("Test (step 13): 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( router_compare_json_output(
rname, "show mpls table json", outputs[rname][10]["show_mpls_table.ref"] rname, "show mpls table json", outputs[rname][10]["show_mpls_table.ref"]
) )
#
# Step 14
#
# Action(s):
# - drop traffic between rt5 and rt6 by shutting down the bridge between
# the routers. Interfaces on rt5 and rt6 stay up.
#
# Expected changes:
# - Route switchover of routes via eth-rt5
#
def test_rt6_step14():
logger.info("Test (step 14): verify IPv4/6 RIB and MPLS table")
tgen = get_topogen()
# Skip if previous fatal error condition is raised
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
logger.info("Drop traffic between rt5 and rt6")
tgen.net.cmd_raises("ip link set s8 down")
rname = "rt6"
expect = (
'[{"multihop":false,"peer":"10.0.8.5","interface":"eth-rt5","status":"down"}]'
)
router_compare_json_output(
rname,
"show bfd peers json",
expect,
count=40,
wait=0.5,
)
router_compare_json_output(
rname,
"show ip route isis json",
outputs[rname][11]["show_ip_route.ref"],
count=20,
)
router_compare_json_output(
rname,
"show ipv6 route isis json",
outputs[rname][11]["show_ipv6_route.ref"],
count=20,
wait=2,
)
router_compare_json_output(
rname,
"show mpls table json",
outputs[rname][11]["show_mpls_table.ref"],
count=20,
)
#
# Step 15
#
# 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_step15():
logger.info("Test (step 15): 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_step15():
logger.info("Test (step 15): 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_step15():
logger.info("Test (step 15): 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 # Memory leak test template
def test_memory_leak(): def test_memory_leak():
"Run the memory leak test and report results." "Run the memory leak test and report results."