mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] selftests: net: fou_mcast_encap: conditionally load fou module and skip IPv4 case
@ 2026-09-11 10:01 Qingshuang Fu
  2026-09-17  0:40 ` Jakub Kicinski
  0 siblings, 1 reply; 3+ messages in thread
From: Qingshuang Fu @ 2026-09-11 10:01 UTC (permalink / raw)
  To: Andy Whitcroft, Joe Perches, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Shuah Khan,
	Willem de Bruijn, Anton Danilov
  Cc: netdev, linux-kselftest, linux-kernel, Qingshuang Fu

The IPv4 FOU/GRETAP multicast test requires the fou module to register
tunnel encapsulation operations and the FOU generic netlink family.
Since there is no genetlink module alias, the module cannot be auto-loaded.

The test previously assumed CONFIG_NET_FOU=y. On kernels built with
CONFIG_NET_FOU=m, setup_ipv4() fails silently without terminating the
script, causing a false positive test failure with 0/100 received packets.

Fix this by trying to load the fou module before the IPv4 test. Skip the
subtest cleanly if the module is unavailable, mirroring the existing
IPv6 fou6 module handling and following pmtu.sh conventions.

Only module load failures result in a skip. Any other setup errors still
report a test failure, preserving test coverage.

The official selftest config enables CONFIG_NET_FOU=y, but many
distribution kernels build it as a module. modprobe is a no-op for
built-in configurations, so existing CI behavior remains unchanged.

Fixes: e5382133c51c ("selftests: net: add FOU multicast encapsulation resubmit test")
Signed-off-by: Qingshuang Fu <fuqingshuang@kylinos.cn>
---
 tools/testing/selftests/net/fou_mcast_encap.sh | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/net/fou_mcast_encap.sh b/tools/testing/selftests/net/fou_mcast_encap.sh
index 70210d39fba3..d94c19237daf 100755
--- a/tools/testing/selftests/net/fou_mcast_encap.sh
+++ b/tools/testing/selftests/net/fou_mcast_encap.sh
@@ -51,8 +51,6 @@ setup_common() {
 }
 
 setup_ipv4() {
-	# IPv4 FOU (CONFIG_NET_FOU) is built in on kernels configured for
-	# these tests, so no module load is needed here.
 	ip -n "$NSENDER" addr add 10.0.0.1/24 dev veth_s
 	ip -n "$NRECV" addr add 10.0.0.2/24 dev veth_r
 
@@ -160,8 +158,17 @@ run_ping_test() {
 }
 
 setup_common
-setup_ipv4
-run_ping_test -4 eoudp4 "$TUN4_R" "FOU/GRETAP IPv4 multicast encap resubmit"
+
+# The fou module registers both the tunnel encap ops used by "encap fou"
+# and the FOU genetlink family used by "ip fou add", and neither of them
+# is auto-loaded. modprobe succeeds as a no-op when CONFIG_NET_FOU=y.
+# Keep any other setup error as a test failure rather than a skip.
+if modprobe -q fou; then
+	setup_ipv4
+	run_ping_test -4 eoudp4 "$TUN4_R" "FOU/GRETAP IPv4 multicast encap resubmit"
+else
+	log_test_skip "FOU/GRETAP IPv4 multicast encap resubmit"
+fi
 
 if setup_ipv6; then
 	run_ping_test -6 eoudp6 "$TUN6_R" "FOU/ip6gretap IPv6 multicast encap resubmit"

base-commit: 08df884136f1c1197bab2a27814404fd329d9aac
-- 
2.25.1


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

end of thread, other threads:[~2026-09-17  3:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-11 10:01 [PATCH] selftests: net: fou_mcast_encap: conditionally load fou module and skip IPv4 case Qingshuang Fu
2026-09-17  0:40 ` Jakub Kicinski
2026-09-17  3:33   ` Qingshuang Fu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®