MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH mptcp-next v9 00/23] dump for userspace pm
@ 2024-01-16  3:34 Geliang Tang
  2024-01-16  3:34 ` [PATCH mptcp-next v9 01/23] mptcp: add pm_has_addr_attr_id helper Geliang Tang
                   ` (22 more replies)
  0 siblings, 23 replies; 37+ messages in thread
From: Geliang Tang @ 2024-01-16  3:34 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

v9:
 - add missing "sock_put(sk)" in patch 7, 17 and 21 to fix the "kmemleak"
   errors reported by CI.
 - rename the helper to mptcp_pm_has_addr_attr_id.
 - use my new mail address.

v8:
 - Address Mat's comments in v7

v7:
 - fix checkpatch.sh warning reported by CI.
 - fix build errors reported by CI.

v6:
 - patches 1-5, fixes for -net
 - patches 6, 15, selftests for "fixes for -net".
 - patches 7-14, 16-21, update "dump for userspace pm v5"
 - patches 22, 23, cleanups for set_flags
 - patch 24, flush selftest.

v5:
 - patch 2, save bitmap instead of id.
 - patch 3, drop token in reply.
 - update patch 4 and patch 12, add mptcp_pm_dump_addr and
   mptcp_pm_get_addr wrappers in pm.c

v4:
 - update patch 2, patch 3 and patch 12.
 - fix the warnings reported by CI in v3:

Unable to validate one commit: 7633a101a mptcp: get addr in userspace pm list
Unable to compile mptcp source code with make W=1 net/mptcp/pm_netlink.o
Unable to compile mptcp source code with make C=1 net/mptcp/pm_netlink.o: net/mptcp/pm_netlink.c:1656:5: warning: symbol 'mptcp_pm_nl_get_addr' was not declared. Should it be static?

v3:
 - fix the errors reported by CI in v2:

[10:55:51.288] [  897.523894][ T5664] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:306
[10:55:51.288] [  897.532157][ T5664] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5664, name: pm_nl_ctl
[10:55:51.289] [  897.539503][ T5664] preempt_count: 201, expected: 0

 - drop mptcp_pm_nl_put_entry_msg and mptcp_pm_nl_put_entry_info
   helpers.

v2:
Address Mat's comments in v1:
 - patch 2: pass token to dump_addr too.
 - patch 2: add back id in mptcp_userspace_pm_dump_addr().
 - patch 5: update mptcp.yaml

v1:
Address Mat's comments in "userspace pm enhancements" v14.

Geliang Tang (23):
  mptcp: add pm_has_addr_attr_id helper
  mptcp: add needs_id for userspace appending addr
  mptcp: add needs_id for netlink appending addr
  mptcp: map v4 address to v6 when destroying subflow
  selftests: mptcp: rm subflow with v4/v4mapped addr
  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 subflow flag
  selftests: mptcp: add userspace pm subflow flag
  selftests: mptcp: add token for dump_addr
  selftests: mptcp: add check_output helper
  selftests: mptcp: dump after creating id 0 subflow
  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
  mptcp: update set_flags interfaces
  mptcp: set error messages for set_flags
  selftests: mptcp: flush userspace addrs list

 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                                |  38 ++-
 net/mptcp/pm_netlink.c                        | 100 ++++----
 net/mptcp/pm_userspace.c                      | 241 +++++++++++++++---
 net/mptcp/protocol.h                          |  25 +-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 150 ++++++++++-
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c |  39 ++-
 9 files changed, 505 insertions(+), 100 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v2 7/7] selftests: mptcp: flush userspace addrs list
@ 2024-02-22  8:03 Geliang Tang
  2024-02-22  8:51 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
  0 siblings, 1 reply; 37+ messages in thread
From: Geliang Tang @ 2024-02-22  8:03 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch adds a new helper userspace_pm_flush() to flush all addresses
for the userspace PM. Invoke it in userspace pm dump address and subflow
tests. And use dump commands to check if the userspace pm local address
list is empty after addresses flushing.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 292fccb1f7f4..be1d2005c4fe 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3356,6 +3356,19 @@ userspace_pm_get_addr()
 	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
 }
 
