Commit | Line | Data |
---|---|---|
4712c1b2 | 1 | ================= |
6919bcc8 | 2 | BPF Documentation |
4712c1b2 JDB |
3 | ================= |
4 | ||
5 | This directory contains documentation for the BPF (Berkeley Packet | |
6 | Filter) facility, with a focus on the extended BPF version (eBPF). | |
7 | ||
ffba964e | 8 | This kernel side documentation is still work in progress. The main |
4712c1b2 | 9 | textual documentation is (for historical reasons) described in |
ffba964e TY |
10 | :ref:`networking-filter`, which describe both classical and extended |
11 | BPF instruction-set. | |
4712c1b2 JDB |
12 | The Cilium project also maintains a `BPF and XDP Reference Guide`_ |
13 | that goes into great technical depth about the BPF Architecture. | |
14 | ||
f42cfb46 GS |
15 | libbpf |
16 | ====== | |
17 | ||
bb571649 | 18 | Documentation/bpf/libbpf/libbpf.rst is a userspace library for loading and interacting with bpf programs. |
f42cfb46 | 19 | |
ffcf7ce9 YS |
20 | BPF Type Format (BTF) |
21 | ===================== | |
22 | ||
23 | .. toctree:: | |
24 | :maxdepth: 1 | |
25 | ||
26 | btf | |
4712c1b2 JDB |
27 | |
28 | ||
29 | Frequently asked questions (FAQ) | |
30 | ================================ | |
31 | ||
32 | Two sets of Questions and Answers (Q&A) are maintained. | |
33 | ||
b3d40f63 TH |
34 | .. toctree:: |
35 | :maxdepth: 1 | |
4712c1b2 | 36 | |
b3d40f63 TH |
37 | bpf_design_QA |
38 | bpf_devel_QA | |
4712c1b2 | 39 | |
6197e5b7 JS |
40 | Syscall API |
41 | =========== | |
42 | ||
43 | The primary info for the bpf syscall is available in the `man-pages`_ | |
44 | for `bpf(2)`_. For more information about the userspace API, see | |
45 | Documentation/userspace-api/ebpf/index.rst. | |
4712c1b2 | 46 | |
a62f68c1 JS |
47 | Helper functions |
48 | ================ | |
49 | ||
50 | * `bpf-helpers(7)`_ maintains a list of helpers available to eBPF programs. | |
51 | ||
52 | ||
da703149 AI |
53 | Program types |
54 | ============= | |
55 | ||
56 | .. toctree:: | |
57 | :maxdepth: 1 | |
58 | ||
0c51b369 | 59 | prog_cgroup_sockopt |
da703149 | 60 | prog_cgroup_sysctl |
80695946 | 61 | prog_flow_dissector |
4dece7f3 | 62 | bpf_lsm |
07ff4f01 | 63 | prog_sk_lookup |
da703149 AI |
64 | |
65 | ||
4e15f460 YZ |
66 | Map types |
67 | ========= | |
68 | ||
69 | .. toctree:: | |
70 | :maxdepth: 1 | |
71 | ||
72 | map_cgroup_storage | |
73 | ||
74 | ||
8c061865 AI |
75 | Testing and debugging BPF |
76 | ========================= | |
7e07e7ae IL |
77 | |
78 | .. toctree:: | |
79 | :maxdepth: 1 | |
80 | ||
8c061865 | 81 | drgn |
7e07e7ae IL |
82 | s390 |
83 | ||
84 | ||
5fe52b38 DA |
85 | Other |
86 | ===== | |
87 | ||
88 | .. toctree:: | |
89 | :maxdepth: 1 | |
90 | ||
91 | ringbuf | |
fc8c262e | 92 | llvm_reloc |
5fe52b38 | 93 | |
4712c1b2 | 94 | .. Links: |
ffba964e | 95 | .. _networking-filter: ../networking/filter.rst |
4712c1b2 | 96 | .. _man-pages: https://www.kernel.org/doc/man-pages/ |
ffba964e | 97 | .. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html |
a62f68c1 | 98 | .. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html |
ffba964e | 99 | .. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/ |