bpf: add function to convert classic BPF to DPDK BPF
authorStephen Hemminger <stephen@networkplumber.org>
Wed, 20 Oct 2021 21:42:28 +0000 (14:42 -0700)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 22 Oct 2021 15:19:13 +0000 (17:19 +0200)
commit2eccf6afbea99dcabb9843c48088097796be8a33
treef8d0d07e1635566b188acc874be35c15d29809d2
parent80da61198b6be66ab16964eb0944c79c0325c40e
bpf: add function to convert classic BPF to DPDK BPF

The pcap library emits classic BPF (32 bit) and is useful for
creating filter programs.  The DPDK BPF library only implements
extended BPF (eBPF).  Add an function to convert from old to
new.

The rte_bpf_convert function uses rte_malloc to put the resulting
program in hugepage shared memory so it can be passed from a
secondary process to a primary process.

The code to convert was originally done as part of the Linux
kernel implementation then converted to a userspace program.
See https://github.com/tklauser/filter2xdp

Both authors have agreed that it is allowable to create a modified
version of this code and license it with BSD license used by DPDK.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
app/test/meson.build
app/test/test_bpf.c
lib/bpf/bpf_convert.c [new file with mode: 0644]
lib/bpf/meson.build
lib/bpf/rte_bpf.h
lib/bpf/version.map