hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
================
bpftool-map
================
-------------------------------------------------------------------------------
tool for inspection and simple manipulation of eBPF maps
-------------------------------------------------------------------------------
 
:Manual section: 8
 
SYNOPSIS
========
 
   **bpftool** [*OPTIONS*] **map** *COMMAND*
 
   *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } }
 
   *COMMANDS* :=
   { **show** | **list** | **dump** | **update** | **lookup** | **getnext** | **delete**
   | **pin** | **help** }
 
MAP COMMANDS
=============
 
|    **bpftool** **map { show | list }**   [*MAP*]
|    **bpftool** **map dump**       *MAP*
|    **bpftool** **map update**     *MAP*  **key** *DATA*   **value** *VALUE* [*UPDATE_FLAGS*]
|    **bpftool** **map lookup**     *MAP*  **key** *DATA*
|    **bpftool** **map getnext**    *MAP* [**key** *DATA*]
|    **bpftool** **map delete**     *MAP*  **key** *DATA*
|    **bpftool** **map pin**        *MAP*  *FILE*
|    **bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*]
|    **bpftool** **map help**
|
|    *MAP* := { **id** *MAP_ID* | **pinned** *FILE* }
|    *DATA* := { [**hex**] *BYTES* }
|    *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
|    *VALUE* := { *DATA* | *MAP* | *PROG* }
|    *UPDATE_FLAGS* := { **any** | **exist** | **noexist** }
 
DESCRIPTION
===========
   **bpftool map { show | list }**   [*MAP*]
         Show information about loaded maps.  If *MAP* is specified
         show information only about given map, otherwise list all
         maps currently loaded on the system.
 
         Output will start with map ID followed by map type and
         zero or more named attributes (depending on kernel version).
 
   **bpftool map dump**    *MAP*
         Dump all entries in a given *MAP*.
 
   **bpftool map update**  *MAP*  **key** *DATA*   **value** *VALUE* [*UPDATE_FLAGS*]
         Update map entry for a given *KEY*.
 
         *UPDATE_FLAGS* can be one of: **any** update existing entry
         or add if doesn't exit; **exist** update only if entry already
         exists; **noexist** update only if entry doesn't exist.
 
         If the **hex** keyword is provided in front of the bytes
         sequence, the bytes are parsed as hexadeximal values, even if
         no "0x" prefix is added. If the keyword is not provided, then
         the bytes are parsed as decimal values, unless a "0x" prefix
         (for hexadecimal) or a "0" prefix (for octal) is provided.
 
   **bpftool map lookup**  *MAP*  **key** *DATA*
         Lookup **key** in the map.
 
   **bpftool map getnext** *MAP* [**key** *DATA*]
         Get next key.  If *key* is not specified, get first key.
 
   **bpftool map delete**  *MAP*  **key** *DATA*
         Remove entry from the map.
 
   **bpftool map pin**     *MAP*  *FILE*
         Pin map *MAP* as *FILE*.
 
         Note: *FILE* must be located in *bpffs* mount.
 
   **bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*]
         Read events from a BPF_MAP_TYPE_PERF_EVENT_ARRAY map.
 
         Install perf rings into a perf event array map and dump
         output of any bpf_perf_event_output() call in the kernel.
         By default read the number of CPUs on the system and
         install perf ring for each CPU in the corresponding index
         in the array.
 
         If **cpu** and **index** are specified, install perf ring
         for given **cpu** at **index** in the array (single ring).
 
         Note that installing a perf ring into an array will silently
         replace any existing ring.  Any other application will stop
         receiving events if it installed its rings earlier.
 
   **bpftool map 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 maps.
 
EXAMPLES
========
**# bpftool map show**
::
 
  10: hash  name some_map  flags 0x0
   key 4B  value 8B  max_entries 2048  memlock 167936B
 
The following three commands are equivalent:
 
|
| **# bpftool map update id 10 key hex   20   c4   b7   00 value hex   0f   ff   ff   ab   01   02   03   4c**
| **# bpftool map update id 10 key     0x20 0xc4 0xb7 0x00 value     0x0f 0xff 0xff 0xab 0x01 0x02 0x03 0x4c**
| **# bpftool map update id 10 key       32  196  183    0 value       15  255  255  171    1    2    3   76**
 
**# bpftool map lookup id 10 key 0 1 2 3**
 
::
 
  key: 00 01 02 03 value: 00 01 02 03 04 05 06 07
 
 
**# bpftool map dump id 10**
::
 
  key: 00 01 02 03  value: 00 01 02 03 04 05 06 07
  key: 0d 00 07 00  value: 02 00 00 00 01 02 03 04
  Found 2 elements
 
**# bpftool map getnext id 10 key 0 1 2 3**
::
 
  key:
  00 01 02 03
  next key:
  0d 00 07 00
 
|
| **# mount -t bpf none /sys/fs/bpf/**
| **# bpftool map pin id 10 /sys/fs/bpf/map**
| **# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00**
 
SEE ALSO
========
   **bpftool**\ (8), **bpftool-prog**\ (8), **bpftool-cgroup**\ (8)