> This patchset introduces an extensible load API for the BPF library in
> DPDK, addressing current limitations regarding ABI stability and feature
> constraints.
>
> Currently, `rte_bpf_load` relies on a fixed `struct rte_bpf_prm`, which
> makes it difficult to add new loading options or parameters without
> breaking the ABI.
>
> To resolve these issues, this series introduces `rte_bpf_load_ex` taking
> `struct rte_bpf_prm_ex`. The new parameter structure includes a `sz`
> field for backward compatibility, allowing future extensions.
>
> Taking advantage of the new extensible API, this patchset also adds
> several new features:
> * Support for loading and executing BPF programs with up to 5 arguments.
> * Support for loading classic BPF (cBPF) directly.
> * Support for loading ELF files directly from memory buffers.
> * New API functions (`rte_bpf_eth_rx_install` and `rte_bpf_eth_tx_install`)
> to install an already loaded BPF program as a port callback, decoupling
> the loading phase from the installation phase.
>
> Marat Khalili (10):
> bpf: make logging prefixes more consistent
> bpf: introduce extensible load API
> bpf: support up to 5 arguments
> bpf: add cBPF origin to rte_bpf_load_ex
> bpf: support rte_bpf_prm_ex with port callbacks
> bpf: support loading ELF files from memory
> test/bpf: test loading cBPF directly
> test/bpf: test loading ELF file from memory
> doc: add release notes for new extensible BPF API
> doc: add load API to BPF programmer's guide
>
> app/test/test_bpf.c | 325 +++++++++++++++----------
> doc/guides/prog_guide/bpf_lib.rst | 75 +++++-
> doc/guides/rel_notes/release_26_07.rst | 20 ++
> lib/bpf/bpf.c | 32 ++-
> lib/bpf/bpf_convert.c | 97 +++++++-
> lib/bpf/bpf_exec.c | 126 +++++++++-
> lib/bpf/bpf_impl.h | 53 +++-
> lib/bpf/bpf_jit_arm64.c | 18 +-
> lib/bpf/bpf_jit_x86.c | 10 +-
> lib/bpf/bpf_load.c | 200 +++++++++++++--
> lib/bpf/bpf_load_elf.c | 189 +++++++++-----
> lib/bpf/bpf_pkt.c | 65 +++--
> lib/bpf/bpf_stub.c | 46 ----
> lib/bpf/bpf_validate.c | 94 ++++---
> lib/bpf/meson.build | 15 +-
> lib/bpf/rte_bpf.h | 195 ++++++++++++++-
> lib/bpf/rte_bpf_ethdev.h | 54 ++++
> 17 files changed, 1245 insertions(+), 369 deletions(-)
> delete mode 100644 lib/bpf/bpf_stub.c
> --
I already reviewed these changes offline, as part of our
internal patch acceptance process.
Current version LGMT and addresses all comments I had.
Series-Acked-by: Konstantin Ananyev <[email protected]>
> 2.43.0