All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.