]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: devmem: ksft: add 5 tuple FS support
authorMina Almasry <almasrymina@google.com>
Fri, 23 May 2025 23:05:22 +0000 (23:05 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 28 May 2025 02:19:36 +0000 (19:19 -0700)
ncdevmem supports drivers that are limited to either 3-tuple or 5-tuple
FS support, but the ksft is currently 3-tuple only. Support drivers that
have 5-tuple FS supported by adding a ksft arg.

Signed-off-by: Mina Almasry <almasrymina@google.com>
fix 5-tuple

fix 5-tuple
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250523230524.1107879-7-almasrymina@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/hw/devmem.py
tools/testing/selftests/drivers/net/hw/ncdevmem.c

index 6c743bc2ab3997e8a41a32d271a96bcfe195ddff..52ee52c5102943b4c459544469dfcc64715c9985 100755 (executable)
@@ -24,11 +24,11 @@ def check_rx(cfg) -> None:
     require_devmem(cfg)
 
     port = rand_port()
-    listen_cmd = f"{cfg.bin_local} -l -f {cfg.ifname} -s {cfg.addr} -p {port}"
+    listen_cmd = f"{cfg.bin_local} -l -f {cfg.ifname} -s {cfg.addr} -p {port} -c {cfg.remote_addr}"
 
     with bkg(listen_cmd, exit_wait=True) as ncdevmem:
         wait_port_listen(port)
-        cmd(f"echo -e \"hello\\nworld\"| socat -u - TCP{cfg.addr_ipver}:{cfg.addr}:{port}", host=cfg.remote, shell=True)
+        cmd(f"echo -e \"hello\\nworld\"| socat -u - TCP{cfg.addr_ipver}:{cfg.addr}:{port},bind={cfg.remote_addr}:{port}", host=cfg.remote, shell=True)
 
     ksft_eq(ncdevmem.stdout.strip(), "hello\nworld")
 
index fc7ba7d715027c8ec0c14820f8a852534bb11404..a226f2c7af83a3f8c7d2dd802b49e9a98f1297c3 100644 (file)
@@ -373,7 +373,8 @@ static int configure_flow_steering(struct sockaddr_in6 *server_sin)
                server_addr = strrchr(server_addr, ':') + 1;
        }
 
-       return run_command("sudo ethtool -N %s flow-type %s %s %s dst-ip %s %s %s dst-port %s queue %d >&2",
+       /* Try configure 5-tuple */
+       if (run_command("sudo ethtool -N %s flow-type %s %s %s dst-ip %s %s %s dst-port %s queue %d >&2",
                           ifname,
                           type,
                           client_ip ? "src-ip" : "",
@@ -381,7 +382,17 @@ static int configure_flow_steering(struct sockaddr_in6 *server_sin)
                           server_addr,
                           client_ip ? "src-port" : "",
                           client_ip ? port : "",
-                          port, start_queue);
+                          port, start_queue))
+               /* If that fails, try configure 3-tuple */
+               if (run_command("sudo ethtool -N %s flow-type %s dst-ip %s dst-port %s queue %d >&2",
+                               ifname,
+                               type,
+                               server_addr,
+                               port, start_queue))
+                       /* If that fails, return error */
+                       return -1;
+
+       return 0;
 }
 
 static int bind_rx_queue(unsigned int ifindex, unsigned int dmabuf_fd,