mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
f42cfb469f
This patch is meant to start the initiative to document libbpf. It includes .rst files which are text documentation describing building, API naming convention, as well as an index to generated API documentation. In this approach the generated API documentation is enabled by the kernels existing kernel documentation system which uses sphinx. The resulting docs would then be synced to kernel.org/doc You can test this by running `make htmldocs` and serving the html in Documentation/output. Since libbpf does not yet have comments in kernel doc format, see kernel.org/doc/html/latest/doc-guide/kernel-doc.html for an example so you can test this. The advantage of this approach is to use the existing sphinx infrastructure that the kernel has, and have libbpf docs in the same place as everything else. The current plan is to have the libbpf mirror sync the generated docs and version them based on the libbpf releases which are cut on github. This patch includes the addition of libbpf_api.rst which pulls comment documentation from header files in libbpf under tools/lib/bpf/. The comment docs would be of the standard kernel doc format. Signed-off-by: Grant Seltzer <grantseltzer@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20210618140459.9887-2-grantseltzer@gmail.com
107 lines
2 KiB
ReStructuredText
107 lines
2 KiB
ReStructuredText
=================
|
|
BPF Documentation
|
|
=================
|
|
|
|
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.
|
|
|
|
libbpf
|
|
======
|
|
|
|
Libbpf is a userspace library for loading and interacting with bpf programs.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
libbpf/libbpf
|
|
libbpf/libbpf_api
|
|
libbpf/libbpf_build
|
|
libbpf/libbpf_naming_convention
|
|
|
|
BPF Type Format (BTF)
|
|
=====================
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
btf
|
|
|
|
|
|
Frequently asked questions (FAQ)
|
|
================================
|
|
|
|
Two sets of Questions and Answers (Q&A) are maintained.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
bpf_design_QA
|
|
bpf_devel_QA
|
|
|
|
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.
|
|
|
|
Helper functions
|
|
================
|
|
|
|
* `bpf-helpers(7)`_ maintains a list of helpers available to eBPF programs.
|
|
|
|
|
|
Program types
|
|
=============
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
prog_cgroup_sockopt
|
|
prog_cgroup_sysctl
|
|
prog_flow_dissector
|
|
bpf_lsm
|
|
prog_sk_lookup
|
|
|
|
|
|
Map types
|
|
=========
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
map_cgroup_storage
|
|
|
|
|
|
Testing and debugging BPF
|
|
=========================
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
drgn
|
|
s390
|
|
|
|
|
|
Other
|
|
=====
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
ringbuf
|
|
llvm_reloc
|
|
|
|
.. Links:
|
|
.. _networking-filter: ../networking/filter.rst
|
|
.. _man-pages: https://www.kernel.org/doc/man-pages/
|
|
.. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
|
|
.. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
|
|
.. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/
|