Litcius/Paper detail

Fast Packet Processing with eBPF and XDP

Marcos A. M. Vieira, Matheus S. Castanho, Racyus D. G. Pacífico, Élerson R. S. Santos, Eduardo Paulino Júnior, Luiz F. M. Vieira

2020ACM Computing Surveys235 citationsDOI

Abstract

Extended Berkeley Packet Filter (eBPF) is an instruction set and an execution environment inside the Linux kernel. It enables modification, interaction, and kernel programmability at runtime. eBPF can be used to program the eXpress Data Path (XDP), a kernel network layer that processes packets closer to the NIC for fast packet processing. Developers can write programs in C or P4 languages and then compile to eBPF instructions, which can be processed by the kernel or by programmable devices (e.g., SmartNICs). Since its introduction in 2014, eBPF has been rapidly adopted by major companies such as Facebook, Cloudflare, and Netronome. Use cases include network monitoring, network traffic manipulation, load balancing, and system profiling. This work aims to present eBPF to an inexpert audience, covering the main theoretical and fundamental aspects of eBPF and XDP, as well as introducing the reader to simple examples to give insight into the general operation and use of both technologies.

Topics & Concepts

Computer scienceLinux kernelPacket processingNetwork packetOperating systemConfigfsCompilerProfiling (computer programming)Kernel (algebra)Compile timePath (computing)Embedded systemProgramming languageComputer networkMathematicsCombinatoricsSoftware-Defined Networks and 5GNetwork Security and Intrusion DetectionNetwork Traffic and Congestion Control