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-next>] [day] [month] [year] [list]
Message-ID: <20250217174908.1157168-1-pablmart@redhat.com>
Date: Mon, 17 Feb 2025 18:49:08 +0100
From: Pablo Martin Medrano <pablmart@...hat.com>
To: netdev@...r.kernel.org
Cc: "David S . Miller" <davem@...emloft.net>,
	Eric Dumazet <edumazet@...gle.com>,
	Jakub Kicinski <kuba@...nel.org>,
	Paolo Abeni <pabeni@...hat.com>,
	Simon Horman <horms@...nel.org>,
	Shuah Khan <shuah@...nel.org>,
	pablmart@...hat.com
Subject: [PATCH net] selftests/net: big_tcp: make ipv6 testing optional

Allow to run this test where IPV6 has not been configured.
---
 tools/testing/selftests/net/big_tcp.sh | 42 +++++++++++++++++++-------
 1 file changed, 31 insertions(+), 11 deletions(-)

diff --git a/tools/testing/selftests/net/big_tcp.sh b/tools/testing/selftests/net/big_tcp.sh
index 2db9d15cd45f..476ad882c1bd 100755
--- a/tools/testing/selftests/net/big_tcp.sh
+++ b/tools/testing/selftests/net/big_tcp.sh
@@ -21,6 +21,8 @@ CLIENT_GW6="2001:db8:1::2"
 MAX_SIZE=128000
 CHK_SIZE=65535
 
+ipv6=true
+
 # Kselftest framework requirement - SKIP code is 4.
 ksft_skip=4
 
@@ -34,9 +36,9 @@ setup() {
 	ip -net $CLIENT_NS link set link0 up
 	ip -net $CLIENT_NS link set link0 mtu 1442
 	ip -net $CLIENT_NS addr add $CLIENT_IP4/24 dev link0
-	ip -net $CLIENT_NS addr add $CLIENT_IP6/64 dev link0 nodad
+	$ipv6 && ip -net $CLIENT_NS addr add $CLIENT_IP6/64 dev link0 nodad
 	ip -net $CLIENT_NS route add $SERVER_IP4 dev link0 via $CLIENT_GW4
-	ip -net $CLIENT_NS route add $SERVER_IP6 dev link0 via $CLIENT_GW6
+	$ipv6 && ip -net $CLIENT_NS route add $SERVER_IP6 dev link0 via $CLIENT_GW6
 	ip -net $CLIENT_NS link set dev link0 \
 		gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
 	ip -net $CLIENT_NS link set dev link0 \
@@ -46,9 +48,9 @@ setup() {
 	ip -net $ROUTER_NS link set link1 up
 	ip -net $ROUTER_NS link set link2 up
 	ip -net $ROUTER_NS addr add $CLIENT_GW4/24 dev link1
-	ip -net $ROUTER_NS addr add $CLIENT_GW6/64 dev link1 nodad
+	$ipv6 && ip -net $ROUTER_NS addr add $CLIENT_GW6/64 dev link1 nodad
 	ip -net $ROUTER_NS addr add $SERVER_GW4/24 dev link2
-	ip -net $ROUTER_NS addr add $SERVER_GW6/64 dev link2 nodad
+	$ipv6 && ip -net $ROUTER_NS addr add $SERVER_GW6/64 dev link2 nodad
 	ip -net $ROUTER_NS link set dev link1 \
 		gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
 	ip -net $ROUTER_NS link set dev link2 \
@@ -61,16 +63,16 @@ setup() {
 	ip net exec $ROUTER_NS tc qdisc add dev link1 ingress
 	ip net exec $ROUTER_NS tc filter add dev link1 ingress \
 		proto ip flower ip_proto tcp action ct
-	ip net exec $ROUTER_NS tc filter add dev link1 ingress \
-		proto ipv6 flower ip_proto tcp action ct
+	$ipv6 && ip net exec $ROUTER_NS tc filter add dev link1 ingress \
+			proto ipv6 flower ip_proto tcp action ct
 	ip net exec $ROUTER_NS sysctl -wq net.ipv4.ip_forward=1
-	ip net exec $ROUTER_NS sysctl -wq net.ipv6.conf.all.forwarding=1
+	$ipv6 && ip net exec $ROUTER_NS sysctl -wq net.ipv6.conf.all.forwarding=1
 
 	ip -net $SERVER_NS link set link3 up
 	ip -net $SERVER_NS addr add $SERVER_IP4/24 dev link3
-	ip -net $SERVER_NS addr add $SERVER_IP6/64 dev link3 nodad
+	$ipv6 && ip -net $SERVER_NS addr add $SERVER_IP6/64 dev link3 nodad
 	ip -net $SERVER_NS route add $CLIENT_IP4 dev link3 via $SERVER_GW4
-	ip -net $SERVER_NS route add $CLIENT_IP6 dev link3 via $SERVER_GW6
+	$ipv6 && ip -net $SERVER_NS route add $CLIENT_IP6 dev link3 via $SERVER_GW6
 	ip -net $SERVER_NS link set dev link3 \
 		gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
 	ip -net $SERVER_NS link set dev link3 \
@@ -165,6 +167,24 @@ testup() {
 	do_test "off" "on"  "off" "on"
 }
 
+usage() {
+	echo "Usage: $0 [ -4 ]"
+	echo -e "\t-4: IPv4 only: disable IPv6 tests (default: test both IPv4 and IPv6)"
+}
+
+optstring="h4"
+while getopts "$optstring" option;do
+	case "$option" in
+	"h")
+		usage $0
+		exit ${KSFT_PASS}
+		;;
+	"4")
+		ipv6=false
+		;;
+	esac
+done
+
 if ! netperf -V &> /dev/null; then
 	echo "SKIP: Could not run test without netperf tool"
 	exit $ksft_skip
@@ -177,6 +197,6 @@ fi
 
 trap cleanup EXIT
 setup && echo "Testing for BIG TCP:" && \
-NF=4 testup && echo "***v4 Tests Done***" && \
-NF=6 testup && echo "***v6 Tests Done***"
+NF=4 testup && echo "***v4 Tests Done***" || exit $?
+$ipv6 && NF=6 testup && echo "***v6 Tests Done***"
 exit $?
-- 
2.48.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