This repository contains the libxdp
library for working with the eXpress Data
Path facility of the Linux kernel, and a collection of utilities and example
code that uses the library.
The repository contains the following:
- lib/libxdp/ - the
libxdp
library itself - can be built standalone usingmake libxdp
- xdp-bench/ - an XDP benchmarking tool
- xdp-dump/ - a tcpdump-like tool for capturing packets at the XDP layer
- xdp-filter/ - a simple packet filtering utility powered by XDP
- xdp-forward/ - an XDP forwarding plane
- xdp-loader/ - a command-line utility for loading XDP programs using
libxdp
- xdp-monitor/ - a simple XDP tracepoint monitoring tool
- xdp-trafficgen/ - an XDP-based packet generator
- headers/xdp/ - reusable eBPF code snippets for XDP (installed in /usr/include/xdp by
make install
). - lib/util/ - common code shared between the different utilities
- packaging/ - files used for distro packaging
- lib/libbpf/ - a git submodule with libbpf, used if the system version is not recent enough
To compile, first run ./configure
, then simply type make
. Make sure you
either have a sufficiently recent libbpf installed on your system, or that you
pulled down the libbpf git submodule (git submodule init && git submodule
update
).
For a general introduction to XDP, please see the XDP tutorial, and for more BPF and XDP examples, see the bpf-examples repository.