• Home
Name Date Size #Lines LOC

..--

MakefileD08-May-20248.2 KiB237202

README.rstD08-May-20241.9 KiB6745

bpf_load.cD08-May-202418.5 KiB788629

bpf_load.hD08-May-20241.6 KiB6639

cgroup_helpers.cD08-May-20244.5 KiB17996

cgroup_helpers.hD08-May-2024475 1812

cookie_uid_helper_example.cD08-May-20249.2 KiB324236

fds_example.cD08-May-20244.1 KiB187158

lathist_kern.cD08-May-20242.1 KiB10068

lathist_user.cD08-May-20242 KiB10475

libbpf.hD08-May-20244.9 KiB200144

load_sock_ops.cD08-May-20242.4 KiB9883

lwt_len_hist.shD08-May-2024956 3929

lwt_len_hist_kern.cD08-May-20241.8 KiB8359

lwt_len_hist_user.cD08-May-20241.6 KiB8061

map_perf_test_kern.cD08-May-20246.1 KiB284232

map_perf_test_user.cD08-May-202410.5 KiB464374

offwaketime_kern.cD08-May-20243.5 KiB152118

offwaketime_user.cD08-May-20242.5 KiB12297

parse_ldabs.cD08-May-20241.2 KiB4332

parse_simple.cD08-May-20241.3 KiB5036

parse_varlen.cD08-May-20243.4 KiB151122

run_cookie_uid_helper_example.shD08-May-2024341 1611

sampleip_kern.cD08-May-2024924 3926

sampleip_user.cD08-May-20244.3 KiB199154

sock_example.cD08-May-20242.9 KiB10673

sock_example.hD08-May-2024834 3731

sock_flags_kern.cD08-May-20241.2 KiB5034

sockex1_kern.cD08-May-2024648 3024

sockex1_user.cD08-May-20241 KiB5238

sockex2_kern.cD08-May-20244.7 KiB223189

sockex2_user.cD08-May-20241.1 KiB5544

sockex3_kern.cD08-May-20246.1 KiB291226

sockex3_user.cD08-May-20241.9 KiB8570

spintest_kern.cD08-May-20242.1 KiB6955

spintest_user.cD08-May-20241.1 KiB5244

syscall_nrs.cD08-May-2024267 1410

syscall_tp_kern.cD08-May-20241.6 KiB7760

syscall_tp_user.cD08-May-20241.7 KiB7246

tc_l2_redirect.shD08-May-20244.9 KiB175135

tc_l2_redirect_kern.cD08-May-20246 KiB238182

tc_l2_redirect_user.cD08-May-20241.5 KiB7456

tcbpf1_kern.cD08-May-20242.5 KiB9175

tcbpf2_kern.cD08-May-20249.3 KiB444362

tcp_bufs_kern.cD08-May-20242.2 KiB8756

tcp_clamp_kern.cD08-May-20242.8 KiB10372

tcp_cong_kern.cD08-May-20242 KiB8457

tcp_iw_kern.cD08-May-20242.3 KiB8959

tcp_rwnd_kern.cD08-May-20241.8 KiB7040

tcp_synrto_kern.cD08-May-20241.8 KiB7040

test_cgrp2_array_pin.cD08-May-20242.2 KiB11091

test_cgrp2_attach.cD08-May-20244.6 KiB172125

test_cgrp2_attach2.cD08-May-20244.6 KiB197137

test_cgrp2_sock.cD08-May-20246.2 KiB290223

test_cgrp2_sock.shD08-May-20242.9 KiB13585

test_cgrp2_sock2.cD08-May-20241.4 KiB6846

test_cgrp2_sock2.shD08-May-20241.4 KiB8362

test_cgrp2_tc.shD08-May-20244.2 KiB186158

test_cgrp2_tc_kern.cD08-May-20241.8 KiB7155

test_cls_bpf.shD08-May-2024915 3931

test_current_task_under_cgroup_kern.cD08-May-20241.1 KiB4429

test_current_task_under_cgroup_user.cD08-May-20241.7 KiB8656

test_ipip.shD08-May-20245.6 KiB180147

test_lru_dist.cD08-May-202412.1 KiB544421

test_lwt_bpf.cD08-May-20246 KiB254194

test_lwt_bpf.shD08-May-20249 KiB401348

test_map_in_map_kern.cD08-May-20243.8 KiB174128

test_map_in_map_user.cD08-May-20243.2 KiB13498

test_overhead_kprobe_kern.cD08-May-20241 KiB4229

test_overhead_tp_kern.cD08-May-2024828 3726

test_overhead_user.cD08-May-20243.4 KiB174146

test_probe_write_user_kern.cD08-May-20241.6 KiB5332

test_probe_write_user_user.cD08-May-20242.5 KiB8060

test_tunnel_bpf.shD08-May-20245 KiB199154

trace_event_kern.cD08-May-20241.7 KiB6650

trace_event_user.cD08-May-20246.4 KiB290243

trace_output_kern.cD08-May-2024609 3124

trace_output_user.cD08-May-20244 KiB197154

tracex1_kern.cD08-May-20241.4 KiB4925

tracex1_user.cD08-May-2024439 2719

tracex2_kern.cD08-May-20242.3 KiB10176

tracex2_user.cD08-May-20243.3 KiB161132

tracex3_kern.cD08-May-20242.1 KiB9058

tracex3_user.cD08-May-20243.3 KiB167138

tracex4_kern.cD08-May-20241.2 KiB5536

tracex4_user.cD08-May-20241.6 KiB7857

tracex5_kern.cD08-May-20242 KiB8059

tracex5_user.cD08-May-20241.1 KiB5138

tracex6_kern.cD08-May-2024912 4235

tracex6_user.cD08-May-20244.2 KiB179152

xdp1_kern.cD08-May-20242.1 KiB9472

xdp1_user.cD08-May-20242.4 KiB12898

xdp2_kern.cD08-May-20242.4 KiB11590

xdp_monitor_kern.cD08-May-20242.4 KiB8959

xdp_monitor_user.cD08-May-20246.3 KiB296230

xdp_redirect_kern.cD08-May-20242.1 KiB9164

xdp_redirect_map_kern.cD08-May-20242.2 KiB9362

xdp_redirect_map_user.cD08-May-20243.3 KiB146109

xdp_redirect_user.cD08-May-20243.2 KiB144107

xdp_tx_iptunnel_common.hD08-May-2024634 3826

xdp_tx_iptunnel_kern.cD08-May-20245.6 KiB238180

xdp_tx_iptunnel_user.cD08-May-20246.2 KiB268224

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