MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH mptcp-next v3 0/3] userspace pm remove id 0 subflow & address
@ 2023-08-17 14:10 Geliang Tang
  2023-08-17 14:10 ` [PATCH mptcp-next v3 1/3] mptcp: allow creating id 0 subflow Geliang Tang
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Geliang Tang @ 2023-08-17 14:10 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

v3:
 - address Matt's comments in v2.

v2:
 - fix CI errors.

This patchset addresses #379 and #391, add the abilities to remove id 0
subflow and address for userspace PM. And a selftest.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/379
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/391

Geliang Tang (3):
  mptcp: allow creating id 0 subflow
  mptcp: remove id 0 address
  selftests: mptcp: remove id 0 subflow & address

 net/mptcp/pm.c                                |  2 +-
 net/mptcp/pm_userspace.c                      | 36 +++++++++++----
 .../testing/selftests/net/mptcp/mptcp_join.sh | 46 +++++++++++++++++++
 3 files changed, 74 insertions(+), 10 deletions(-)

-- 
2.35.3


^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH mptcp-next v2 4/4] selftests: mptcp: remove id 0 subflow & address
@ 2023-08-09  7:06 Geliang Tang
  2023-08-09  8:35 ` selftests: mptcp: remove id 0 subflow & address: Tests Results MPTCP CI
  0 siblings, 1 reply; 10+ messages in thread
From: Geliang Tang @ 2023-08-09  7:06 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds selftests for userpsace PM to remove id 0 subflow and
id 0 address.

A new helper userspace_pm_rm_id_0_subflow_or_address_ns2() is added,
in it use

        ./pm_nl_ctl dsf token $tk id 0

to remove id 0 subflow, and use

        ./pm_nl_ctl rem token $tk id 0

to remove id 0 address.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 49 +++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index ee1f89a872b3..52f081738c36 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3320,6 +3320,15 @@ userspace_pm_rm_sf_addr_ns2()
 	wait_rm_sf $ns2 1
 }
 
+userspace_pm_rm_id_0_subflow_or_address_ns2()
+{
+	local tk
+
+	tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
+	ip netns exec $ns2 ./pm_nl_ctl "$1" token $tk id 0
+	sleep 0.5
+}
+
 userspace_tests()
 {
 	# userspace pm type prevents add_addr
@@ -3434,6 +3443,46 @@ userspace_tests()
 		kill_events_pids
 		wait $tests_pid
 	fi
+
+	# userspace pm remove id 0 subflow
+	if reset_with_events "userspace pm remove id 0 subflow" &&
+	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+		set_userspace_pm $ns2
+		pm_nl_set_limits $ns1 0 2
+		speed=10 \
+			run_tests $ns1 $ns2 10.0.1.1 &
+		local tests_pid=$!
+		wait_mpj $ns2
+		userspace_pm_add_sf 10.0.1.2 0
+		userspace_pm_add_sf 10.0.3.2 20
+		chk_join_nr 2 2 2
+		chk_mptcp_info subflows 2 subflows 2
+		userspace_pm_rm_id_0_subflow_or_address_ns2 dsf
+		chk_mptcp_info subflows 1 subflows 1
+		chk_rm_nr 0 2
+		kill_events_pids
+		wait $tests_pid
+	fi
+
+	# userspace pm remove id 0 address
+	if reset_with_events "userspace pm remove id 0 address" &&
+	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+		set_userspace_pm $ns2
+		pm_nl_set_limits $ns1 0 2
+		speed=10 \
+			run_tests $ns1 $ns2 10.0.1.1 &
+		local tests_pid=$!
+		wait_mpj $ns2
+		userspace_pm_add_sf 10.0.1.2 0
+		userspace_pm_add_sf 10.0.3.2 20
+		chk_join_nr 2 2 2
+		chk_mptcp_info subflows 2 subflows 2
+		userspace_pm_rm_id_0_subflow_or_address_ns2 rem
+		chk_mptcp_info subflows 1 subflows 1
+		chk_rm_nr 2 0
+		kill_events_pids
+		wait $tests_pid
+	fi
 }
 
 endpoint_tests()
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH mptcp-next 4/4] selftests: mptcp: remove id 0 subflow & address
@ 2023-08-08  5:38 Geliang Tang
  2023-08-08  7:15 ` selftests: mptcp: remove id 0 subflow & address: Tests Results MPTCP CI
  0 siblings, 1 reply; 10+ messages in thread
From: Geliang Tang @ 2023-08-08  5:38 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a selftest for userpsace PM to remove id 0 subflow and
id 0 address.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index ee1f89a872b3..9bcfacaa4124 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3434,6 +3434,30 @@ userspace_tests()
 		kill_events_pids
 		wait $tests_pid
 	fi
+
+	# userspace pm remove id 0 subflow & address
+	if reset_with_events "userspace pm remove id 0 subflow & address" &&
+	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+		local tk
+
+		set_userspace_pm $ns2
+		pm_nl_set_limits $ns1 0 2
+		speed=10 \
+			run_tests $ns1 $ns2 10.0.1.1 &
+		local tests_pid=$!
+		wait_mpj $ns2
+		userspace_pm_add_sf 10.0.1.2 0
+		userspace_pm_add_sf 10.0.3.2 20
+		chk_join_nr 2 2 2
+		chk_mptcp_info subflows 2 subflows 2
+		tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
+		ip netns exec $ns2 ./pm_nl_ctl rem token $tk id 0
+		ip netns exec $ns2 ./pm_nl_ctl dsf token $tk id 0
+		chk_rm_nr 2 2
+		chk_mptcp_info subflows 1 subflows 1
+		kill_events_pids
+		wait $tests_pid
+	fi
 }
 
 endpoint_tests()
-- 
2.35.3


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

end of thread, other threads:[~2023-08-17 16:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-17 14:10 [PATCH mptcp-next v3 0/3] userspace pm remove id 0 subflow & address Geliang Tang
2023-08-17 14:10 ` [PATCH mptcp-next v3 1/3] mptcp: allow creating id 0 subflow Geliang Tang
2023-08-17 14:10 ` [PATCH mptcp-next v3 2/3] mptcp: remove id 0 address Geliang Tang
2023-08-17 16:32   ` Matthieu Baerts
2023-08-17 14:10 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: remove id 0 subflow & address Geliang Tang
2023-08-17 15:27   ` selftests: mptcp: remove id 0 subflow & address: Tests Results MPTCP CI
2023-08-17 16:37   ` [PATCH mptcp-next v3 3/3] selftests: mptcp: remove id 0 subflow & address Matthieu Baerts
2023-08-17 16:30 ` [PATCH mptcp-next v3 0/3] userspace pm " Matthieu Baerts
  -- strict thread matches above, loose matches on Subject: below --
2023-08-09  7:06 [PATCH mptcp-next v2 4/4] selftests: mptcp: " Geliang Tang
2023-08-09  8:35 ` selftests: mptcp: remove id 0 subflow & address: Tests Results MPTCP CI
2023-08-08  5:38 [PATCH mptcp-next 4/4] selftests: mptcp: remove id 0 subflow & address Geliang Tang
2023-08-08  7:15 ` selftests: mptcp: remove id 0 subflow & address: Tests Results MPTCP CI

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