linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leonard Crestez <cdleonard@gmail.com>
To: Jakub Kicinski <kuba@kernel.org>, Shuah Khan <shuah@kernel.org>,
	David Ahern <dsahern@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>,
	Ido Schimmel <idosch@nvidia.com>,
	Seth David Schoen <schoen@loyalty.org>,
	netdev@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 04/11] selftests: net/fcnal: Use accept_dad=0 to avoid setup sleep
Date: Wed,  6 Oct 2021 14:47:20 +0300	[thread overview]
Message-ID: <9cfeec9f336bf6f5fe06309526820e9bbbc87ea3.1633520807.git.cdleonard@gmail.com> (raw)
In-Reply-To: <cover.1633520807.git.cdleonard@gmail.com>

Duplicate Address Detection makes ipv6 addresses unavailable for a short
period after adding (average about 1 second). Adding sleep statements
avoid this but since all addresses in the test environment are
controlled from the same source we can just disable DAD for the entire
namespace.

Unlike sprinkling nodad to all ipv6 address additions this also skips
DAD for link-local-addresses.

Signed-off-by: Leonard Crestez <cdleonard@gmail.com>
---
 tools/testing/selftests/net/fcnal-test.sh | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh
index 9cf05e6e0d9b..0bd60cd3bc06 100755
--- a/tools/testing/selftests/net/fcnal-test.sh
+++ b/tools/testing/selftests/net/fcnal-test.sh
@@ -357,11 +357,11 @@ create_vrf()
 	ip -netns ${ns} link set ${vrf} up
 	ip -netns ${ns} route add vrf ${vrf} unreachable default metric 8192
 	ip -netns ${ns} -6 route add vrf ${vrf} unreachable default metric 8192
 
 	ip -netns ${ns} addr add 127.0.0.1/8 dev ${vrf}
-	ip -netns ${ns} -6 addr add ::1 dev ${vrf} nodad
+	ip -netns ${ns} -6 addr add ::1 dev ${vrf}
 	if [ "${addr}" != "-" ]; then
 		ip -netns ${ns} addr add dev ${vrf} ${addr}
 	fi
 	if [ "${addr6}" != "-" ]; then
 		ip -netns ${ns} -6 addr add dev ${vrf} ${addr6}
@@ -378,10 +378,11 @@ create_ns()
 	local ns=$1
 	local addr=$2
 	local addr6=$3
 
 	ip netns add ${ns}
+	ip netns exec ${ns} sysctl -wq net.ipv6.conf.{all,default}.accept_dad=0
 
 	ip -netns ${ns} link set lo up
 	if [ "${addr}" != "-" ]; then
 		ip -netns ${ns} addr add dev lo ${addr}
 	fi
@@ -490,12 +491,10 @@ setup()
 	# tell ns-B how to get to remote addresses of ns-A
 	ip -netns ${NSB} ro add ${NSA_LO_IP}/32 via ${NSA_IP} dev ${NSB_DEV}
 	ip -netns ${NSB} ro add ${NSA_LO_IP6}/128 via ${NSA_IP6} dev ${NSB_DEV}
 
 	set +e
-
-	sleep 1
 }
 
 setup_lla_only()
 {
 	# make sure we are starting with a clean slate
@@ -520,12 +519,10 @@ setup_lla_only()
 	create_vrf ${NSA} ${VRF} ${VRF_TABLE} "-" "-"
 	ip -netns ${NSA} link set dev ${NSA_DEV} vrf ${VRF}
 	ip -netns ${NSA} link set dev ${NSA_DEV2} vrf ${VRF}
 
 	set +e
-
-	sleep 1
 }
 
 ################################################################################
 # IPv4
 
@@ -3014,11 +3011,11 @@ ipv6_udp_novrf()
 	sleep 1
 	run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
 	log_test $? 0 "UDP in - LLA to GUA"
 
 	run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
