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