xdp-tools icon indicating copy to clipboard operation
xdp-tools copied to clipboard

Utilities and example programs for use with XDP

trafficstars
  • 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
  • [[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]].