[v12,00/12] net/tap: RSS and other fixes

Message ID 20240502213618.11391-1-stephen@networkplumber.org (mailing list archive)
Headers
Series net/tap: RSS and other fixes |

Message

Stephen Hemminger May 2, 2024, 9:31 p.m. UTC
  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 tool chain.

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.

v12 - separate out the fix for rxq fd in flow_isolate
      cleanup log messages
      bug fix for queue full

Stephen Hemminger (12):
  net/tap: fix fd check in flow_isolate
  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: remove extraneous newlines
  net/tap: do not mark queue full as error
  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          |  384 +++---
 drivers/net/tap/rte_eth_tap.h          |   42 +-
 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             |  557 ++------
 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, 907 insertions(+), 3617 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