[dpdk-dev,v3,09/10] doc: add librte_bpf related info
Checks
Commit Message
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
doc/api/doxy-api-index.md | 3 ++-
doc/api/doxy-api.conf | 1 +
doc/guides/prog_guide/bpf_lib.rst | 37 +++++++++++++++++++++++++++++++++++++
doc/guides/prog_guide/index.rst | 1 +
4 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 doc/guides/prog_guide/bpf_lib.rst
Comments
Small typos below.
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> ---
> doc/api/doxy-api-index.md | 3 ++-
> doc/api/doxy-api.conf | 1 +
> doc/guides/prog_guide/bpf_lib.rst | 37
> +++++++++++++++++++++++++++++++++++++
<...>
> +.. SPDX-License-Identifier: BSD-3-Clause
> + Copyright(c) 2018 Intel Corporation.
> +
> +Berkeley Packet Filter Library
> +==============================
> +
> +The DPDK provides an BPF library that gives the ability to load and
> +execute Enhanced Berkeley Packet Filter (eBPF) bytecode within
> +user-space dpdk appilication.
appilication / application
<...>
> +* Create a new BPF execution context and load user provided eBPF code
> into it.
> +
> +* Destroy an BPF execution context and its runtime structures and free the
> associated memory.
> +
> +* Execute eBPF bytecode associated with provied input parameter.
provied / provided
> +
> +* Provide information about natively compield code for given BPF context.
compield / compiled
<...>
Marko K.
@@ -133,7 +133,8 @@ The public API headers are grouped by topics:
[EFD] (@ref rte_efd.h),
[ACL] (@ref rte_acl.h),
[member] (@ref rte_member.h),
- [flow classify] (@ref rte_flow_classify.h)
+ [flow classify] (@ref rte_flow_classify.h),
+ [BPF] (@ref rte_bpf.h)
- **containers**:
[mbuf] (@ref rte_mbuf.h),
@@ -42,6 +42,7 @@ INPUT = doc/api/doxy-api-index.md \
lib/librte_acl \
lib/librte_bbdev \
lib/librte_bitratestats \
+ lib/librte_bpf \
lib/librte_cfgfile \
lib/librte_cmdline \
lib/librte_compat \
new file mode 100644
@@ -0,0 +1,37 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2018 Intel Corporation.
+
+Berkeley Packet Filter Library
+==============================
+
+The DPDK provides an BPF library that gives the ability
+to load and execute Enhanced Berkeley Packet Filter (eBPF) bytecode within
+user-space dpdk appilication.
+
+It supports basic set of features from eBPF spec.
+Please refer to the
+`eBPF spec <https://www.kernel.org/doc/Documentation/networking/filter.txt>`
+for more information.
+Also it introduces basic framework to load/unload BPF-based filters
+on eth devices (right now only via SW RX/TX callbacks).
+
+The library API provides the following basic operations:
+
+* Create a new BPF execution context and load user provided eBPF code into it.
+
+* Destroy an BPF execution context and its runtime structures and free the associated memory.
+
+* Execute eBPF bytecode associated with provied input parameter.
+
+* Provide information about natively compield code for given BPF context.
+
+* Load BPF program from the ELF file and install callback to execute it on given ethdev port/queue.
+
+Not currently supported eBPF features
+-------------------------------------
+
+ - JIT
+ - cBPF
+ - tail-pointer call
+ - eBPF MAP
+ - skb
@@ -49,6 +49,7 @@ Programmer's Guide
vhost_lib
metrics_lib
port_hotplug_framework
+ bpf_lib
source_org
dev_kit_build_system
dev_kit_root_make_help