MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH mptcp-next v14 00/14] dump for userspace pm
@ 2024-02-20  9:58 Geliang Tang
  2024-02-20  9:58 ` [PATCH mptcp-next v14 01/14] mptcp: export mptcp_genl_family & mptcp_nl_fill_addr Geliang Tang
                   ` (15 more replies)
  0 siblings, 16 replies; 37+ messages in thread
From: Geliang Tang @ 2024-02-20  9:58 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

v14:
 - address Matt's comments in v13.
 - I have to use these lines in patch #8:

      local cmd_ret=0
      local out=$(${cmd} 2>${err}) || cmd_ret=${?}

   The following expected code breaks pm_netlink.sh, I don't know why:

      local out cmd_ret=0
      out=$(${cmd} 2>${err}) || cmd_ret=${?}

   If this is still a problem, I'll send a squash-to patch to fix it.

Geliang Tang (14):
  mptcp: export mptcp_genl_family & mptcp_nl_fill_addr
  mptcp: implement mptcp_userspace_pm_dump_addr
  mptcp: add token for get-addr in yaml
  mptcp: dump addrs in userspace pm list
  mptcp: check userspace pm flags
  selftests: mptcp: add userspace pm subflow flag
  selftests: mptcp: add token for dump_addr
  selftests: mptcp: add mptcp_lib_check_output helper
  selftests: mptcp: dump userspace addrs list
  mptcp: add userspace_pm_lookup_addr_by_id helper
  mptcp: implement mptcp_userspace_pm_get_addr
  mptcp: get addr in userspace pm list
  selftests: mptcp: add token for get_addr
  selftests: mptcp: userspace pm get addr tests

 Documentation/netlink/specs/mptcp_pm.yaml     |   3 +-
 net/mptcp/mptcp_pm_gen.c                      |   7 +-
 net/mptcp/mptcp_pm_gen.h                      |   2 +-
 net/mptcp/pm.c                                |  16 ++
 net/mptcp/pm_netlink.c                        |  26 ++-
 net/mptcp/pm_userspace.c                      | 180 ++++++++++++++++--
 net/mptcp/protocol.h                          |  13 ++
 .../testing/selftests/net/mptcp/mptcp_join.sh |  91 +++++++++
 .../testing/selftests/net/mptcp/mptcp_lib.sh  |  19 ++
 .../testing/selftests/net/mptcp/pm_netlink.sh |  18 +-
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c |  39 +++-
 11 files changed, 368 insertions(+), 46 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v13 14/14] selftests: mptcp: userspace pm get addr tests
@ 2024-02-16  7:42 Geliang Tang
  2024-02-16  8:34 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
                   ` (5 more replies)
  0 siblings, 6 replies; 37+ messages in thread
From: Geliang Tang @ 2024-02-16  7:42 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump tests.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index fb9b3ee9fee0..a4d121f9e467 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3362,6 +3362,18 @@ userspace_pm_dump()
 	ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+	local evts=$evts_ns1
+	local tk
+
+	[ "$1" == "$ns2" ] && evts=$evts_ns2
+	tk=$(mptcp_lib_evts_get_info token "$evts")
+
+	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3482,6 +3494,14 @@ userspace_tests()
 				     $'id 10 flags signal 10.0.2.1\nid 20 flags signal 10.0.3.1' \
 				     "      dump addrs signal"
 		fi
+		if mptcp_lib_kallsyms_has "mptcp_userspace_pm_get_addr$"; then
+			check_output "userspace_pm_get_addr $ns1 10" \
+				     "id 10 flags signal 10.0.2.1" \
+				     "      get id 10 addr"
+			check_output "userspace_pm_get_addr $ns1 20" \
+				     "id 20 flags signal 10.0.3.1" \
+				     "      get id 20 addr"
+		fi
 		userspace_pm_rm_addr $ns1 10
 		userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
 		if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
@@ -3520,6 +3540,11 @@ userspace_tests()
 				     "id 20 flags subflow 10.0.3.2" \
 				     "      dump addrs subflow"
 		fi
+		if mptcp_lib_kallsyms_has "mptcp_userspace_pm_get_addr$"; then
+			check_output "userspace_pm_get_addr $ns2 20" \
+				     "id 20 flags subflow 10.0.3.2" \
+				     "      get id 20 addr"
+		fi
 		userspace_pm_rm_addr $ns2 20
 		userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
 		if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v12 15/15] selftests: mptcp: userspace pm get addr tests
@ 2024-02-14 11:40 Geliang Tang
  2024-02-14 12:37 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
  2024-02-14 12:48 ` MPTCP CI
  0 siblings, 2 replies; 37+ messages in thread
