The patches of TAP RSS eBPF follow the RFC on this issue https://dpdk.org/dev/patchwork/patch/31781/
v4 changes with respect to v3 ============================= * Code updates based on review comments * New commits organization (2-->5) based on review comments 1. net/tap: support actions for different classifiers (preparations for BPF. No BPF code yet) 2. net/tap: add eBPF bytes code (BPF bytes code in a separate file) 3. net/tap: add eBPF program file (Program source code of bytes code) 4. net/tap: add eBPF API (BPF API to be used by TAP) 5. net/tap: implement TAP RSS using eBPF v3 changes with respect to v2 ============================= * Add support for IPv6 RSS in BPF program * Bug fixes * Updated compatibility to kernel versions: eBPF requires Linux version 4.9 configured with BPF * New license header (SPDX) for newly added files v2 changes with respect to v1 ============================= * v2 has new commits organization (3 --> 2) * BPF program was revised. It is successfully tested on IPv4 L3 L4 layers (compatible to mlx4 device) * Licensing: no comments received for using "Dual BSD/GPL" string during BPF program loading to the kernel. (v1 and v2 are using the same license strings) Any comments are welcome. * Compatibility to kernel versions: eBPF requires Linux version 4.2 configured with BPF. TAP PMD will successfully compile on systems with old or non-BPF configured kernels. During compilation time the required Linux headers are searched for. If they are not present missing definitions are locally added (tap_autoconf.h). If the kernel cannot support a BPF operation - at runtime it will gracefully reject the netlink message (with BPF) sent to it. Ophir Munk (5): net/tap: support actions for different classifiers net/tap: add eBPF bytes code net/tap: add eBPF program file net/tap: add eBPF API net/tap: implement TAP RSS using eBPF drivers/net/tap/Makefile | 34 + drivers/net/tap/rte_eth_tap.h | 9 +- drivers/net/tap/tap_bpf.h | 112 +++ drivers/net/tap/tap_bpf_api.c | 190 +++++ drivers/net/tap/tap_bpf_insns.h | 1693 +++++++++++++++++++++++++++++++++++++ drivers/net/tap/tap_bpf_program.c | 221 +++++ drivers/net/tap/tap_flow.c | 648 +++++++++++--- drivers/net/tap/tap_flow.h | 13 + drivers/net/tap/tap_rss.h | 34 + drivers/net/tap/tap_tcmsgs.h | 4 + 10 files changed, 2862 insertions(+), 96 deletions(-) create mode 100644 drivers/net/tap/tap_bpf.h create mode 100644 drivers/net/tap/tap_bpf_api.c create mode 100644 drivers/net/tap/tap_bpf_insns.h create mode 100644 drivers/net/tap/tap_bpf_program.c create mode 100644 drivers/net/tap/tap_rss.h -- 2.7.4