Re: [PATCH mptcp-next v3 0/7] mptcp: add bpf_setsockopt support

Geliang Tang <[email protected]> Mon, 27 Jul 2026 14:04:27 +0800
Newsgroups dev.linux.lists.mptcp
Message-ID <[email protected]>
Hi Gang,

On Mon, 2026-07-27 at 10:28 +0800, Gang Yan wrote:
> From: Gang Yan <[email protected]>
> 
> Hi, Matt, Geliang, Paolo
> 
> Patch 3-4 have been reviewed by Paolo before, and ready for merge
> [1][2].

Do not put unrelated code into a single series. This series is for
adding bpf_setsockopt support; other patches do not belong here.

> 
> Changelog:
> v3:
>   - Patch 2 keeps the mptcp_setsockopt_all_sf as Geliang suggested.

I recommend that you hold off on sending this patch for now: "Let's
wait until IPV6_TCLASS is merged before posting this patch." Rather
than keeping an unused mptcp_setsockopt_all_sf.

Do not send code that has not passed compilation to the mailing list.

> v2:
>   - Patches 1 and 2 are new in this series; they address TCP_MAXSEG
>     handling in the bpf_setsockopt() path.
>   - Patch 4 adds an early return to fix msk->sk_rcvlowat being
>     unexpectedly modified, an issue seen in v1.
>   - Patch 5 makes the hook safe for the non-tcp master socket: it
> guards
>     bpf_sock_ops_cb_flags_set() with sk_is_tcp() to prevent out-of-
> bounds
>     heap reads/writes through tcp_sk(sk)->bpf_sock_ops_cb_flags, and
> does
>     not set is_locked_tcp_sock for the msk (unlike tcp_call_bpf()).
> That
>     flag authorizes the verifier's direct tcp_sock-offset field
> accesses;
>     since the msk is not a tcp_sock, leaving it at the default 0 is
> safe.
> 
> v1:
>   Link:
> https://patchwork.kernel.org/project/mptcp/cover/[email protected]/
> 
> [1]
> https://patchwork.kernel.org/project/mptcp/patch/[email protected]/
> [2]
> https://patchwork.kernel.org/project/mptcp/patch/[email protected]/
> 
> Gang Yan (7):
>   mptcp: drop unused @max arg of __mptcp_setsockopt_set_val
>   mptcp: take TCP_MAXSEG handling into __mptcp_setsockopt_set_val
>   mptcp: use sockopt_lock/release_sock in sockopt
>   mptcp: reject sockopt requiring ssks' lock in BPF context
>   mptcp: enable bpf_setsockopt on the master socket
>   mptcp: add TCP_CONNECT_CB sock_ops hook
>   selftests: bpf: verify mptcp bpf_setsockopt from TCP_CONNECT_CB
> 
>  include/net/mptcp.h                           |   9 ++
>  net/core/filter.c                             |  10 ++
>  net/ipv4/tcp.c                                |   1 +
>  net/mptcp/protocol.c                          |   6 +
>  net/mptcp/protocol.h                          |  29 ++++
>  net/mptcp/sockopt.c                           | 127 +++++++++++-----
> --
>  .../testing/selftests/bpf/prog_tests/mptcp.c  |  61 +++++++++
>  .../selftests/bpf/progs/mptcp_setsockopt.c    |  32 +++++
>  8 files changed, 223 insertions(+), 52 deletions(-)
>  create mode 100644
> tools/testing/selftests/bpf/progs/mptcp_setsockopt.c