Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 1 | ================= |
Tobin C. Harding | 6919bcc | 2018-07-26 15:03:05 +1000 | [diff] [blame] | 2 | BPF Documentation |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 3 | ================= |
| 4 | |
| 5 | This directory contains documentation for the BPF (Berkeley Packet |
| 6 | Filter) facility, with a focus on the extended BPF version (eBPF). |
| 7 | |
| 8 | This kernel side documentation is still work in progress. The main |
| 9 | textual documentation is (for historical reasons) described in |
Mauro Carvalho Chehab | cb3f0d5 | 2020-04-28 00:01:36 +0200 | [diff] [blame] | 10 | `Documentation/networking/filter.rst`_, which describe both classical |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 11 | and extended BPF instruction-set. |
| 12 | The Cilium project also maintains a `BPF and XDP Reference Guide`_ |
| 13 | that goes into great technical depth about the BPF Architecture. |
| 14 | |
| 15 | The primary info for the bpf syscall is available in the `man-pages`_ |
| 16 | for `bpf(2)`_. |
| 17 | |
Yonghong Song | ffcf7ce | 2019-01-18 13:56:49 -0800 | [diff] [blame] | 18 | BPF Type Format (BTF) |
| 19 | ===================== |
| 20 | |
| 21 | .. toctree:: |
| 22 | :maxdepth: 1 |
| 23 | |
| 24 | btf |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 25 | |
| 26 | |
| 27 | Frequently asked questions (FAQ) |
| 28 | ================================ |
| 29 | |
| 30 | Two sets of Questions and Answers (Q&A) are maintained. |
| 31 | |
Tobin C. Harding | b3d40f6 | 2018-07-26 15:03:03 +1000 | [diff] [blame] | 32 | .. toctree:: |
| 33 | :maxdepth: 1 |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 34 | |
Tobin C. Harding | b3d40f6 | 2018-07-26 15:03:03 +1000 | [diff] [blame] | 35 | bpf_design_QA |
| 36 | bpf_devel_QA |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 37 | |
| 38 | |
Andrey Ignatov | da70314 | 2019-04-17 22:28:57 -0700 | [diff] [blame] | 39 | Program types |
| 40 | ============= |
| 41 | |
| 42 | .. toctree:: |
| 43 | :maxdepth: 1 |
| 44 | |
Stanislav Fomichev | 0c51b36 | 2019-06-27 13:38:54 -0700 | [diff] [blame] | 45 | prog_cgroup_sockopt |
Andrey Ignatov | da70314 | 2019-04-17 22:28:57 -0700 | [diff] [blame] | 46 | prog_cgroup_sysctl |
Stanislav Fomichev | 8069594 | 2019-04-18 16:47:52 -0700 | [diff] [blame] | 47 | prog_flow_dissector |
KP Singh | 4dece7f | 2020-03-29 01:43:56 +0100 | [diff] [blame] | 48 | bpf_lsm |
Andrey Ignatov | da70314 | 2019-04-17 22:28:57 -0700 | [diff] [blame] | 49 | |
| 50 | |
Andrey Ignatov | 8c06186 | 2020-03-24 11:51:35 -0700 | [diff] [blame] | 51 | Testing and debugging BPF |
| 52 | ========================= |
Ilya Leoshkevich | 7e07e7a | 2019-10-29 18:29:16 +0100 | [diff] [blame] | 53 | |
| 54 | .. toctree:: |
| 55 | :maxdepth: 1 |
| 56 | |
Andrey Ignatov | 8c06186 | 2020-03-24 11:51:35 -0700 | [diff] [blame] | 57 | drgn |
Ilya Leoshkevich | 7e07e7a | 2019-10-29 18:29:16 +0100 | [diff] [blame] | 58 | s390 |
| 59 | |
| 60 | |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 61 | .. Links: |
Mauro Carvalho Chehab | cb3f0d5 | 2020-04-28 00:01:36 +0200 | [diff] [blame] | 62 | .. _Documentation/networking/filter.rst: ../networking/filter.txt |
Jesper Dangaard Brouer | 4712c1b | 2018-05-14 15:42:12 +0200 | [diff] [blame] | 63 | .. _man-pages: https://www.kernel.org/doc/man-pages/ |
| 64 | .. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html |
| 65 | .. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/ |