Efficient and Flexible Virtual Machine Networking Through eBPF
summary
Proposes building VM networking on eBPF/XDP with concrete pieces: user-space compiles eBPF to kernel via verifier/JIT, uses maps + helpers for shared state, and implements guest-to-host fast redirect to avoid kernel stack. Reports datapoints: kernel TAP bridging <2 Mpps, guest XDP improvements, and prototypes hitting roughly 6–6.5 Mpps with XDP redirect and up to ~11 Mpps when offloading into a TAP backend. Demonstrates a prototype datapath, eBPF-to-host offload, and lists limits around helper availability, verifier constraints, and batching.
AI-written summary · about
chapters (18)
- 0:00Intro
- 0:25Outline
- 0:54Overview of virtual machine networking
- 5:13eBPF introduction (cont)
- 8:14XDP - Why it was efficient and flexible?
- 10:17How does XDP can help
- 11:45Advanced Features
- 12:34bpfilter internals
- 15:04eBPF transport through virtio
- 16:45Service chaining
- 19:09XDP for stacked device (example)
- 19:57XDP rx handler
- 20:39POC Performance
- 21:11OVS XDP datapath
- 24:55OVS AF_XDP datapath
- 25:49AF_XDP passthrough
- 27:01eBPF based vhost datapath
- 29:09Reference
related talks
33meBPF: exploring use case of BPF kernel infrastructure
47mInto the Heart of the eBPF Hive!
27meBPF-based Extensible Paravirtualization
32mExploring the Power of eBPF for System Observability
28mScalable and Multitenant Networking in XDP and Kubernetes Operators
32mDemystifying eBPF - eBPF Firewall from scratch
14mZero-overhead Container Networking with eBPF and Netkit
23mAn Intro to eBPF with Go : The Foundation of Modern Kubernetes Networking
