Re: [PATCH net v3 2/3] bpf,sockmap: disallow MPTCP sockets from sockmap

From: Jiayuan Chen

Date: Mon Nov 03 2025 - 07:59:00 EST


October 28, 2025 at 20:03, "Paolo Abeni" <pabeni@xxxxxxxxxx mailto:pabeni@xxxxxxxxxx?to=%22Paolo%20Abeni%22%20%3Cpabeni%40redhat.com%3E > wrote:


>
> On 10/23/25 2:54 PM, Jiayuan Chen wrote:
>
> >
> > MPTCP creates subflows for data transmission, and these sockets should not
> > be added to sockmap because MPTCP sets specialized data_ready handlers
> > that would be overridden by sockmap.
> >
> > Additionally, for the parent socket of MPTCP subflows (plain TCP socket),
> > MPTCP sk requires specific protocol handling that conflicts with sockmap's
> > operation(mptcp_prot).
> >
> > This patch adds proper checks to reject MPTCP subflows and their parent
> > sockets from being added to sockmap, while preserving compatibility with
> > reuseport functionality for listening MPTCP sockets.
> >
> It's unclear to me why that is safe. sockmap is going to change the
> listener msk proto ops.
>
> The listener could disconnect and create an egress connection, still
> using the wrong ops.

sockmap only replaces read/write handler of a sk and keeps another handler.

But I agree with you; I also don't think sockmap should replace the handlers of
the listen socket. Because for a listen socket, sockmap is merely used as a container,
just like hash map or array map. But in reality, that's exactly what it does...

> I think sockmap should always be prevented for mptcp socket, or at least
> a solid explanation of why such exception is safe should be included in
> the commit message.
>
> Note that the first option allows for solving the issue entirely in the
> mptcp code, setting dummy/noop psock_update_sk_prot for mptcp sockets
> and mptcp subflows.

I will do it.