From: Geliang Tang <tanggeliang@kylinos.cn>
This patch uses the newly added net.mptcp.path_manager instead of the
old net.mptcp.pm_type for all path manager selftests in mptcp_join.sh
and userspace_pm.sh.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
.../testing/selftests/net/mptcp/mptcp_join.sh | 26 +++++++++----------
.../selftests/net/mptcp/userspace_pm.sh | 4 +--
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 13a3b68181ee..ed04e7dedf23 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -99,7 +99,7 @@ init_partial()
local netns
for netns in "$ns1" "$ns2"; do
- ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
+ ip netns exec $netns sysctl -q net.mptcp.path_manager="in-kernel" 2>/dev/null || true
if $checksum; then
ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
fi
@@ -1920,7 +1920,7 @@ set_userspace_pm()
{
local ns=$1
- ip netns exec $ns sysctl -q net.mptcp.pm_type=1
+ ip netns exec $ns sysctl -q net.mptcp.path_manager="userspace"
}
subflows_tests()
@@ -3497,7 +3497,7 @@ userspace_tests()
{
# userspace pm type prevents add_addr
if reset "userspace pm type prevents add_addr" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
pm_nl_set_limits $ns1 0 2
pm_nl_set_limits $ns2 0 2
@@ -3509,7 +3509,7 @@ userspace_tests()
# userspace pm type does not echo add_addr without daemon
if reset "userspace pm no echo w/o daemon" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns2
pm_nl_set_limits $ns1 0 2
pm_nl_set_limits $ns2 0 2
@@ -3521,7 +3521,7 @@ userspace_tests()
# userspace pm type rejects join
if reset "userspace pm type rejects join" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
pm_nl_set_limits $ns1 1 1
pm_nl_set_limits $ns2 1 1
@@ -3532,7 +3532,7 @@ userspace_tests()
# userspace pm type does not send join
if reset "userspace pm type does not send join" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns2
pm_nl_set_limits $ns1 1 1
pm_nl_set_limits $ns2 1 1
@@ -3543,7 +3543,7 @@ userspace_tests()
# userspace pm type prevents mp_prio
if reset "userspace pm type prevents mp_prio" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
pm_nl_set_limits $ns1 1 1
pm_nl_set_limits $ns2 1 1
@@ -3556,7 +3556,7 @@ userspace_tests()
# userspace pm type prevents rm_addr
if reset "userspace pm type prevents rm_addr" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
set_userspace_pm $ns2
pm_nl_set_limits $ns1 0 1
@@ -3570,7 +3570,7 @@ userspace_tests()
# userspace pm add & remove address
if reset_with_events "userspace pm add & remove address" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
pm_nl_set_limits $ns2 2 2
{ speed=5 \
@@ -3603,7 +3603,7 @@ userspace_tests()
# userspace pm create destroy subflow
if reset_with_events "userspace pm create destroy subflow" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns2
pm_nl_set_limits $ns1 0 1
{ speed=5 \
@@ -3631,7 +3631,7 @@ userspace_tests()
# userspace pm create id 0 subflow
if reset_with_events "userspace pm create id 0 subflow" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns2
pm_nl_set_limits $ns1 0 1
{ speed=5 \
@@ -3652,7 +3652,7 @@ userspace_tests()
# userspace pm remove initial subflow
if reset_with_events "userspace pm remove initial subflow" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns2
pm_nl_set_limits $ns1 0 1
{ speed=5 \
@@ -3676,7 +3676,7 @@ userspace_tests()
# userspace pm send RM_ADDR for ID 0
if reset_with_events "userspace pm send RM_ADDR for ID 0" &&
- continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+ continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
set_userspace_pm $ns1
pm_nl_set_limits $ns2 1 1
{ speed=5 \
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
index 3651f73451cf..dfeec8d4aecf 100755
--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
+++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
@@ -13,7 +13,7 @@
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
-if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+if ! mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
echo "userspace pm tests are not supported by the kernel: SKIP"
exit ${KSFT_SKIP}
fi
@@ -119,7 +119,7 @@ trap cleanup EXIT
# Create and configure network namespaces for testing
mptcp_lib_ns_init ns1 ns2
for i in "$ns1" "$ns2" ;do
- ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
+ ip netns exec "$i" sysctl -q net.mptcp.path_manager="userspace"
done
# "$ns1" ns2
--
2.43.0
Hi Geliang,
On 23/02/2025 15:26, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> This patch uses the newly added net.mptcp.path_manager instead of the
> old net.mptcp.pm_type for all path manager selftests in mptcp_join.sh
> and userspace_pm.sh.
With the mapping for "pm_type" and "path_manager" sysctl knobs I
mentioned before, this patch should not be needed (and would cause
issues when validating older kernels, see below).
Still, I think it would be good to make sure such mapping is working
well. Instead, I think it would be better to add a specific test in
userspace_pm.sh to make sure the mapping is correct. See below.
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> .../testing/selftests/net/mptcp/mptcp_join.sh | 26 +++++++++----------
> .../selftests/net/mptcp/userspace_pm.sh | 4 +--
> 2 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 13a3b68181ee..ed04e7dedf23 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -99,7 +99,7 @@ init_partial()
>
> local netns
> for netns in "$ns1" "$ns2"; do
> - ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
> + ip netns exec $netns sysctl -q net.mptcp.path_manager="in-kernel" 2>/dev/null || true
If you change this here, it means that the selftests will report errors
when running on older kernels. So please, do not change that.
> if $checksum; then
> ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
> fi
> @@ -1920,7 +1920,7 @@ set_userspace_pm()
> {
> local ns=$1
>
> - ip netns exec $ns sysctl -q net.mptcp.pm_type=1
> + ip netns exec $ns sysctl -q net.mptcp.path_manager="userspace"
Same here.
> }
>
> subflows_tests()
> @@ -3497,7 +3497,7 @@ userspace_tests()
> {
> # userspace pm type prevents add_addr
> if reset "userspace pm type prevents add_addr" &&
> - continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
> + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
Here, it means the tests will be skipped on older kernels while they
don't require this new sysctl knob.
So please do not change that. Same below.
(...)
> diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
> index 3651f73451cf..dfeec8d4aecf 100755
> --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
> +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
> @@ -13,7 +13,7 @@
> mptcp_lib_check_mptcp
> mptcp_lib_check_kallsyms
>
> -if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
> +if ! mptcp_lib_has_file '/proc/sys/net/mptcp/path_manager'; then
Same here.
> echo "userspace pm tests are not supported by the kernel: SKIP"
> exit ${KSFT_SKIP}
> fi
> @@ -119,7 +119,7 @@ trap cleanup EXIT
> # Create and configure network namespaces for testing
> mptcp_lib_ns_init ns1 ns2
Here, if /proc/sys/net/mptcp/path_manager is available:
- set it to "userspace", then check if "pm_type" is set to 1.
- set "pm_type" to 0, and check if "path_manager" is "kernel".
- then continue like before (so setting pm_type=1)
- (you might have to move 'print_title "Init"' here above if these new
steps can create errors)
I don't think we need individual subtests here, only fail if it doesn't
work as expected (again, if the new sysctl is available, not to fail on
older kernels).
> for i in "$ns1" "$ns2" ;do
> - ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
> + ip netns exec "$i" sysctl -q net.mptcp.path_manager="userspace"
Do not change that.
> done
>
> # "$ns1" ns2
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
© 2016 - 2026 Red Hat, Inc.