This directory contains documentation for the BPF (Berkeley Packet Filter) facility, with a focus on the extended BPF version (eBPF).
This kernel side documentation is still work in progress. The main textual documentation is (for historical reasons) described in :ref:`networking-filter`, which describe both classical and extended BPF instruction-set. The Cilium project also maintains a BPF and XDP Reference Guide that goes into great technical depth about the BPF Architecture.
Documentation/bpf/libbpf/libbpf.rst is a userspace library for loading and interacting with bpf programs.
.. toctree:: :maxdepth: 1 btf
Two sets of Questions and Answers (Q&A) are maintained.
.. toctree:: :maxdepth: 1 bpf_design_QA bpf_devel_QA
The primary info for the bpf syscall is available in the man-pages for bpf(2). For more information about the userspace API, see Documentation/userspace-api/ebpf/index.rst.
- bpf-helpers(7) maintains a list of helpers available to eBPF programs.
.. toctree:: :maxdepth: 1 prog_cgroup_sockopt prog_cgroup_sysctl prog_flow_dissector bpf_lsm prog_sk_lookup
.. toctree:: :maxdepth: 1 map_cgroup_storage
.. toctree:: :maxdepth: 1 drgn s390
.. toctree:: :maxdepth: 1 ringbuf llvm_reloc