selftests: net: properly support IPv6 in GSO GRE test

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: 025efa0a82 ("selftests: add simple GSO GRE test")
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Andrea Righi 2021-11-04 11:46:13 +01:00 committed by David S. Miller
parent 92f62485b3
commit a985442fde

View File

@ -116,17 +116,18 @@ gre_gst_test_checks()
{ {
local name=$1 local name=$1
local addr=$2 local addr=$2
local proto=$3
$NS_EXEC nc -kl $port >/dev/null & $NS_EXEC nc $proto -kl $port >/dev/null &
PID=$! PID=$!
while ! $NS_EXEC ss -ltn | grep -q $port; do ((i++)); sleep 0.01; done 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" log_test $? 0 "$name - copy file w/ TSO"
ethtool -K veth0 tso off 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" log_test $? 0 "$name - copy file w/ GSO"
ethtool -K veth0 tso on ethtool -K veth0 tso on
@ -155,7 +156,7 @@ gre6_gso_test()
sleep 2 sleep 2
gre_gst_test_checks GREv6/v4 172.16.2.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 cleanup
} }