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.