aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeliang Tang <tanggeliang@kylinos.cn>2024-02-21 14:29:42 +0800
committerGeliang Tang <tanggeliang@kylinos.cn>2024-04-22 10:56:52 +0800
commit63ebae18fb45ca44ba2fcee8d423372d28331d0d (patch)
treee120f10c4b9faf14d78a779c27c1a0979cae3a29
parenta1889c8f06ce4ab910b13217d53fa44846b9a5a5 (diff)
downloadmptcp_net-next-63ebae18fb45ca44ba2fcee8d423372d28331d0d.tar.gz
selftests: mptcp: flush userspace addrs list
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>
-rwxr-xr-xtools/testing/selftests/net/mptcp/mptcp_join.sh41
1 files 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 fefa9173bdaaab..a1639b943c7a6a 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3221,6 +3221,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}" $MPTCP_LIB_EVENT_SUB_ESTABLISHED
+ done <<< "$(userspace_pm_dump "${ns}")"
+}
+
userspace_pm_chk_dump_addr()
{
local ns="${1}"
@@ -3365,27 +3378,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 $MPTCP_LIB_EVENT_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