tests: Add clear event to creation of router for v4 and v6 ospf

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>
This commit is contained in:
Donald Sharp 2021-11-23 07:47:33 -05:00
parent a335c38bc0
commit bceb50e4aa

View 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.