Bringing packet queueing to XDP
summary
Proposal implements packet queuing inside XDP by adding a priority queue map for BPF redirect storage and using BPF timers as immediate callbacks to drive transmission via ndo_xdp_xmit. A prototype reuses redirect maps, evaluates data structures: simple FIFO adds ~36 ns, RB-tree roughly doubles that, and a bitmap-based Eiffel index adds ~22 ns; the timer callback costs ~140 ns extra. It works end-to-end but needs driver pushback/BQL integration and API tweaks to avoid drops under overload.
AI-written summary · about
chapters (12)
- 0:00Introduction and motivation
- 1:03Why queueing in XDP matters
- 3:10Current XDP redirect flow
- 6:23Requirements for XDP queuing
- 8:07Proposed priority queue map
- 9:36Performance overhead analysis
- 11:25Pi Fo queue data structure
- 15:58Scheduling and dequeueing packets
- 18:30BPF timers for callbacks
- 21:19Timer overhead and alternatives
- 22:23Driver pushback and buffering
- 24:29Q&A and discussion
related talks
37mEfficient and Flexible Virtual Machine Networking Through eBPF
28mLow-Latency, Deterministic Networking with Standard Linux using XDP Sockets
21mHow to Use XDP and eBPF to Accelerate IPSec Throughput by 400%
24mIntroduction to eBPF Qdisc and Use Cases
28mXDP for TSN
19mGet start with XDP: write a network filter in 10m
32meBPF: BPF kernel infrastructure
16mElectrode: Accelerating Distributed Protocols with eBPF
