Overview of the BPF networking hooks and user experience in Meta
summary
Walks through which BPF hooks run where (driver XDP, TC, routing, SK_LOOKUP, SK_SKB, cgroup/socket callbacks) and what they can actually do: header reads/writes, redirect, socket lookup, assign sock to skb, hardware timestamp access when present. Describes deployed pieces: XDP and TC paths in production, a bpf_tcpcc implementation (cubic and DCTCP) running multiple versions concurrently to save background bandwidth, and a BPF TCP-iteration tool that flips congestion control on live connections. Notes limits: socket-local storage visibility and inconsistent socket helpers across hooks.
AI-written summary · about
chapters (16)
- 0:00Introduction to BPF networking
- 1:05XDP driver hooks overview
- 3:36Socket availability in XDP
- 4:39TC layer hooks and use cases
- 7:53Socket lookup at TC layer
- 8:36Hooks above IP layer
- 11:06SK reuse program details
- 13:57Cgroup program for sockets
- 15:26BPF TCP congestion control
- 17:36BPF TCP iteration program
- 19:21BPF TCP state hooks
- 21:54Cgroup socket program hooks
- 23:43Socket storage limitations
- 26:29Socket helper availability
- 28:17Future of socket helpers
- 28:44Q&A session
related talks
30mA Beginner's Guide to eBPF Programming for Networking
32meBPF: BPF kernel infrastructure
34mWhat's new in the BPF world?
28mSafe sharing of the network with eBPF
24mSpeedrun Through Splicing Sockets with Sockmap
26mContainer Networking: The Play of BPF and Network NS with different...
38mPacket Metadata - Where Are Thee?
32mDemystifying eBPF - eBPF Firewall from scratch
