[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230607192625.22641-1-daniel@iogearbox.net>
Date: Wed, 7 Jun 2023 21:26:18 +0200
From: Daniel Borkmann <daniel@...earbox.net>
To: ast@...nel.org
Cc: andrii@...nel.org,
martin.lau@...ux.dev,
razor@...ckwall.org,
sdf@...gle.com,
john.fastabend@...il.com,
kuba@...nel.org,
dxu@...uu.xyz,
joe@...ium.io,
toke@...nel.org,
davem@...emloft.net,
bpf@...r.kernel.org,
netdev@...r.kernel.org,
Daniel Borkmann <daniel@...earbox.net>
Subject: [PATCH bpf-next v2 0/7] BPF link support for tc BPF programs
This series adds BPF link support for tc BPF programs. We initially
presented the motivation, related work and design at last year's LPC
conference in the networking & BPF track [0], and a recent update on
our progress of the rework during this year's LSF/MM/BPF summit [1].
The main changes are in first two patches and the last two have an
extensive batch of test cases we developed along with it, please see
individual patches for details. We tested this series with tc-testing
selftest suite as well as BPF CI/selftests. Thanks!
[0] https://lpc.events/event/16/contributions/1353/
[1] http://vger.kernel.org/bpfconf2023_material/tcx_meta_netdev_borkmann.pdf
Daniel Borkmann (7):
bpf: Add generic attach/detach/query API for multi-progs
bpf: Add fd-based tcx multi-prog infra with link support
libbpf: Add opts-based attach/detach/query API for tcx
libbpf: Add link-based API for tcx
bpftool: Extend net dump with tcx progs
selftests/bpf: Add mprog API tests for BPF tcx opts
selftests/bpf: Add mprog API tests for BPF tcx links
MAINTAINERS | 5 +-
include/linux/bpf_mprog.h | 245 ++
include/linux/netdevice.h | 15 +-
include/linux/skbuff.h | 4 +-
include/net/sch_generic.h | 2 +-
include/net/tcx.h | 157 +
include/uapi/linux/bpf.h | 72 +-
kernel/bpf/Kconfig | 1 +
kernel/bpf/Makefile | 3 +-
kernel/bpf/mprog.c | 476 +++
kernel/bpf/syscall.c | 95 +-
kernel/bpf/tcx.c | 347 +++
net/Kconfig | 5 +
net/core/dev.c | 267 +-
net/core/filter.c | 4 +-
net/sched/Kconfig | 4 +-
net/sched/sch_ingress.c | 45 +-
tools/bpf/bpftool/net.c | 92 +-
tools/include/uapi/linux/bpf.h | 72 +-
tools/lib/bpf/bpf.c | 83 +-
tools/lib/bpf/bpf.h | 61 +-
tools/lib/bpf/libbpf.c | 50 +-
tools/lib/bpf/libbpf.h | 17 +
tools/lib/bpf/libbpf.map | 2 +
.../selftests/bpf/prog_tests/tc_helpers.h | 72 +
.../selftests/bpf/prog_tests/tc_links.c | 2279 ++++++++++++++
.../selftests/bpf/prog_tests/tc_opts.c | 2698 +++++++++++++++++
.../selftests/bpf/progs/test_tc_link.c | 40 +
28 files changed, 6995 insertions(+), 218 deletions(-)
create mode 100644 include/linux/bpf_mprog.h
create mode 100644 include/net/tcx.h
create mode 100644 kernel/bpf/mprog.c
create mode 100644 kernel/bpf/tcx.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_helpers.h
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_links.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_opts.c
create mode 100644 tools/testing/selftests/bpf/progs/test_tc_link.c
--
2.34.1
Powered by blists - more mailing lists