From: Matthieu Baerts (NGI0) <matttbe@xxxxxxxxxx> commit d397d7246c11ca36c33c932bc36d38e3a79e9aa0 upstream. This test extends "delete and re-add" to validate the previous commit: when the endpoint linked to the initial subflow (ID 0) is re-added multiple times, it was no longer being used, because the internal linked counters are not decremented for this special endpoint: it is not an additional endpoint. Here, the "del/add id 0" steps are done 3 times to unsure this case is validated. 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: 3ad14f54bd74 ("mptcp: more accurate MPC endpoint tracking") Cc: stable@xxxxxxxxxxxxxxx Reviewed-by: Mat Martineau <martineau@xxxxxxxxxx> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@xxxxxxxxxx> Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3576,7 +3576,7 @@ endpoint_tests() pm_nl_set_limits $ns2 0 3 pm_nl_add_endpoint $ns2 10.0.1.2 id 1 dev ns2eth1 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow - test_linkfail=4 speed=20 \ + test_linkfail=4 speed=5 \ run_tests $ns1 $ns2 10.0.1.1 & local tests_pid=$! @@ -3608,20 +3608,23 @@ endpoint_tests() chk_subflow_nr "after no reject" 3 chk_mptcp_info subflows 2 subflows 2 - pm_nl_del_endpoint $ns2 1 10.0.1.2 - sleep 0.5 - chk_subflow_nr "after delete id 0" 2 - chk_mptcp_info subflows 2 subflows 2 # only decr for additional sf - - pm_nl_add_endpoint $ns2 10.0.1.2 id 1 dev ns2eth1 flags subflow - wait_mpj $ns2 - chk_subflow_nr "after re-add id 0" 3 - chk_mptcp_info subflows 3 subflows 3 + local i + for i in $(seq 3); do + pm_nl_del_endpoint $ns2 1 10.0.1.2 + sleep 0.5 + chk_subflow_nr "after delete id 0 ($i)" 2 + chk_mptcp_info subflows 2 subflows 2 # only decr for additional sf + + pm_nl_add_endpoint $ns2 10.0.1.2 id 1 dev ns2eth1 flags subflow + wait_mpj $ns2 + chk_subflow_nr "after re-add id 0 ($i)" 3 + chk_mptcp_info subflows 3 subflows 3 + done mptcp_lib_kill_wait $tests_pid - chk_join_nr 4 4 4 - chk_rm_nr 2 2 + chk_join_nr 6 6 6 + chk_rm_nr 4 4 fi } Patches currently in stable-queue which might be from matttbe@xxxxxxxxxx are queue-6.10/selftests-mptcp-join-cannot-rm-sf-if-closed.patch queue-6.10/mptcp-pm-fix-rm_addr-id-for-the-initial-subflow.patch queue-6.10/mptcp-pm-fix-id-0-endp-usage-after-multiple-re-creations.patch queue-6.10/mptcp-pm-skip-connecting-to-already-established-sf.patch queue-6.10/mptcp-pm-reuse-id-0-after-delete-and-re-add.patch queue-6.10/mptcp-avoid-duplicated-sub_closed-events.patch queue-6.10/mptcp-pm-add_addr-0-is-not-a-new-address.patch queue-6.10/mptcp-pm-do-not-remove-already-closed-subflows.patch queue-6.10/mptcp-pm-send-ack-on-an-active-subflow.patch queue-6.10/mptcp-pm-reset-mpc-endp-id-when-re-added.patch queue-6.10/mptcp-close-subflow-when-receiving-tcp-fin.patch queue-6.10/selftests-mptcp-join-check-re-re-adding-id-0-endp.patch queue-6.10/selftests-mptcp-join-no-extra-msg-if-no-counter.patch queue-6.10/mptcp-pr_debug-add-missing-n-at-the-end.patch queue-6.10/selftests-mptcp-join-check-removing-id-0-endpoint.patch queue-6.10/mptcp-sched-check-both-backup-in-retrans.patch