Merge branch 'selftests-drv-net-fix-ping-py-test-failure'
Mohsin Bashir says: ==================== selftests: drv: net: fix `ping.py` test failure Fix `ping.py` test failure on an ipv6 system, and appropriately handle the cases where either one of the two address families (ipv4, ipv6) is not present. ==================== Link: https://patch.msgid.link/20250503013518.1722913-1-mohsin.bashr@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -9,11 +9,11 @@ from lib.py import EthtoolFamily, NetDrvEpEnv
|
||||
from lib.py import bkg, cmd, wait_port_listen, rand_port
|
||||
from lib.py import defer, ethtool, ip
|
||||
|
||||
remote_ifname=""
|
||||
no_sleep=False
|
||||
|
||||
def _test_v4(cfg) -> None:
|
||||
cfg.require_ipver("4")
|
||||
if not cfg.addr_v["4"]:
|
||||
return
|
||||
|
||||
cmd("ping -c 1 -W0.5 " + cfg.remote_addr_v["4"])
|
||||
cmd("ping -c 1 -W0.5 " + cfg.addr_v["4"], host=cfg.remote)
|
||||
@@ -21,7 +21,8 @@ def _test_v4(cfg) -> None:
|
||||
cmd("ping -s 65000 -c 1 -W0.5 " + cfg.addr_v["4"], host=cfg.remote)
|
||||
|
||||
def _test_v6(cfg) -> None:
|
||||
cfg.require_ipver("6")
|
||||
if not cfg.addr_v["6"]:
|
||||
return
|
||||
|
||||
cmd("ping -c 1 -W5 " + cfg.remote_addr_v["6"])
|
||||
cmd("ping -c 1 -W5 " + cfg.addr_v["6"], host=cfg.remote)
|
||||
@@ -57,7 +58,7 @@ def _set_offload_checksum(cfg, netnl, on) -> None:
|
||||
|
||||
def _set_xdp_generic_sb_on(cfg) -> None:
|
||||
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.ifname} mtu 1500 xdpgeneric obj {prog} sec xdp", shell=True)
|
||||
defer(cmd, f"ip link set dev {cfg.ifname} xdpgeneric off")
|
||||
|
||||
@@ -66,8 +67,8 @@ def _set_xdp_generic_sb_on(cfg) -> None:
|
||||
|
||||
def _set_xdp_generic_mb_on(cfg) -> None:
|
||||
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 9000", shell=True, host=cfg.remote)
|
||||
defer(ip, f"link set dev {remote_ifname} mtu 1500", host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 9000", shell=True, host=cfg.remote)
|
||||
defer(ip, f"link set dev {cfg.remote_ifname} mtu 1500", host=cfg.remote)
|
||||
ip("link set dev %s mtu 9000 xdpgeneric obj %s sec xdp.frags" % (cfg.ifname, prog))
|
||||
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdpgeneric off")
|
||||
|
||||
@@ -76,7 +77,7 @@ def _set_xdp_generic_mb_on(cfg) -> None:
|
||||
|
||||
def _set_xdp_native_sb_on(cfg) -> None:
|
||||
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip -j link set dev {cfg.ifname} mtu 1500 xdp obj {prog} sec xdp", shell=True)
|
||||
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdp off")
|
||||
xdp_info = ip("-d link show %s" % (cfg.ifname), json=True)[0]
|
||||
@@ -93,8 +94,8 @@ def _set_xdp_native_sb_on(cfg) -> None:
|
||||
|
||||
def _set_xdp_native_mb_on(cfg) -> None:
|
||||
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 9000", shell=True, host=cfg.remote)
|
||||
defer(ip, f"link set dev {remote_ifname} mtu 1500", host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 9000", shell=True, host=cfg.remote)
|
||||
defer(ip, f"link set dev {cfg.remote_ifname} mtu 1500", host=cfg.remote)
|
||||
try:
|
||||
cmd(f"ip link set dev {cfg.ifname} mtu 9000 xdp obj {prog} sec xdp.frags", shell=True)
|
||||
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdp off")
|
||||
@@ -112,18 +113,15 @@ def _set_xdp_offload_on(cfg) -> None:
|
||||
except Exception as e:
|
||||
raise KsftSkipEx('device does not support offloaded XDP')
|
||||
defer(ip, f"link set dev {cfg.ifname} xdpoffload off")
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
|
||||
if no_sleep != True:
|
||||
time.sleep(10)
|
||||
|
||||
def get_interface_info(cfg) -> None:
|
||||
global remote_ifname
|
||||
global no_sleep
|
||||
|
||||
remote_info = cmd(f"ip -4 -o addr show to {cfg.remote_addr_v['4']} | awk '{{print $2}}'", shell=True, host=cfg.remote).stdout
|
||||
remote_ifname = remote_info.rstrip('\n')
|
||||
if remote_ifname == "":
|
||||
if cfg.remote_ifname == "":
|
||||
raise KsftFailEx('Can not get remote interface')
|
||||
local_info = ip("-d link show %s" % (cfg.ifname), json=True)[0]
|
||||
if 'parentbus' in local_info and local_info['parentbus'] == "netdevsim":
|
||||
@@ -136,15 +134,25 @@ def set_interface_init(cfg) -> None:
|
||||
cmd(f"ip link set dev {cfg.ifname} xdp off ", shell=True)
|
||||
cmd(f"ip link set dev {cfg.ifname} xdpgeneric off ", shell=True)
|
||||
cmd(f"ip link set dev {cfg.ifname} xdpoffload off", shell=True)
|
||||
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
|
||||
|
||||
def test_default_v4(cfg, netnl) -> None:
|
||||
cfg.require_ipver("4")
|
||||
|
||||
def test_default(cfg, netnl) -> None:
|
||||
_set_offload_checksum(cfg, netnl, "off")
|
||||
_test_v4(cfg)
|
||||
_test_v6(cfg)
|
||||
_test_tcp(cfg)
|
||||
_set_offload_checksum(cfg, netnl, "on")
|
||||
_test_v4(cfg)
|
||||
_test_tcp(cfg)
|
||||
|
||||
def test_default_v6(cfg, netnl) -> None:
|
||||
cfg.require_ipver("6")
|
||||
|
||||
_set_offload_checksum(cfg, netnl, "off")
|
||||
_test_v6(cfg)
|
||||
_test_tcp(cfg)
|
||||
_set_offload_checksum(cfg, netnl, "on")
|
||||
_test_v6(cfg)
|
||||
_test_tcp(cfg)
|
||||
|
||||
@@ -202,7 +210,8 @@ def main() -> None:
|
||||
with NetDrvEpEnv(__file__) as cfg:
|
||||
get_interface_info(cfg)
|
||||
set_interface_init(cfg)
|
||||
ksft_run([test_default,
|
||||
ksft_run([test_default_v4,
|
||||
test_default_v6,
|
||||
test_xdp_generic_sb,
|
||||
test_xdp_generic_mb,
|
||||
test_xdp_native_sb,
|
||||
|
||||
Reference in New Issue
Block a user