+# $1: ns
+userspace_pm_flush()
+{
+	local ns="${1}"
+	local id
+	local addr
+
+	while read -r _ id _ _ addr; do
+		userspace_pm_rm_addr "${ns}" "${id}"
+		userspace_pm_rm_sf "${ns}" "${addr}" $SUB_ESTABLISHED
+	done <<< $(userspace_pm_dump "${ns}")
+}
+
 userspace_pm_chk_dump_addr()
 {
 	local ns="${1}"
@@ -3500,27 +3513,37 @@ userspace_tests()
 	if reset_with_events "userspace pm create destroy subflow" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns2
-		pm_nl_set_limits $ns1 0 1
+		pm_nl_set_limits $ns1 0 2
 		speed=5 \
 			run_tests $ns1 $ns2 10.0.1.1 &
 		local tests_pid=$!
 		wait_mpj $ns2
+		userspace_pm_add_sf $ns2 10.0.2.2 10
 		userspace_pm_add_sf $ns2 10.0.3.2 20
-		chk_join_nr 1 1 1
-		chk_mptcp_info subflows 1 subflows 1
-		chk_subflows_total 2 2
+		chk_join_nr 2 2 2
+		chk_mptcp_info subflows 2 subflows 2
+		chk_subflows_total 3 3
 		userspace_pm_chk_dump_addr "${ns2}" \
-			"id 20 flags subflow 10.0.3.2" \
+			$'id 10 flags subflow 10.0.2.2\nid 20 flags subflow 10.0.3.2' \
 			"subflow"
+		userspace_pm_chk_get_addr "${ns2}" "10" "id 10 flags subflow 10.0.2.2"
 		userspace_pm_chk_get_addr "${ns2}" "20" "id 20 flags subflow 10.0.3.2"
 		userspace_pm_rm_addr $ns2 20
 		userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
 		userspace_pm_chk_dump_addr "${ns2}" \
-			"" \
+			"id 10 flags subflow 10.0.2.2" \
 			"after rm_addr 20"
-		chk_rm_nr 1 1
-		chk_mptcp_info subflows 0 subflows 0
-		chk_subflows_total 1 1
+		if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
+			userspace_pm_flush $ns2
+			userspace_pm_chk_dump_addr "${ns2}" "" "after flush"
+			chk_rm_nr 2 2
+			chk_mptcp_info subflows 0 subflows 0
+			chk_subflows_total 1 1
+		else
+			chk_rm_nr 1 1
+			chk_mptcp_info subflows 1 subflows 1
+			chk_subflows_total 2 2
+		fi
 		kill_events_pids
 		mptcp_lib_kill_wait $tests_pid
 	fi
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next 8/8] selftests: mptcp: flush userspace addrs list
@ 2024-02-21  6:31 Geliang Tang
  2024-02-21 15:47 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
  0 siblings, 1 reply; 37+ messages in thread
From: Geliang Tang @ 2024-02-21  6:31 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch adds a new helper userspace_pm_flush() to flush all addresses
for the userspace PM. Invoke it in userspace pm dump address and subflow
tests. And use dump commands to check if the userspace pm local address
list is empty after addresses flushing.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index aedc5698f26a..9f1476f0e2ae 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3374,6 +3374,34 @@ userspace_pm_get_addr()
 	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
 }
 
