pin a eBPF program for eXpress Data Path (XDP) routing
This example uses a BPF program for XDP:
- load and pin a XDP program from object file
- attach the pinned XDP program to
eth0 - set interfaces to
up
{
networking.ifstate = {
enable = true;
settings = {
bpf.blacklist = {
object =
"/home/thomas/src/xdp-tutorial/basic03-map-counter/xdp_prog_kern.o";
section = "xdp";
};
# attach XDP program from pinned BPF program
interfaces.eth0 = {
link = {
state = "up";
kind = "physical";
};
xdp.bpf = "blacklist";
};
};
};
}
mkdir -p /sys/fs/bpf/ifstate/progs /sys/fs/bpf/ifstate/maps
bpftool prog load /home/thomas/src/xdp-tutorial/basic03-map-counter/xdp_prog_kern.o /sys/fs/bpf/ifstate/progs/blacklist type xdp pinmaps /sys/fs/bpf/ifstate/maps/blacklist
ip link set dev eth0 xdp pinned /sys/fs/bpf/ifstate/progs/blacklist
ip link set dev eth0 up