Implementation of Daniel's proposal for allowing DEVMAP entries to be a device index, program fd pair.
Programs are run after XDP_REDIRECT and have access to both Rx device and Tx device. v1 - fixed prog put on invalid program - Toke - changed write value from id to fd per Toke's comments about capabilities - add test cases David Ahern (5): bpf: Handle 8-byte values in DEVMAP and DEVMAP_HASH bpf: Add support to attach bpf program to a devmap entry xdp: Add xdp_txq_info to xdp_buff bpftool: Add SEC name for xdp programs attached to device map selftest: Add tests for XDP programs in devmap entries include/linux/bpf.h | 5 + include/net/xdp.h | 5 + include/uapi/linux/bpf.h | 3 + kernel/bpf/devmap.c | 143 +++++++++++++++--- net/core/dev.c | 18 +++ net/core/filter.c | 17 +++ tools/include/uapi/linux/bpf.h | 3 + tools/lib/bpf/libbpf.c | 2 + .../bpf/prog_tests/xdp_devmap_attach.c | 101 +++++++++++++ .../selftests/bpf/progs/test_xdp_devmap.c | 19 +++ .../bpf/progs/test_xdp_with_devmap.c | 17 +++ 11 files changed, 315 insertions(+), 18 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c create mode 100644 tools/testing/selftests/bpf/progs/test_xdp_devmap.c create mode 100644 tools/testing/selftests/bpf/progs/test_xdp_with_devmap.c -- 2.21.1 (Apple Git-122.3)