Re: [PATCH export v3 4/4] mptcp: fallback to TCP on MP_FAIL with a single subflow

Chenguang Zhao <[email protected]>
Newsgroups dev.linux.lists.mptcp
Message-ID <[email protected]>
在 2026/8/12 18:47, Paolo Abeni 写道:
> On 8/12/26 7:46 AM, Chenguang Zhao wrote:
>> @@ -901,6 +898,12 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fail_seq)
>>  		subflow->send_mp_fail = 1;
>>  		subflow->send_infinite_map = 1;
>>  		tcp_send_ack(sk);
> Slightly unrelated... AFAICS the current code sends the mp_fail reply
> immediatally, and will send the infinite mapping with the later data
> send, if any.
>
> I *think* it will be better to send MP_FAIL and infinite mapping
> together. It should remove a little bit of complexity on the xmit path
> and will be IMHO closer to the RFC specs.
>
> /P
>
To keep both MPTCP options on the same packet, that packet would have
to be sent before FALLBACK_DONE: once fallback is done,
mptcp_established_options() drops MPTCP options unless the skb
already carries an infinite mapping.

tcp_send_ack() builds a plain ACK with no mpext->infinite_map, so it
can include MP_FAIL but not the infinite mapping. The infinite
mapping is filled in later on a data skb in mptcp_sendmsg_frag().
With the current xmit path those two options therefore cannot go out
on the same packet. Sending them together would need a dedicated
transmit helper that builds a skb carrying both, rather than reusing
tcp_send_ack().
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.