99from lib .py import bkg , cmd , wait_port_listen , rand_port
1010from lib .py import defer , ethtool , ip
1111
12- remote_ifname = ""
1312no_sleep = False
1413
1514def _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
2323def _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
5859def _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
6768def _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
7778def _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
9495def _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
120121def 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