selftests: mptcp: join: check re-using ID of unused ADD_ADDR
commita13d5aad4dupstream. This test extends "delete re-add signal" to validate the previous commit. An extra address is announced by the server, but this address cannot be used by the client. The result is that no subflow will be established to this address. Later, the server will delete this extra endpoint, and set a new one, with a valid address, but re-using the same ID. Before the previous commit, the server would not have been able to announce this new address. While at it, extra checks have been added to validate the expected numbers of MPJ, ADD_ADDR and RM_ADDR. 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:b6c0838086("mptcp: remove addr and subflow in PM netlink") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://patch.msgid.link/20240819-net-mptcp-pm-reusing-id-v1-2-38035d40de5b@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> [ 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
7f72d7095b
commit
d6b06098db
@@ -3243,9 +3243,11 @@ 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 1 1
|
||||
pm_nl_set_limits $ns2 1 1
|
||||
pm_nl_set_limits $ns1 0 2
|
||||
pm_nl_set_limits $ns2 2 2
|
||||
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
|
||||
run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null &
|
||||
local tests_pid=$!
|
||||
|
||||
@@ -3253,13 +3255,19 @@ userspace_tests()
|
||||
chk_subflow_nr needtitle "before delete" 2
|
||||
|
||||
pm_nl_del_endpoint $ns1 1 10.0.2.1
|
||||
pm_nl_del_endpoint $ns1 2 224.0.0.1
|
||||
sleep 0.5
|
||||
chk_subflow_nr "" "after delete" 1
|
||||
|
||||
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
||||
pm_nl_add_endpoint $ns1 10.0.2.1 id 1 flags signal
|
||||
pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal
|
||||
wait_mpj $ns2
|
||||
chk_subflow_nr "" "after re-add" 2
|
||||
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
|
||||
fi
|
||||
|
||||
# flush and re-add
|
||||
|
||||
Reference in New Issue
Block a user