-	run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
+	run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV}
 }
 
 ipv6_udp_vrf()
 {
 	local a
@@ -3292,11 +3289,11 @@ ipv6_udp_vrf()
 	sleep 1
 	run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
 	log_test $? 0 "UDP in - LLA to GUA"
 
 	run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
-	run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
+	run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV}
 }
 
 ipv6_udp()
 {
         # should not matter, but set to known state
@@ -3742,11 +3739,11 @@ use_case_br()
 	setup_cmd ip addr del dev ${NSA_DEV} ${NSA_IP}/24
 	setup_cmd ip -6 addr del dev ${NSA_DEV} ${NSA_IP6}/64
 
 	setup_cmd ip link add br0 type bridge
 	setup_cmd ip addr add dev br0 ${NSA_IP}/24
-	setup_cmd ip -6 addr add dev br0 ${NSA_IP6}/64 nodad
+	setup_cmd ip -6 addr add dev br0 ${NSA_IP6}/64
 
 	setup_cmd ip li set ${NSA_DEV} master br0
 	setup_cmd ip li set ${NSA_DEV} up
 	setup_cmd ip li set br0 up
 	setup_cmd ip li set br0 vrf ${VRF}
@@ -3791,15 +3788,15 @@ use_case_br()
 
 	setup_cmd ip li set br0 nomaster
 	setup_cmd ip li add br0.100 link br0 type vlan id 100
 	setup_cmd ip li set br0.100 vrf ${VRF} up
 	setup_cmd ip    addr add dev br0.100 172.16.101.1/24
-	setup_cmd ip -6 addr add dev br0.100 2001:db8:101::1/64 nodad
+	setup_cmd ip -6 addr add dev br0.100 2001:db8:101::1/64
 
 	setup_cmd_nsb ip li add vlan100 link ${NSB_DEV} type vlan id 100
 	setup_cmd_nsb ip addr add dev vlan100 172.16.101.2/24
-	setup_cmd_nsb ip -6 addr add dev vlan100 2001:db8:101::2/64 nodad
+	setup_cmd_nsb ip -6 addr add dev vlan100 2001:db8:101::2/64
 	setup_cmd_nsb ip li set vlan100 up
 	sleep 1
 
 	rmmod br_netfilter 2>/dev/null
 
-- 
2.25.1


  parent reply	other threads:[~2021-10-06 11:48 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-06 11:47 [PATCH 00/11] selftests: Improve nettest and net/fcnal-test.sh Leonard Crestez
2021-10-06 11:47 ` [PATCH 01/11] selftests: net/fcnal: Fix {ipv4,ipv6}_bind not run by default Leonard Crestez
2021-10-06 14:37   ` David Ahern
2021-10-06 11:47 ` [PATCH 02/11] selftests: net/fcnal: Mark unknown -t or TESTS value as error Leonard Crestez
2021-10-06 14:37   ` David Ahern
2021-10-06 11:47 ` [PATCH 03/11] selftests: net/fcnal: Non-zero exit on failures Leonard Crestez
2021-10-06 14:37   ` David Ahern
2021-10-06 11:47 ` Leonard Crestez [this message]
2021-10-06 14:38   ` [PATCH 04/11] selftests: net/fcnal: Use accept_dad=0 to avoid setup sleep David Ahern
2021-10-06 11:47 ` [PATCH 05/11] selftests: net/fcnal: kill_procs via spin instead of sleep Leonard Crestez
2021-10-06 14:45   ` David Ahern
2021-10-06 21:16     ` Leonard Crestez
2021-10-06 11:47 ` [PATCH 06/11] selftests: net/fcnal: Do not capture do_run_cmd in verbose mode Leonard Crestez
2021-10-06 14:48   ` David Ahern
2021-10-06 11:47 ` [PATCH 07/11] selftests: nettest: Implement -k to fork after bind or listen Leonard Crestez
2021-10-06 11:47 ` [PATCH 08/11] selftests: net/fcnal: Replace sleep after server start with -k Leonard Crestez
2021-10-06 14:54   ` David Ahern
2021-10-06 21:35     ` Leonard Crestez
2021-10-07  1:22       ` David Ahern
2021-11-10 13:54         ` Leonard Crestez
2021-10-06 11:47 ` [PATCH 09/11] selftests: nettest: Convert timeout to miliseconds Leonard Crestez
2021-10-06 14:56   ` David Ahern
2021-10-06 11:47 ` [PATCH 10/11] selftests: nettest: Add NETTEST_CLIENT,SERVER}_TIMEOUT envvars Leonard Crestez
2021-10-06 14:59   ` David Ahern
2021-10-06 11:47 ` [PATCH 11/11] selftests: net/fcnal: Reduce client timeout Leonard Crestez
2021-10-06 15:01   ` David Ahern
2021-10-06 21:26     ` Leonard Crestez
2021-10-07  1:17       ` David Ahern
2021-10-07 20:52         ` Leonard Crestez
2021-10-08  3:01           ` David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9cfeec9f336bf6f5fe06309526820e9bbbc87ea3.1633520807.git.cdleonard@gmail.com \
    --to=cdleonard@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=schoen@loyalty.org \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).