+# $1: ns ; $2: addr
+userspace_pm_flush()
+{
+	if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
+		local ns=$1
+		local line
+
+		userspace_pm_dump $ns | while read -r line; do
+			local arr=($line)
+			local nr=0
+			local id
+			local addr
+			local i
+			for i in "${arr[@]}"; do
+				if [ $i = "id" ]; then
+					id=${arr[$nr+1]}
+				fi
+				nr=$((nr + 1))
+			done
+			addr=${arr[$nr-1]}
+			userspace_pm_rm_addr $ns $id
+			userspace_pm_rm_sf $ns "$addr" $SUB_ESTABLISHED
+		done
+	else
+		print_skip
+	fi
+}
+
 userspace_pm_chk_dump_addr()
 {
 	local ns="${1}"
@@ -3518,25 +3546,29 @@ userspace_tests()
 	if reset_with_events "userspace pm create destroy subflow" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns2
-		pm_nl_set_limits $ns1 0 1
+		pm_nl_set_limits $ns1 0 2
 		speed=5 \
 			run_tests $ns1 $ns2 10.0.1.1 &
 		local tests_pid=$!
 		wait_mpj $ns2
+		userspace_pm_add_sf $ns2 10.0.2.2 10
 		userspace_pm_add_sf $ns2 10.0.3.2 20
-		chk_join_nr 1 1 1
-		chk_mptcp_info subflows 1 subflows 1
-		chk_subflows_total 2 2
+		chk_join_nr 2 2 2
+		chk_mptcp_info subflows 2 subflows 2
+		chk_subflows_total 3 3
 		userspace_pm_chk_dump_addr "${ns2}" \
-			"id 20 flags subflow 10.0.3.2" \
+			$'id 10 flags subflow 10.0.2.2\nid 20 flags subflow 10.0.3.2' \
 			"subflow"
+		userspace_pm_chk_get_addr "${ns2}" "10" "id 10 flags subflow 10.0.2.2"
 		userspace_pm_chk_get_addr "${ns2}" "20" "id 20 flags subflow 10.0.3.2"
 		userspace_pm_rm_addr $ns2 20
 		userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
 		userspace_pm_chk_dump_addr "${ns2}" \
-			"" \
+			"id 10 flags subflow 10.0.2.2" \
 			"after rm_addr 20"
-		chk_rm_nr 1 1
+		userspace_pm_flush $ns2
+		userspace_pm_chk_dump_addr "${ns2}" "" "after flush"
+		chk_rm_nr 2 2
 		chk_mptcp_info subflows 0 subflows 0
 		chk_subflows_total 1 1
 		kill_events_pids
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v10 23/23] selftests: mptcp: flush userspace addrs list
@ 2024-01-18  6:12 Geliang Tang
  2024-01-18  7:24 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
  2024-01-18  8:03 ` MPTCP CI
  0 siblings, 2 replies; 37+ messages in thread
From: Geliang Tang @ 2024-01-18  6:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch adds a new helper userspace_pm_flush() to flush all addresses
for the userspace PM. Invoke it in userspace pm dump address and subflow
tests. And use dump commands to check if the userspace pm local address
list is empty after addresses flushing.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 0b325b5efccf..65e8d9d61ac9 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3385,6 +3385,31 @@ userspace_pm_get_addr()
 	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
 }
 
+# $1: ns ; $2: addr
+userspace_pm_flush()
+{
+	local ns=$1
+	local line
+
+	userspace_pm_dump $ns | while read -r line; do
+		local arr=($line)
+		local nr=0
+		local id
+		local addr
+		local i
+		for i in "${arr[@]}"; do
+			if [ $i = "id" ]; then
+				id=${arr[$nr+1]}
+			fi
+			nr=$((nr + 1))
+		done
+		addr=${arr[$nr-1]}
+		[ $ip_mptcp -eq 1 ] && addr=${arr[0]}
+		userspace_pm_rm_addr $ns $id
+		userspace_pm_rm_sf $ns "$addr" $MPTCP_LIB_SUB_ESTABLISHED
+	done
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3606,8 +3631,8 @@ userspace_tests()
 		wait $tests_pid
 	fi
 
-	# userspace pm dump address
-	if reset_with_events "userspace pm dump address" &&
+	# userspace pm dump & flush address
+	if reset_with_events "userspace pm dump & flush address" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns1
 		pm_nl_set_limits $ns2 1 1
@@ -3626,12 +3651,18 @@ userspace_tests()
 			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
+		userspace_pm_flush $ns1
+		check_output "userspace_pm_dump $ns1" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1 invert
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
 
-	# userspace pm dump subflow
-	if reset_with_events "userspace pm dump subflow" &&
+	# userspace pm dump & flush subflow
+	if reset_with_events "userspace pm dump & flush subflow" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns2
 		pm_nl_set_limits $ns1 0 1
@@ -3650,6 +3681,12 @@ userspace_tests()
 			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
+		userspace_pm_flush $ns2
+		check_output "userspace_pm_dump $ns2" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v8 23/23] selftests: mptcp: flush userspace addrs list
@ 2024-01-10 13:19 Geliang Tang
  2024-01-10 14:23 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
  2024-01-10 14:59 ` MPTCP CI
  0 siblings, 2 replies; 37+ messages in thread
