mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
selftests: mptcp: join: check re-adding init endp with != id
commit 1c2326fcae4f0c5de8ad0d734ced43a8e5f17dac upstream.
The initial subflow has a special local ID: 0. It is specific per
connection.
When a global endpoint is deleted and re-added later, it can have a
different ID, but the kernel should still use the ID 0 if it corresponds
to the initial address.
This test validates this behaviour: the endpoint linked to the initial
subflow is removed, and re-added with a different ID.
Note that removing the initial subflow will not decrement the 'subflows'
counters, which corresponds to the *additional* subflows. On the other
hand, when the same endpoint is re-added, it will increment this
counter, as it will be seen as an additional subflow this time.
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: 3ad14f54bd ("mptcp: more accurate MPC endpoint tracking")
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:
committed by
Greg Kroah-Hartman
parent
d6b06098db
commit
2ad4ad6936
@@ -3243,11 +3243,12 @@ userspace_tests()
|
||||
# remove and re-add
|
||||
if reset "delete re-add signal" &&
|
||||
mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
||||
pm_nl_set_limits $ns1 0 2
|
||||
pm_nl_set_limits $ns2 2 2
|
||||
pm_nl_set_limits $ns1 0 3
|
||||
pm_nl_set_limits $ns2 3 3
|
||||
pm_nl_add_endpoint $ns1 10.0.2.1 id 1 flags signal
|
||||
# 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 &
|
||||
local tests_pid=$!
|
||||
|
||||
@@ -3263,11 +3264,19 @@ userspace_tests()
|
||||
pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal
|
||||
wait_mpj $ns2
|
||||
chk_subflow_nr "" "after re-add" 3
|
||||
|
||||
pm_nl_del_endpoint $ns1 42 10.0.1.1
|
||||
sleep 0.5
|
||||
chk_subflow_nr "" "after delete ID 0" 2
|
||||
|
||||
pm_nl_add_endpoint $ns1 10.0.1.1 id 99 flags signal
|
||||
wait_mpj $ns2
|
||||
chk_subflow_nr "" "after re-add" 3
|
||||
kill_tests_wait
|
||||
|
||||
chk_join_nr 3 3 3
|
||||
chk_add_nr 4 4
|
||||
chk_rm_nr 2 1 invert
|
||||
chk_join_nr 4 4 4
|
||||
chk_add_nr 5 5
|
||||
chk_rm_nr 3 2 invert
|
||||
fi
|
||||
|
||||
# flush and re-add
|
||||
|
||||
Reference in New Issue
Block a user