Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: mptcp: rm subflow with v4/v4mapped addr

Now both a v4 address and a v4-mapped address are supported when
destroying a userspace pm subflow, this patch adds a second subflow
to "userspace pm add & remove address" test, and two subflows could
be removed two different ways, one with the v4mapped and one with v4.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387
Fixes: 48d73f609dcc ("selftests: mptcp: update userspace pm addr tests")
Cc: stable@vger.kernel.org
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240223-upstream-net-20240223-misc-fixes-v1-2-162e87e48497@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Geliang Tang and committed by
Jakub Kicinski
7092dbee 535d620e

+18 -14
+16 -12
tools/testing/selftests/net/mptcp/mptcp_join.sh
··· 3333 3333 { 3334 3334 local evts=$evts_ns1 3335 3335 local t=${3:-1} 3336 - local ip=4 3336 + local ip 3337 3337 local tk da dp sp 3338 3338 local cnt 3339 3339 3340 3340 [ "$1" == "$ns2" ] && evts=$evts_ns2 3341 - if mptcp_lib_is_v6 $2; then ip=6; fi 3341 + [ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=4 3342 + [ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=6 3342 3343 tk=$(mptcp_lib_evts_get_info token "$evts") 3343 - da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t) 3344 - dp=$(mptcp_lib_evts_get_info dport "$evts" $t) 3345 - sp=$(mptcp_lib_evts_get_info sport "$evts" $t) 3344 + da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t $2) 3345 + dp=$(mptcp_lib_evts_get_info dport "$evts" $t $2) 3346 + sp=$(mptcp_lib_evts_get_info sport "$evts" $t $2) 3346 3347 3347 3348 cnt=$(rm_sf_count ${1}) 3348 3349 ip netns exec $1 ./pm_nl_ctl dsf lip $2 lport $sp \ ··· 3430 3429 if reset_with_events "userspace pm add & remove address" && 3431 3430 continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then 3432 3431 set_userspace_pm $ns1 3433 - pm_nl_set_limits $ns2 1 1 3432 + pm_nl_set_limits $ns2 2 2 3434 3433 speed=5 \ 3435 3434 run_tests $ns1 $ns2 10.0.1.1 & 3436 3435 local tests_pid=$! 3437 3436 wait_mpj $ns1 3438 3437 userspace_pm_add_addr $ns1 10.0.2.1 10 3439 - chk_join_nr 1 1 1 3440 - chk_add_nr 1 1 3441 - chk_mptcp_info subflows 1 subflows 1 3442 - chk_subflows_total 2 2 3443 - chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 3438 + userspace_pm_add_addr $ns1 10.0.3.1 20 3439 + chk_join_nr 2 2 2 3440 + chk_add_nr 2 2 3441 + chk_mptcp_info subflows 2 subflows 2 3442 + chk_subflows_total 3 3 3443 + chk_mptcp_info add_addr_signal 2 add_addr_accepted 2 3444 3444 userspace_pm_rm_addr $ns1 10 3445 3445 userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED 3446 - chk_rm_nr 1 1 invert 3446 + userspace_pm_rm_addr $ns1 20 3447 + userspace_pm_rm_sf $ns1 10.0.3.1 $SUB_ESTABLISHED 3448 + chk_rm_nr 2 2 invert 3447 3449 chk_mptcp_info subflows 0 subflows 0 3448 3450 chk_subflows_total 1 1 3449 3451 kill_events_pids
+2 -2
tools/testing/selftests/net/mptcp/mptcp_lib.sh
··· 213 213 grep "${2}" | sed -n 's/.*\('"${1}"':\)\([0-9a-f:.]*\).*$/\2/p;q' 214 214 } 215 215 216 - # $1: info name ; $2: evts_ns ; $3: event type 216 + # $1: info name ; $2: evts_ns ; [$3: event type; [$4: addr]] 217 217 mptcp_lib_evts_get_info() { 218 - mptcp_lib_get_info_value "${1}" "^type:${3:-1}," < "${2}" 218 + grep "${4:-}" "${2}" | mptcp_lib_get_info_value "${1}" "^type:${3:-1}," 219 219 } 220 220 221 221 # $1: PID