Brussels / 3 & 4 February 2018


Fast Packet Processing in Linux with AF_XDP

Deep Packet Inspection (DPI) and other specialized packet processing workloads are often run in user space due to their complexity and/or specialization. With the increase of Ethernet speeds from 40, 100 to 200 Gbits/s, the need for high-speed raw Ethernet frame delivery to Linux user-space is ever increasing. In this talk, we present AFXDP (formerly known as AFPACKET V4) designed to scale to these high networking speeds through the use of true zero-copy, lock-less data structures, elimination of syscalls and other techniques, while still abiding to the isolation and security rules of Linux. AF_XDP is currently an RFC on the Linux netdev mailing list with the goal to get it accepted upstream.

In our evaluation, AFXDP provides a performance increase of up to 40x for some microbenchmarks and 20x for tcpdump compared to previous AFPACKET (raw socket) versions in Linux. To illustrate the approach, we have implemented support for Intel I40E NICs and veth, but it should hopefully be easy to port to other NICs and virtual devices as well. AFXDP is designed as an extension to the existing XDP support in Linux so that XDP enabled devices will be able to use this. We also show how SW networking libraries and SDKs such as DPDK can benefit from AFXDP to achieve increased robustness, ease-of-use and HW independence.

Name: Magnus Karlsson, Intel, Stockholm, Sweden

  Björn Töpel, Intel, Stockholm, Sweden

Bio Magnus Karlsson:

Magnus Karlsson has worked with low-level SW and microprocessor design for most of his life. Started in academia as a post-doc, but for the past 11 years he has been working "in the real world". Currently, his main interests lie in Linux networking, telecom systems and hypervisors. He is an avid cook, skier and runner, and dreams of becoming a wine grower or beer brewer at some point in his life.

Bio Björn Töpel:

Björn Töpel has dabbled in all kinds of networking stacks, ranging from Skype's peer-to-peer stack, high-frequency trading platforms all the way down to Ethernet device drivers. For the moment, most of his time is spent in the Linux kernel. He's a coffee addict, avid runner and wannabe librarian.


Magnus Karlsson