diff options
| author | Louis Scalbert <louis.scalbert@6wind.com> | 2022-05-20 14:21:41 +0200 |
|---|---|---|
| committer | Louis Scalbert <louis.scalbert@6wind.com> | 2022-10-24 14:56:42 +0200 |
| commit | 3a03bf9f500559c4f025a69df723e2fbf919c2cb (patch) | |
| tree | f75563d757c919c5a7581c6f17b6c6291a766568 | |
| parent | e87245d038e227df76fc24c0e6d2366f33905468 (diff) | |
topotests: isis-lfa add a switchover test after neighbor clear
Add a switchover test that consists in clearing the rt2 neighbor on rt1.
Check that the switchover between primary and backup happens before the
SPF re-computation.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
| -rwxr-xr-x | tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py | 96 | ||||
| -rwxr-xr-x | tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py | 4 |
2 files changed, 97 insertions, 3 deletions
diff --git a/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py index 386e27a445..22fbf8fb9b 100755 --- a/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py +++ b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py @@ -819,6 +819,102 @@ def test_rib_ipv6_step19(): ) +# +# Step 20 +# +# Action(s): +# - Unshut the switch from rt1 to rt2 +# +# Expected changes: +# - The routing table goes back to the nominal state +# +def test_rib_ipv6_step20(): + logger.info("Test (step 20): verify IPv6 RIB") + tgen = get_topogen() + + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + + rname = "rt1" + + logger.info("Unsetting spf-delay-ietf init-delay of 15s") + tgen.net[rname].cmd('vtysh -c "conf t" -c "router isis 1" -c "no spf-delay-ietf"') + + logger.info( + "Unshut the interface to rt2 from the switch side and check fast-reroute" + ) + tgen.net.cmd_raises("ip link set s1 up") + + logger.info("Setting spf-delay-ietf init-delay of 15s") + tgen.net[rname].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"' + ) + + router_compare_json_output( + rname, + "show ipv6 route isis json", + outputs[rname][14]["show_ipv6_route.ref"], + ) + + +# +# Step 21 +# +# Action(s): +# - clear the rt2 ISIS neighbor on rt1 +# +# Expected changes: +# - Route switchover of routes via eth-rt2 +# +def test_rib_ipv6_step21(): + logger.info("Test (step 21): verify IPv6 RIB") + tgen = get_topogen() + + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + + rname = "rt1" + + logger.info("Clear the rt2 ISIS neighbor on rt1 and check fast-reroute") + tgen.gears[rname].vtysh_cmd("clear isis neighbor rt2") + + router_compare_json_output( + rname, + "show ipv6 route isis json", + outputs[rname][15]["show_ipv6_route.ref"], + count=2, + wait=0.05, + ) + + +# +# Step 22 +# +# Action(s): wait for the convergence and SPF computation on rt1 +# +# Expected changes: +# - convergence of IPv6 RIB +# +def test_rib_ipv6_step22(): + logger.info("Test (step 22): verify IPv6 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"]: + router_compare_json_output( + rname, + "show ipv6 route isis json", + outputs[rname][16]["show_ipv6_route.ref"], + ) + + # Memory leak test template def test_memory_leak(): "Run the memory leak test and report results." diff --git a/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py index 8c951970b2..5a5b9c59de 100755 --- a/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py +++ b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py @@ -1008,9 +1008,7 @@ def test_rt6_step14(): if tgen.routers_have_failure(): pytest.skip(tgen.errors) - logger.info( - "Drop traffic between rt5 and rt6" - ) + logger.info("Drop traffic between rt5 and rt6") tgen.net.cmd_raises("ip link set s8 down") rname = "rt6" |
