diff mbox series

[net] selftests: test_bridge_neigh_suppress.sh: Try to stabilize test

Message ID 20240505145412.1235257-1-idosch@nvidia.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [net] selftests: test_bridge_neigh_suppress.sh: Try to stabilize test | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 8 this patch: 8
netdev/build_tools success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers warning 2 maintainers not CCed: shuah@kernel.org linux-kselftest@vger.kernel.org
netdev/build_clang success Errors and warnings before: 8 this patch: 8
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success net selftest script(s) already in Makefile
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 8 this patch: 8
netdev/checkpatch warning WARNING: line length of 85 exceeds 80 columns WARNING: line length of 86 exceeds 80 columns WARNING: line length of 88 exceeds 80 columns WARNING: line length of 89 exceeds 80 columns
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-05-05--18-00 (tests: 1002)

Commit Message

Ido Schimmel May 5, 2024, 2:54 p.m. UTC
The arping and ndisc6 test cases sometimes pass on non-debug kernels
[1], but fail on debug kernels [2] even when it is the same branch that
is being tested in the netdev CI.

These are the only test cases that are unstable and the only ones that
use a timeout. Therefore, my only theory is that the timeout is too
short although it is currently set to 5 seconds.

Try to stabilize these test cases by using a timeout of 20 seconds.

[1]
 # Per-port ARP suppression - VLAN 10
 # ----------------------------------
 # TEST: arping                                                        [ OK ]
 # TEST: ARP suppression                                               [ OK ]
 # TEST: "neigh_suppress" is on                                        [ OK ]
 # TEST: arping                                                        [ OK ]
 # TEST: ARP suppression                                               [ OK ]

[2]
 # Per-port ARP suppression - VLAN 10
 # ----------------------------------
 # TEST: arping                                                        [FAIL]
 # TEST: ARP suppression                                               [ OK ]
 # TEST: "neigh_suppress" is on                                        [ OK ]
 # TEST: arping                                                        [FAIL]
 # TEST: ARP suppression                                               [ OK ]

Reported-by: Jakub Kicinski <kuba@kernel.org>
Closes: https://lore.kernel.org/netdev/20240426074015.251854d4@kernel.org/
Fixes: 7648ac72dcd7 ("selftests: net: Add bridge neighbor suppression test")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
I'm unable to reproduce these failures locally. Tried with both regular
and debug configs. Let's wait for the CI results and see if this patch
helps.
---
 .../net/test_bridge_neigh_suppress.sh         | 72 +++++++++----------
 1 file changed, 36 insertions(+), 36 deletions(-)

Comments

Ido Schimmel May 6, 2024, 8:08 a.m. UTC | #1
On Sun, May 05, 2024 at 05:54:12PM +0300, Ido Schimmel wrote:
> The arping and ndisc6 test cases sometimes pass on non-debug kernels
> [1], but fail on debug kernels [2] even when it is the same branch that
> is being tested in the netdev CI.
> 
> These are the only test cases that are unstable and the only ones that
> use a timeout. Therefore, my only theory is that the timeout is too
> short although it is currently set to 5 seconds.
> 
> Try to stabilize these test cases by using a timeout of 20 seconds.
> 
> [1]
>  # Per-port ARP suppression - VLAN 10
>  # ----------------------------------
>  # TEST: arping                                                        [ OK ]
>  # TEST: ARP suppression                                               [ OK ]
>  # TEST: "neigh_suppress" is on                                        [ OK ]
>  # TEST: arping                                                        [ OK ]
>  # TEST: ARP suppression                                               [ OK ]
> 
> [2]
>  # Per-port ARP suppression - VLAN 10
>  # ----------------------------------
>  # TEST: arping                                                        [FAIL]
>  # TEST: ARP suppression                                               [ OK ]
>  # TEST: "neigh_suppress" is on                                        [ OK ]
>  # TEST: arping                                                        [FAIL]
>  # TEST: ARP suppression                                               [ OK ]
> 
> Reported-by: Jakub Kicinski <kuba@kernel.org>
> Closes: https://lore.kernel.org/netdev/20240426074015.251854d4@kernel.org/
> Fixes: 7648ac72dcd7 ("selftests: net: Add bridge neighbor suppression test")
> Signed-off-by: Ido Schimmel <idosch@nvidia.com>
> ---
> I'm unable to reproduce these failures locally. Tried with both regular
> and debug configs. Let's wait for the CI results and see if this patch
> helps.
> ---

