selftests: mptcp: userspace pm send RM_ADDR for ID 0
authorGeliang Tang <geliang.tang@suse.com>
Tue, 28 Nov 2023 23:18:52 +0000 (15:18 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 30 Nov 2023 04:06:18 +0000 (20:06 -0800)
This patch adds a selftest for userspace PM to remove id 0 address.

Use userspace_pm_add_addr() helper to add an id 10 address, then use
userspace_pm_rm_addr() helper to remove id 0 address.

Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20231128-send-net-next-2023107-v4-8-8d6b94150f6b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 812a5ee5415824a0c8a7f18a9725ef77576fdee9..a98a72e55d2c4c087c36dbf2abaccb9da476854f 100755 (executable)
@@ -3538,6 +3538,32 @@ userspace_tests()
                kill_events_pids
                wait $tests_pid
        fi
+
+       # userspace pm send RM_ADDR for ID 0
+       if reset_with_events "userspace pm send RM_ADDR for ID 0" &&
+          continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
+               set_userspace_pm $ns1
+               pm_nl_set_limits $ns2 1 1
+               speed=5 \
+                       run_tests $ns1 $ns2 10.0.1.1 &
+               local tests_pid=$!
+               wait_mpj $ns1
+               userspace_pm_add_addr $ns1 10.0.2.1 10
+               chk_join_nr 1 1 1
+               chk_add_nr 1 1
+               chk_mptcp_info subflows 1 subflows 1
+               chk_subflows_total 2 2
+               chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
+               userspace_pm_rm_addr $ns1 0
+               # we don't look at the counter linked to the subflows that
+               # have been removed but to the one linked to the RM_ADDR
+               chk_rm_nr 1 0 invert
+               chk_rst_nr 0 0 invert
+               chk_mptcp_info subflows 1 subflows 1
+               chk_subflows_total 1 1
+               kill_events_pids
+               wait $tests_pid
+       fi
 }
 
 endpoint_tests()