The support of doing RSS for rte_flow_action was a cool idea but it has been broken for several releases of DPDK as the kernel and BPF infrastructure changed.
This series cleans up the BPF program, implements several features that were never completed in the original code and changes to use the current BPF toolchain. The result should be easier to read and maintain. I do not intend to support backporting this to stable releases due to lack of demand and dealing with older distros. v10 - add some cleanups to stats and name sizes - update documentation from review Stephen Hemminger (9): net/tap: do not duplicate fd's net/tap: remove unused fields net/tap: validate and setup parameters for BPF RSS net/tap: do not build flow support if header is out of date net/tap: rewrite the RSS BPF program net/tap: use libbpf to load new BPF program net/tap: remove no longer used files net/tap: simplify internals net/tap: update documentation .gitignore | 3 - doc/guides/nics/tap.rst | 274 ++-- doc/guides/rel_notes/release_24_07.rst | 7 + drivers/net/tap/bpf/Makefile | 19 - drivers/net/tap/bpf/README | 49 + drivers/net/tap/bpf/bpf_api.h | 276 ---- drivers/net/tap/bpf/bpf_elf.h | 53 - drivers/net/tap/bpf/bpf_extract.py | 86 -- drivers/net/tap/bpf/meson.build | 107 ++ drivers/net/tap/bpf/tap_bpf_program.c | 255 ---- drivers/net/tap/bpf/tap_rss.c | 267 ++++ drivers/net/tap/meson.build | 42 +- drivers/net/tap/rte_eth_tap.c | 339 ++--- drivers/net/tap/rte_eth_tap.h | 32 +- drivers/net/tap/tap_bpf.h | 121 -- drivers/net/tap/tap_bpf_api.c | 190 --- drivers/net/tap/tap_bpf_insns.h | 1743 ------------------------ drivers/net/tap/tap_flow.c | 559 ++------ drivers/net/tap/tap_flow.h | 17 +- drivers/net/tap/tap_intr.c | 7 +- drivers/net/tap/tap_rss.h | 21 +- drivers/net/tap/tap_tcmsgs.h | 4 +- 22 files changed, 887 insertions(+), 3584 deletions(-) delete mode 100644 drivers/net/tap/bpf/Makefile create mode 100644 drivers/net/tap/bpf/README delete mode 100644 drivers/net/tap/bpf/bpf_api.h delete mode 100644 drivers/net/tap/bpf/bpf_elf.h delete mode 100644 drivers/net/tap/bpf/bpf_extract.py create mode 100644 drivers/net/tap/bpf/meson.build delete mode 100644 drivers/net/tap/bpf/tap_bpf_program.c create mode 100644 drivers/net/tap/bpf/tap_rss.c delete mode 100644 drivers/net/tap/tap_bpf.h delete mode 100644 drivers/net/tap/tap_bpf_api.c delete mode 100644 drivers/net/tap/tap_bpf_insns.h -- 2.43.0