]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: netfilter: nft_tproxy.sh: adjust to socat changes
authorFlorian Westphal <fw@strlen.de>
Thu, 9 Apr 2026 22:45:02 +0000 (00:45 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sun, 12 Apr 2026 16:41:16 +0000 (09:41 -0700)
Like e65d8b6f3092 ("selftests: drv-net: adjust to socat changes") we
need to add shut-none for this test too.

The extra 0-packet can trigger a second (unexpected) reply from the server.

Fixes: 7e37e0eacd22 ("selftests: netfilter: nft_tproxy.sh: add tcp tests")
Reported-by: Jakub Kicinski <kuba@kernel.org>
Closes: https://lore.kernel.org/netdev/20260408152432.24b8ad0d@kernel.org/
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
Link: https://patch.msgid.link/20260409224506.27072-1-fw@strlen.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/netfilter/nft_tproxy_udp.sh

index d16de13fe5a75232d65f4ba01bb26acc026e9206..1dc7b04501459e4bb6d739b7ddddc7b0fc9bedce 100755 (executable)
@@ -190,13 +190,13 @@ table inet filter {
 }
 EOF
 
-       timeout "$timeout" ip netns exec "$nsrouter" socat -u "$socat_ipproto" udp-listen:12345,fork,ip-transparent,reuseport udp:"$ns1_ip_port",ip-transparent,reuseport,bind="$ns2_ip_port" 2>/dev/null &
+       timeout "$timeout" ip netns exec "$nsrouter" socat -u "$socat_ipproto" udp-listen:12345,fork,ip-transparent,reuseport,shut-none udp:"$ns1_ip_port",ip-transparent,reuseport,bind="$ns2_ip_port",shut-none 2>/dev/null &
        local tproxy_pid=$!
 
-       timeout "$timeout" ip netns exec "$ns2" socat "$socat_ipproto" udp-listen:8080,fork SYSTEM:"echo PONG_NS2" 2>/dev/null &
+       timeout "$timeout" ip netns exec "$ns2" socat "$socat_ipproto" udp-listen:8080,fork,shut-none SYSTEM:"echo PONG_NS2" 2>/dev/null &
        local server2_pid=$!
 
-       timeout "$timeout" ip netns exec "$ns3" socat "$socat_ipproto" udp-listen:8080,fork SYSTEM:"echo PONG_NS3" 2>/dev/null &
+       timeout "$timeout" ip netns exec "$ns3" socat "$socat_ipproto" udp-listen:8080,fork,shut-none SYSTEM:"echo PONG_NS3" 2>/dev/null &
        local server3_pid=$!
 
        busywait "$BUSYWAIT_TIMEOUT" listener_ready "$nsrouter" 12345 "-u"
@@ -205,7 +205,7 @@ EOF
 
        local result
        # request from ns1 to ns2 (forwarded traffic)
-       result=$(echo I_M_PROXIED | ip netns exec "$ns1" socat -t 2 -T 2 STDIO udp:"$ns2_ip_port",sourceport=18888)
+       result=$(echo I_M_PROXIED | ip netns exec "$ns1" socat -t 2 -T 2 STDIO udp:"$ns2_ip_port",sourceport=18888,shut-none)
        if [ "$result" == "$expect_ns1_ns2" ] ;then
                echo "PASS: tproxy test $testname: ns1 got reply \"$result\" connecting to ns2"
        else
@@ -214,7 +214,7 @@ EOF
        fi
 
        # request from ns1 to ns3 (forwarded traffic)
-       result=$(echo I_M_PROXIED | ip netns exec "$ns1" socat -t 2 -T 2 STDIO udp:"$ns3_ip_port")
+       result=$(echo I_M_PROXIED | ip netns exec "$ns1" socat -t 2 -T 2 STDIO udp:"$ns3_ip_port",shut-none)
        if [ "$result" = "$expect_ns1_ns3" ] ;then
                echo "PASS: tproxy test $testname: ns1 got reply \"$result\" connecting to ns3"
        else
@@ -223,7 +223,7 @@ EOF
        fi
 
        # request from nsrouter to ns2 (localy originated traffic)
-       result=$(echo I_M_PROXIED | ip netns exec "$nsrouter" socat -t 2 -T 2 STDIO udp:"$ns2_ip_port")
+       result=$(echo I_M_PROXIED | ip netns exec "$nsrouter" socat -t 2 -T 2 STDIO udp:"$ns2_ip_port",shut-none)
        if [ "$result" == "$expect_nsrouter_ns2" ] ;then
                echo "PASS: tproxy test $testname: nsrouter got reply \"$result\" connecting to ns2"
        else
@@ -232,7 +232,7 @@ EOF
        fi
 
        # request from nsrouter to ns3 (localy originated traffic)
-       result=$(echo I_M_PROXIED | ip netns exec "$nsrouter" socat -t 2 -T 2 STDIO udp:"$ns3_ip_port")
+       result=$(echo I_M_PROXIED | ip netns exec "$nsrouter" socat -t 2 -T 2 STDIO udp:"$ns3_ip_port",shut-none)
        if [ "$result" = "$expect_nsrouter_ns3" ] ;then
                echo "PASS: tproxy test $testname: nsrouter got reply \"$result\" connecting to ns3"
        else