]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
selftests: net: properly support IPv6 in GSO GRE test
authorAndrea Righi <andrea.righi@canonical.com>
Thu, 4 Nov 2021 10:46:13 +0000 (11:46 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Nov 2021 11:23:57 +0000 (11:23 +0000)
Explicitly pass -6 to netcat when the test is using IPv6 to prevent
failures.

Also make sure to pass "-N" to netcat to close the socket after EOF on
the client side, otherwise we would always hit the timeout and the test
would fail.

Without this fix applied:

 TEST: GREv6/v4 - copy file w/ TSO                                   [FAIL]
 TEST: GREv6/v4 - copy file w/ GSO                                   [FAIL]
 TEST: GREv6/v6 - copy file w/ TSO                                   [FAIL]
 TEST: GREv6/v6 - copy file w/ GSO                                   [FAIL]

With this fix applied:

 TEST: GREv6/v4 - copy file w/ TSO                                   [ OK ]
 TEST: GREv6/v4 - copy file w/ GSO                                   [ OK ]
 TEST: GREv6/v6 - copy file w/ TSO                                   [ OK ]
 TEST: GREv6/v6 - copy file w/ GSO                                   [ OK ]

Fixes: 025efa0a82df ("selftests: add simple GSO GRE test")
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/gre_gso.sh

index facbb0c80443966101851074c88660e5ab5c17e6..fdeb44d621eb937bafd79572a36dee25dea6b21a 100755 (executable)
@@ -116,17 +116,18 @@ gre_gst_test_checks()
 {
        local name=$1
        local addr=$2
+       local proto=$3
 
-       $NS_EXEC nc -kl $port >/dev/null &
+       $NS_EXEC nc $proto -kl $port >/dev/null &
        PID=$!
        while ! $NS_EXEC ss -ltn | grep -q $port; do ((i++)); sleep 0.01; done
 
-       cat $TMPFILE | timeout 1 nc $addr $port
+       cat $TMPFILE | timeout 1 nc $proto -N $addr $port
        log_test $? 0 "$name - copy file w/ TSO"
 
        ethtool -K veth0 tso off
 
-       cat $TMPFILE | timeout 1 nc $addr $port
+       cat $TMPFILE | timeout 1 nc $proto -N $addr $port
        log_test $? 0 "$name - copy file w/ GSO"
 
        ethtool -K veth0 tso on
@@ -155,7 +156,7 @@ gre6_gso_test()
        sleep 2
 
        gre_gst_test_checks GREv6/v4 172.16.2.2
-       gre_gst_test_checks GREv6/v6 2001:db8:1::2
+       gre_gst_test_checks GREv6/v6 2001:db8:1::2 -6
 
        cleanup
 }