* [PATCH net-next] selftest: add selftest for anycast notifications
@ 2025-06-18 10:40 Yuyang Huang
2025-06-18 18:20 ` Simon Horman
0 siblings, 1 reply; 3+ messages in thread
From: Yuyang Huang @ 2025-06-18 10:40 UTC (permalink / raw)
To: Yuyang Huang
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Shuah Khan, netdev, linux-kselftest, linux-kernel
This commit adds a new kernel selftest to verify RTNLGRP_IPV6_ACADDR
notifications. The test works by adding/removing a dummy interface,
enabling packet forwarding, and then confirming that user space can
correctly receive anycast notifications.
The test relies on the iproute2 version to be 6.13+.
Tested by the following command:
$ vng -v --user root --cpus 16 -- \
make -C tools/testing/selftests TARGETS=net
TEST_PROGS=rtnetlink_notification.sh \
TEST_GEN_PROGS="" run_tests
Signed-off-by: Yuyang Huang <yuyanghuang@google.com>
---
.../selftests/net/rtnetlink_notification.sh | 52 +++++++++++++++++--
1 file changed, 47 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/net/rtnetlink_notification.sh b/tools/testing/selftests/net/rtnetlink_notification.sh
index 39c1b815bbe4..2d938861197c 100755
--- a/tools/testing/selftests/net/rtnetlink_notification.sh
+++ b/tools/testing/selftests/net/rtnetlink_notification.sh
@@ -8,9 +8,11 @@
ALL_TESTS="
kci_test_mcast_addr_notification
+ kci_test_anycast_addr_notification
"
source lib.sh
+test_dev="test-dummy1"
kci_test_mcast_addr_notification()
{
@@ -18,12 +20,11 @@ kci_test_mcast_addr_notification()
local tmpfile
local monitor_pid
local match_result
- local test_dev="test-dummy1"
tmpfile=$(mktemp)
defer rm "$tmpfile"
- ip monitor maddr > $tmpfile &
+ ip monitor maddr > "$tmpfile" &
monitor_pid=$!
defer kill_process "$monitor_pid"
@@ -32,7 +33,7 @@ kci_test_mcast_addr_notification()
if [ ! -e "/proc/$monitor_pid" ]; then
RET=$ksft_skip
log_test "mcast addr notification: iproute2 too old"
- return $RET
+ return "$RET"
fi
ip link add name "$test_dev" type dummy
@@ -53,7 +54,48 @@ kci_test_mcast_addr_notification()
RET=$ksft_fail
fi
log_test "mcast addr notification: Expected 4 matches, got $match_result"
- return $RET
+ return "$RET"
+}
+
+kci_test_anycast_addr_notification()
+{
+ RET=0
+ local tmpfile
+ local monitor_pid
+ local match_result
+
+ tmpfile=$(mktemp)
+ defer rm "$tmpfile"
+
+ ip monitor acaddress > "$tmpfile" &
+ monitor_pid=$!
+ defer kill_process "$monitor_pid"
+ sleep 1
+
+ if [ ! -e "/proc/$monitor_pid" ]; then
+ RET=$ksft_skip
+ log_test "anycast addr notification: iproute2 too old"
+ return "$RET"
+ fi
+
+ ip link add name "$test_dev" type dummy
+ check_err $? "failed to add dummy interface"
+ ip link set "$test_dev" up
+ check_err $? "failed to set dummy interface up"
+ sysctl -qw net.ipv6.conf."$test_dev".forwarding=1
+ ip link del dev "$test_dev"
+ check_err $? "Failed to delete dummy interface"
+ sleep 1
+
+ # There should be 2 line matches as follows.
+ # 9: dummy2 inet6 any fe80:: scope global
+ # Deleted 9: dummy2 inet6 any fe80:: scope global
+ match_result=$(grep -cE "$test_dev.*(fe80::)" "$tmpfile")
+ if [ "$match_result" -ne 2 ]; then
+ RET=$ksft_fail
+ fi
+ log_test "anycast addr notification: Expected 2 matches, got $match_result"
+ return "$RET"
}
#check for needed privileges
@@ -67,4 +109,4 @@ require_command ip
tests_run
-exit $EXIT_STATUS
+exit "$EXIT_STATUS"
--
2.50.0.rc2.761.g2dc52ea45b-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net-next] selftest: add selftest for anycast notifications
2025-06-18 10:40 [PATCH net-next] selftest: add selftest for anycast notifications Yuyang Huang
@ 2025-06-18 18:20 ` Simon Horman
2025-06-18 23:55 ` Yuyang Huang
0 siblings, 1 reply; 3+ messages in thread
From: Simon Horman @ 2025-06-18 18:20 UTC (permalink / raw)
To: Yuyang Huang
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Shuah Khan, netdev, linux-kselftest, linux-kernel
On Wed, Jun 18, 2025 at 07:40:25PM +0900, Yuyang Huang wrote:
> This commit adds a new kernel selftest to verify RTNLGRP_IPV6_ACADDR
> notifications. The test works by adding/removing a dummy interface,
> enabling packet forwarding, and then confirming that user space can
> correctly receive anycast notifications.
>
> The test relies on the iproute2 version to be 6.13+.
>
> Tested by the following command:
> $ vng -v --user root --cpus 16 -- \
> make -C tools/testing/selftests TARGETS=net
> TEST_PROGS=rtnetlink_notification.sh \
> TEST_GEN_PROGS="" run_tests
>
> Signed-off-by: Yuyang Huang <yuyanghuang@google.com>
> ---
> .../selftests/net/rtnetlink_notification.sh | 52 +++++++++++++++++--
> 1 file changed, 47 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/net/rtnetlink_notification.sh b/tools/testing/selftests/net/rtnetlink_notification.sh
...
> @@ -18,12 +20,11 @@ kci_test_mcast_addr_notification()
> local tmpfile
> local monitor_pid
> local match_result
> - local test_dev="test-dummy1"
>
> tmpfile=$(mktemp)
> defer rm "$tmpfile"
>
> - ip monitor maddr > $tmpfile &
> + ip monitor maddr > "$tmpfile" &
> monitor_pid=$!
> defer kill_process "$monitor_pid"
>
> @@ -32,7 +33,7 @@ kci_test_mcast_addr_notification()
> if [ ! -e "/proc/$monitor_pid" ]; then
> RET=$ksft_skip
> log_test "mcast addr notification: iproute2 too old"
> - return $RET
> + return "$RET"
> fi
>
> ip link add name "$test_dev" type dummy
> @@ -53,7 +54,48 @@ kci_test_mcast_addr_notification()
> RET=$ksft_fail
> fi
> log_test "mcast addr notification: Expected 4 matches, got $match_result"
> - return $RET
> + return "$RET"
> +}
...
> @@ -67,4 +109,4 @@ require_command ip
>
> tests_run
>
> -exit $EXIT_STATUS
> +exit "$EXIT_STATUS"
Hi,
While I like the changes above (that I haven't trimmed-out)
these seem to be clean-ups that aren't strictly related
to the subject of this patch. IOW, they don't belong in this patch
(but could be a separate patch).
--
pw-bot: changes-requested
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net-next] selftest: add selftest for anycast notifications
2025-06-18 18:20 ` Simon Horman
@ 2025-06-18 23:55 ` Yuyang Huang
0 siblings, 0 replies; 3+ messages in thread
From: Yuyang Huang @ 2025-06-18 23:55 UTC (permalink / raw)
To: Simon Horman
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Shuah Khan, netdev, linux-kselftest, linux-kernel
Thanks for the review feedback, I will move the clean up to a seaparte patch.
On Thu, Jun 19, 2025 at 3:20 AM Simon Horman <horms@kernel.org> wrote:
>
> On Wed, Jun 18, 2025 at 07:40:25PM +0900, Yuyang Huang wrote:
> > This commit adds a new kernel selftest to verify RTNLGRP_IPV6_ACADDR
> > notifications. The test works by adding/removing a dummy interface,
> > enabling packet forwarding, and then confirming that user space can
> > correctly receive anycast notifications.
> >
> > The test relies on the iproute2 version to be 6.13+.
> >
> > Tested by the following command:
> > $ vng -v --user root --cpus 16 -- \
> > make -C tools/testing/selftests TARGETS=net
> > TEST_PROGS=rtnetlink_notification.sh \
> > TEST_GEN_PROGS="" run_tests
> >
> > Signed-off-by: Yuyang Huang <yuyanghuang@google.com>
> > ---
> > .../selftests/net/rtnetlink_notification.sh | 52 +++++++++++++++++--
> > 1 file changed, 47 insertions(+), 5 deletions(-)
> >
> > diff --git a/tools/testing/selftests/net/rtnetlink_notification.sh b/tools/testing/selftests/net/rtnetlink_notification.sh
>
> ...
>
> > @@ -18,12 +20,11 @@ kci_test_mcast_addr_notification()
> > local tmpfile
> > local monitor_pid
> > local match_result
> > - local test_dev="test-dummy1"
> >
> > tmpfile=$(mktemp)
> > defer rm "$tmpfile"
> >
> > - ip monitor maddr > $tmpfile &
> > + ip monitor maddr > "$tmpfile" &
> > monitor_pid=$!
> > defer kill_process "$monitor_pid"
> >
> > @@ -32,7 +33,7 @@ kci_test_mcast_addr_notification()
> > if [ ! -e "/proc/$monitor_pid" ]; then
> > RET=$ksft_skip
> > log_test "mcast addr notification: iproute2 too old"
> > - return $RET
> > + return "$RET"
> > fi
> >
> > ip link add name "$test_dev" type dummy
>
> > @@ -53,7 +54,48 @@ kci_test_mcast_addr_notification()
> > RET=$ksft_fail
> > fi
> > log_test "mcast addr notification: Expected 4 matches, got $match_result"
> > - return $RET
> > + return "$RET"
> > +}
>
> ...
>
> > @@ -67,4 +109,4 @@ require_command ip
> >
> > tests_run
> >
> > -exit $EXIT_STATUS
> > +exit "$EXIT_STATUS"
>
> Hi,
>
> While I like the changes above (that I haven't trimmed-out)
> these seem to be clean-ups that aren't strictly related
> to the subject of this patch. IOW, they don't belong in this patch
> (but could be a separate patch).
>
> --
> pw-bot: changes-requested
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-06-18 23:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-18 10:40 [PATCH net-next] selftest: add selftest for anycast notifications Yuyang Huang
2025-06-18 18:20 ` Simon Horman
2025-06-18 23:55 ` Yuyang Huang
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).