In the Kernel Trenches: Mastering Ethernet Drivers on Linux
summary
Tour of a Linux Ethernet driver that points to the actual code paths: alloc_etherdev_mqs for per-queue setup, DMA mapping and descriptors for TX/RX, SKB lifecycle with skb_get_queue_mapping and TX completion bookkeeping, NAPI poll loop replacing per-packet IRQs, and page_pool as the prerequisite for XDP. It lists ethtool, TC and switchdev hooks, PTP clock callbacks, and notes 92 netdev ops; contribution workflow uses netdev/net-next via the mailing list.
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
01h 21mTutorial: Developing High-performance Networking Applications
41mSetting up Real-time Ethernet and TSN With Linux: A 10-step Guide
20mTeach an Old Network Driver New Tricks
01h 01mnet_mdev: Fast path user space I/O
46mEthernet Switch Support in the Linux Kernel
53mInto the Jungle - How to write a Linux kernel driver for any subsystem
