123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- ================
- bpftool-prog
- ================
- -------------------------------------------------------------------------------
- tool for inspection and simple manipulation of eBPF progs
- -------------------------------------------------------------------------------
- :Manual section: 8
- SYNOPSIS
- ========
- **bpftool** [*OPTIONS*] **prog** *COMMAND*
- *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } }
- *COMMANDS* :=
- { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load** | **help** }
- MAP COMMANDS
- =============
- | **bpftool** **prog { show | list }** [*PROG*]
- | **bpftool** **prog dump xlated** *PROG* [{**file** *FILE* | **opcodes** | **visual**}]
- | **bpftool** **prog dump jited** *PROG* [{**file** *FILE* | **opcodes**}]
- | **bpftool** **prog pin** *PROG* *FILE*
- | **bpftool** **prog load** *OBJ* *FILE*
- | **bpftool** **prog help**
- |
- | *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
- DESCRIPTION
- ===========
- **bpftool prog { show | list }** [*PROG*]
- Show information about loaded programs. If *PROG* is
- specified show information only about given program, otherwise
- list all programs currently loaded on the system.
- Output will start with program ID followed by program type and
- zero or more named attributes (depending on kernel version).
- **bpftool prog dump xlated** *PROG* [{ **file** *FILE* | **opcodes** | **visual** }]
- Dump eBPF instructions of the program from the kernel. By
- default, eBPF will be disassembled and printed to standard
- output in human-readable format. In this case, **opcodes**
- controls if raw opcodes should be printed as well.
- If **file** is specified, the binary image will instead be
- written to *FILE*.
- If **visual** is specified, control flow graph (CFG) will be
- built instead, and eBPF instructions will be presented with
- CFG in DOT format, on standard output.
- **bpftool prog dump jited** *PROG* [{ **file** *FILE* | **opcodes** }]
- Dump jited image (host machine code) of the program.
- If *FILE* is specified image will be written to a file,
- otherwise it will be disassembled and printed to stdout.
- **opcodes** controls if raw opcodes will be printed.
- **bpftool prog pin** *PROG* *FILE*
- Pin program *PROG* as *FILE*.
- Note: *FILE* must be located in *bpffs* mount.
- **bpftool prog load** *OBJ* *FILE*
- Load bpf program from binary *OBJ* and pin as *FILE*.
- Note: *FILE* must be located in *bpffs* mount.
- **bpftool prog help**
- Print short help message.
- OPTIONS
- =======
- -h, --help
- Print short generic help message (similar to **bpftool help**).
- -v, --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**.
- -f, --bpffs
- Show file names of pinned programs.
- EXAMPLES
- ========
- **# bpftool prog show**
- ::
- 10: xdp name some_prog tag 005a3d2123620c8b gpl
- loaded_at Sep 29/20:11 uid 0
- xlated 528B jited 370B memlock 4096B map_ids 10
- **# bpftool --json --pretty prog show**
- ::
- {
- "programs": [{
- "id": 10,
- "type": "xdp",
- "tag": "005a3d2123620c8b",
- "gpl_compatible": true,
- "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**
- | **# ls -l /tmp/t**
- | -rw------- 1 root root 560 Jul 22 01:42 /tmp/t
- **# bpftool prog dum jited tag 005a3d2123620c8b**
- ::
- push %rbp
- mov %rsp,%rbp
- sub $0x228,%rsp
- sub $0x28,%rbp
- mov %rbx,0x0(%rbp)
- |
- | **# mount -t bpf none /sys/fs/bpf/**
- | **# bpftool prog pin id 10 /sys/fs/bpf/prog**
- | **# bpftool prog load ./my_prog.o /sys/fs/bpf/prog2**
- | **# ls -l /sys/fs/bpf/**
- | -rw------- 1 root root 0 Jul 22 01:43 prog
- | -rw------- 1 root root 0 Jul 22 01:44 prog2
- **# 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
- ========
- **bpftool**\ (8), **bpftool-map**\ (8), **bpftool-cgroup**\ (8)
|