Network Driver Internals & Performance Tuning
Write and tune network drivers: NAPI, multi-queue RSS, hardware timestamps, XDP hooks and a virtual Ethernet driver.
Advanced29 lessons
written lessons≈ 15 h
High-Performance Networking & Cloud-Native · 30 illustrated lessons (text/HTML)
Outcomes
- Write a network device driver from registration to NAPI polling
- Measure and improve RX/TX throughput and latency
- Connect drivers to XDP, eBPF and DPDK PMD models
Where we teach this
- NET-101 · Linux Network Stack Architecture & Sockets live cohort
- PRF-220 · I/O & Network Performance Tuning live cohort
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Course introduction
- 2The Linux network subsystem architecture in depth
- 3The Linux network device driver model in depth
- 4Network driver initialisation and registration
- 5Receive (RX) packet path in depth
- 6Transmit (TX) packet path in depth
- 7Core goals and performance challenges
- 8DMA engines and zero-copy techniques
- 9Traffic control and QoS at the driver layer
- 10Multi-queue and RSS
- 11Network driver statistics and monitoring
- 12Hardware timestamps and PTP driver support
- 13SR-IOV and virtualisation driver support
- 14Network driver debugging techniques
- 16RX path performance tuning
- 17TX path performance tuning workshop
- 18Memory and DMA tuning
- 19Interrupt and CPU tuning
- 20Linux network stack tuning workshop
- 21Virtualised network performance tuning workshop
- 22XDP and eBPF driver acceleration
- 23DPDK PMD driver development basics
- 24Linux wireless network drivers in depth
- 25NFV driver considerations: drivers and accelerator support in DPDK/OVS
- 26Driver security and hardening
- 27Kernel compatibility and upstream submission
- 28Real NIC driver code analysed
- 29Practice: writing a simple virtual Ethernet driver
- 30Summary and outlook
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.