lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 11 Nov 2021 07:20:48 -0800
From:   Jakub Kicinski <kuba@...nel.org>
To:     Andrea Righi <andrea.righi@...onical.com>
Cc:     Shuah Khan <shuah@...nel.org>,
        "David S . Miller" <davem@...emloft.net>,
        linux-kselftest@...r.kernel.org, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] selftests: net: properly support IPv6 in GSO GRE test

On Thu,  4 Nov 2021 11:46:13 +0100 Andrea Righi wrote:
> 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@...onical.com>

This breaks the test for me on Fedora now :(

nc: invalid option -- 'N'
Ncat: Try `--help' or man(1) ncat for more information, usage options and help. QUITTING.
    TEST: GREv6/v4 - copy file w/ TSO                                   [FAIL]
nc: invalid option -- 'N'
Ncat: Try `--help' or man(1) ncat for more information, usage options and help. QUITTING.
    TEST: GREv6/v4 - copy file w/ GSO                                   [FAIL]
nc: invalid option -- 'N'
Ncat: Try `--help' or man(1) ncat for more information, usage options and help. QUITTING.
    TEST: GREv6/v6 - copy file w/ TSO                                   [FAIL]
nc: invalid option -- 'N'
Ncat: Try `--help' or man(1) ncat for more information, usage options and help. QUITTING.
    TEST: GREv6/v6 - copy file w/ GSO                                   [FAIL]

Tests passed:   0
Tests failed:   4


Can you please test this on your distro?

--->8-----

diff --git a/tools/testing/selftests/net/gre_gso.sh b/tools/testing/selftests/net/gre_gso.sh
index fdeb44d621eb..3224651db97b 100755
--- a/tools/testing/selftests/net/gre_gso.sh
+++ b/tools/testing/selftests/net/gre_gso.sh
@@ -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
 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