
Learn how to build a high-performance software network device using DPDK (Data Plane Development Kit) and C programming. In this hands-on course, you will explore how network packets are received, processed, and transmitted directly through NIC hardware queues using DPDK's Poll Mode Drivers (PMDs).
Understand the internals of RX/TX queues, ring descriptors, DMA, hugepages, packet buffers (rte_mbuf), memory management, and efficient packet processing. Move beyond simply using DPDK APIs and develop a deeper understanding of how user-space packet processing works, how it differs from the traditional Linux kernel networking path, and how these concepts can be applied to building your own software router or network appliance.
This course is designed for networking engineers, system programmers, and students who want practical experience with C, NIC internals, and high-performance data-plane development.
Section 1 — Introduction to High-Performance Networking
Section 2 — NIC Architecture and Packet Processing
Section 3 — DPDK Environment Setup
Section 4 — DPDK EAL and Memory Management
Section 5 — Poll Mode Drivers and NIC Queue Initialization
Section 6 — Building the Packet RX/TX Engine
Section 7 — Parsing and Processing Network Packets
Section 8 — Multicore Packet Processing
Section 9 — Performance Optimization and Benchmarking
Section 10 — Beyond Basic Forwarding
Section 11 — Final Project: Build Your Own DPDK Network Device
Section 12 — Next Steps and Advanced Topics