]> git.proxmox.com Git - mirror_frr.git/commitdiff
tests: Add clear event to creation of router for v4 and v6 ospf
authorDonald Sharp <sharpd@nvidia.com>
Tue, 23 Nov 2021 12:47:33 +0000 (07:47 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 24 Nov 2021 12:05:19 +0000 (07:05 -0500)
When using build_config_from_json there exists a timing
window where neighbors can come up before the router-id
is applied.  As a precaution, quickly clear the neighbors
to ensure that we get neighbors with the expected router-id.
This can especially happen under high system load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests/topotests/lib/topojson.py

index 1945ca535ba1790df2ee5e4b2bbe93ff46b3fb79..3ca3353ed33f67e3fcfa7bc997580fcd5b5c74a8 100644 (file)
@@ -352,6 +352,18 @@ def build_config_from_json(tgen, topo=None, save_bkup=True):
         logger.info("build_config_from_json: failed to configure topology")
         pytest.exit(1)
 
+    logger.info("Built config now clearing ospf neighbors as that router-id might not be what is used")
+    for ospf in ["ospf", "ospf6"]:
+        for router in data:
+            if ospf not in data[router]:
+                continue
+
+            r = tgen.gears[router]
+            if ospf == "ospf":
+                r.vtysh_cmd("clear ip ospf process")
+            else:
+                r.vtysh_cmd("clear ipv6 ospf6 process")
+
 
 def create_tgen_from_json(testfile, json_file=None):
     """Create a topogen object given a testfile.