topotests: isis-tilfa add a switchover test after linkdown

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>
This commit is contained in:
Louis Scalbert 2022-04-12 15:20:53 +02:00
parent d526476184
commit bac0d1e606
55 changed files with 1552 additions and 3 deletions

View File

@ -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
- ]
}
]
}

View File

@ -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
- ]
}
]
}

View File

@ -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"
}

View File

@ -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"
}
]

View File

@ -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
]
}
]

View File

@ -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
- ]
- }
]
}
]

View File

@ -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"
}
]

View File

@ -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
}
]
}

View File

@ -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
- ]
- }
]
}
]

View File

@ -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"
}
]
}

View File

@ -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
}
]

View File

@ -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":[

View File

@ -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"
}
]

View File

@ -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",

View File

@ -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":[

View File

@ -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"
}
]

View File

@ -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"
}
]
}

View File

@ -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
- ]
- }
]
}
],

View File

@ -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"
}
]
},

View File

@ -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."