Skip to content

v1.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Feb 19:30
· 125 commits to master since this release

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() and xdp_program__xdp_frags_support()
    • 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 creating xdp_program objects

    • A new xdp_program__clone() API for cloning an xdp_program reference

    • xdp_program__test_run() for running XDP programs through the BPF_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.