BPF programmable netdevice
summary
A BPF-based driver called netkit programmable netdevice embeds BPF execution into the driver's xmit path so Cilium can move endpoint programs into the pod peer device, avoiding the skbuff backlog and TCP backpressure that drops part‑to‑part throughput from 100 to ~63 Gbit; with tcx fast path plus netkit the measured single‑stream TCP goes to 90 Gbit/s single TCP stream and latency matches host. Devices ship as primary/peer pairs, default‑drop until programs attach; work remains on iproute2, stats, and IPv6 helpers.
AI-written summary · about
chapters (17)
- 0:00Introduction to BPF netdevices
- 2:53Problems with current architecture
- 5:03BPF host routing solution
- 7:32TCX and BPF link support
- 9:00Netkit device driver introduction
- 11:09Netkit xmit routine details
- 13:22BPF program management in Cilium
- 16:16Limitations of IPvLAN approach
- 18:51Comparison of device types
- 21:45Performance benchmarks and flame graphs
- 22:48Ongoing work and patches
- 24:59Future optimizations and peer device handling
- 27:32Headroom tailroom adjustments
- 27:54GSO max sizes for big TCP
- 29:03Future work and IPv6 improvements
- 30:04TCB dump and ndo reorganization
- 31:07Summary and closing
related talks
46mThe eBPF Revolution: A Dynamic Linux Kernel
29mBuzzing Across the Cloud Native Landscape with eBPF
32mCalico Networking with eBPF
33meBPF: exploring use case of BPF kernel infrastructure
16mGetting Linux Based eBPF Programs to Run with eBPF for Windows
14mMTP: Transport for In-Network Computing
28mBringing the power of eBPF tools to your k8s web UI
34mLife of a Packet [I]
