diff options
author | Geliang Tang <tanggeliang@kylinos.cn> | 2024-02-21 14:29:42 +0800 |
---|---|---|
committer | Geliang Tang <tanggeliang@kylinos.cn> | 2024-04-22 10:56:52 +0800 |
commit | 63ebae18fb45ca44ba2fcee8d423372d28331d0d (patch) | |
tree | e120f10c4b9faf14d78a779c27c1a0979cae3a29 | |
parent | a1889c8f06ce4ab910b13217d53fa44846b9a5a5 (diff) | |
download | mptcp_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-x | tools/testing/selftests/net/mptcp/mptcp_join.sh | 41 |
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 |