| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| Makefile | D | 08-May-2024 | 8.2 KiB | 237 | 202 | |
| README.rst | D | 08-May-2024 | 1.9 KiB | 67 | 45 | |
| bpf_load.c | D | 08-May-2024 | 18.5 KiB | 788 | 629 | |
| bpf_load.h | D | 08-May-2024 | 1.6 KiB | 66 | 39 | |
| cgroup_helpers.c | D | 08-May-2024 | 4.5 KiB | 179 | 96 | |
| cgroup_helpers.h | D | 08-May-2024 | 475 | 18 | 12 | |
| cookie_uid_helper_example.c | D | 08-May-2024 | 9.2 KiB | 324 | 236 | |
| fds_example.c | D | 08-May-2024 | 4.1 KiB | 187 | 158 | |
| lathist_kern.c | D | 08-May-2024 | 2.1 KiB | 100 | 68 | |
| lathist_user.c | D | 08-May-2024 | 2 KiB | 104 | 75 | |
| libbpf.h | D | 08-May-2024 | 4.9 KiB | 200 | 144 | |
| load_sock_ops.c | D | 08-May-2024 | 2.4 KiB | 98 | 83 | |
| lwt_len_hist.sh | D | 08-May-2024 | 956 | 39 | 29 | |
| lwt_len_hist_kern.c | D | 08-May-2024 | 1.8 KiB | 83 | 59 | |
| lwt_len_hist_user.c | D | 08-May-2024 | 1.6 KiB | 80 | 61 | |
| map_perf_test_kern.c | D | 08-May-2024 | 6.1 KiB | 284 | 232 | |
| map_perf_test_user.c | D | 08-May-2024 | 10.5 KiB | 464 | 374 | |
| offwaketime_kern.c | D | 08-May-2024 | 3.5 KiB | 152 | 118 | |
| offwaketime_user.c | D | 08-May-2024 | 2.5 KiB | 122 | 97 | |
| parse_ldabs.c | D | 08-May-2024 | 1.2 KiB | 43 | 32 | |
| parse_simple.c | D | 08-May-2024 | 1.3 KiB | 50 | 36 | |
| parse_varlen.c | D | 08-May-2024 | 3.4 KiB | 151 | 122 | |
| run_cookie_uid_helper_example.sh | D | 08-May-2024 | 341 | 16 | 11 | |
| sampleip_kern.c | D | 08-May-2024 | 924 | 39 | 26 | |
| sampleip_user.c | D | 08-May-2024 | 4.3 KiB | 199 | 154 | |
| sock_example.c | D | 08-May-2024 | 2.9 KiB | 106 | 73 | |
| sock_example.h | D | 08-May-2024 | 834 | 37 | 31 | |
| sock_flags_kern.c | D | 08-May-2024 | 1.2 KiB | 50 | 34 | |
| sockex1_kern.c | D | 08-May-2024 | 648 | 30 | 24 | |
| sockex1_user.c | D | 08-May-2024 | 1 KiB | 52 | 38 | |
| sockex2_kern.c | D | 08-May-2024 | 4.7 KiB | 223 | 189 | |
| sockex2_user.c | D | 08-May-2024 | 1.1 KiB | 55 | 44 | |
| sockex3_kern.c | D | 08-May-2024 | 6.1 KiB | 291 | 226 | |
| sockex3_user.c | D | 08-May-2024 | 1.9 KiB | 85 | 70 | |
| spintest_kern.c | D | 08-May-2024 | 2.1 KiB | 69 | 55 | |
| spintest_user.c | D | 08-May-2024 | 1.1 KiB | 52 | 44 | |
| syscall_nrs.c | D | 08-May-2024 | 267 | 14 | 10 | |
| syscall_tp_kern.c | D | 08-May-2024 | 1.6 KiB | 77 | 60 | |
| syscall_tp_user.c | D | 08-May-2024 | 1.7 KiB | 72 | 46 | |
| tc_l2_redirect.sh | D | 08-May-2024 | 4.9 KiB | 175 | 135 | |
| tc_l2_redirect_kern.c | D | 08-May-2024 | 6 KiB | 238 | 182 | |
| tc_l2_redirect_user.c | D | 08-May-2024 | 1.5 KiB | 74 | 56 | |
| tcbpf1_kern.c | D | 08-May-2024 | 2.5 KiB | 91 | 75 | |
| tcbpf2_kern.c | D | 08-May-2024 | 9.3 KiB | 444 | 362 | |
| tcp_bufs_kern.c | D | 08-May-2024 | 2.2 KiB | 87 | 56 | |
| tcp_clamp_kern.c | D | 08-May-2024 | 2.8 KiB | 103 | 72 | |
| tcp_cong_kern.c | D | 08-May-2024 | 2 KiB | 84 | 57 | |
| tcp_iw_kern.c | D | 08-May-2024 | 2.3 KiB | 89 | 59 | |
| tcp_rwnd_kern.c | D | 08-May-2024 | 1.8 KiB | 70 | 40 | |
| tcp_synrto_kern.c | D | 08-May-2024 | 1.8 KiB | 70 | 40 | |
| test_cgrp2_array_pin.c | D | 08-May-2024 | 2.2 KiB | 110 | 91 | |
| test_cgrp2_attach.c | D | 08-May-2024 | 4.6 KiB | 172 | 125 | |
| test_cgrp2_attach2.c | D | 08-May-2024 | 4.6 KiB | 197 | 137 | |
| test_cgrp2_sock.c | D | 08-May-2024 | 6.2 KiB | 290 | 223 | |
| test_cgrp2_sock.sh | D | 08-May-2024 | 2.9 KiB | 135 | 85 | |
| test_cgrp2_sock2.c | D | 08-May-2024 | 1.4 KiB | 68 | 46 | |
| test_cgrp2_sock2.sh | D | 08-May-2024 | 1.4 KiB | 83 | 62 | |
| test_cgrp2_tc.sh | D | 08-May-2024 | 4.2 KiB | 186 | 158 | |
| test_cgrp2_tc_kern.c | D | 08-May-2024 | 1.8 KiB | 71 | 55 | |
| test_cls_bpf.sh | D | 08-May-2024 | 915 | 39 | 31 | |
| test_current_task_under_cgroup_kern.c | D | 08-May-2024 | 1.1 KiB | 44 | 29 | |
| test_current_task_under_cgroup_user.c | D | 08-May-2024 | 1.7 KiB | 86 | 56 | |
| test_ipip.sh | D | 08-May-2024 | 5.6 KiB | 180 | 147 | |
| test_lru_dist.c | D | 08-May-2024 | 12.1 KiB | 544 | 421 | |
| test_lwt_bpf.c | D | 08-May-2024 | 6 KiB | 254 | 194 | |
| test_lwt_bpf.sh | D | 08-May-2024 | 9 KiB | 401 | 348 | |
| test_map_in_map_kern.c | D | 08-May-2024 | 3.8 KiB | 174 | 128 | |
| test_map_in_map_user.c | D | 08-May-2024 | 3.2 KiB | 134 | 98 | |
| test_overhead_kprobe_kern.c | D | 08-May-2024 | 1 KiB | 42 | 29 | |
| test_overhead_tp_kern.c | D | 08-May-2024 | 828 | 37 | 26 | |
| test_overhead_user.c | D | 08-May-2024 | 3.4 KiB | 174 | 146 | |
| test_probe_write_user_kern.c | D | 08-May-2024 | 1.6 KiB | 53 | 32 | |
| test_probe_write_user_user.c | D | 08-May-2024 | 2.5 KiB | 80 | 60 | |
| test_tunnel_bpf.sh | D | 08-May-2024 | 5 KiB | 199 | 154 | |
| trace_event_kern.c | D | 08-May-2024 | 1.7 KiB | 66 | 50 | |
| trace_event_user.c | D | 08-May-2024 | 6.4 KiB | 290 | 243 | |
| trace_output_kern.c | D | 08-May-2024 | 609 | 31 | 24 | |
| trace_output_user.c | D | 08-May-2024 | 4 KiB | 197 | 154 | |
| tracex1_kern.c | D | 08-May-2024 | 1.4 KiB | 49 | 25 | |
| tracex1_user.c | D | 08-May-2024 | 439 | 27 | 19 | |
| tracex2_kern.c | D | 08-May-2024 | 2.3 KiB | 101 | 76 | |
| tracex2_user.c | D | 08-May-2024 | 3.3 KiB | 161 | 132 | |
| tracex3_kern.c | D | 08-May-2024 | 2.1 KiB | 90 | 58 | |
| tracex3_user.c | D | 08-May-2024 | 3.3 KiB | 167 | 138 | |
| tracex4_kern.c | D | 08-May-2024 | 1.2 KiB | 55 | 36 | |
| tracex4_user.c | D | 08-May-2024 | 1.6 KiB | 78 | 57 | |
| tracex5_kern.c | D | 08-May-2024 | 2 KiB | 80 | 59 | |
| tracex5_user.c | D | 08-May-2024 | 1.1 KiB | 51 | 38 | |
| tracex6_kern.c | D | 08-May-2024 | 912 | 42 | 35 | |
| tracex6_user.c | D | 08-May-2024 | 4.2 KiB | 179 | 152 | |
| xdp1_kern.c | D | 08-May-2024 | 2.1 KiB | 94 | 72 | |
| xdp1_user.c | D | 08-May-2024 | 2.4 KiB | 128 | 98 | |
| xdp2_kern.c | D | 08-May-2024 | 2.4 KiB | 115 | 90 | |
| xdp_monitor_kern.c | D | 08-May-2024 | 2.4 KiB | 89 | 59 | |
| xdp_monitor_user.c | D | 08-May-2024 | 6.3 KiB | 296 | 230 | |
| xdp_redirect_kern.c | D | 08-May-2024 | 2.1 KiB | 91 | 64 | |
| xdp_redirect_map_kern.c | D | 08-May-2024 | 2.2 KiB | 93 | 62 | |
| xdp_redirect_map_user.c | D | 08-May-2024 | 3.3 KiB | 146 | 109 | |
| xdp_redirect_user.c | D | 08-May-2024 | 3.2 KiB | 144 | 107 | |
| xdp_tx_iptunnel_common.h | D | 08-May-2024 | 634 | 38 | 26 | |
| xdp_tx_iptunnel_kern.c | D | 08-May-2024 | 5.6 KiB | 238 | 180 | |
| xdp_tx_iptunnel_user.c | D | 08-May-2024 | 6.2 KiB | 268 | 224 |
README.rst
1eBPF sample programs 2==================== 3 4This directory contains a test stubs, verifier test-suite and examples 5for using eBPF. The examples use libbpf from tools/lib/bpf. 6 7Build dependencies 8================== 9 10Compiling requires having installed: 11 * clang >= version 3.4.0 12 * llvm >= version 3.7.1 13 14Note that LLVM's tool 'llc' must support target 'bpf', list version 15and supported targets with command: ``llc --version`` 16 17Kernel headers 18-------------- 19 20There are usually dependencies to header files of the current kernel. 21To avoid installing devel kernel headers system wide, as a normal 22user, simply call:: 23 24 make headers_install 25 26This will creates a local "usr/include" directory in the git/build top 27level directory, that the make system automatically pickup first. 28 29Compiling 30========= 31 32For building the BPF samples, issue the below command from the kernel 33top level directory:: 34 35 make samples/bpf/ 36 37Do notice the "/" slash after the directory name. 38 39It is also possible to call make from this directory. This will just 40hide the the invocation of make as above with the appended "/". 41 42Manually compiling LLVM with 'bpf' support 43------------------------------------------ 44 45Since version 3.7.0, LLVM adds a proper LLVM backend target for the 46BPF bytecode architecture. 47 48By default llvm will build all non-experimental backends including bpf. 49To generate a smaller llc binary one can use:: 50 51 -DLLVM_TARGETS_TO_BUILD="BPF" 52 53Quick sniplet for manually compiling LLVM and clang 54(build dependencies are cmake and gcc-c++):: 55 56 $ git clone http://llvm.org/git/llvm.git 57 $ cd llvm/tools 58 $ git clone --depth 1 http://llvm.org/git/clang.git 59 $ cd ..; mkdir build; cd build 60 $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" 61 $ make -j $(getconf _NPROCESSORS_ONLN) 62 63It is also possible to point make to the newly compiled 'llc' or 64'clang' command via redefining LLC or CLANG on the make command line:: 65 66 make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang 67