[PATCH mptcp-net v2 0/3] mptcp: fix TCP fallback on single-subflow MP_FAIL

Chenguang Zhao posted 3 patches 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
net/mptcp/mib.c      |  1 +
net/mptcp/mib.h      |  1 +
net/mptcp/pm.c       | 33 +++++++++++++++++++++++++++++++--
net/mptcp/protocol.c | 19 ++++++++++++-------
net/mptcp/protocol.h | 18 +++++++++++-------
net/mptcp/subflow.c  |  2 +-
6 files changed, 57 insertions(+), 17 deletions(-)
[PATCH mptcp-net v2 0/3] mptcp: fix TCP fallback on single-subflow MP_FAIL
Posted by Chenguang Zhao 1 month ago
From: Chenguang Zhao <zhaochenguang@kylinos.cn>

When a valid MP_FAIL is received and infinite fallback is still allowed
(single contiguous subflow), RFC8684 section 3.7 requires leaving MPTCP
mode. Today the stack only clears allow_subflows and defers the real
fallback to the later infinite-map transmit path. If no data is sent in
between, the peer can still complete the 4th ACK as MPTCP and keep using
MPTCP options.

This series falls back immediately after the MP_FAIL response, rejects
later joins via mptcp_is_fully_established(), annotates allow_subflows
with READ/WRITE_ONCE, and adds an MPFailFallback MIB while switching to
mptcp_try_fallback().

Patch 1 fixes the fallback behaviour.
Patch 2 annotates allow_subflows accesses.
Patch 3 adds the dedicated MIB and uses the common fallback helper.

v1 -> v2:
- Split the previous single patch as suggested by Gang Yan
- Keep the MIB as a separate patch so the functional fix can be reviewed
  on its own

Chenguang Zhao (3):
  mptcp: fallback to TCP on MP_FAIL with a single subflow
  mptcp: use READ/WRITE_ONCE for allow_subflows
  mptcp: add MPFailFallback MIB for MP_FAIL TCP fallback

 net/mptcp/mib.c      |  1 +
 net/mptcp/mib.h      |  1 +
 net/mptcp/pm.c       | 33 +++++++++++++++++++++++++++++++--
 net/mptcp/protocol.c | 19 ++++++++++++-------
 net/mptcp/protocol.h | 18 +++++++++++-------
 net/mptcp/subflow.c  |  2 +-
 6 files changed, 57 insertions(+), 17 deletions(-)

---
v1:
 https://lore.kernel.org/all/20260713064134.914507-1-chenguang.zhao@linux.dev/
-- 
2.25.1
Re: [PATCH mptcp-net v2 0/3] mptcp: fix TCP fallback on single-subflow MP_FAIL
Posted by Matthieu Baerts 4 days, 18 hours ago
Hi Chenguang,

On 15/07/2026 08:18, Chenguang Zhao wrote:
> From: Chenguang Zhao <zhaochenguang@kylinos.cn>
> 
> When a valid MP_FAIL is received and infinite fallback is still allowed
> (single contiguous subflow), RFC8684 section 3.7 requires leaving MPTCP
> mode. Today the stack only clears allow_subflows and defers the real
> fallback to the later infinite-map transmit path. If no data is sent in
> between, the peer can still complete the 4th ACK as MPTCP and keep using
> MPTCP options.
> 
> This series falls back immediately after the MP_FAIL response, rejects
> later joins via mptcp_is_fully_established(), annotates allow_subflows
> with READ/WRITE_ONCE, and adds an MPFailFallback MIB while switching to
> mptcp_try_fallback().
> 
> Patch 1 fixes the fallback behaviour.
> Patch 2 annotates allow_subflows accesses.
> Patch 3 adds the dedicated MIB and uses the common fallback helper.
Thank you for this series and your patience. It looks like the CI didn't
manage to validate this. Do you mind rebasing it on top of the 'export'
(or 'for-review') branch please?

I also have a couple of comments/questions on the different patches if
you don't mind.

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.