Skip to content

Commit c645a6b

Browse files
committed
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/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents ccb52a9 + 4a9d494 commit c645a6b

File tree

1 file changed

+27
-18
lines changed
  • tools/testing/selftests/drivers/net

1 file changed

+27
-18
lines changed

tools/testing/selftests/drivers/net/ping.py

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,20 @@
99
from lib.py import bkg, cmd, wait_port_listen, rand_port
1010
from lib.py import defer, ethtool, ip
1111

12-
remote_ifname=""
1312
no_sleep=False
1413

1514
def _test_v4(cfg) -> None:
16-
cfg.require_ipver("4")
15+
if not cfg.addr_v["4"]:
16+
return
1717

1818
cmd("ping -c 1 -W0.5 " + cfg.remote_addr_v["4"])
1919
cmd("ping -c 1 -W0.5 " + cfg.addr_v["4"], host=cfg.remote)
2020
cmd("ping -s 65000 -c 1 -W0.5 " + cfg.remote_addr_v["4"])
2121
cmd("ping -s 65000 -c 1 -W0.5 " + cfg.addr_v["4"], host=cfg.remote)
2222

2323
def _test_v6(cfg) -> None:
24-
cfg.require_ipver("6")
24+
if not cfg.addr_v["6"]:
25+
return
2526

2627
cmd("ping -c 1 -W5 " + cfg.remote_addr_v["6"])
2728
cmd("ping -c 1 -W5 " + cfg.addr_v["6"], host=cfg.remote)
@@ -57,7 +58,7 @@ def _set_offload_checksum(cfg, netnl, on) -> None:
5758

5859
def _set_xdp_generic_sb_on(cfg) -> None:
5960
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
60-
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
61+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
6162
cmd(f"ip link set dev {cfg.ifname} mtu 1500 xdpgeneric obj {prog} sec xdp", shell=True)
6263
defer(cmd, f"ip link set dev {cfg.ifname} xdpgeneric off")
6364

@@ -66,8 +67,8 @@ def _set_xdp_generic_sb_on(cfg) -> None:
6667

6768
def _set_xdp_generic_mb_on(cfg) -> None:
6869
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
69-
cmd(f"ip link set dev {remote_ifname} mtu 9000", shell=True, host=cfg.remote)
70-
defer(ip, f"link set dev {remote_ifname} mtu 1500", host=cfg.remote)
70+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 9000", shell=True, host=cfg.remote)
71+
defer(ip, f"link set dev {cfg.remote_ifname} mtu 1500", host=cfg.remote)
7172
ip("link set dev %s mtu 9000 xdpgeneric obj %s sec xdp.frags" % (cfg.ifname, prog))
7273
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdpgeneric off")
7374

@@ -76,7 +77,7 @@ def _set_xdp_generic_mb_on(cfg) -> None:
7677

7778
def _set_xdp_native_sb_on(cfg) -> None:
7879
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
79-
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
80+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
8081
cmd(f"ip -j link set dev {cfg.ifname} mtu 1500 xdp obj {prog} sec xdp", shell=True)
8182
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdp off")
8283
xdp_info = ip("-d link show %s" % (cfg.ifname), json=True)[0]
@@ -93,8 +94,8 @@ def _set_xdp_native_sb_on(cfg) -> None:
9394

9495
def _set_xdp_native_mb_on(cfg) -> None:
9596
prog = cfg.net_lib_dir / "xdp_dummy.bpf.o"
96-
cmd(f"ip link set dev {remote_ifname} mtu 9000", shell=True, host=cfg.remote)
97-
defer(ip, f"link set dev {remote_ifname} mtu 1500", host=cfg.remote)
97+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 9000", shell=True, host=cfg.remote)
98+
defer(ip, f"link set dev {cfg.remote_ifname} mtu 1500", host=cfg.remote)
9899
try:
99100
cmd(f"ip link set dev {cfg.ifname} mtu 9000 xdp obj {prog} sec xdp.frags", shell=True)
100101
defer(ip, f"link set dev {cfg.ifname} mtu 1500 xdp off")
@@ -112,18 +113,15 @@ def _set_xdp_offload_on(cfg) -> None:
112113
except Exception as e:
113114
raise KsftSkipEx('device does not support offloaded XDP')
114115
defer(ip, f"link set dev {cfg.ifname} xdpoffload off")
115-
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
116+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
116117

117118
if no_sleep != True:
118119
time.sleep(10)
119120

120121
def get_interface_info(cfg) -> None:
121-
global remote_ifname
122122
global no_sleep
123123

124-
remote_info = cmd(f"ip -4 -o addr show to {cfg.remote_addr_v['4']} | awk '{{print $2}}'", shell=True, host=cfg.remote).stdout
125-
remote_ifname = remote_info.rstrip('\n')
126-
if remote_ifname == "":
124+
if cfg.remote_ifname == "":
127125
raise KsftFailEx('Can not get remote interface')
128126
local_info = ip("-d link show %s" % (cfg.ifname), json=True)[0]
129127
if 'parentbus' in local_info and local_info['parentbus'] == "netdevsim":
@@ -136,15 +134,25 @@ def set_interface_init(cfg) -> None:
136134
cmd(f"ip link set dev {cfg.ifname} xdp off ", shell=True)
137135
cmd(f"ip link set dev {cfg.ifname} xdpgeneric off ", shell=True)
138136
cmd(f"ip link set dev {cfg.ifname} xdpoffload off", shell=True)
139-
cmd(f"ip link set dev {remote_ifname} mtu 1500", shell=True, host=cfg.remote)
137+
cmd(f"ip link set dev {cfg.remote_ifname} mtu 1500", shell=True, host=cfg.remote)
138+
139+
def test_default_v4(cfg, netnl) -> None:
140+
cfg.require_ipver("4")
140141

141-
def test_default(cfg, netnl) -> None:
142142
_set_offload_checksum(cfg, netnl, "off")
143143
_test_v4(cfg)
144-
_test_v6(cfg)
145144
_test_tcp(cfg)
146145
_set_offload_checksum(cfg, netnl, "on")
147146
_test_v4(cfg)
147+
_test_tcp(cfg)
148+
149+
def test_default_v6(cfg, netnl) -> None:
150+
cfg.require_ipver("6")
151+
152+
_set_offload_checksum(cfg, netnl, "off")
153+
_test_v6(cfg)
154+
_test_tcp(cfg)
155+
_set_offload_checksum(cfg, netnl, "on")
148156
_test_v6(cfg)
149157
_test_tcp(cfg)
150158

@@ -202,7 +210,8 @@ def main() -> None:
202210
with NetDrvEpEnv(__file__) as cfg:
203211
get_interface_info(cfg)
204212
set_interface_init(cfg)
205-
ksft_run([test_default,
213+
ksft_run([test_default_v4,
214+
test_default_v6,
206215
test_xdp_generic_sb,
207216
test_xdp_generic_mb,
208217
test_xdp_native_sb,

0 commit comments

Comments
 (0)