@retry(retry_timeout=150)
-def verify_bgp_convergence(tgen, topo=None, dut=None, expected=True):
+def verify_bgp_convergence(tgen, topo=None, dut=None, expected=True, addr_type=None):
"""
API will verify if BGP is converged with in the given time frame.
Running "show bgp summary json" command and verify bgp neighbor
* `tgen`: topogen object
* `topo`: input json file data
* `dut`: device under test
+ * `addr_type` : address type for which verification to be done, by-default both v4 and v6
Usage
-----
return errormsg
else:
total_peer = 0
- for addr_type in bgp_addr_type.keys():
- if not check_address_types(addr_type):
+ for _addr_type in bgp_addr_type.keys():
+ if not check_address_types(_addr_type):
+ continue
+
+ if addr_type and addr_type != _addr_type:
continue
- bgp_neighbors = bgp_addr_type[addr_type]["unicast"]["neighbor"]
+ bgp_neighbors = bgp_addr_type[_addr_type]["unicast"]["neighbor"]
for bgp_neighbor in bgp_neighbors:
total_peer += len(bgp_neighbors[bgp_neighbor]["dest_link"])
no_of_peer = 0
- for addr_type in bgp_addr_type.keys():
+ for _addr_type in bgp_addr_type.keys():
if not check_address_types(addr_type):
continue
- bgp_neighbors = bgp_addr_type[addr_type]["unicast"]["neighbor"]
+
+ if addr_type and addr_type != _addr_type:
+ continue
+
+ bgp_neighbors = bgp_addr_type[_addr_type]["unicast"]["neighbor"]
for bgp_neighbor, peer_data in bgp_neighbors.items():
for dest_link in peer_data["dest_link"].keys():
elif "source_link" in peer_details:
neighbor_ip = topo["routers"][bgp_neighbor][
"links"
- ][peer_details["source_link"]][addr_type].split(
+ ][peer_details["source_link"]][_addr_type].split(
"/"
)[
0
):
neighbor_ip = data[dest_link]["peer-interface"]
else:
- neighbor_ip = data[dest_link][addr_type].split("/")[
- 0
- ]
+ neighbor_ip = data[dest_link][_addr_type].split(
+ "/"
+ )[0]
nh_state = None
neighbor_ip = neighbor_ip.lower()
- if addr_type == "ipv4":
+ if _addr_type == "ipv4":
ipv4_data = show_bgp_json[vrf]["ipv4Unicast"][
"peers"
]
verify_pim_rp_info,
verify_upstream_iif,
)
+from lib.bgp import (
+ verify_bgp_convergence,
+)
+
from lib.topogen import Topogen, get_topogen
from lib.topojson import build_config_from_json
from lib.topolog import logger
# Creating configuration from JSON
build_config_from_json(tgen, topo)
+
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
# Verify PIM neighbors
result = verify_pim_neighbors(tgen, topo)
assert result is True, " Verify PIM neighbor: Failed Error: {}".format(result)
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
step("configure BGP on R1, R2, R3, R4 and enable redistribute static/connected")
step("Enable the MLD on R11 interfac of R1 and configure local mld groups")
intf_r1_i1 = topo["routers"]["r1"]["links"]["i1"]["interface"]
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
step("Enable the PIM on all the interfaces of R1, R2, R3, R4")
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
step("Enable the PIM on all the interfaces of R1, R2, R3, R4")
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
step("Enable the PIM on all the interfaces of R1, R2, R3, R4")
verify_sg_traffic,
verify_upstream_iif,
)
+from lib.bgp import (
+ verify_bgp_convergence,
+)
from lib.topogen import Topogen, get_topogen
from lib.topojson import build_config_from_json
from lib.topolog import logger
global app_helper
app_helper = McastTesterHelper(tgen)
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
logger.info("Running setup_module() done")
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
verify_sg_traffic,
verify_upstream_iif,
)
+from lib.bgp import (
+ verify_bgp_convergence,
+)
from lib.topogen import Topogen, get_topogen
from lib.topojson import build_config_from_json
from lib.topolog import logger
# Creating configuration from JSON
build_config_from_json(tgen, tgen.json_topo)
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
logger.info("Running setup_module() done")
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
app_helper.stop_all_hosts()
# Don"t run this test if we have any failure.
# Creating configuration from JSON
reset_config_on_routers(tgen)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo, addr_type="ipv6")
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
create_static_routes,
required_linux_kernel_version,
)
-from lib.bgp import create_router_bgp
+from lib.bgp import (
+ create_router_bgp,
+ verify_bgp_convergence,
+)
from lib.pim import (
create_pim_config,
create_igmp_config,
global app_helper
app_helper = McastTesterHelper(tgen)
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo)
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
logger.info("Running setup_module() done")
"""
for link in range(1, 5):
-
intf = topo["routers"]["r1"]["links"]["r2-link{}".format(link)]["interface"]
r1_r2_links.append(intf)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
verify_pim_interface_traffic,
McastTesterHelper,
)
+from lib.bgp import (
+ verify_bgp_convergence,
+)
from lib.topolog import logger
from lib.topojson import build_config_from_json
global app_helper
app_helper = McastTesterHelper(tgen)
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo)
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
logger.info("Running setup_module() done")
"""
for link in range(1, 5):
-
intf = topo["routers"]["r1"]["links"]["r2-link{}".format(link)]["interface"]
r1_r2_links.append(intf)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
verify_local_igmp_groups,
McastTesterHelper,
)
+from lib.bgp import (
+ verify_bgp_convergence,
+)
from lib.topolog import logger
from lib.topojson import build_config_from_json
global app_helper
app_helper = McastTesterHelper(tgen)
+ # Verify BGP convergence
+ BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo)
+ assert BGP_CONVERGENCE is True, "setup_module : Failed \n Error:" " {}".format(
+ BGP_CONVERGENCE
+ )
+
logger.info("Running setup_module() done")
"""
for link in range(1, 5):
-
intf = topo["routers"]["r1"]["links"]["r2-link{}".format(link)]["interface"]
r1_r2_links.append(intf)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
reset_config_on_routers(tgen)
clear_pim_interface_traffic(tgen, topo)
+ # Verify BGP convergence
+ result = verify_bgp_convergence(tgen, topo)
+ assert result is True, "Testcase {} : Failed \n Error {}".format(tc_name, result)
+
# Don"t run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)