summaryrefslogtreecommitdiff
path: root/tests/topotests/lib/common_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/topotests/lib/common_config.py')
-rw-r--r--tests/topotests/lib/common_config.py152
1 files changed, 99 insertions, 53 deletions
diff --git a/tests/topotests/lib/common_config.py b/tests/topotests/lib/common_config.py
index 2224b4f3a3..ead593d2ca 100644
--- a/tests/topotests/lib/common_config.py
+++ b/tests/topotests/lib/common_config.py
@@ -75,54 +75,54 @@ config_section = "topogen"
# Debug logs for daemons
DEBUG_LOGS = {
"pimd": [
- 'debug msdp events',
- 'debug msdp packets',
- 'debug igmp events',
- 'debug igmp trace',
- 'debug mroute',
- 'debug mroute detail',
- 'debug pim events',
- 'debug pim packets',
- 'debug pim trace',
- 'debug pim zebra',
- 'debug pim bsm',
- 'debug pim packets joins',
- 'debug pim packets register',
- 'debug pim nht'
+ "debug msdp events",
+ "debug msdp packets",
+ "debug igmp events",
+ "debug igmp trace",
+ "debug mroute",
+ "debug mroute detail",
+ "debug pim events",
+ "debug pim packets",
+ "debug pim trace",
+ "debug pim zebra",
+ "debug pim bsm",
+ "debug pim packets joins",
+ "debug pim packets register",
+ "debug pim nht",
],
"bgpd": [
- 'debug bgp neighbor-events',
- 'debug bgp updates',
- 'debug bgp zebra',
- 'debug bgp nht',
- 'debug bgp neighbor-events',
- 'debug bgp graceful-restart',
- 'debug bgp update-groups',
- 'debug bgp vpn leak-from-vrf',
- 'debug bgp vpn leak-to-vrf',
- 'debug bgp zebr',
- 'debug bgp updates',
- 'debug bgp nht',
- 'debug bgp neighbor-events',
- 'debug vrf'
+ "debug bgp neighbor-events",
+ "debug bgp updates",
+ "debug bgp zebra",
+ "debug bgp nht",
+ "debug bgp neighbor-events",
+ "debug bgp graceful-restart",
+ "debug bgp update-groups",
+ "debug bgp vpn leak-from-vrf",
+ "debug bgp vpn leak-to-vrf",
+ "debug bgp zebr",
+ "debug bgp updates",
+ "debug bgp nht",
+ "debug bgp neighbor-events",
+ "debug vrf",
],
"zebra": [
- 'debug zebra events',
- 'debug zebra rib',
- 'debug zebra vxlan',
- 'debug zebra nht'
+ "debug zebra events",
+ "debug zebra rib",
+ "debug zebra vxlan",
+ "debug zebra nht",
],
"ospf": [
- 'debug ospf event',
- 'debug ospf ism',
- 'debug ospf lsa',
- 'debug ospf nsm',
- 'debug ospf nssa',
- 'debug ospf packet all',
- 'debug ospf sr',
- 'debug ospf te',
- 'debug ospf zebra',
- ]
+ "debug ospf event",
+ "debug ospf ism",
+ "debug ospf lsa",
+ "debug ospf nsm",
+ "debug ospf nssa",
+ "debug ospf packet all",
+ "debug ospf sr",
+ "debug ospf te",
+ "debug ospf zebra",
+ ],
}
if config.has_option("topogen", "verbosity"):
@@ -1155,10 +1155,8 @@ def create_debug_log_config(tgen, input_dict, build=False):
log_file = debug_dict.setdefault("log_file", None)
if log_file:
- _log_file = os.path.join(LOGDIR, tgen.modname,
- log_file)
- debug_config.append("log file {} \n".\
- format(_log_file))
+ _log_file = os.path.join(LOGDIR, tgen.modname, log_file)
+ debug_config.append("log file {} \n".format(_log_file))
if type(enable_logs) is list:
for daemon in enable_logs:
@@ -1178,10 +1176,9 @@ def create_debug_log_config(tgen, input_dict, build=False):
for debug_log in debug_logs:
debug_config.append("no {}".format(debug_log))
- result = create_common_configuration(tgen, router,
- debug_config,
- "debug_log_config",
- build=build)
+ result = create_common_configuration(
+ tgen, router, debug_config, "debug_log_config", build=build
+ )
except InvalidCLIError:
# Traceback
errormsg = traceback.format_exc()
@@ -3868,7 +3865,7 @@ def get_ipv6_linklocal_address(topo, node, intf):
"""
tgen = get_topogen()
ext_nh = tgen.net[node].get_ipv6_linklocal()
- req_nh = topo[node]['links'][intf]['interface']
+ req_nh = topo[node]["links"][intf]["interface"]
llip = None
for llips in ext_nh:
if llips[0] == req_nh:
@@ -3876,8 +3873,9 @@ def get_ipv6_linklocal_address(topo, node, intf):
logger.info("Link local ip found = %s", llip)
return llip
- errormsg = "Failed: Link local ip not found on router {}, "\
- "interface {}".format(node, intf)
+ errormsg = "Failed: Link local ip not found on router {}, " "interface {}".format(
+ node, intf
+ )
return errormsg
@@ -4512,3 +4510,51 @@ def verify_ip_nht(tgen, input_dict):
logger.debug("Exiting lib API: verify_ip_nht()")
return False
+
+
+def kernel_requires_l3mdev_adjustment():
+ """
+ Checks if the L3 master device needs to be adjusted to handle VRF traffic
+ based on kernel version.
+
+ Returns
+ -------
+ 1 or 0
+ """
+
+ if version_cmp(platform.release(), "4.15") >= 0:
+ return 1
+ return 0
+
+
+def adjust_router_l3mdev(tgen, router):
+ """
+ Adjusts a routers L3 master device to handle VRF traffic depending on kernel
+ version.
+
+ Parameters
+ ----------
+ * `tgen` : tgen object
+ * `router` : router id to be configured.
+
+ Returns
+ -------
+ True
+ """
+
+ l3mdev_accept = kernel_requires_l3mdev_adjustment()
+
+ logger.info(
+ "router {0}: setting net.ipv4.tcp_l3mdev_accept={1}".format(
+ router, l3mdev_accept
+ )
+ )
+
+ output = tgen.net[router].cmd("sysctl -n net.ipv4.tcp_l3mdev_accept")
+ logger.info("router {0}: existing tcp_l3mdev_accept was {1}".format(router, output))
+
+ tgen.net[router].cmd(
+ "sysctl -w net.ipv4.tcp_l3mdev_accept={}".format(l3mdev_accept)
+ )
+
+ return True