Checked the results. Looks like it didn't help. Don't have other ideas
at the moment.

pw-bot: changes-requested
Jakub Kicinski May 6, 2024, 1:36 p.m. UTC | #2
On Sun, 5 May 2024 17:54:12 +0300 Ido Schimmel wrote:
> I'm unable to reproduce these failures locally. 

:(

Maybe version of the tools makes a difference somehow?

ndisc6$ git log --oneline -1
92e5d1c (HEAD -> master, tag: v1.0.8) Resync PO files
iputils$ git log --oneline -1
1c08152 (HEAD -> master) ping: Refactor socket mark failure handling
Ido Schimmel May 7, 2024, 10:58 a.m. UTC | #3
On Mon, May 06, 2024 at 06:36:13AM -0700, Jakub Kicinski wrote:
> On Sun, 5 May 2024 17:54:12 +0300 Ido Schimmel wrote:
> > I'm unable to reproduce these failures locally. 
> 
> :(

tl;dr - I was able to reproduce the issue (hopefully the same one as in
the CI) and will post a fix soon.

I woke in the middle of the night and for some reason it occurred to me
that the problem might be related to the MACAddressPolicy=persistent
nonsense that systemd made the default since version 242 [1].

The test creates the veth pairs in the initial network namespace before
moving them to one of the namespaces created by the test. Since they are
created in the same namespace and with the same name, udev will assign
them the same MAC address which breaks bridging.

The reason I couldn't initially reproduce the issue is that long ago I
added the following snippet [2] to the kickstart file with which we
install Fedora on our machines.

[1] https://lore.kernel.org/netdev/20200416095314.0a1dff38@strong.id.au/

[2]
# Prevent systemd from changing MAC addresses
%post
cat > /etc/systemd/network/10-ignore.link << EOL
[Match]
OriginalName=*

[Link]
MACAddressPolicy=none
EOL
%end
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/test_bridge_neigh_suppress.sh b/tools/testing/selftests/net/test_bridge_neigh_suppress.sh
index 8533393a4f18..83d3e2286e22 100755
--- a/tools/testing/selftests/net/test_bridge_neigh_suppress.sh
+++ b/tools/testing/selftests/net/test_bridge_neigh_suppress.sh
@@ -310,7 +310,7 @@  neigh_suppress_arp_common()
 
 	# Initial state - check that ARP requests are not suppressed and that
 	# ARP replies are received.
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
 	log_test $? 0 "ARP suppression"
@@ -321,7 +321,7 @@  neigh_suppress_arp_common()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 2
 	log_test $? 0 "ARP suppression"
@@ -332,7 +332,7 @@  neigh_suppress_arp_common()
 	run_cmd "bridge -n $sw1 fdb replace $h2_mac dev vx0 master static vlan $vid"
 	log_test $? 0 "FDB entry installation"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "ARP suppression"
@@ -342,7 +342,7 @@  neigh_suppress_arp_common()
 	run_cmd "ip -n $sw1 neigh replace $tip lladdr $h2_mac nud permanent dev br0.$vid"
 	log_test $? 0 "Neighbor entry installation"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "ARP suppression"
@@ -352,7 +352,7 @@  neigh_suppress_arp_common()
 	run_cmd "ip -n $h2 link set dev eth0.$vid down"
 	log_test $? 0 "H2 down"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "ARP suppression"
@@ -366,7 +366,7 @@  neigh_suppress_arp_common()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip -I eth0.$vid $tip"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip -I eth0.$vid $tip"
 	log_test $? 0 "arping"
 	tc_check_packets $sw1 "dev vx0 egress" 101 4
 	log_test $? 0 "ARP suppression"
@@ -413,7 +413,7 @@  neigh_suppress_ns_common()
 
 	# Initial state - check that NS messages are not suppressed and that ND
 	# messages are received.
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
 	log_test $? 0 "NS suppression"
@@ -424,7 +424,7 @@  neigh_suppress_ns_common()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 2
 	log_test $? 0 "NS suppression"
@@ -435,7 +435,7 @@  neigh_suppress_ns_common()
 	run_cmd "bridge -n $sw1 fdb replace $h2_mac dev vx0 master static vlan $vid"
 	log_test $? 0 "FDB entry installation"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "NS suppression"
@@ -445,7 +445,7 @@  neigh_suppress_ns_common()
 	run_cmd "ip -n $sw1 neigh replace $daddr lladdr $h2_mac nud permanent dev br0.$vid"
 	log_test $? 0 "Neighbor entry installation"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "NS suppression"
@@ -455,7 +455,7 @@  neigh_suppress_ns_common()
 	run_cmd "ip -n $h2 link set dev eth0.$vid down"
 	log_test $? 0 "H2 down"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 3
 	log_test $? 0 "NS suppression"
@@ -469,7 +469,7 @@  neigh_suppress_ns_common()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 5000 $daddr eth0.$vid"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr -w 20000 $daddr eth0.$vid"
 	log_test $? 0 "ndisc6"
 	tc_check_packets $sw1 "dev vx0 egress" 101 4
 	log_test $? 0 "NS suppression"
@@ -534,9 +534,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_vlan_suppress on\""
 	log_test $? 0 "\"neigh_vlan_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -552,9 +552,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d vlan show dev vx0 vid $vid2 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off (VLAN $vid2)"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -568,9 +568,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -584,9 +584,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -600,9 +600,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d vlan show dev vx0 vid $vid1 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off (VLAN $vid1)"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 2
@@ -621,9 +621,9 @@  neigh_vlan_suppress_arp()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip1 -I eth0.$vid1 $tip1"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip1 -I eth0.$vid1 $tip1"
 	log_test $? 0 "arping (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 5 -s $sip2 -I eth0.$vid2 $tip2"
+	run_cmd "ip netns exec $h1 arping -q -b -c 1 -w 20 -s $sip2 -I eth0.$vid2 $tip2"
 	log_test $? 0 "arping (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 2
@@ -665,9 +665,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_vlan_suppress on\""
 	log_test $? 0 "\"neigh_vlan_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -683,9 +683,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d vlan show dev vx0 vid $vid2 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off (VLAN $vid2)"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -699,9 +699,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -715,9 +715,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 1
@@ -731,9 +731,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d vlan show dev vx0 vid $vid1 | grep \"neigh_suppress off\""
 	log_test $? 0 "\"neigh_suppress\" is off (VLAN $vid1)"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 2
@@ -752,9 +752,9 @@  neigh_vlan_suppress_ns()
 	run_cmd "bridge -n $sw1 -d link show dev vx0 | grep \"neigh_suppress on\""
 	log_test $? 0 "\"neigh_suppress\" is on"
 
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 5000 $daddr1 eth0.$vid1"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr1 -w 20000 $daddr1 eth0.$vid1"
 	log_test $? 0 "ndisc6 (VLAN $vid1)"
-	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 5000 $daddr2 eth0.$vid2"
+	run_cmd "ip netns exec $h1 ndisc6 -q -r 1 -s $saddr2 -w 20000 $daddr2 eth0.$vid2"
 	log_test $? 0 "ndisc6 (VLAN $vid2)"
 
 	tc_check_packets $sw1 "dev vx0 egress" 101 2