All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/4] selftests: forwarding: Various fixes
@ 2024-02-08 15:55 Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 1/4] selftests: forwarding: Fix layer 2 miss test flakiness Ido Schimmel
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Ido Schimmel @ 2024-02-08 15:55 UTC (permalink / raw)
  To: netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, razor, liuhangbin,
	Ido Schimmel

Fix various problems in the forwarding selftests so that they will pass
in the netdev CI instead of being ignored. See commit messages for
details.

Ido Schimmel (4):
  selftests: forwarding: Fix layer 2 miss test flakiness
  selftests: forwarding: Fix bridge MDB test flakiness
  selftests: forwarding: Suppress grep warnings
  selftests: forwarding: Fix bridge locked port test flakiness

 .../selftests/net/forwarding/bridge_locked_port.sh |  4 ++--
 .../testing/selftests/net/forwarding/bridge_mdb.sh | 14 +++++++++-----
 .../selftests/net/forwarding/tc_flower_l2_miss.sh  |  8 ++++++--
 3 files changed, 17 insertions(+), 9 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH net 1/4] selftests: forwarding: Fix layer 2 miss test flakiness
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
@ 2024-02-08 15:55 ` Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 2/4] selftests: forwarding: Fix bridge MDB " Ido Schimmel
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Ido Schimmel @ 2024-02-08 15:55 UTC (permalink / raw)
  To: netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, razor, liuhangbin,
	Ido Schimmel

After enabling a multicast querier on the bridge (like the test is
doing), the bridge will wait for the Max Response Delay before starting
to forward according to its MDB in order to let Membership Reports
enough time to be received and processed.

Currently, the test is waiting for exactly the default Max Response
Delay (10 seconds) which is racy and leads to failures [1].

Fix by reducing the Max Response Delay to 1 second.

[1]
 [...]
 # TEST: L2 miss - Multicast (IPv4)                                    [FAIL]
 # Unregistered multicast filter was hit after adding MDB entry

Fixes: 8c33266ae26a ("selftests: forwarding: Add layer 2 miss test cases")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 .../testing/selftests/net/forwarding/tc_flower_l2_miss.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh b/tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh
index 20a7cb7222b8..c2420bb72c12 100755
--- a/tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh
+++ b/tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh
@@ -209,14 +209,17 @@ test_l2_miss_multicast()
 	# both registered and unregistered multicast traffic.
 	bridge link set dev $swp2 mcast_router 2
 
+	# Set the Max Response Delay to 100 centiseconds (1 second) so that the
+	# bridge will start forwarding according to its MDB soon after a
+	# multicast querier is enabled.
+	ip link set dev br1 type bridge mcast_query_response_interval 100
+
 	# Forwarding according to MDB entries only takes place when the bridge
 	# detects that there is a valid querier in the network. Set the bridge
 	# as the querier and assign it a valid IPv6 link-local address to be
 	# used as the source address for MLD queries.
 	ip link set dev br1 type bridge mcast_querier 1
 	ip -6 address add fe80::1/64 nodad dev br1
-	# Wait the default Query Response Interval (10 seconds) for the bridge
-	# to determine that there are no other queriers in the network.
 	sleep 10
 
 	test_l2_miss_multicast_ipv4
@@ -224,6 +227,7 @@ test_l2_miss_multicast()
 
 	ip -6 address del fe80::1/64 dev br1
 	ip link set dev br1 type bridge mcast_querier 0
+	ip link set dev br1 type bridge mcast_query_response_interval 1000
 	bridge link set dev $swp2 mcast_router 1
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net 2/4] selftests: forwarding: Fix bridge MDB test flakiness
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 1/4] selftests: forwarding: Fix layer 2 miss test flakiness Ido Schimmel
@ 2024-02-08 15:55 ` Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 3/4] selftests: forwarding: Suppress grep warnings Ido Schimmel
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Ido Schimmel @ 2024-02-08 15:55 UTC (permalink / raw)
  To: netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, razor, liuhangbin,
	Ido Schimmel

After enabling a multicast querier on the bridge (like the test is
doing), the bridge will wait for the Max Response Delay before starting
to forward according to its MDB in order to let Membership Reports
enough time to be received and processed.

Currently, the test is waiting for exactly the default Max Response
Delay (10 seconds) which is racy and leads to failures [1].

Fix by reducing the Max Response Delay to 1 second.

