This training aims to enable developers with networking/kernel background to effectively use DPDK library within developed products. The practical part is based on exclusively developed sample application - DPI Bridge. This part of the training is focused on the general understanding of the concepts and surrounding tools, whereas advanced optimization has been moved to the second part.
2. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy
Summary
● Overview/Objectives
This training aims to enable developers with networking/kernel background to effectively use DPDK
library within developed products. The practical part is based on exclusively developed sample
application - DPI Bridge. This part of the training is focused on the general understanding of the
concepts and surrounding tools, whereas advanced optimization has been moved to the second part.
● Duration
3 days
● Number of participants
min 2, max 8 (assuming pair programming)
2
3. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy
Contents of the training (1)
1. High level overview
● Comparison of DPDK to classic packet
processing in kernel
● Explanation of the reasons why user
space processing might be faster and
more efficient
● Costs and drawbacks of using DPDK
3
2. Introduction
● Running environment configuration
(hugepages, drivers etc.)
● DPDK structure: Environment
Abstraction Layer (EAL), memory
management (rings, mempools),
PMDs
● Concepts of lcore in comparison to
processes/threads
● Setup and running a sample app.
4. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy
Contents of the training (2)
3. In depth of the DPDK app
● Compilation of the DPDK and example
app
● Initialization sequence (EAL init,
memory pool creation, NIC
configuration)
● Packet processing overview
● Single thread example app
benchmarking using pktgen
4
4. DPDK and PMD API
● Application optimization
● Function call sequence
● Callbacks around tx_burst and
rx_burst
● Multithread scaling using RSS
● Queues number optimization from the
perspective of the app and PMD/RSS
5. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy
Contents of the training (3)
5. Packet processing
● Packet representation and mbuf usage
● Packet processing path
● Timeouts handling
● Lockless asynchronous access to the
shared memory
● Multithreading processing challenges
5
6. Troubleshooting
● Testing environment configuration
including tools such as mausezahn,
testpmd, dpdk-pktgen, tcpdump,
dpdk-procinfo
● Troubleshooting of the app basing on
network traffic analysis and statistics
● Debugging of the DPDK example app