[PATCH v3 bpf-next 07/11] bpf: mptcp: Don't support BPF_SOCK_OPS_RCVQ_CB.
From: Kuniyuki Iwashima <kuniyu@google.com>
Date: 2026-05-23 08:30:12
Also in:
bpf
Subsystem:
bpf [general] (safe dynamic programs and tools), bpf [networking] (tcx & tc bpf, sock_addr), networking [general], the rest · Maintainers:
Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Eduard Zingerman, Kumar Kartikeya Dwivedi, Martin KaFai Lau, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
MPTCP has its own sock->ops->set_rcvlowat() / mptcp_set_rcvlowat().
We should not allow calling __tcp_set_rcvlowat() for MPTCP subflows.
Let's disable BPF_SOCK_OPS_RCVQ_CB for MPTCP for now.
If needed in the future, bpf_sock_ops_tcp_set_rcvlowat() could be
extended to properly support MPTCP.
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
net/core/filter.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/core/filter.c b/net/core/filter.c
index 1fb63b264b18..82ec2291d6f0 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -5390,6 +5390,9 @@ static int __bpf_sock_ops_cb_flags_set(struct sock *sk, int val)
return 0;
}
+ if (unlikely(sk_is_mptcp(sk)))
+ return -EOPNOTSUPP;
+
write_lock_bh(&sk->sk_callback_lock);
if (unlikely(tcp_in_sockmap(sk))) {--
2.54.0.746.g67dd491aae-goog