When configuring traffic for the devmem tests, 5-tuple flow steering may be required if the environment does not provide network namespaces. Pass the correct remote address parameter and fall back to 5-tuple flow steering if netns is not available. Signed-off-by: Mina Almasry --- tools/testing/selftests/drivers/net/hw/devmem_lib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/drivers/net/hw/devmem_lib.py b/tools/testing/selftests/drivers/net/hw/devmem_lib.py index 0921ff03eb81c..3ede6fd426929 100644 --- a/tools/testing/selftests/drivers/net/hw/devmem_lib.py +++ b/tools/testing/selftests/drivers/net/hw/devmem_lib.py @@ -111,7 +111,7 @@ def ncdevmem_tx(cfg, port, chunk_size=0): else: ifname = cfg.ifname addr = cfg.remote_addr - extras = [] + extras = [f"-c {cfg.addr}"] if chunk_size: extras.append(f"-z {chunk_size}") @@ -212,7 +212,7 @@ def run_rx_hds(cfg): port = rand_port() listen_cmd = ncdevmem_rx(cfg, port, verify=False, - fail_on_linear=True) + fail_on_linear=True, flow_steer=not hasattr(cfg, 'netns')) socat = socat_send(cfg, port, buf_size=size) with bkg(listen_cmd, exit_wait=True, ns=netns) as ncdevmem: base-commit: 69963a0678a347d57c4ac8b16939dba216eb95ce -- 2.55.0.571.g244d577d93-goog During tests, ethnl_rings_set randomly bounces the link causing a transient IPv6 Duplicate Address Detection "tentative" race, resulting in spurious -EADDRNOTAVAIL aborts inside the ncdevmem server. Add a simple 10 second retry loop around bind() to absorb the link bounce. Signed-off-by: Mina Almasry --- v2: - Refactored C99 mid-scope variables to strictly adhere to C89 styling. - Dropped single-line curly brace avoidance syntax. v1: https://patchwork.kernel.org/project/netdevbpf/patch/20260801131220.1367229-2-almasrymina@google.com/ --- tools/testing/selftests/drivers/net/hw/ncdevmem.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/net/hw/ncdevmem.c b/tools/testing/selftests/drivers/net/hw/ncdevmem.c index ffe1d5c1fa4e1..67901a0123e8c 100644 --- a/tools/testing/selftests/drivers/net/hw/ncdevmem.c +++ b/tools/testing/selftests/drivers/net/hw/ncdevmem.c @@ -843,6 +843,7 @@ static int do_server(struct memory_buffer *mem) char iobuf[819200]; int ret, err = -1; char buffer[256]; + int retries = 10; int socket_fd; int client_fd; @@ -898,7 +899,12 @@ static int do_server(struct memory_buffer *mem) fprintf(stderr, "binding to address %s:%d\n", server_ip, ntohs(server_sin.sin6_port)); - ret = bind(socket_fd, &server_sin, sizeof(server_sin)); + while (retries--) { + ret = bind(socket_fd, &server_sin, sizeof(server_sin)); + if (!ret) + break; + sleep(1); + } if (ret) { pr_err("Failed to bind"); goto err_close_socket; -- 2.55.0.571.g244d577d93-goog