Hi net and bpf-net maintainers, On 11/11/2025 07:02, Jiayuan Chen wrote: > Overall, we encountered a warning [1] that can be triggered by running the > selftest I provided. > > sockmap works by replacing sk_data_ready, recvmsg, sendmsg operations and > implementing fast socket-level forwarding logic: > 1. Users can obtain file descriptors through userspace socket()/accept() > interfaces, then call BPF syscall to perform these replacements. > 2. Users can also use the bpf_sock_hash_update helper (in sockops programs) > to replace handlers when TCP connections enter ESTABLISHED state > (BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB/BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB) > > However, when combined with MPTCP, an issue arises: MPTCP creates subflow > sk's and performs TCP handshakes, so the BPF program obtains subflow sk's > and may incorrectly replace their sk_prot. We need to reject such > operations. In patch 1, we set psock_update_sk_prot to NULL in the > subflow's custom sk_prot. > > Additionally, if the server's listening socket has MPTCP enabled and the > client's TCP also uses MPTCP, we should allow the combination of subflow > and sockmap. This is because the latest Golang programs have enabled MPTCP > for listening sockets by default [2]. For programs already using sockmap, > upgrading Golang should not cause sockmap functionality to fail. > > Patch 2 prevents the WARNING from occurring.
I think this series can be applied directly in 'net', if that's OK for both of you. Cheers, Matt -- Sponsored by the NGI0 Core fund.