From: Geliang Tang @ 2024-02-14 11:40 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump tests.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 5f12bd1de383..7cf55609b7d2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3366,6 +3366,18 @@ userspace_pm_dump()
 	ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+	local evts=$evts_ns1
+	local tk
+
+	[ "$1" == "$ns2" ] && evts=$evts_ns2
+	tk=$(mptcp_lib_evts_get_info token "$evts")
+
+	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3602,6 +3614,8 @@ userspace_tests()
 		chk_subflows_total 2 2
 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 		local dump="id 10 flags signal 10.0.2.1"
+		check_output "userspace_pm_get_addr $ns1 10" \
+			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
 		kill_events_pids
@@ -3624,6 +3638,8 @@ userspace_tests()
 		chk_mptcp_info subflows 1 subflows 1
 		chk_subflows_total 2 2
 		local dump="id 20 flags subflow 10.0.3.2"
+		check_output "userspace_pm_get_addr $ns2 20" \
+			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
 		kill_events_pids
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v3 14/14] selftests: mptcp: userspace pm get addr tests
@ 2023-12-19  8:19 Geliang Tang
  2023-12-19  8:36 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
  2023-12-19 10:55 ` MPTCP CI
  0 siblings, 2 replies; 37+ messages in thread
From: Geliang Tang @ 2023-12-19  8:19 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump tests.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 403200394aa7..e603baa1d4a8 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3372,6 +3372,18 @@ userspace_pm_dump()
 	ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+	local evts=$evts_ns1
+	local tk
+
+	[ "$1" == "$ns2" ] && evts=$evts_ns2
+	tk=$(mptcp_lib_evts_get_info token "$evts")
+
+	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3602,6 +3614,8 @@ userspace_tests()
 		chk_subflows_total 2 2
 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 		local dump="id 10 flags signal 10.0.2.1"
+		check_output "userspace_pm_get_addr $ns1 10" \
+			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
 		kill_events_pids
@@ -3624,6 +3638,8 @@ userspace_tests()
 		chk_mptcp_info subflows 1 subflows 1
 		chk_subflows_total 2 2
 		local dump="id 20 flags subflow 10.0.3.2"
+		check_output "userspace_pm_get_addr $ns2 20" \
+			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
 		kill_events_pids
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v2 15/15] selftests: mptcp: userspace pm get addr tests
@ 2023-12-18  9:23 Geliang Tang
  2023-12-18 10:58 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
  0 siblings, 1 reply; 37+ messages in thread
From: Geliang Tang @ 2023-12-18  9:23 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump tests.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 403200394aa7..e603baa1d4a8 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3372,6 +3372,18 @@ userspace_pm_dump()
 	ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+	local evts=$evts_ns1
+	local tk
+
+	[ "$1" == "$ns2" ] && evts=$evts_ns2
+	tk=$(mptcp_lib_evts_get_info token "$evts")
+
+	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3602,6 +3614,8 @@ userspace_tests()
 		chk_subflows_total 2 2
 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 		local dump="id 10 flags signal 10.0.2.1"
+		check_output "userspace_pm_get_addr $ns1 10" \
+			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
 		kill_events_pids
@@ -3624,6 +3638,8 @@ userspace_tests()
 		chk_mptcp_info subflows 1 subflows 1
 		chk_subflows_total 2 2
 		local dump="id 20 flags subflow 10.0.3.2"
+		check_output "userspace_pm_get_addr $ns2 20" \
+			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
 		kill_events_pids
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next 12/12] selftests: mptcp: userspace pm get addr tests
@ 2023-12-11  8:15 Geliang Tang
  2023-12-11 11:24 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
  0 siblings, 1 reply; 37+ messages in thread
From: Geliang Tang @ 2023-12-11  8:15 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump & flush tests.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 16710e4b89d5..a6b80cfc2436 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3359,6 +3359,18 @@ userspace_pm_rm_sf()
 	wait_rm_sf $1 "${cnt}"
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+	local evts=$server_evts
+	local tk
+
+	[ "$1" == "$ns2" ] && evts=$client_evts
+	tk=$(mptcp_lib_evts_get_info token "$evts")
+
+	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 check_output() {
 	: "${check_output_err:?}"
 	: "${ret:?}"
@@ -3591,6 +3603,8 @@ userspace_tests()
 		chk_subflows_total 2 2
 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 		local dump="id 10 flags signal 10.0.2.1"
+		mptcp_lib_check_output "userspace_pm_get_addr $ns1 10" \
+				       "$dump" "      get id 10 addr"
 		[ $ip_mptcp -eq 1 ] && dump="10.0.2.1 id 10 signal "
 		check_output "pm_nl_show_endpoints $ns1" \
 			     "$dump" "      dump addrs signal"
@@ -3614,6 +3628,8 @@ userspace_tests()
 		chk_mptcp_info subflows 1 subflows 1
 		chk_subflows_total 2 2
 		local dump="id 20 flags subflow 10.0.3.2"
+		mptcp_lib_check_output "userspace_pm_get_addr $ns2 20" \
+				       "$dump" "      get id 20 addr"
 		[ $ip_mptcp -eq 1 ] && dump="10.0.3.2 id 20 subflow "
 		check_output "pm_nl_show_endpoints $ns2" \
 			     "$dump" "      dump addrs subflow"
-- 
2.35.3


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

end of thread, other threads:[~2024-02-21 11:46 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-20  9:58 [PATCH mptcp-next v14 00/14] dump for userspace pm Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 01/14] mptcp: export mptcp_genl_family & mptcp_nl_fill_addr Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 02/14] mptcp: implement mptcp_userspace_pm_dump_addr Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 03/14] mptcp: add token for get-addr in yaml Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 04/14] mptcp: dump addrs in userspace pm list Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 05/14] mptcp: check userspace pm flags Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 06/14] selftests: mptcp: add userspace pm subflow flag Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 07/14] selftests: mptcp: add token for dump_addr Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 08/14] selftests: mptcp: add mptcp_lib_check_output helper Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 09/14] selftests: mptcp: dump userspace addrs list Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 10/14] mptcp: add userspace_pm_lookup_addr_by_id helper Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 11/14] mptcp: implement mptcp_userspace_pm_get_addr Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 12/14] mptcp: get addr in userspace pm list Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 13/14] selftests: mptcp: add token for get_addr Geliang Tang
2024-02-20  9:58 ` [PATCH mptcp-next v14 14/14] selftests: mptcp: userspace pm get addr tests Geliang Tang
2024-02-20 10:51   ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
2024-02-20 18:27   ` MPTCP CI
2024-02-20 18:46   ` MPTCP CI
2024-02-20 11:50 ` [PATCH mptcp-next v14 00/14] dump for userspace pm Matthieu Baerts
2024-02-20 17:37   ` Matthieu Baerts
2024-02-20 17:48     ` Mat Martineau
2024-02-21  1:06   ` Geliang Tang
2024-02-21 11:46 ` Matthieu Baerts
  -- strict thread matches above, loose matches on Subject: below --
2024-02-16  7:42 [PATCH mptcp-next v13 14/14] selftests: mptcp: userspace pm get addr tests Geliang Tang
2024-02-16  8:34 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
2024-02-16  9:55 ` MPTCP CI
2024-02-16 10:14 ` MPTCP CI
2024-02-16 10:24   ` Matthieu Baerts
2024-02-16 11:08 ` MPTCP CI
2024-02-16 11:31 ` MPTCP CI
2024-02-16 20:33 ` MPTCP CI
2024-02-14 11:40 [PATCH mptcp-next v12 15/15] selftests: mptcp: userspace pm get addr tests Geliang Tang
2024-02-14 12:37 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
2024-02-14 12:48 ` MPTCP CI
2023-12-19  8:19 [PATCH mptcp-next v3 14/14] selftests: mptcp: userspace pm get addr tests Geliang Tang
2023-12-19  8:36 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
2023-12-19 10:55 ` MPTCP CI
2023-12-19 12:19   ` Matthieu Baerts
2023-12-18  9:23 [PATCH mptcp-next v2 15/15] selftests: mptcp: userspace pm get addr tests Geliang Tang
2023-12-18 10:58 ` selftests: mptcp: userspace pm get addr tests: Tests Results MPTCP CI
2023-12-11  8:15 [PATCH mptcp-next 12/12] selftests: mptcp: userspace pm get addr tests Geliang Tang
2023-12-11 11:24 ` selftests: mptcp: userspace pm get addr tests: 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