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