- xdp-tools - Library and utilities for use with XDP
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/][lib/libxdp/]] - the =libxdp= library itself - can be built standalone using =make libxdp=
- [[xdp-loader/][xdp-loader/]] - a command-line utility for loading XDP programs using =libxdp=
- [[xdp-filter/][xdp-filter/]] - a simple packet filtering utility powered by XDP
- [[xdp-dump/][xdp-dump/]] - a tcpdump-like tool for capturing packets at the XDP layer
- [[xdp-monitor/][xdp-monitor/]] - a simple XDP tracepoint monitoring tool
- [[xdp-bench/][xdp-bench/]] - an XDP benchmarking tool
- [[xdp-trafficgen/][xdp-trafficgen/]] - an XDP-based packet generator
- [[headers/xdp/][headers/xdp/]] - reusable eBPF code snippets for XDP (installed in /usr/include/xdp by =make install=).
- [[lib/util/][lib/util/]] - common code shared between the different utilities
- [[packaging/][packaging/]] - files used for distro packaging
- lib/libbpf/ - a git submodule with [[https://github.com/libbpf/libbpf][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 [[https://github.com/xdp-project/xdp-tutorial][XDP tutorial]], and for more BPF
and XDP examples, see the [[https://github.com/xdp-project/bpf-examples][bpf-examples repository]].