In the Kernel Trenches: Mastering Ethernet Drivers on Linux
summary
Covers how a Linux Ethernet driver wires a net_device to hardware: setting up queues with alloc_etherdev_mqs, mapping SKBs with DMA or a page_pool, implementing NAPI poll, handling TX completions and PTP timestamping, and adding XDP hooks for early packet decisions. Shows ethtool/phylink/ioctl/TC/switchdev integration, where to expose features and stats, how to avoid link drops during config, and which tools (tcpdump/wireshark, netdev mailing list, kernel docs) actually debug and validate behavior.
AI-written summary · about
chapters (15)
- 0:00Introduction to drivers
- 2:13Inside the controller
- 6:01Net device structure
- 9:35Data handling structures
- 12:22Memory management
- 13:54Transmit and receive path
- 16:33NAPI and polling
- 19:15Hardware timestamping
- 22:28Advanced queue management
- 28:19Control plane configuration
- 36:42Feature management
- 39:08Etthtool and traffic control
- 44:32PTP and advanced offloads
- 46:43PHY and PCS interaction
- 48:29Contribution and debugging
related talks
52mIn the Kernel Trenches: Mastering Ethernet Drivers on Linux
41mBraiding Wires Into the Linux Network Stack - Recent Work on Embedded Networking
42mMastering Linux Networking: An Introduction to Linux Administration Essentials
41mSetting up Real-time Ethernet and TSN With Linux: A 10-step Guide
53mInto the Jungle - How to write a Linux kernel driver for any subsystem
20mTeach an Old Network Driver New Tricks
46mEthernet Switch Support in the Linux Kernel
01h 21mTutorial: Developing High-performance Networking Applications
