Commit 4e98ef62 authored by Matthieu Baerts (NGI0)'s avatar Matthieu Baerts (NGI0) Committed by Wen Zhiwei
Browse files

selftests: mptcp: join: check re-re-adding ID 0 signal

stable inclusion
from stable-v6.6.50
commit f9ca09beedda6502c3f3e639de9d1af931f1ded6
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAYKL6

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f9ca09beedda6502c3f3e639de9d1af931f1ded6



--------------------------------

commit f18fa2abf81099d822d842a107f8c9889c86043c upstream.

This test extends "delete re-add signal" to validate the previous
commit: when the 'signal' endpoint linked to the initial subflow (ID 0)
is re-added multiple times, it will re-send the ADD_ADDR with id 0. The
client should still be able to re-create this subflow, even if the
add_addr_accepted limit has been reached as this special address is not
considered as a new address.

The 'Fixes' tag here below is the same as the one from the previous
commit: this patch here is not fixing anything wrong in the selftests,
but it validates the previous fix for an issue introduced by this commit
ID.

Fixes: d0876b22 ("mptcp: add the incoming RM_ADDR support")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarMat Martineau <martineau@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Conflicts:
 tools/testing/selftests/net/mptcp/mptcp_join.sh
Signed-off-by: default avatarWen Zhiwei <wenzhiwei@kylinos.cn>
parent 4a4f2815
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -3793,7 +3793,7 @@ endpoint_tests()
		# broadcast IP: no packet for this address will be received on ns1
		pm_nl_add_endpoint $ns1 224.0.0.1 id 2 flags signal
		pm_nl_add_endpoint $ns1 10.0.1.1 id 42 flags signal
		test_linkfail=4 speed=20 \
		test_linkfail=4 speed=5 \
			run_tests $ns1 $ns2 10.0.1.1 &
		local tests_pid=$!

@@ -3822,7 +3822,17 @@ endpoint_tests()

		pm_nl_add_endpoint $ns1 10.0.1.1 id 99 flags signal
		wait_mpj $ns2
		chk_subflow_nr "after re-add" 3
                chk_subflow_nr "after re-add ID 0" 3
                chk_mptcp_info subflows 3 subflows 3

                pm_nl_del_endpoint $ns1 99 10.0.1.1
                sleep 0.5
                chk_subflow_nr "after re-delete ID 0" 2
                chk_mptcp_info subflows 2 subflows 2

                pm_nl_add_endpoint $ns1 10.0.1.1 id 88 flags signal
                wait_mpj $ns2
                chk_subflow_nr "after re-re-add ID 0" 3
		chk_mptcp_info subflows 3 subflows 3
		mptcp_lib_kill_wait $tests_pid

@@ -3832,19 +3842,19 @@ endpoint_tests()
                chk_evt_nr ns1 MPTCP_LIB_EVENT_ESTABLISHED 1
                chk_evt_nr ns1 MPTCP_LIB_EVENT_ANNOUNCED 0
                chk_evt_nr ns1 MPTCP_LIB_EVENT_REMOVED 0
                chk_evt_nr ns1 MPTCP_LIB_EVENT_SUB_ESTABLISHED 4
                chk_evt_nr ns1 MPTCP_LIB_EVENT_SUB_CLOSED 2
                chk_evt_nr ns1 MPTCP_LIB_EVENT_SUB_ESTABLISHED 5
                chk_evt_nr ns1 MPTCP_LIB_EVENT_SUB_CLOSED 3

                chk_evt_nr ns2 MPTCP_LIB_EVENT_CREATED 1
                chk_evt_nr ns2 MPTCP_LIB_EVENT_ESTABLISHED 1
                chk_evt_nr ns2 MPTCP_LIB_EVENT_ANNOUNCED 5
                chk_evt_nr ns2 MPTCP_LIB_EVENT_REMOVED 3
                chk_evt_nr ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 4
                chk_evt_nr ns2 MPTCP_LIB_EVENT_SUB_CLOSED 2
                chk_evt_nr ns2 MPTCP_LIB_EVENT_ANNOUNCED 6
                chk_evt_nr ns2 MPTCP_LIB_EVENT_REMOVED 4
                chk_evt_nr ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 5
                chk_evt_nr ns2 MPTCP_LIB_EVENT_SUB_CLOSED 3

		chk_join_nr 4 4 4
		chk_add_nr 5 5
		chk_rm_nr 3 2 invert
		chk_join_nr 5 5 5
		chk_add_nr 6 6
		chk_rm_nr 4 3 invert
	fi

	# flush and re-add