Merge pull request #5218 from mjstapp/fix_topo_kernel_5

topotests: Adapt to linux kernel 5+
This commit is contained in:
David Lamparter 2019-12-06 18:18:28 +01:00 committed by GitHub
commit a9dd82682d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 2 deletions

View File

@ -153,8 +153,10 @@ def ltemplatePreRouterStartHook():
if topotest.version_cmp(krel, '4.15') >= 0 and \
topotest.version_cmp(krel, '4.18') <= 0:
l3mdev_accept = 1
else:
l3mdev_accept = 0
if topotest.version_cmp(krel, '5.0') >= 0:
l3mdev_accept = 1
logger.info('setting net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept))
#check for mpls
if tgen.hasmpls != True:

View File

@ -31,6 +31,7 @@ import sys
import json
from functools import partial
import pytest
import platform
# Save the Current Working Directory to find configuration files.
CWD = os.path.dirname(os.path.realpath(__file__))
@ -68,6 +69,19 @@ def setup_module(mod):
router_list = tgen.routers()
logger.info('Testing with VRF Lite support')
krel = platform.release()
# May need to adjust handling of vrf traffic depending on kernel version
l3mdev_accept = 0
if topotest.version_cmp(krel, '4.15') >= 0 and \
topotest.version_cmp(krel, '4.18') <= 0:
l3mdev_accept = 1
if topotest.version_cmp(krel, '5.0') >= 0:
l3mdev_accept = 1
logger.info('krel \'{0}\' setting net.ipv4.tcp_l3mdev_accept={1}'.format(
krel, l3mdev_accept))
cmds = ['ip link add {0}-cust1 type vrf table 1001',
'ip link add loop1 type dummy',
@ -78,6 +92,15 @@ def setup_module(mod):
for cmd in cmds:
output = tgen.net[rname].cmd(cmd.format(rname))
output = tgen.net[rname].cmd('sysctl -n net.ipv4.tcp_l3mdev_accept')
logger.info(
'router {0}: existing tcp_l3mdev_accept was {1}'.format(
rname, output))
if l3mdev_accept:
output = tgen.net[rname].cmd(
'sysctl -w net.ipv4.tcp_l3mdev_accept={}'.format(l3mdev_accept))
for rname, router in router_list.iteritems():
router.load_config(
TopoRouter.RD_ZEBRA,