[1]
 [...]
 # TEST: IPv4 host entries forwarding tests                            [FAIL]
 # Packet locally received after flood

Fixes: b6d00da08610 ("selftests: forwarding: Add bridge MDB test")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 tools/testing/selftests/net/forwarding/bridge_mdb.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb.sh b/tools/testing/selftests/net/forwarding/bridge_mdb.sh
index 61348f71728c..f94bfb6f45ec 100755
--- a/tools/testing/selftests/net/forwarding/bridge_mdb.sh
+++ b/tools/testing/selftests/net/forwarding/bridge_mdb.sh
@@ -1252,14 +1252,17 @@ fwd_test()
 	echo
 	log_info "# Forwarding tests"
 
+	# Set the Max Response Delay to 100 centiseconds (1 second) so that the
+	# bridge will start forwarding according to its MDB soon after a
+	# multicast querier is enabled.
+	ip link set dev br0 type bridge mcast_query_response_interval 100
+
 	# Forwarding according to MDB entries only takes place when the bridge
 	# detects that there is a valid querier in the network. Set the bridge
 	# as the querier and assign it a valid IPv6 link-local address to be
 	# used as the source address for MLD queries.
 	ip -6 address add fe80::1/64 nodad dev br0
 	ip link set dev br0 type bridge mcast_querier 1
-	# Wait the default Query Response Interval (10 seconds) for the bridge
-	# to determine that there are no other queriers in the network.
 	sleep 10
 
 	fwd_test_host
@@ -1267,6 +1270,7 @@ fwd_test()
 
 	ip link set dev br0 type bridge mcast_querier 0
 	ip -6 address del fe80::1/64 dev br0
+	ip link set dev br0 type bridge mcast_query_response_interval 1000
 }
 
 ctrl_igmpv3_is_in_test()
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net 3/4] selftests: forwarding: Suppress grep warnings
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 1/4] selftests: forwarding: Fix layer 2 miss test flakiness Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 2/4] selftests: forwarding: Fix bridge MDB " Ido Schimmel
@ 2024-02-08 15:55 ` Ido Schimmel
  2024-02-08 15:55 ` [PATCH net 4/4] selftests: forwarding: Fix bridge locked port test flakiness Ido Schimmel
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Ido Schimmel @ 2024-02-08 15:55 UTC (permalink / raw)
  To: netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, razor, liuhangbin,
	Ido Schimmel

Suppress the following grep warnings:

[...]
INFO: # Port group entries configuration tests - (*, G)
TEST: Common port group entries configuration tests (IPv4 (*, G))   [ OK ]
TEST: Common port group entries configuration tests (IPv6 (*, G))   [ OK ]
grep: warning: stray \ before /
grep: warning: stray \ before /
grep: warning: stray \ before /
TEST: IPv4 (*, G) port group entries configuration tests            [ OK ]
grep: warning: stray \ before /
grep: warning: stray \ before /
grep: warning: stray \ before /
TEST: IPv6 (*, G) port group entries configuration tests            [ OK ]
[...]

They do not fail the test, but do clutter the output.

Fixes: b6d00da08610 ("selftests: forwarding: Add bridge MDB test")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 tools/testing/selftests/net/forwarding/bridge_mdb.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb.sh b/tools/testing/selftests/net/forwarding/bridge_mdb.sh
index f94bfb6f45ec..d9d587454d20 100755
--- a/tools/testing/selftests/net/forwarding/bridge_mdb.sh
+++ b/tools/testing/selftests/net/forwarding/bridge_mdb.sh
@@ -329,7 +329,7 @@ __cfg_test_port_ip_star_g()
 
 	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
 	check_err $? "(*, G) \"permanent\" entry has a pending group timer"
-	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
+	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "/0.00"
 	check_err $? "\"permanent\" source entry has a pending source timer"
 
 	bridge mdb del dev br0 port $swp1 grp $grp vid 10
@@ -346,7 +346,7 @@ __cfg_test_port_ip_star_g()
 
 	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
 	check_fail $? "(*, G) EXCLUDE entry does not have a pending group timer"
-	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
+	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "/0.00"
 	check_err $? "\"blocked\" source entry has a pending source timer"
 
 	bridge mdb del dev br0 port $swp1 grp $grp vid 10
@@ -363,7 +363,7 @@ __cfg_test_port_ip_star_g()
 
 	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
 	check_err $? "(*, G) INCLUDE entry has a pending group timer"
