[PATCH mptcp-next RFC v5 2/3] mptcp: fallback immediately on MP_FAIL reception
Chenguang Zhao <[email protected]>
| Newsgroups | dev.linux.lists.mptcp |
|---|---|
| Message-ID | <[email protected]> |
From: Chenguang Zhao <[email protected]> Call mptcp_try_fallback() right after the MP_FAIL response ACK, and simplify mptcp_update_infinite_map() accordingly. Fixes: 1e39e5a32ad7 ("mptcp: infinite mapping sending") Signed-off-by: Chenguang Zhao <[email protected]> --- net/mptcp/pm.c | 5 +++++ net/mptcp/protocol.c | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index ba7c6f80a183..69701ac7e436 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -895,6 +895,11 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fail_seq) pr_debug("MP_FAIL response received\n"); WRITE_ONCE(subflow->fail_tout, 0); } + + if (!mptcp_try_fallback(sk, MPTCP_MIB_MPFAILFALLBACK)) { + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_FALLBACKFAILED); + mptcp_subflow_reset(sk); + } } static int mptcp_add_addr_len(int family, bool echo, bool port) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index f879b1061f2d..abe45a31ca5f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1417,13 +1417,7 @@ static void mptcp_update_infinite_map(struct mptcp_sock *msk, mpext->infinite_map = 1; mpext->data_len = 0; - - if (!mptcp_try_fallback(ssk, MPTCP_MIB_INFINITEMAPTX)) { - MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_FALLBACKFAILED); - mptcp_subflow_reset(ssk); - return; - } - + MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPTX); mptcp_subflow_ctx(ssk)->send_infinite_map = 0; } -- 2.25.1