selftests: net: switch to socat in the GSO GRE test

Commit a985442fde ("selftests: net: properly support IPv6 in GSO GRE test")
is not compatible with:

  Ncat: Version 7.80 ( https://nmap.org/ncat )

(which is distributed with Fedora/Red Hat), tests fail with:

  nc: invalid option -- 'N'

Let's switch to socat which is far more dependable.

Fixes: 025efa0a82 ("selftests: add simple GSO GRE test")
Fixes: a985442fde ("selftests: net: properly support IPv6 in GSO GRE test")
Tested-by: Andrea Righi <andrea.righi@canonical.com>
Link: https://lore.kernel.org/r/20211111162929.530470-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski 2021-11-11 08:29:29 -08:00
parent 87530779de
commit 0cda7d4bac

View File

@ -118,16 +118,18 @@ gre_gst_test_checks()
local addr=$2
local proto=$3
$NS_EXEC nc $proto -kl $port >/dev/null &
[ "$proto" == 6 ] && addr="[$addr]"
$NS_EXEC socat - tcp${proto}-listen:$port,reuseaddr,fork >/dev/null &
PID=$!
while ! $NS_EXEC ss -ltn | grep -q $port; do ((i++)); sleep 0.01; done
cat $TMPFILE | timeout 1 nc $proto -N $addr $port
cat $TMPFILE | timeout 1 socat -u STDIN TCP:$addr:$port
log_test $? 0 "$name - copy file w/ TSO"
ethtool -K veth0 tso off
cat $TMPFILE | timeout 1 nc $proto -N $addr $port
cat $TMPFILE | timeout 1 socat -u STDIN TCP:$addr:$port
log_test $? 0 "$name - copy file w/ GSO"
ethtool -K veth0 tso on
@ -155,8 +157,8 @@ 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 -6
gre_gst_test_checks GREv6/v4 172.16.2.2 4
gre_gst_test_checks GREv6/v6 2001:db8:1::2 6
cleanup
}
@ -212,8 +214,8 @@ if [ ! -x "$(command -v ip)" ]; then
exit $ksft_skip
fi
if [ ! -x "$(command -v nc)" ]; then
echo "SKIP: Could not run test without nc tool"
if [ ! -x "$(command -v socat)" ]; then
echo "SKIP: Could not run test without socat tool"
exit $ksft_skip
fi