From: fffsqian@163.com
To: davem@davemloft.net, edumazet@google.com
Cc: kuba@kernel.org, pabeni@redhat.com, horms@kernel.org,
shuah@kernel.org, netdev@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
Qingshuang Fu <fuqingshuang@kylinos.cn>
Subject: [PATCH v3] selftests: net: broadcast_pmtu: Fix false failure from incorrect ping exit code logic
Date: Fri, 27 Mar 2026 09:27:05 +0800 [thread overview]
Message-ID: <20260327012705.2389814-1-fffsqian@163.com> (raw)
From: Qingshuang Fu <fuqingshuang@kylinos.cn>
The broadcast_pmtu.sh test verifies that broadcast route MTU is respected,
but it uses an incorrect criteria for test success: it relies solely on
the ping command's exit code, which leads to false failures.
When the kernel correctly blocks oversized broadcast packets due to the
configured MTU limit (1500), ping fails to transmit any packets and returns
exit code 1. The original script interprets this as a test failure, even
though the kernel is properly enforcing the MTU (the core goal of the test).
Fix this by checking ping's output for "0 packets transmitted" or
"message too long" instead of relying on exit code.
Signed-off-by: Qingshuang Fu <fuqingshuang@kylinos.cn>
---
tools/testing/selftests/net/broadcast_pmtu.sh | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/net/broadcast_pmtu.sh b/tools/testing/selftests/net/broadcast_pmtu.sh
index 726eb5d25839..68b4c5e539e7 100755
--- a/tools/testing/selftests/net/broadcast_pmtu.sh
+++ b/tools/testing/selftests/net/broadcast_pmtu.sh
@@ -40,8 +40,15 @@ cleanup() {
trap cleanup EXIT
setup &&
- echo "Testing for broadcast route MTU" &&
- ip net exec "${CLIENT_NS}" ping -f -M want -q -c 1 -s 8000 -w 1 -b "${CLIENT_BROADCAST_ADDRESS}" > /dev/null 2>&1
-
-exit $?
+ echo "Testing for broadcast route MTU" && {
+ ping_output=$(ip net exec "${CLIENT_NS}" ping -f -M want -c 1 -s 8000 -w 1 -b \
+ "${CLIENT_BROADCAST_ADDRESS}" 2>&1)
+ if echo "${ping_output}" | grep -q -E "0 packets transmitted|message too long"; then
+ exit_code=0
+ else
+ exit_code=1
+ fi
+ }
+
+exit ${exit_code}
base-commit: bbeb83d3182abe0d245318e274e8531e5dd7a948
--
2.25.1
next reply other threads:[~2026-03-27 1:30 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-27 1:27 fffsqian [this message]
2026-03-27 14:47 ` Jakub Kicinski
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=20260327012705.2389814-1-fffsqian@163.com \
--to=fffsqian@163.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fuqingshuang@kylinos.cn \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--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