Merge branch 'mptcp-fix-fallback-mib-counter-and-wrong-var-in-selftests'
Matthieu Baerts says: ==================== mptcp: fix fallback MIB counter and wrong var in selftests Here are two fixes related to MPTCP. The first patch fixes when the MPTcpExtMPCapableFallbackACK MIB counter is modified: it should only be incremented when a connection was using MPTCP options, but then a fallback to TCP has been done. This patch also checks the counter is not incremented by mistake during the connect selftests. This counter was wrongly incremented since its introduction in v5.7. The second patch fixes a wrong parsing of the 'dev' endpoint options in the selftests: the wrong variable was used. This option was not used before, but it is going to be soon. This issue is visible since v5.18. ==================== Link: https://lore.kernel.org/r/20240329-upstream-net-20240329-fallback-mib-v1-0-324a8981da48@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
0323b251ce
@ -3937,8 +3937,6 @@ static int mptcp_stream_accept(struct socket *sock, struct socket *newsock,
|
||||
mptcp_set_state(newsk, TCP_CLOSE);
|
||||
}
|
||||
} else {
|
||||
MPTCP_INC_STATS(sock_net(ssk),
|
||||
MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
|
||||
tcpfallback:
|
||||
newsk->sk_kern_sock = kern;
|
||||
lock_sock(newsk);
|
||||
|
@ -905,6 +905,8 @@ dispose_child:
|
||||
return child;
|
||||
|
||||
fallback:
|
||||
if (fallback)
|
||||
SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
|
||||
mptcp_subflow_drop_ctx(child);
|
||||
return child;
|
||||
}
|
||||
|
@ -383,12 +383,14 @@ do_transfer()
|
||||
local stat_cookierx_last
|
||||
local stat_csum_err_s
|
||||
local stat_csum_err_c
|
||||
local stat_tcpfb_last_l
|
||||
stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
|
||||
stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
|
||||
stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
|
||||
stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
|
||||
stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
|
||||
stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
|
||||
stat_tcpfb_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
|
||||
|
||||
timeout ${timeout_test} \
|
||||
ip netns exec ${listener_ns} \
|
||||
@ -457,11 +459,13 @@ do_transfer()
|
||||
local stat_cookietx_now
|
||||
local stat_cookierx_now
|
||||
local stat_ooo_now
|
||||
local stat_tcpfb_now_l
|
||||
stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
|
||||
stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
|
||||
stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
|
||||
stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
|
||||
stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
|
||||
stat_tcpfb_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
|
||||
|
||||
expect_synrx=$((stat_synrx_last_l))
|
||||
expect_ackrx=$((stat_ackrx_last_l))
|
||||
@ -508,6 +512,11 @@ do_transfer()
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${stat_ooo_now} -eq 0 ] && [ ${stat_tcpfb_last_l} -ne ${stat_tcpfb_now_l} ]; then
|
||||
mptcp_lib_pr_fail "unexpected fallback to TCP"
|
||||
rets=1
|
||||
fi
|
||||
|
||||
if [ $cookies -eq 2 ];then
|
||||
if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
|
||||
extra+=" WARN: CookieSent: did not advance"
|
||||
|
@ -729,7 +729,7 @@ pm_nl_check_endpoint()
|
||||
[ -n "$_flags" ]; flags="flags $_flags"
|
||||
shift
|
||||
elif [ $1 = "dev" ]; then
|
||||
[ -n "$2" ]; dev="dev $1"
|
||||
[ -n "$2" ]; dev="dev $2"
|
||||
shift
|
||||
elif [ $1 = "id" ]; then
|
||||
_id=$2
|
||||
@ -3610,6 +3610,8 @@ endpoint_tests()
|
||||
local tests_pid=$!
|
||||
|
||||
wait_mpj $ns2
|
||||
pm_nl_check_endpoint "creation" \
|
||||
$ns2 10.0.2.2 id 2 flags subflow dev ns2eth2
|
||||
chk_subflow_nr "before delete" 2
|
||||
chk_mptcp_info subflows 1 subflows 1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user