tests: [topojson] Increase BGP convergence wait time

1. Increasing BGP convergence wait time to overcome Ubuntu 16.04 arm8 box, as
bgp neighorship is taking more time in this particular testbed.
2. Debugged bgp-ecmp-topo2 failures and here also it seems to be bgp convergence
issue, doing some enhancement in scripts to handle it

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
This commit is contained in:
Kuldeep Kashyap 2020-07-11 06:54:42 +00:00
parent 57edbd370e
commit f6f20a77e8
4 changed files with 33 additions and 18 deletions

View File

@ -63,7 +63,7 @@ from lib.common_config import (
reset_config_on_routers,
)
from lib.topolog import logger
from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp_and_verify
from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp
from lib.topojson import build_topo_from_json, build_config_from_json
# Reading the data from JSON File for topology and configuration creation
@ -295,7 +295,7 @@ def test_modify_ecmp_max_paths(request, ecmp_num, test_type):
addr_type,
dut,
input_dict_1,
next_hop=NEXT_HOPS[addr_type][:int(ecmp_num)],
next_hop=NEXT_HOPS[addr_type][: int(ecmp_num)],
protocol=protocol,
)
assert result is True, "Testcase {} : Failed \n Error: {}".format(
@ -336,8 +336,12 @@ def test_ecmp_after_clear_bgp(request, test_type):
tc_name, result
)
# Clear bgp
result = clear_bgp_and_verify(tgen, topo, dut)
# Clear BGP
for addr_type in ADDR_TYPES:
clear_bgp(tgen, addr_type, dut)
# Verify BGP convergence
result = verify_bgp_convergence(tgen, topo)
assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
for addr_type in ADDR_TYPES:

View File

@ -63,7 +63,7 @@ from lib.common_config import (
reset_config_on_routers,
)
from lib.topolog import logger
from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp_and_verify
from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp
from lib.topojson import build_topo_from_json, build_config_from_json
# Reading the data from JSON File for topology and configuration creation
@ -296,7 +296,7 @@ def test_modify_ecmp_max_paths(request, ecmp_num, test_type):
addr_type,
dut,
input_dict_1,
next_hop=NEXT_HOPS[addr_type][:int(ecmp_num)],
next_hop=NEXT_HOPS[addr_type][: int(ecmp_num)],
protocol=protocol,
)
assert result is True, "Testcase {} : Failed \n Error: {}".format(
@ -337,8 +337,12 @@ def test_ecmp_after_clear_bgp(request, test_type):
tc_name, result
)
# Clear bgp
result = clear_bgp_and_verify(tgen, topo, dut)
# Clear BGP
for addr_type in ADDR_TYPES:
clear_bgp(tgen, addr_type, dut)
# Verify BGP convergence
result = verify_bgp_convergence(tgen, topo)
assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result)
for addr_type in ADDR_TYPES:

View File

@ -44,7 +44,6 @@ from lib.common_config import (
LOGDIR = "/tmp/topotests/"
TMPDIR = None
def create_router_bgp(tgen, topo, input_dict=None, build=False, load_config=True):
"""
API to configure bgp on router
@ -882,7 +881,7 @@ def verify_router_id(tgen, topo, input_dict):
return True
@retry(attempts=44, wait=3, return_is_str=True)
@retry(attempts=50, wait=3, return_is_str=True)
def verify_bgp_convergence(tgen, topo, dut=None):
"""
API will verify if BGP is converged with in the given time frame.
@ -1053,9 +1052,11 @@ def verify_bgp_convergence(tgen, topo, dut=None):
no_of_peer += 1
if no_of_peer == total_peer:
logger.info("[DUT: %s] VRF: %s, BGP is Converged", router, vrf)
logger.info("[DUT: %s] VRF: %s, BGP is Converged for %s address-family",
router, vrf, addr_type)
else:
errormsg = "[DUT: %s] VRF: %s, BGP is not converged" % (router, vrf)
errormsg = ("[DUT: %s] VRF: %s, BGP is not converged for %s address-family" %
(router, vrf, addr_type))
return errormsg
logger.debug("Exiting API: verify_bgp_convergence()")
@ -1326,7 +1327,7 @@ def verify_as_numbers(tgen, topo, input_dict):
return True
@retry(attempts=44, wait=3, return_is_str=True)
@retry(attempts=50, wait=3, return_is_str=True)
def verify_bgp_convergence_from_running_config(tgen, dut=None):
"""
API to verify BGP convergence b/w loopback and physical interface.
@ -1470,7 +1471,7 @@ def clear_bgp_and_verify(tgen, topo, router):
sleeptime = 3
# Verifying BGP convergence before bgp clear command
for retry in range(44):
for retry in range(50):
# Waiting for BGP to converge
logger.info(
"Waiting for %s sec for BGP to converge on router" " %s...",
@ -1552,7 +1553,7 @@ def clear_bgp_and_verify(tgen, topo, router):
peer_uptime_after_clear_bgp = {}
# Verifying BGP convergence after bgp clear command
for retry in range(44):
for retry in range(50):
# Waiting for BGP to converge
logger.info(

View File

@ -690,6 +690,12 @@ def start_topology(tgen):
router_list = tgen.routers()
for rname in ROUTER_LIST:
router = router_list[rname]
# It will help in debugging the failures, will give more details on which
# specific kernel version tests are failing
linux_ver = router.run("uname -a")
logger.info("Logging platform related details: \n %s \n", linux_ver)
try:
os.chdir(TMPDIR)