AF_XDP is a relatively new technology optimized for high performance packet processing. It provides an abstraction over hardware rings, so the application can handle packets in a low-level, yet hardware-agnostic fashion. With conforming drivers, AF_XDP also provides zero-copy packet handling capabilities to the application.
At its basic level AF_XDP works works fine with a lot of conforming drivers. Adding zero-copy support is more challenging. Maxim Mikityanskiy has been through trial-by-fire writting zero copy AF_XDP support and came out unscathed.
In this tutorial, Maxim instructs on how a driver author would go about adding AF_XDP zero copy support using the mlx5e driver as an example.
More info: https://netdevconf.info/0x14/session.html?tutorial-adding-AF_XDP-zero-copy-s...
cheers, jamal