Re: [PATCH] docs: bpf: Added more extension example
From: Song Liu <song@kernel.org>
Date: 2021-07-07 22:23:13
Also in:
bpf, linux-doc, linux-riscv, lkml
On Wed, Jul 7, 2021 at 10:50 AM UjjaL Roy [off-list ref] wrote:
From: "Roy, UjjaL" <redacted> After reading this document observed that for new users it is hard to find an example of "extension" easily. So, added a new heading for extensions for better readability. Now, the new readers can easily identify "extension" examples. Also, added one more example of filtering interface index. Signed-off-by: Roy, UjjaL <redacted>
Please prefix the subject with the target tree. In this case, the subject should say [PATCH bpf-next] xxx. Also, please revise the commit log as suggested in Documentation/process/submitting-patches.rst: Describe your changes in imperative mood, e.g. "make xyzzy do frotz" instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy to do frotz", as if you are giving orders to the codebase to change its behaviour. Otherwise, this change looks good to me. You can add my Acked-by tag in v2. (prefix v2 with [PATCH v2 bpf-next]. Thanks, Song Acked-by: Song Liu <redacted>
quoted hunk ↗ jump to hunk
--- Documentation/networking/filter.rst | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-)diff --git a/Documentation/networking/filter.rst b/Documentation/networking/filter.rst index 3e2221f4abe4..5f13905b12e0 100644 --- a/Documentation/networking/filter.rst +++ b/Documentation/networking/filter.rst@@ -320,13 +320,6 @@ Examples for low-level BPF: ret #-1 drop: ret #0 -**(Accelerated) VLAN w/ id 10**:: - - ld vlan_tci - jneq #10, drop - ret #-1 - drop: ret #0 - **icmp random packet sampling, 1 in 4**:: ldh [12]@@ -358,6 +351,22 @@ Examples for low-level BPF: bad: ret #0 /* SECCOMP_RET_KILL_THREAD */ good: ret #0x7fff0000 /* SECCOMP_RET_ALLOW */ +Examples for low-level BPF extension: + +**Packet for interface index 13**:: + + ld ifidx + jneq #13, drop + ret #-1 + drop: ret #0 + +**(Accelerated) VLAN w/ id 10**:: + + ld vlan_tci + jneq #10, drop + ret #-1 + drop: ret #0 + The above example code can be placed into a file (here called "foo"), and then be passed to the bpf_asm tool for generating opcodes, output that xt_bpf and cls_bpf understands and can directly be loaded with. Example with above --2.17.1