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: d0876b2284cf ("mptcp: add the incoming RM_ADDR support")
Cc: sta...@vger.kernel.org
Reviewed-by: Mat Martineau <martin...@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matt...@kernel.org>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 30 ++++++++++++++++---------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh 
b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 597bf928e8f9..47c89a16b6e1 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3720,7 +3720,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
 
@@ -3730,19 +3740,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

-- 
2.45.2


Reply via email to