Skip to content

Компиляция eBPF программы

Alex Petrov edited this page Oct 30, 2024 · 1 revision

Для компиляции eBPF понадобится Clang/LLVM и заголовки Linux ядра.

Компиляция eBPF программы с помошью clang:

clang -O2 -target bpf -c example.c -o example.o

Загрузка скомпилированной eBPF программы с помошью утилиты bpftool:

sudo bpftool prog load example.o /sys/fs/bpf/example

Привязка eBPF программы к eth0 интерфейсу:

sudo bpftool net attach xdp dev eth0 pinned /sys/fs/bpf/example

Пример eBPF программы:

#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>

SEC("xdp")
int example (struct xdp_md *ctx) {
    return XDP_PASS;
}

char _license[] SEC("license") = "GPL";