Lines Matching full:cfg
12 def test_receive(cfg, ipver="6", extra_args=None):
14 if not cfg.have_rx_csum:
15 raise KsftSkipEx(f"Test requires rx checksum offload on {cfg.ifname}")
17 ip_args = f"-{ipver} -S {cfg.remote_addr_v[ipver]} -D {cfg.addr_v[ipver]}"
19 rx_cmd = f"{cfg.bin_local} -i {cfg.ifname} -n 100 {ip_args} -r 1 -R {extra_args}"
20 tx_cmd = f"{cfg.bin_remote} -i {cfg.ifname} -n 100 {ip_args} -r 1 -T {extra_args}"
24 cmd(tx_cmd, host=cfg.remote)
27 def test_transmit(cfg, ipver="6", extra_args=None):
29 if (not cfg.have_tx_csum_generic and
30 not (cfg.have_tx_csum_ipv4 and ipver == "4") and
31 not (cfg.have_tx_csum_ipv6 and ipver == "6")):
32 raise KsftSkipEx(f"Test requires tx checksum offload on {cfg.ifname}")
34 ip_args = f"-{ipver} -S {cfg.addr_v[ipver]} -D {cfg.remote_addr_v[ipver]}"
40 rx_cmd = f"{cfg.bin_remote} -i {cfg.ifname} -L 1 -n 100 {ip_args} -R {extra_args}"
41 tx_cmd = f"{cfg.bin_local} -i {cfg.ifname} -L 1 -n 100 {ip_args} -T {extra_args}"
43 with bkg(rx_cmd, host=cfg.remote, exit_wait=True):
44 wait_port_listen(34000, proto="udp", host=cfg.remote)
48 def test_builder(name, cfg, ipver="6", tx=False, extra_args=""):
53 def f(cfg):
54 cfg.require_ipver(ipver)
57 test_transmit(cfg, ipver, extra_args)
59 test_receive(cfg, ipver, extra_args)
65 def check_nic_features(cfg) -> None:
69 cfg.have_tx_csum_generic = False
70 cfg.have_tx_csum_ipv4 = False
71 cfg.have_tx_csum_ipv6 = False
72 cfg.have_rx_csum = False
75 features = ethnl.features_get({"header": {"dev-index": cfg.ifindex}})
78 cfg.have_tx_csum_generic = True
80 cfg.have_tx_csum_ipv4 = True
82 cfg.have_tx_csum_ipv6 = True
84 cfg.have_rx_csum = True
88 with NetDrvEpEnv(__file__, nsim_test=False) as cfg:
89 check_nic_features(cfg)
91 cfg.bin_local = cfg.net_lib_dir / "csum"
92 cfg.bin_remote = cfg.remote.deploy(cfg.bin_local)
96 cases.append(test_builder("rx_tcp", cfg, ipver, False, "-t"))
97 cases.append(test_builder("rx_tcp_invalid", cfg, ipver, False, "-t -E"))
99 cases.append(test_builder("rx_udp", cfg, ipver, False, ""))
100 cases.append(test_builder("rx_udp_invalid", cfg, ipver, False, "-E"))
102 cases.append(test_builder("tx_udp_csum_offload", cfg, ipver, True, "-U"))
103 cases.append(test_builder("tx_udp_zero_checksum", cfg, ipver, True, "-U -Z"))
105 ksft_run(cases=cases, args=(cfg, ))