From: Geliang Tang @ 2024-01-10 13:19 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a new helper userspace_pm_flush() to flush all addresses
for the userspace PM. Invoke it in userspace pm dump address and subflow
tests. And use dump commands to check if the userspace pm local address
list is empty after addresses flushing.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 0b325b5efccf..65e8d9d61ac9 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3385,6 +3385,31 @@ userspace_pm_get_addr()
 	ip netns exec $1 ./pm_nl_ctl get $2 token $tk
 }
 
+# $1: ns ; $2: addr
+userspace_pm_flush()
+{
+	local ns=$1
+	local line
+
+	userspace_pm_dump $ns | while read -r line; do
+		local arr=($line)
+		local nr=0
+		local id
+		local addr
+		local i
+		for i in "${arr[@]}"; do
+			if [ $i = "id" ]; then
+				id=${arr[$nr+1]}
+			fi
+			nr=$((nr + 1))
+		done
+		addr=${arr[$nr-1]}
+		[ $ip_mptcp -eq 1 ] && addr=${arr[0]}
+		userspace_pm_rm_addr $ns $id
+		userspace_pm_rm_sf $ns "$addr" $MPTCP_LIB_SUB_ESTABLISHED
+	done
+}
+
 check_output()
 {
 	local cmd="$1"
@@ -3606,8 +3631,8 @@ userspace_tests()
 		wait $tests_pid
 	fi
 
-	# userspace pm dump address
-	if reset_with_events "userspace pm dump address" &&
+	# userspace pm dump & flush address
+	if reset_with_events "userspace pm dump & flush address" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns1
 		pm_nl_set_limits $ns2 1 1
@@ -3626,12 +3651,18 @@ userspace_tests()
 			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
+		userspace_pm_flush $ns1
+		check_output "userspace_pm_dump $ns1" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1 invert
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
 
-	# userspace pm dump subflow
-	if reset_with_events "userspace pm dump subflow" &&
+	# userspace pm dump & flush subflow
+	if reset_with_events "userspace pm dump & flush subflow" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns2
 		pm_nl_set_limits $ns1 0 1
@@ -3650,6 +3681,12 @@ userspace_tests()
 			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
+		userspace_pm_flush $ns2
+		check_output "userspace_pm_dump $ns2" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 37+ messages in thread
* [PATCH mptcp-next v7 24/24] selftests: mptcp: flush userspace addrs list
@ 2023-12-30  2:48 Geliang Tang
  2024-01-02 11:58 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
                   ` (2 more replies)
  0 siblings, 3 replies; 37+ messages in thread
From: Geliang Tang @ 2023-12-30  2:48 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds a new helper userspace_pm_flush() to flush all addresses
for the userspace PM. Invoke it in userspace pm dump address and subflow
tests. And use dump commands to check if the userspace pm local address
list is empty after addresses flushing.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 0b325b5efccf..86101e2b8a92 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3409,6 +3409,31 @@ check_output()
 	fi
 }
 
+# $1: ns ; $2: addr
+userspace_pm_flush()
+{
+	local ns=$1
+	local line
+
+	userspace_pm_dump $ns | while read -r line; do
+		local arr=($line)
+		local nr=0
+		local id
+		local addr
+		local i
+		for i in "${arr[@]}"; do
+			if [ $i = "id" ]; then
+				id=${arr[$nr+1]}
+			fi
+			nr=$((nr + 1))
+		done
+		addr=${arr[$nr-1]}
+		[ $ip_mptcp -eq 1 ] && addr=${arr[0]}
+		userspace_pm_rm_addr $ns $id
+		userspace_pm_rm_sf $ns "$addr" $MPTCP_LIB_SUB_ESTABLISHED
+	done
+}
+
 userspace_tests()
 {
 	# userspace pm type prevents add_addr
@@ -3606,8 +3631,8 @@ userspace_tests()
 		wait $tests_pid
 	fi
 
-	# userspace pm dump address
-	if reset_with_events "userspace pm dump address" &&
+	# userspace pm dump & flush address
+	if reset_with_events "userspace pm dump & flush address" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns1
 		pm_nl_set_limits $ns2 1 1
@@ -3626,12 +3651,18 @@ userspace_tests()
 			     "$dump" "      get id 10 addr"
 		check_output "userspace_pm_dump $ns1" \
 			     "$dump" "      dump addrs signal"
+		userspace_pm_flush $ns1
+		check_output "userspace_pm_dump $ns1" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1 invert
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
 
-	# userspace pm dump subflow
-	if reset_with_events "userspace pm dump subflow" &&
+	# userspace pm dump & flush subflow
+	if reset_with_events "userspace pm dump & flush subflow" &&
 	   continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
 		set_userspace_pm $ns2
 		pm_nl_set_limits $ns1 0 1
@@ -3650,6 +3681,12 @@ userspace_tests()
 			     "$dump" "      get id 20 addr"
 		check_output "userspace_pm_dump $ns2" \
 			     "$dump" "      dump addrs subflow"
+		userspace_pm_flush $ns2
+		check_output "userspace_pm_dump $ns2" \
+			     "" "      dump addrs after flush"
+		chk_rm_nr 1 1
+		chk_mptcp_info subflows 0 subflows 0
+		chk_subflows_total 1 1
 		kill_events_pids
 		wait $tests_pid
 	fi
-- 
2.39.2


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

end of thread, other threads:[~2024-02-22  8:51 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-16  3:34 [PATCH mptcp-next v9 00/23] dump for userspace pm Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 01/23] mptcp: add pm_has_addr_attr_id helper Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 02/23] mptcp: add needs_id for userspace appending addr Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 03/23] mptcp: add needs_id for netlink " Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 04/23] mptcp: map v4 address to v6 when destroying subflow Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 05/23] selftests: mptcp: rm subflow with v4/v4mapped addr Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 06/23] mptcp: export mptcp_genl_family & mptcp_nl_fill_addr Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 07/23] mptcp: implement mptcp_userspace_pm_dump_addr Geliang Tang
2024-01-17 10:11   ` kernel test robot
2024-01-16  3:34 ` [PATCH mptcp-next v9 08/23] mptcp: add token for get-addr in yaml Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 09/23] mptcp: dump addrs in userspace pm list Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 10/23] mptcp: check userspace pm subflow flag Geliang Tang
2024-01-16  3:34 ` [PATCH mptcp-next v9 11/23] selftests: mptcp: add " Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 12/23] selftests: mptcp: add token for dump_addr Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 13/23] selftests: mptcp: add check_output helper Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 14/23] selftests: mptcp: dump after creating id 0 subflow Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 15/23] selftests: mptcp: dump userspace addrs list Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 16/23] mptcp: add userspace_pm_lookup_addr_by_id helper Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 17/23] mptcp: implement mptcp_userspace_pm_get_addr Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 18/23] mptcp: get addr in userspace pm list Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 19/23] selftests: mptcp: add token for get_addr Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 20/23] selftests: mptcp: userspace pm get addr tests Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 21/23] mptcp: update set_flags interfaces Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 22/23] mptcp: set error messages for set_flags Geliang Tang
2024-01-16  3:35 ` [PATCH mptcp-next v9 23/23] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-01-16  4:45   ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-01-16  5:00   ` MPTCP CI
  -- strict thread matches above, loose matches on Subject: below --
2024-02-22  8:03 [PATCH mptcp-next v2 7/7] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-02-22  8:51 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-02-21  6:31 [PATCH mptcp-next 8/8] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-02-21 15:47 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-01-18  6:12 [PATCH mptcp-next v10 23/23] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-01-18  7:24 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-01-18  8:03 ` MPTCP CI
2024-01-10 13:19 [PATCH mptcp-next v8 23/23] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-01-10 14:23 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-01-10 14:59 ` MPTCP CI
2023-12-30  2:48 [PATCH mptcp-next v7 24/24] selftests: mptcp: flush userspace addrs list Geliang Tang
2024-01-02 11:58 ` selftests: mptcp: flush userspace addrs list: Tests Results MPTCP CI
2024-01-02 11:59   ` Matthieu Baerts
2024-01-02 14:14 ` MPTCP CI
2024-01-06  2:55 ` MPTCP CI

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