doc: add BPF library guide
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Thu, 10 May 2018 10:23:11 +0000 (11:23 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 11 May 2018 22:38:19 +0000 (00:38 +0200)
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
MAINTAINERS
doc/guides/prog_guide/bpf_lib.rst [new file with mode: 0644]
doc/guides/prog_guide/index.rst

index b6edea5..7a18e0d 100644 (file)
@@ -1105,6 +1105,7 @@ M: Konstantin Ananyev <konstantin.ananyev@intel.com>
 F: lib/librte_bpf/
 F: test/bpf/
 F: test/test/test_bpf.c
+F: doc/guides/prog_guide/bpf_lib.rst
 
 
 Test Applications
diff --git a/doc/guides/prog_guide/bpf_lib.rst b/doc/guides/prog_guide/bpf_lib.rst
new file mode 100644 (file)
index 0000000..7c08e6b
--- /dev/null
@@ -0,0 +1,38 @@
+..  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 application.
+
+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 provided input parameter.
+
+*   Provide information about natively compiled 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 for non X86_64 platforms
+ - cBPF
+ - tail-pointer call
+ - eBPF MAP
+ - skb
+ - external function calls for 32-bit platforms
index 36c62f1..3b920e5 100644 (file)
@@ -53,6 +53,7 @@ Programmer's Guide
     vhost_lib
     metrics_lib
     port_hotplug_framework
+    bpf_lib
     source_org
     dev_kit_build_system
     dev_kit_root_make_help