-	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
+	bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "/0.00"
 	check_fail $? "Source entry does not have a pending source timer"
 
 	bridge mdb del dev br0 port $swp1 grp $grp vid 10
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net 4/4] selftests: forwarding: Fix bridge locked port test flakiness
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
                   ` (2 preceding siblings ...)
  2024-02-08 15:55 ` [PATCH net 3/4] selftests: forwarding: Suppress grep warnings Ido Schimmel
@ 2024-02-08 15:55 ` Ido Schimmel
  2024-02-09  8:56 ` [PATCH net 0/4] selftests: forwarding: Various fixes Hangbin Liu
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Ido Schimmel @ 2024-02-08 15:55 UTC (permalink / raw)
  To: netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, razor, liuhangbin,
	Ido Schimmel

The redirection test case fails in the netdev CI on debug kernels
because an FDB entry is learned despite the presence of a tc filter that
redirects incoming traffic [1].

I am unable to reproduce the failure locally, but I can see how it can
happen given that learning is first enabled and only then the ingress tc
filter is configured. On debug kernels the time window between these two
operations is longer compared to regular kernels, allowing random
packets to be transmitted and trigger learning.

Fix by reversing the order and configure the ingress tc filter before
enabling learning.

[1]
[...]
 # TEST: Locked port MAB redirect                                      [FAIL]
 # Locked entry created for redirected traffic

Fixes: 38c43a1ce758 ("selftests: forwarding: Add test case for traffic redirection from a locked port")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 tools/testing/selftests/net/forwarding/bridge_locked_port.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/forwarding/bridge_locked_port.sh b/tools/testing/selftests/net/forwarding/bridge_locked_port.sh
index 9af9f6964808..c62331b2e006 100755
--- a/tools/testing/selftests/net/forwarding/bridge_locked_port.sh
+++ b/tools/testing/selftests/net/forwarding/bridge_locked_port.sh
@@ -327,10 +327,10 @@ locked_port_mab_redirect()
 	RET=0
 	check_port_mab_support || return 0
 
-	bridge link set dev $swp1 learning on locked on mab on
 	tc qdisc add dev $swp1 clsact
 	tc filter add dev $swp1 ingress protocol all pref 1 handle 101 flower \
 		action mirred egress redirect dev $swp2
+	bridge link set dev $swp1 learning on locked on mab on
 
 	ping_do $h1 192.0.2.2
 	check_err $? "Ping did not work with redirection"
@@ -349,8 +349,8 @@ locked_port_mab_redirect()
 	check_err $? "Locked entry not created after deleting filter"
 
 	bridge fdb del `mac_get $h1` vlan 1 dev $swp1 master
-	tc qdisc del dev $swp1 clsact
 	bridge link set dev $swp1 learning off locked off mab off
+	tc qdisc del dev $swp1 clsact
 
 	log_test "Locked port MAB redirect"
 }
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH net 0/4] selftests: forwarding: Various fixes
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
                   ` (3 preceding siblings ...)
  2024-02-08 15:55 ` [PATCH net 4/4] selftests: forwarding: Fix bridge locked port test flakiness Ido Schimmel
