Instead of waiting for a random amount of time (1 second), wait for an
event to be received on the other side.
To do that, when an address is announced (userspace_pm_add_addr), the
ANNOUNCED is expected. When a new subflow is created
(userspace_pm_add_sf), the SUB_ESTABLISHED event is expected.
With this, the tests can finish quicker.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/mptcp/mptcp_join.sh | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index cf28537b71f7..63a84a4d43a6 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3717,7 +3717,6 @@ userspace_pm_add_addr()
tk=$(mptcp_lib_evts_get_info token "$evts")
ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3
- sleep 1
}
# $1: ns ; $2: id
@@ -3748,7 +3747,6 @@ userspace_pm_add_sf()
ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \
rip $da rport $dp token $tk
- sleep 1
}
# $1: ns ; $2: addr $3: event type
@@ -4000,7 +3998,9 @@ userspace_tests()
local tests_pid=$!
wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1
userspace_pm_add_addr $ns1 10.0.2.1 10
+ wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1
userspace_pm_add_addr $ns1 10.0.3.1 20
+ wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 2
chk_join_nr 2 2 2
chk_add_nr 2 2
chk_mptcp_info subflows 2 subflows 2
@@ -4033,6 +4033,7 @@ userspace_tests()
local tests_pid=$!
wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
userspace_pm_add_sf $ns2 10.0.3.2 20
+ wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
chk_join_nr 1 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
@@ -4063,6 +4064,7 @@ userspace_tests()
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
userspace_pm_add_sf $ns2 10.0.3.2 0
+ wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
userspace_pm_chk_dump_addr "${ns2}" \
"id 0 flags subflow 10.0.3.2" "id 0 subflow"
chk_join_nr 1 1 1
@@ -4082,6 +4084,7 @@ userspace_tests()
local tests_pid=$!
wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
userspace_pm_add_sf $ns2 10.0.3.2 20
+ wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
chk_join_nr 1 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
@@ -4106,6 +4109,7 @@ userspace_tests()
local tests_pid=$!
wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1
userspace_pm_add_addr $ns1 10.0.2.1 10
+ wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1
chk_join_nr 1 1 1
chk_add_nr 1 1
chk_mptcp_info subflows 1 subflows 1
@@ -4132,6 +4136,7 @@ userspace_tests()
local tests_pid=$!
wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
userspace_pm_add_sf $ns2 10.0.3.2 20
+ wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
--
2.51.0
Hi Matt,
Thanks for this patch.
On Fri, 2025-12-26 at 07:40 +0100, Matthieu Baerts (NGI0) wrote:
> Instead of waiting for a random amount of time (1 second), wait for
> an
> event to be received on the other side.
>
> To do that, when an address is announced (userspace_pm_add_addr), the
> ANNOUNCED is expected. When a new subflow is created
> (userspace_pm_add_sf), the SUB_ESTABLISHED event is expected.
>
> With this, the tests can finish quicker.
>
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
> tools/testing/selftests/net/mptcp/mptcp_join.sh | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index cf28537b71f7..63a84a4d43a6 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -3717,7 +3717,6 @@ userspace_pm_add_addr()
> tk=$(mptcp_lib_evts_get_info token "$evts")
>
> ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3
> - sleep 1
> }
>
> # $1: ns ; $2: id
> @@ -3748,7 +3747,6 @@ userspace_pm_add_sf()
>
> ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \
> rip $da rport $dp token $tk
> - sleep 1
> }
>
> # $1: ns ; $2: addr $3: event type
> @@ -4000,7 +3998,9 @@ userspace_tests()
> local tests_pid=$!
> wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1
> userspace_pm_add_addr $ns1 10.0.2.1 10
> + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1
> userspace_pm_add_addr $ns1 10.0.3.1 20
> + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 2
This has been changed to wait for 2 seconds. Can it revert to waiting
for only 1 second like before?
Thanks,
-Geliang
> chk_join_nr 2 2 2
> chk_add_nr 2 2
> chk_mptcp_info subflows 2 subflows 2
> @@ -4033,6 +4033,7 @@ userspace_tests()
> local tests_pid=$!
> wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
> userspace_pm_add_sf $ns2 10.0.3.2 20
> + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
> chk_join_nr 1 1 1
> chk_mptcp_info subflows 1 subflows 1
> chk_subflows_total 2 2
> @@ -4063,6 +4064,7 @@ userspace_tests()
> chk_mptcp_info subflows 0 subflows 0
> chk_subflows_total 1 1
> userspace_pm_add_sf $ns2 10.0.3.2 0
> + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
> userspace_pm_chk_dump_addr "${ns2}" \
> "id 0 flags subflow 10.0.3.2" "id 0 subflow"
> chk_join_nr 1 1 1
> @@ -4082,6 +4084,7 @@ userspace_tests()
> local tests_pid=$!
> wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
> userspace_pm_add_sf $ns2 10.0.3.2 20
> + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
> chk_join_nr 1 1 1
> chk_mptcp_info subflows 1 subflows 1
> chk_subflows_total 2 2
> @@ -4106,6 +4109,7 @@ userspace_tests()
> local tests_pid=$!
> wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1
> userspace_pm_add_addr $ns1 10.0.2.1 10
> + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1
> chk_join_nr 1 1 1
> chk_add_nr 1 1
> chk_mptcp_info subflows 1 subflows 1
> @@ -4132,6 +4136,7 @@ userspace_tests()
> local tests_pid=$!
> wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
> userspace_pm_add_sf $ns2 10.0.3.2 20
> + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1
> chk_mptcp_info subflows 1 subflows 1
> chk_subflows_total 2 2
>
Hi Geliang, Thank you for the reviews! On 28/12/2025 03:48, Geliang Tang wrote: > Hi Matt, > > Thanks for this patch. > > On Fri, 2025-12-26 at 07:40 +0100, Matthieu Baerts (NGI0) wrote: >> Instead of waiting for a random amount of time (1 second), wait for >> an >> event to be received on the other side. >> >> To do that, when an address is announced (userspace_pm_add_addr), the >> ANNOUNCED is expected. When a new subflow is created >> (userspace_pm_add_sf), the SUB_ESTABLISHED event is expected. >> >> With this, the tests can finish quicker. >> >> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> >> --- >> tools/testing/selftests/net/mptcp/mptcp_join.sh | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh >> b/tools/testing/selftests/net/mptcp/mptcp_join.sh >> index cf28537b71f7..63a84a4d43a6 100755 >> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh >> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh >> @@ -3717,7 +3717,6 @@ userspace_pm_add_addr() >> tk=$(mptcp_lib_evts_get_info token "$evts") >> >> ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3 >> - sleep 1 >> } >> >> # $1: ns ; $2: id >> @@ -3748,7 +3747,6 @@ userspace_pm_add_sf() >> >> ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \ >> rip $da rport $dp token $tk >> - sleep 1 >> } >> >> # $1: ns ; $2: addr $3: event type >> @@ -4000,7 +3998,9 @@ userspace_tests() >> local tests_pid=$! >> wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1 >> userspace_pm_add_addr $ns1 10.0.2.1 10 >> + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1 >> userspace_pm_add_addr $ns1 10.0.3.1 20 >> + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 2 > > This has been changed to wait for 2 seconds. Can it revert to waiting > for only 1 second like before? The last parameter (2) is the min expected number of such events. Here, two ADD_ADDR are expected to be seen on the other host, because userspace_pm_add_addr has been called twice from ns1. We could only keep the second "wait_event ANNOUNCED", maybe clearer and faster? userspace_pm_add_addr $ns1 10.0.2.1 10 userspace_pm_add_addr $ns1 10.0.3.1 20 wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 2 WDYT? Cheers, Matt -- Sponsored by the NGI0 Core fund.
© 2016 - 2026 Red Hat, Inc.