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

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: d0876b2284 ("mptcp: add the incoming RM_ADDR support")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
[ Conflicts in mptcp_join.sh, because the helpers are different in this
  version:
  - run_tests has been modified a few times to reduce the number of
    positional parameters
  - no chk_mptcp_info helper
  - chk_subflow_nr taking an extra parameter
  - kill_tests_wait instead of mptcp_lib_kill_wait ]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Matthieu Baerts (NGI0)
2024-09-05 16:43:10 +02:00
committed by Greg Kroah-Hartman
parent 5dc9170eee
commit 9bffd688bb

View File

@@ -3387,7 +3387,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
run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null &
run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_5 2>/dev/null &
local tests_pid=$!
wait_mpj $ns2
@@ -3409,7 +3409,15 @@ 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
pm_nl_del_endpoint $ns1 99 10.0.1.1
sleep 0.5
chk_subflow_nr "" "after re-delete ID 0" 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
kill_wait "${tests_pid}"
kill_events_pids
@@ -3419,19 +3427,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