@ 2024-02-09  8:56 ` Hangbin Liu
  2024-02-09 10:39 ` Nikolay Aleksandrov
  2024-02-09 19:40 ` patchwork-bot+netdevbpf
  6 siblings, 0 replies; 8+ messages in thread
From: Hangbin Liu @ 2024-02-09  8:56 UTC (permalink / raw)
  To: Ido Schimmel
  Cc: netdev, linux-kselftest, davem, kuba, pabeni, edumazet, shuah,
	petrm, razor

On Thu, Feb 08, 2024 at 05:55:25PM +0200, Ido Schimmel wrote:
> Fix various problems in the forwarding selftests so that they will pass
> in the netdev CI instead of being ignored. See commit messages for
> details.
> 
> Ido Schimmel (4):
>   selftests: forwarding: Fix layer 2 miss test flakiness
>   selftests: forwarding: Fix bridge MDB test flakiness
>   selftests: forwarding: Suppress grep warnings
>   selftests: forwarding: Fix bridge locked port test flakiness
> 
>  .../selftests/net/forwarding/bridge_locked_port.sh |  4 ++--
>  .../testing/selftests/net/forwarding/bridge_mdb.sh | 14 +++++++++-----
>  .../selftests/net/forwarding/tc_flower_l2_miss.sh  |  8 ++++++--
>  3 files changed, 17 insertions(+), 9 deletions(-)
> 
> -- 
> 2.43.0
> 

Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net 0/4] selftests: forwarding: Various fixes
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
                   ` (4 preceding siblings ...)
  2024-02-09  8:56 ` [PATCH net 0/4] selftests: forwarding: Various fixes Hangbin Liu
@ 2024-02-09 10:39 ` Nikolay Aleksandrov
  2024-02-09 19:40 ` patchwork-bot+netdevbpf
  6 siblings, 0 replies; 8+ messages in thread
From: Nikolay Aleksandrov @ 2024-02-09 10:39 UTC (permalink / raw)
  To: Ido Schimmel, netdev, linux-kselftest
  Cc: davem, kuba, pabeni, edumazet, shuah, petrm, liuhangbin

On 2/8/24 17:55, Ido Schimmel wrote:
> Fix various problems in the forwarding selftests so that they will pass
> in the netdev CI instead of being ignored. See commit messages for
> details.
> 
> Ido Schimmel (4):
>    selftests: forwarding: Fix layer 2 miss test flakiness
>    selftests: forwarding: Fix bridge MDB test flakiness
>    selftests: forwarding: Suppress grep warnings
>    selftests: forwarding: Fix bridge locked port test flakiness
> 
>   .../selftests/net/forwarding/bridge_locked_port.sh |  4 ++--
>   .../testing/selftests/net/forwarding/bridge_mdb.sh | 14 +++++++++-----
>   .../selftests/net/forwarding/tc_flower_l2_miss.sh  |  8 ++++++--
>   3 files changed, 17 insertions(+), 9 deletions(-)
> 

Nice, for the series:
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net 0/4] selftests: forwarding: Various fixes
  2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
                   ` (5 preceding siblings ...)
  2024-02-09 10:39 ` Nikolay Aleksandrov
@ 2024-02-09 19:40 ` patchwork-bot+netdevbpf
  6 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-02-09 19:40 UTC (permalink / raw)
  To: Ido Schimmel
  Cc: netdev, linux-kselftest, davem, kuba, pabeni, edumazet, shuah,
	petrm, razor, liuhangbin

Hello:

This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 8 Feb 2024 17:55:25 +0200 you wrote:
> Fix various problems in the forwarding selftests so that they will pass
> in the netdev CI instead of being ignored. See commit messages for
> details.
> 
> Ido Schimmel (4):
>   selftests: forwarding: Fix layer 2 miss test flakiness
>   selftests: forwarding: Fix bridge MDB test flakiness
>   selftests: forwarding: Suppress grep warnings
>   selftests: forwarding: Fix bridge locked port test flakiness
> 
> [...]

Here is the summary with links:
  - [net,1/4] selftests: forwarding: Fix layer 2 miss test flakiness
    https://git.kernel.org/netdev/net/c/93590849a05e
  - [net,2/4] selftests: forwarding: Fix bridge MDB test flakiness
    https://git.kernel.org/netdev/net/c/7399e2ce4d42
  - [net,3/4] selftests: forwarding: Suppress grep warnings
    https://git.kernel.org/netdev/net/c/dd6b34589441
  - [net,4/4] selftests: forwarding: Fix bridge locked port test flakiness
    https://git.kernel.org/netdev/net/c/f97f1fcc9690

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-02-09 19:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-08 15:55 [PATCH net 0/4] selftests: forwarding: Various fixes Ido Schimmel
2024-02-08 15:55 ` [PATCH net 1/4] selftests: forwarding: Fix layer 2 miss test flakiness Ido Schimmel
2024-02-08 15:55 ` [PATCH net 2/4] selftests: forwarding: Fix bridge MDB " Ido Schimmel
2024-02-08 15:55 ` [PATCH net 3/4] selftests: forwarding: Suppress grep warnings Ido Schimmel
2024-02-08 15:55 ` [PATCH net 4/4] selftests: forwarding: Fix bridge locked port test flakiness Ido Schimmel
2024-02-09  8:56 ` [PATCH net 0/4] selftests: forwarding: Various fixes Hangbin Liu
2024-02-09 10:39 ` Nikolay Aleksandrov
2024-02-09 19:40 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.