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