2018-05-14 21:42:12 +08:00
|
|
|
=================
|
2018-07-26 13:03:05 +08:00
|
|
|
BPF Documentation
|
2018-05-14 21:42:12 +08:00
|
|
|
=================
|
|
|
|
|
|
|
|
This directory contains documentation for the BPF (Berkeley Packet
|
|
|
|
Filter) facility, with a focus on the extended BPF version (eBPF).
|
|
|
|
|
2020-07-31 16:29:02 +08:00
|
|
|
This kernel side documentation is still work in progress. The main
|
2018-05-14 21:42:12 +08:00
|
|
|
textual documentation is (for historical reasons) described in
|
2020-07-31 16:29:02 +08:00
|
|
|
:ref:`networking-filter`, which describe both classical and extended
|
|
|
|
BPF instruction-set.
|
2018-05-14 21:42:12 +08:00
|
|
|
The Cilium project also maintains a `BPF and XDP Reference Guide`_
|
|
|
|
that goes into great technical depth about the BPF Architecture.
|
|
|
|
|
2021-06-18 22:04:59 +08:00
|
|
|
libbpf
|
|
|
|
======
|
|
|
|
|
2021-08-10 10:05:08 +08:00
|
|
|
Documentation/bpf/libbpf/libbpf.rst is a userspace library for loading and interacting with bpf programs.
|
2021-06-18 22:04:59 +08:00
|
|
|
|
2019-01-19 05:56:49 +08:00
|
|
|
BPF Type Format (BTF)
|
|
|
|
=====================
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
|
|
|
btf
|
2018-05-14 21:42:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
Frequently asked questions (FAQ)
|
|
|
|
================================
|
|
|
|
|
|
|
|
Two sets of Questions and Answers (Q&A) are maintained.
|
|
|
|
|
2018-07-26 13:03:03 +08:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
2018-05-14 21:42:12 +08:00
|
|
|
|
2018-07-26 13:03:03 +08:00
|
|
|
bpf_design_QA
|
|
|
|
bpf_devel_QA
|
2018-05-14 21:42:12 +08:00
|
|
|
|
2021-03-03 01:19:46 +08:00
|
|
|
Syscall API
|
|
|
|
===========
|
|
|
|
|
|
|
|
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.
|
2018-05-14 21:42:12 +08:00
|
|
|
|
2020-08-14 02:08:07 +08:00
|
|
|
Helper functions
|
|
|
|
================
|
|
|
|
|
|
|
|
* `bpf-helpers(7)`_ maintains a list of helpers available to eBPF programs.
|
|
|
|
|
|
|
|
|
2019-04-18 13:28:57 +08:00
|
|
|
Program types
|
|
|
|
=============
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
2019-06-28 04:38:54 +08:00
|
|
|
prog_cgroup_sockopt
|
2019-04-18 13:28:57 +08:00
|
|
|
prog_cgroup_sysctl
|
2019-04-19 07:47:52 +08:00
|
|
|
prog_flow_dissector
|
2020-03-29 08:43:56 +08:00
|
|
|
bpf_lsm
|
2020-08-21 18:02:26 +08:00
|
|
|
prog_sk_lookup
|
2019-04-18 13:28:57 +08:00
|
|
|
|
|
|
|
|
2020-07-24 12:47:45 +08:00
|
|
|
Map types
|
|
|
|
=========
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
|
|
|
map_cgroup_storage
|
|
|
|
|
|
|
|
|
2020-03-25 02:51:35 +08:00
|
|
|
Testing and debugging BPF
|
|
|
|
=========================
|
2019-10-30 01:29:16 +08:00
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
2020-03-25 02:51:35 +08:00
|
|
|
drgn
|
2019-10-30 01:29:16 +08:00
|
|
|
s390
|
|
|
|
|
|
|
|
|
2020-07-19 00:51:04 +08:00
|
|
|
Other
|
|
|
|
=====
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
|
|
|
ringbuf
|
2021-05-26 23:24:57 +08:00
|
|
|
llvm_reloc
|
2020-07-19 00:51:04 +08:00
|
|
|
|
2018-05-14 21:42:12 +08:00
|
|
|
.. Links:
|
2020-07-31 16:29:02 +08:00
|
|
|
.. _networking-filter: ../networking/filter.rst
|
2018-05-14 21:42:12 +08:00
|
|
|
.. _man-pages: https://www.kernel.org/doc/man-pages/
|
2020-07-31 16:29:02 +08:00
|
|
|
.. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
|
2020-08-14 02:08:07 +08:00
|
|
|
.. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
|
2020-07-31 16:29:02 +08:00
|
|
|
.. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/
|