diff --git a/tests/topotests/lib/ospf.py b/tests/topotests/lib/ospf.py index dad87440bc..ffe81fbd99 100644 --- a/tests/topotests/lib/ospf.py +++ b/tests/topotests/lib/ospf.py @@ -302,7 +302,6 @@ def __create_ospf_global(tgen, input_dict, router, build, load_config, ospf): # ospf gr information gr_data = ospf_data.setdefault("graceful-restart", {}) if gr_data: - if "opaque" in gr_data and gr_data["opaque"]: cmd = "capability opaque" if gr_data.setdefault("delete", False): @@ -710,6 +709,7 @@ def verify_ospf_neighbor( else: data_ip = topo["routers"][ospf_nbr]["links"] data_rid = topo["routers"][ospf_nbr]["ospf"]["router_id"] + logger.info("ospf neighbor %s: router-id: %s", router, data_rid) if ospf_nbr in data_ip: nbr_details = nbr_data[ospf_nbr] elif lan: @@ -728,8 +728,10 @@ def verify_ospf_neighbor( try: nh_state = show_ospf_json[nbr_rid][0]["nbrState"].split("/")[0] except KeyError: - errormsg = "[DUT: {}] OSPF peer {} missing,from " "{} ".format( - router, nbr_rid, ospf_nbr + errormsg = ( + "[DUT: {}] missing OSPF neighbor {} with router-id {}".format( + router, ospf_nbr, nbr_rid + ) ) return errormsg @@ -843,7 +845,6 @@ def verify_ospf6_neighbor(tgen, topo=None, dut=None, input_dict=None, lan=False) return errormsg for ospf_nbr, nbr_data in ospf_nbr_list.items(): - try: data_ip = data_rid = topo["routers"][ospf_nbr]["ospf6"]["router_id"] except KeyError: @@ -914,7 +915,6 @@ def verify_ospf6_neighbor(tgen, topo=None, dut=None, input_dict=None, lan=False) return errormsg continue else: - for router, rnode in tgen.routers().items(): if "ospf6" not in topo["routers"][router]: continue @@ -945,7 +945,7 @@ def verify_ospf6_neighbor(tgen, topo=None, dut=None, input_dict=None, lan=False) data_ip = data_rid = topo["routers"][nbr_data["nbr"]]["ospf6"][ "router_id" ] - + logger.info("ospf neighbor %s: router-id: %s", ospf_nbr, data_rid) if ospf_nbr in data_ip: nbr_details = nbr_data[ospf_nbr] elif lan: @@ -968,8 +968,10 @@ def verify_ospf6_neighbor(tgen, topo=None, dut=None, input_dict=None, lan=False) nh_state = get_index_val.get(neighbor_ip)["state"] intf_state = get_index_val.get(neighbor_ip)["ifState"] except TypeError: - errormsg = "[DUT: {}] OSPF peer {} missing,from " "{} ".format( - router, nbr_rid, ospf_nbr + errormsg = ( + "[DUT: {}] missing OSPF neighbor {} with router-id {}".format( + router, ospf_nbr, nbr_rid + ) ) return errormsg @@ -1761,7 +1763,6 @@ def verify_ospf6_rib( continue if st_rt in ospf_rib_json: - st_found = True found_routes.append(st_rt) diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_asbr_summary_topo1.py b/tests/topotests/ospf_basic_functionality/test_ospf_asbr_summary_topo1.py index 9d7a15833c..cf7d95b65a 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_asbr_summary_topo1.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_asbr_summary_topo1.py @@ -84,8 +84,8 @@ SUMMARY = {"ipv4": ["11.0.0.0/8", "12.0.0.0/8", "11.0.0.0/24"]} """ TOPOOLOGY = Please view in a fixed-width font such as Courier. - +---+ A0 +---+ - +R1 +------------+R2 | + +---+ A0 +---+ + |R1 +------------+R2 | +-+-+- +--++ | -- -- | | -- A0 -- | @@ -94,8 +94,8 @@ TOPOOLOGY = | -- -- | | -- -- | +-+-+- +-+-+ - +R0 +-------------+R3 | - +---+ A0 +---+ + |R0 +-------------+R3 | + +---+ A0 +---+ TESTCASES = 1. OSPF summarisation functionality. @@ -977,7 +977,7 @@ def test_ospf_type5_summary_tc42_p0(request): ip = topo["routers"]["r0"]["links"]["r3"]["ipv4"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) ospf_summ_r1 = { "r0": { "ospf": {"summary-address": [{"prefix": ip_net.split("/")[0], "mask": "8"}]} @@ -1519,7 +1519,7 @@ def test_ospf_type5_summary_tc45_p0(request): step("Repeat steps 1 to 10 of summarisation in non Back bone area.") reset_config_on_routers(tgen) - step("Change the area id on the interface on R0") + step("Change the area id on the interface on R0 to R1 from 0.0.0.0 to 0.0.0.1") input_dict = { "r0": { "links": { @@ -1549,7 +1549,7 @@ def test_ospf_type5_summary_tc45_p0(request): result = create_interfaces_cfg(tgen, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - step("Change the area id on the interface ") + step("Change the area id on the interface on R1 to R0 from 0.0.0.0 to 0.0.0.1") input_dict = { "r1": { "links": { @@ -1579,6 +1579,10 @@ def test_ospf_type5_summary_tc45_p0(request): result = create_interfaces_cfg(tgen, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) + # clear neighbor state on both routers to avoid stale state + tgen.net["r0"].cmd("clear ip ospf neighbor") + tgen.net["r1"].cmd("clear ip ospf neighbor") + ospf_covergence = verify_ospf_neighbor(tgen, topo) assert ospf_covergence is True, "setup_module :Failed \n Error {}".format( ospf_covergence diff --git a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_asbr_summary_topo1.py b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_asbr_summary_topo1.py index b0e56e619a..8cc0ed6090 100644 --- a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_asbr_summary_topo1.py +++ b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_asbr_summary_topo1.py @@ -565,7 +565,7 @@ def test_ospfv3_type5_summary_tc42_p0(request): ip = topo["routers"]["r0"]["links"]["r3"]["ipv6"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) ospf_summ_r1 = { "r0": { "ospf6": { @@ -1428,6 +1428,10 @@ def ospfv3_type5_summary_tc45_p0(request): result = create_interfaces_cfg(tgen, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) + # restart interface state machine on both routers to avoid stale state + tgen.net["r0"].cmd("clear ipv6 ospf6 interface") + tgen.net["r1"].cmd("clear ipv6 ospf6 interface") + ospf_covergence = verify_ospf6_neighbor(tgen, topo) assert ospf_covergence is True, "Testcase {} :Failed \n Error: {}".format( tc_name, ospf_covergence