Re: [PATCH export v3 2/4] mptcp: reject joins after fallback in mptcp_is_fully_established

Paolo Abeni <[email protected]>
Newsgroups dev.linux.lists.mptcp
Message-ID <[email protected]>
On 8/14/26 11:09 AM, Matthieu Baerts wrote:
> 14 Aug 2026 10:43:41 Paolo Abeni <[email protected]>:
>> It's not clear to me what actually goes wrong and how. Do you have handy
>> a event sequence or stack trace demonstrating the critical scenario?
> 
> Indeed, better with packetdrill scripts:
> 
> https://github.com/chrisocean716-star/packetdrill/blob/bf9be7a7bee3687500444b284a9db2a0009a5252/gtests/net/mptcp/dss/dss_drop_after_data_fallback_server.pkt
> 
> => A fallback is done, a subflow can be initiated, then rejected.
> 
> 
> https://github.com/chrisocean716-star/packetdrill/blob/fed57fab92c407eb433acdb8c8ce72bd8e3e2f37/gtests/net/mptcp/mp_join/mp_join_server_after_fallback.pkt
> 
> => The MP_FAIL is partially ignored if received before being in fully
> established state.

Thanks!

I'm pretty sure there is a miss-intepretation of the 2nd case. The
problem is not with `msk->fully_established`. AFAICS
msk->fully_established is true when the MP_FAIL is receive.

The passive msk socket sets it at MPC ACK reception.

The problem is that, at MP_FAIL reception, the infinite mapping is not
sent immediately, but it's scheduled with the next xmit, and until such
point the msk does not perform the fallback.

I think a proper solution would be bounding MP_FAIL (reply) and infinite
mapping in the same ack.

As noted by Gang, it may require a new helper (build on top of the
tcp_send_ack).

/P
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.