This series adds BPF link support for tc BPF programs. We initially presented the motivation, related work and design at this year's LPC conference in the networking & BPF track [0], and have incorporated feedback we received. The main changes are in first two patches and the last one has an extensive batch of test cases we developed along with it, please see individual patches for details. We tested this series with the tc-testing selftest suite as well as the existing and newly developed tc BPF tests from BPF selftests which all pass. Thanks! [0] https://lpc.events/event/16/contributions/1353/ Daniel Borkmann (10): bpf: Add initial fd-based API to attach tc BPF programs bpf: Implement BPF link handling for tc BPF programs bpf: Implement link update for tc BPF link programs bpf: Implement link introspection for tc BPF link programs bpf: Implement link detach for tc BPF link programs libbpf: Change signature of bpf_prog_query libbpf: Add extended attach/detach opts libbpf: Add support for BPF tc link bpftool: Add support for tc fd-based attach types bpf, selftests: Add various BPF tc link selftests MAINTAINERS | 4 +- include/linux/bpf.h | 4 + include/linux/netdevice.h | 14 +- include/linux/skbuff.h | 4 +- include/net/sch_generic.h | 2 +- include/net/xtc.h | 195 +++++ include/uapi/linux/bpf.h | 45 +- kernel/bpf/Kconfig | 1 + kernel/bpf/Makefile | 1 + kernel/bpf/net.c | 451 +++++++++++ kernel/bpf/syscall.c | 27 +- net/Kconfig | 5 + net/core/dev.c | 262 +++--- net/core/filter.c | 4 +- net/sched/Kconfig | 4 +- net/sched/sch_ingress.c | 48 +- tools/bpf/bpftool/net.c | 76 +- tools/include/uapi/linux/bpf.h | 45 +- tools/lib/bpf/bpf.c | 27 +- tools/lib/bpf/bpf.h | 22 +- tools/lib/bpf/libbpf.c | 31 +- tools/lib/bpf/libbpf.h | 2 + tools/lib/bpf/libbpf.map | 2 + .../selftests/bpf/prog_tests/tc_link.c | 756 ++++++++++++++++++ .../selftests/bpf/progs/test_tc_link.c | 43 + 25 files changed, 1932 insertions(+), 143 deletions(-) create mode 100644 include/net/xtc.h create mode 100644 kernel/bpf/net.c create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_link.c create mode 100644 tools/testing/selftests/bpf/progs/test_tc_link.c -- 2.34.1