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