On Fri, 20 May 2022, Andrii Nakryiko wrote:
On Thu, May 19, 2022 at 4:30 PM Mat Martineau
<mathew.j.martineau@xxxxxxxxxxxxxxx> wrote:
This patch set adds BPF access to mptcp_sock structures, along with
associated self tests. You may recognize some of the code from earlier
(https://lore.kernel.org/bpf/20200918121046.190240-6-nicolas.rybowski@xxxxxxxxxxxx/)
but it has been reworked quite a bit.
v1 -> v2: Emit BTF type, add func_id checks in verifier.c and bpf_trace.c,
remove build check for CONFIG_BPF_JIT, add selftest check for CONFIG_MPTCP,
and add a patch to include CONFIG_IKCONFIG/CONFIG_IKCONFIG_PROC for the
BPF self tests.
v2 -> v3: Access sysctl through the filesystem to work around CI use of
the more limited busybox sysctl command.
v3 -> v4: Dropped special case kernel code for tcp_sock is_mptcp, use
existing bpf_tcp_helpers.h, and add check for 'ip mptcp monitor' support.
v4 -> v5: Use BPF test skeleton, more consistent use of ASSERT macros,
drop some unnecessary parameters / checks, and use tracing to acquire
MPTCP token.
Geliang Tang (6):
bpf: add bpf_skc_to_mptcp_sock_proto
selftests/bpf: Enable CONFIG_IKCONFIG_PROC in config
selftests/bpf: test bpf_skc_to_mptcp_sock
selftests/bpf: verify token of struct mptcp_sock
selftests/bpf: verify ca_name of struct mptcp_sock
selftests/bpf: verify first of struct mptcp_sock
Nicolas Rybowski (1):
selftests/bpf: add MPTCP test base
MAINTAINERS | 1 +
include/linux/bpf.h | 1 +
include/linux/btf_ids.h | 3 +-
include/net/mptcp.h | 6 +
include/uapi/linux/bpf.h | 7 +
kernel/bpf/verifier.c | 1 +
kernel/trace/bpf_trace.c | 2 +
net/core/filter.c | 18 ++
net/mptcp/Makefile | 2 +
net/mptcp/bpf.c | 21 +++
scripts/bpf_doc.py | 2 +
tools/include/uapi/linux/bpf.h | 7 +
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 13 ++
tools/testing/selftests/bpf/config | 3 +
tools/testing/selftests/bpf/network_helpers.c | 40 +++-
tools/testing/selftests/bpf/network_helpers.h | 2 +
.../testing/selftests/bpf/prog_tests/mptcp.c | 174 ++++++++++++++++++
.../testing/selftests/bpf/progs/mptcp_sock.c | 89 +++++++++
18 files changed, 382 insertions(+), 10 deletions(-)
create mode 100644 net/mptcp/bpf.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/mptcp.c
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_sock.c
base-commit: 834650b50ed283d9d34a32b425d668256bf2e487
--
2.36.1
I've added missing static for test_base and some other helper and
replaced bzero and memcpy in BPF-side code with __builtin_memset and
__builtin_memcpy (and dropped string.h include, it's not supposed to
be used from BPF-side code). Applied to bpf-next, thanks.
Thanks for the fixups.
--
Mat Martineau
Intel