[dpdk-dev] [PATCH v5 1/8] bpf: add BPF loading and execution framework

Ferruh Yigit ferruh.yigit at intel.com
Wed May 9 19:09:09 CEST 2018


On 5/4/2018 1:45 PM, Konstantin Ananyev wrote:
> librte_bpf provides a framework to load and execute eBPF bytecode
> inside user-space dpdk based applications.
> It supports basic set of features from eBPF spec
> (https://www.kernel.org/doc/Documentation/networking/filter.txt).
> 
> Not currently supported features:
>  - JIT
>  - cBPF
>  - tail-pointer call
>  - eBPF MAP
>  - skb
>  - function calls for 32-bit apps
>  - mbuf pointer as input parameter for 32-bit apps
> 
> It also adds dependency on libelf.
> 
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> ---
>  MAINTAINERS                        |   4 +
>  config/common_base                 |   5 +
>  lib/Makefile                       |   2 +
>  lib/librte_bpf/Makefile            |  31 +++
>  lib/librte_bpf/bpf.c               |  59 +++++
>  lib/librte_bpf/bpf_def.h           | 138 +++++++++++
>  lib/librte_bpf/bpf_exec.c          | 453 +++++++++++++++++++++++++++++++++++++
>  lib/librte_bpf/bpf_impl.h          |  41 ++++
>  lib/librte_bpf/bpf_load.c          | 386 +++++++++++++++++++++++++++++++
>  lib/librte_bpf/bpf_validate.c      |  55 +++++
>  lib/librte_bpf/meson.build         |  19 ++
>  lib/librte_bpf/rte_bpf.h           | 184 +++++++++++++++
>  lib/librte_bpf/rte_bpf_version.map |  12 +
>  lib/meson.build                    |   2 +-
>  mk/rte.app.mk                      |   2 +

Can you please update release notes "Shared Library Versions" section and add
this new library?

>  15 files changed, 1392 insertions(+), 1 deletion(-)
>  create mode 100644 lib/librte_bpf/Makefile
>  create mode 100644 lib/librte_bpf/bpf.c
>  create mode 100644 lib/librte_bpf/bpf_def.h
>  create mode 100644 lib/librte_bpf/bpf_exec.c
>  create mode 100644 lib/librte_bpf/bpf_impl.h
>  create mode 100644 lib/librte_bpf/bpf_load.c
>  create mode 100644 lib/librte_bpf/bpf_validate.c
>  create mode 100644 lib/librte_bpf/meson.build
>  create mode 100644 lib/librte_bpf/rte_bpf.h
>  create mode 100644 lib/librte_bpf/rte_bpf_version.map
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ce06e93c2..4a7edbcf7 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1049,6 +1049,10 @@ Latency statistics
>  M: Reshma Pattan <reshma.pattan at intel.com>
>  F: lib/librte_latencystats/
>  
> +BPF
> +M: Konstantin Ananyev <konstantin.ananyev at intel.com>
> +F: lib/librte_bpf/
> +F: doc/guides/prog_guide/bpf_lib.rst

This file will be added in next patches, it can be possible to add this line in
the patch that adds the document.

>  
>  Test Applications
>  -----------------
> diff --git a/config/common_base b/config/common_base
> index 03a8688b5..ac425491c 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -863,3 +863,8 @@ CONFIG_RTE_APP_CRYPTO_PERF=y
>  # Compile the eventdev application
>  #
>  CONFIG_RTE_APP_EVENTDEV=y
> +
> +#
> +# Compile librte_bpf
> +#
> +CONFIG_RTE_LIBRTE_BPF=y

This is default enabled for all architectures and environment, just to double
check that all architectures supported? I am not able to test because of missing
libelf.h for cross environment


More information about the dev mailing list