What is XDP?¶
XDP or eXpress Data Path provides a high performance, programmable network data path in the Linux kernel. XDP provides bare metal packet processing at the lowest point in the software stack. Much of the huge speed gain comes from processing RX packet-pages directly out of drivers RX ring queue, before any allocations of meta-data structures like SKBs occurs.
The IO Visor Project have an introduction to XDP.
List of XDP focused presentations:
- March 2016 - Initial presentation by Facebook (Tom and Alexei)
- July 2016 - IO visor (Brenden Blanco)
- September 2016 - Intro and use-case, Red Hat Inc. (Jesper Brouer)
- April 2017 - Keynote NetDevconf 2.1: XDP Mythbusters
- April 2017 - XDP/eBPF tutorial: XDP for the Rest of Us
- April 2017 - Facebook Droplet
- April 2017 - CloudFlare integrating XDP
Historically the Network Performance BoF at NetDev 1.1 (Feb 2016) was the first presentation to propose the idea of processing RX packet-pages directly out of the driver RX ring queue.