Commit 0641c3c8 authored by Quentin Monnet's avatar Quentin Monnet Committed by David S. Miller

tools: bpftool: update documentation for --json and --pretty usage

Update the documentation to provide help about JSON output generation,
and add an example in bpftool-prog manual page.

Also reintroduce an example that was left aside when the tool was moved
from GitHub to the kernel sources, in order to show how to mount the
bpffs file system (to pin programs) inside the bpftool-prog manual page.
Signed-off-by: default avatarQuentin Monnet <quentin.monnet@netronome.com>
Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 47ff7ac6
...@@ -10,7 +10,9 @@ tool for inspection and simple manipulation of eBPF maps ...@@ -10,7 +10,9 @@ tool for inspection and simple manipulation of eBPF maps
SYNOPSIS SYNOPSIS
======== ========
**bpftool** **map** *COMMAND* **bpftool** [*OPTIONS*] **map** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] }
*COMMANDS* := *COMMANDS* :=
{ **show** | **dump** | **update** | **lookup** | **getnext** | **delete** { **show** | **dump** | **update** | **lookup** | **getnext** | **delete**
...@@ -77,6 +79,13 @@ OPTIONS ...@@ -77,6 +79,13 @@ OPTIONS
-v, --version -v, --version
Print version number (similar to **bpftool version**). Print version number (similar to **bpftool version**).
-j, --json
Generate JSON output. For commands that cannot produce JSON, this
option has no effect.
-p, --pretty
Generate human-readable JSON output. Implies **-j**.
EXAMPLES EXAMPLES
======== ========
**# bpftool map show** **# bpftool map show**
......
...@@ -10,6 +10,16 @@ tool for inspection and simple manipulation of eBPF progs ...@@ -10,6 +10,16 @@ tool for inspection and simple manipulation of eBPF progs
SYNOPSIS SYNOPSIS
======== ========
**bpftool** [*OPTIONS*] **prog** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] }
*COMMANDS* :=
{ **show** | **dump xlated** | **dump jited** | **pin** | **help** }
MAP COMMANDS
=============
| **bpftool** **prog show** [*PROG*] | **bpftool** **prog show** [*PROG*]
| **bpftool** **prog dump xlated** *PROG* [{**file** *FILE* | **opcodes**}] | **bpftool** **prog dump xlated** *PROG* [{**file** *FILE* | **opcodes**}]
| **bpftool** **prog dump jited** *PROG* [{**file** *FILE* | **opcodes**}] | **bpftool** **prog dump jited** *PROG* [{**file** *FILE* | **opcodes**}]
...@@ -58,6 +68,13 @@ OPTIONS ...@@ -58,6 +68,13 @@ OPTIONS
-v, --version -v, --version
Print version number (similar to **bpftool version**). Print version number (similar to **bpftool version**).
-j, --json
Generate JSON output. For commands that cannot produce JSON, this
option has no effect.
-p, --pretty
Generate human-readable JSON output. Implies **-j**.
EXAMPLES EXAMPLES
======== ========
**# bpftool prog show** **# bpftool prog show**
...@@ -67,13 +84,33 @@ EXAMPLES ...@@ -67,13 +84,33 @@ EXAMPLES
loaded_at Sep 29/20:11 uid 0 loaded_at Sep 29/20:11 uid 0
xlated 528B jited 370B memlock 4096B map_ids 10 xlated 528B jited 370B memlock 4096B map_ids 10
**# bpftool --json --pretty prog show**
::
{
"programs": [{
"id": 10,
"type": "xdp",
"tag": "005a3d2123620c8b",
"loaded_at": "Sep 29/20:11",
"uid": 0,
"bytes_xlated": 528,
"jited": true,
"bytes_jited": 370,
"bytes_memlock": 4096,
"map_ids": [10
]
}
]
}
| |
| **# bpftool prog dump xlated id 10 file /tmp/t** | **# bpftool prog dump xlated id 10 file /tmp/t**
| **# ls -l /tmp/t** | **# ls -l /tmp/t**
| -rw------- 1 root root 560 Jul 22 01:42 /tmp/t | -rw------- 1 root root 560 Jul 22 01:42 /tmp/t
| **# bpftool prog dum jited tag 005a3d2123620c8b**
| **# bpftool prog dum jited pinned /sys/fs/bpf/prog**
:: ::
...@@ -83,6 +120,26 @@ EXAMPLES ...@@ -83,6 +120,26 @@ EXAMPLES
sub $0x28,%rbp sub $0x28,%rbp
mov %rbx,0x0(%rbp) mov %rbx,0x0(%rbp)
|
| **# mount -t bpf none /sys/fs/bpf/**
| **# bpftool prog pin id 10 /sys/fs/bpf/prog**
| **# ls -l /sys/fs/bpf/**
| -rw------- 1 root root 0 Jul 22 01:43 prog
**# bpftool prog dum jited pinned /sys/fs/bpf/prog opcodes**
::
push %rbp
55
mov %rsp,%rbp
48 89 e5
sub $0x228,%rsp
48 81 ec 28 02 00 00
sub $0x28,%rbp
48 83 ed 28
mov %rbx,0x0(%rbp)
48 89 5d 00
SEE ALSO SEE ALSO
......
...@@ -10,7 +10,7 @@ tool for inspection and simple manipulation of eBPF programs and maps ...@@ -10,7 +10,7 @@ tool for inspection and simple manipulation of eBPF programs and maps
SYNOPSIS SYNOPSIS
======== ========
**bpftool** *OBJECT* { *COMMAND* | **help** } **bpftool** [*OPTIONS*] *OBJECT* { *COMMAND* | **help** }
**bpftool** **batch file** *FILE* **bpftool** **batch file** *FILE*
...@@ -18,6 +18,9 @@ SYNOPSIS ...@@ -18,6 +18,9 @@ SYNOPSIS
*OBJECT* := { **map** | **program** } *OBJECT* := { **map** | **program** }
*OPTIONS* := { { **-V** | **--version** } | { **-h** | **--help** }
| { **-j** | **--json** } [{ **-p** | **--pretty** }] }
*MAP-COMMANDS* := *MAP-COMMANDS* :=
{ **show** | **dump** | **update** | **lookup** | **getnext** | **delete** { **show** | **dump** | **update** | **lookup** | **getnext** | **delete**
| **pin** | **help** } | **pin** | **help** }
...@@ -41,6 +44,13 @@ OPTIONS ...@@ -41,6 +44,13 @@ OPTIONS
-v, --version -v, --version
Print version number (similar to **bpftool version**). Print version number (similar to **bpftool version**).
-j, --json
Generate JSON output. For commands that cannot produce JSON, this
option has no effect.
-p, --pretty
Generate human-readable JSON output. Implies **-j**.
SEE ALSO SEE ALSO
======== ========
**bpftool-map**\ (8), **bpftool-prog**\ (8) **bpftool-map**\ (8), **bpftool-prog**\ (8)
...@@ -70,11 +70,13 @@ static int do_help(int argc, char **argv) ...@@ -70,11 +70,13 @@ static int do_help(int argc, char **argv)
} }
fprintf(stderr, fprintf(stderr,
"Usage: %s OBJECT { COMMAND | help }\n" "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
" %s batch file FILE\n" " %s batch file FILE\n"
" %s version\n" " %s version\n"
"\n" "\n"
" OBJECT := { prog | map }\n", " OBJECT := { prog | map }\n"
" " HELP_SPEC_OPTIONS "\n"
"",
bin_name, bin_name, bin_name); bin_name, bin_name, bin_name);
return 0; return 0;
......
...@@ -55,6 +55,8 @@ ...@@ -55,6 +55,8 @@
#define HELP_SPEC_PROGRAM \ #define HELP_SPEC_PROGRAM \
"PROG := { id PROG_ID | pinned FILE | tag PROG_TAG }" "PROG := { id PROG_ID | pinned FILE | tag PROG_TAG }"
#define HELP_SPEC_OPTIONS \
"OPTIONS := { {-j|--json} [{-p|--pretty}] }"
enum bpf_obj_type { enum bpf_obj_type {
BPF_OBJ_UNKNOWN, BPF_OBJ_UNKNOWN,
......
...@@ -850,6 +850,7 @@ static int do_help(int argc, char **argv) ...@@ -850,6 +850,7 @@ static int do_help(int argc, char **argv)
" " HELP_SPEC_PROGRAM "\n" " " HELP_SPEC_PROGRAM "\n"
" VALUE := { BYTES | MAP | PROG }\n" " VALUE := { BYTES | MAP | PROG }\n"
" UPDATE_FLAGS := { any | exist | noexist }\n" " UPDATE_FLAGS := { any | exist | noexist }\n"
" " HELP_SPEC_OPTIONS "\n"
"", "",
bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2],
bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2],
......
...@@ -625,6 +625,7 @@ static int do_help(int argc, char **argv) ...@@ -625,6 +625,7 @@ static int do_help(int argc, char **argv)
" %s %s help\n" " %s %s help\n"
"\n" "\n"
" " HELP_SPEC_PROGRAM "\n" " " HELP_SPEC_PROGRAM "\n"
" " HELP_SPEC_OPTIONS "\n"
"", "",
bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2],
bin_name, argv[-2], bin_name, argv[-2]); bin_name, argv[-2], bin_name, argv[-2]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment