Demystifying the Performance of XDP BPF

High packet rates at $\geq 10\ \mathrm{GBit}/\mathrm{s}$ challenge the packet processing performance of network stacks. A common solution is to offload (parts of) the user-space packet processing to other execution environments, e.g., into the device driver (kernel-space), the NIC or even from virtual machines into the host operating system (OS), or any combination of those. While common wisdom states that offloading optimizes performance, neither benefits nor negative effects are comprehensively studied. In this paper, we aim to shed light on the benefits and shortcomings of eBPF/XDP-based offloading from the user-space to i) the kernel-space or ii) a smart NIC-including VM virtualization. We show that offloading can indeed optimize packet processing, but only if the task is small and optimized for the target environment. Otherwise, offloading can even lead to detrimental performance.

[1]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[2]  Christoforos E. Kozyrakis,et al.  IX: A Protected Dataplane Operating System for High Throughput and Low Latency , 2014, OSDI.

[3]  Jan Rüth,et al.  Application-Agnostic Offloading of Datagram Processing , 2018, 2018 30th International Teletraffic Congress (ITC 30).

[4]  Brian N. Bershad,et al.  SPINE: a safe programmable and integrated network environment , 1998, ACM SIGOPS European Workshop.

[5]  Dawson R. Engler,et al.  ASHs: Application-Specific Handlers for High-Performance Messaging , 1996, SIGCOMM.

[6]  Emin Gün Sirer,et al.  SPIN: an extensible microkernel for application-specific operating system services , 1994, EW 6.

[7]  Glen Gibb,et al.  NetFPGA—An Open Platform for Teaching How to Build Gigabit-Rate Network Switches and Routers , 2008, IEEE Transactions on Education.

[8]  Toke Høiland-Jørgensen,et al.  The eXpress data path: fast programmable packet processing in the operating system kernel , 2018, CoNEXT.

[9]  Nicolaas Viljoen,et al.  Hardware Offload to SmartNICs : cls bpf and XDP , 2016 .

[10]  Björn Scheuermann,et al.  HyPaFilter — A versatile hybrid FPGA packet filter , 2016, 2016 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[11]  Luigi Rizzo,et al.  netmap: A Novel Framework for Fast Packet I/O , 2012, USENIX ATC.

[12]  Daniel Raumer,et al.  Performance Implications of Packet Filtering with Linux eBPF , 2018, 2018 30th International Teletraffic Congress (ITC 30).