v1.3.0
This is a feature release of xdp-tools containing numerous improvements:
- Three new utilities added to xdp-tools:
xdp-bench
for running benchmarks of XDP on the receive side (ported from the kernel samples/bpf)xdp-monitor
for monitoring XDP errors and statistics using kernel tracepoints (ported from the kernel samples/bpf)xdp-trafficgen
for generating traffic and sending it out through the XDP driver hook
- Numerous new features in libxdp:
-
Support for loading programs with XDP frags support (AKA multibuffer XDP)
- Three new library functions are added to libxdp to manage this:
xdp_multiprog__xdp_frags_support()
,xdp_program__set_xdp_frags_support()
andxdp_program__xdp_frags_support()
- Three new library functions are added to libxdp to manage this:
-
Proper refcounting of program attachment to
AF_XDP
sockets. This means that applications no longer have to manually detach the XDP program when using sockets, libxdp will do this automatically when the program is no longer used -
A new extensible
xdp_program__create()
API for creatingxdp_program
objects -
A new
xdp_program__clone()
API for cloning anxdp_program
reference -
xdp_program__test_run()
for running XDP programs through theBPF_PROG_TEST_RUN
kernel API -
Support for automatically mounting a bpffs if none is found (if the
LIBXDP_BPFFS_AUTOMOUNT
environment variable is set), and for running without a bpffs entirely (although multi-program attachment won't work without a bpffs)
-
- Numerous bug fixes throughout both libxdp and the command line utilities
Note that this version also bumps the version number of the XDP dispatcher program being loaded on the network devices. This means that mixing earlier versions of libxdp/xdp-tools with this version is not possible: libxdp 1.3 and upwards will display old versions of the dispatcher, but won't automatically upgrade them. And after loading a program with libxdp 1.3, older versions of libxdp will not interoperate with it.