X2DP: eXtended eXpress Data Path

Vladimiro Paschali, Andrea Monterubbiano, Francesco Fazzari, Sebastiano Miano, Salvatore Pontarelli · 2025

XDP (eXpress Data Path) is an eBPF-based high-performance data path used to process network packets at high rates, bypassing most of the Linux networking stack. The high rate is achieved by intercepting packets as soon as the NIC moves them into host memory. This paper introduces X2DP, a framework designed to enhance the performance of XDP applications. X2DP unlocks several optimizations otherwise unavailable in the standard XDP path. First, it enables prefetching. Second, it provides more opportunities to leverage SIMD instructions, allowing parallel processing of identical operations across multiple packets. Third, it facilitates specific code optimizations that enhance instruction-level parallelism. All these optimizations are enabled by the use of hardware-assisted packet batching. The batching process coalesces the execution of the eBPF application, which is launched once to process multiple packets, reducing the time spent by the CPU while executing the generic network driver code and allowing the above-mentioned optimizations. This paper quantifies the performance improvements achieved by applying these techniques to a set of XDP programs, demonstrating throughput gains of up to 2.3x.

Read the paper · More papers on PaperTik