Data Plane Development Kit
Getting Started Guide for Linux
1. Introduction
2. System Requirements
3. Compiling the DPDK Target from Source
4. Linux Drivers
5. Compiling and Running Sample Applications
6. Enabling Additional Functionality
7. Quick Start Setup Script
8. How to get best performance with NICs on Intel platforms
Getting Started Guide for FreeBSD
1. Introduction
2. Installing DPDK from the Ports Collection
3. Compiling the DPDK Target from Source
4. Compiling and Running Sample Applications
Sample Applications User Guides
1. Introduction to the DPDK Sample Applications
2. Compiling the Sample Applications
3. Command Line Sample Application
4. Ethtool Sample Application
5. Exception Path Sample Application
6. Hello World Sample Application
7. Basic Forwarding Sample Application
8. RX/TX Callbacks Sample Application
9. Flow Classify Sample Application
10. Basic RTE Flow Filtering Sample Application
11. IP Fragmentation Sample Application
12. IPv4 Multicast Sample Application
13. IP Reassembly Sample Application
14. Kernel NIC Interface Sample Application
15. Keep Alive Sample Application
16. L2 Forwarding with Crypto Sample Application
17. L2 Forwarding Sample Application (in Real and Virtualized Environments) with core load statistics.
18. L2 Forwarding Sample Application (in Real and Virtualized Environments)
19. L2 Forwarding Sample Application with Cache Allocation Technology (CAT)
20. L3 Forwarding Sample Application
21. L3 Forwarding with Power Management Sample Application
22. L3 Forwarding with Access Control Sample Application
23. L3 Forwarding in a Virtualization Environment Sample Application
24. Link Status Interrupt Sample Application
25. Load Balancer Sample Application
26. Server-Node EFD Sample Application
27. Service Cores Sample Application
28. Multi-process Sample Application
29. QoS Metering Sample Application
30. QoS Scheduler Sample Application
31. Quota and Watermark Sample Application
32. Timer Sample Application
33. Packet Ordering Application
34. VMDQ and DCB Forwarding Sample Application
35. Vhost Sample Application
36. Vhost_scsi Sample Application
37. Netmap Compatibility Sample Application
38. Internet Protocol (IP) Pipeline Application
39. Test Pipeline Application
40. Eventdev Pipeline SW PMD Sample Application
41. Distributor Sample Application
42. VM Power Management Application
43. TEP termination Sample Application
44. PTP Client Sample Application
45. Performance Thread Sample Application
46. IPsec Security Gateway Sample Application
Programmer’s Guide
1. Introduction
2. Overview
3. Environment Abstraction Layer
4. Service Cores
5. Ring Library
6. Mempool Library
7. Mbuf Library
8. Poll Mode Driver
9. Generic flow API (rte_flow)
10. Traffic Metering and Policing API
11. Traffic Management API
12. Cryptography Device Library
13. Security Library
14. Link Bonding Poll Mode Driver Library
15. Timer Library
16. Hash Library
17. Elastic Flow Distributor Library
18. Membership Library
19. LPM Library
20. LPM6 Library
21. Flow Classification Library
22. Packet Distributor Library
23. Reorder Library
24. IP Fragmentation and Reassembly Library
25. Generic Receive Offload Library
26. Generic Segmentation Offload Library
27. The librte_pdump Library
28. Multi-process Support
29. Kernel NIC Interface
30. Thread Safety of DPDK Functions
31. Event Device Library
32. Event Ethernet Rx Adapter Library
33. Quality of Service (QoS) Framework
34. Power Management
35. Packet Classification and Access Control
36. Packet Framework
37. Vhost Library
38. Metrics Library
39. Port Hotplug Framework
40. Source Organization
41. Development Kit Build System
42. Development Kit Root Makefile Help
43. Extending the DPDK
44. Building Your Own Application
45. External Application/Library Makefile help
46. Performance Optimization Guidelines
47. Writing Efficient Code
48. Profile Your Application
49. Glossary
HowTo Guides
1. Live Migration of VM with SR-IOV VF
2. Live Migration of VM with Virtio on host running vhost_user
3. Flow Bifurcation How-to Guide
4. Generic flow API - examples
5. PVP reference benchmark setup using testpmd
6. VF daemon (VFd)
7. Virtio_user for Container Networking
8. Virtio_user as Exceptional Path
9. DPDK pdump Library and pdump Tool
DPDK Tools User Guides
1. dpdk-procinfo Application
2. dpdk-pdump Application
3. dpdk-pmdinfo Application
4. dpdk-devbind Application
5. dpdk-test-crypto-perf Application
6. dpdk-test-eventdev Application
Testpmd Application User Guide
1. Introduction
2. Compiling the Application
3. Running the Application
4. Testpmd Runtime Functions
Network Interface Controller Drivers
1. Overview of Networking Drivers
2. Features Overview
3. Compiling and testing a PMD for a NIC
4. ARK Poll Mode Driver
5. AVP Poll Mode Driver
6. BNX2X Poll Mode Driver
7. BNXT Poll Mode Driver
8. CXGBE Poll Mode Driver
9. DPAA Poll Mode Driver
10. DPAA2 Poll Mode Driver
11. Driver for VM Emulated Devices
12. ENA Poll Mode Driver
13. ENIC Poll Mode Driver
14. FM10K Poll Mode Driver
15. I40E Poll Mode Driver
16. IXGBE Driver
17. I40E/IXGBE/IGB Virtual Function Driver
18. KNI Poll Mode Driver
19. LiquidIO VF Poll Mode Driver
20. MLX4 poll mode driver library
21. MLX5 poll mode driver
22. MRVL Poll Mode Driver
23. NFP poll mode driver library
24. OCTEONTX Poll Mode driver
25. QEDE Poll Mode Driver
26. Solarflare libefx-based Poll Mode Driver
27. SZEDATA2 poll mode driver library
28. Tun/Tap Poll Mode Driver
29. ThunderX NICVF Poll Mode Driver
30. Poll Mode Driver for Emulated Virtio NIC
31. Poll Mode Driver that wraps vhost library
32. Poll Mode Driver for Paravirtual VMXNET3 NIC
33. Libpcap and Ring Based Poll Mode Drivers
34. Fail-safe poll mode driver library
Crypto Device Drivers
1. Crypto Device Supported Functionality Matrices
2. AESN-NI Multi Buffer Crypto Poll Mode Driver
3. AES-NI GCM Crypto Poll Mode Driver
4. ARMv8 Crypto Poll Mode Driver
5. NXP DPAA2 CAAM (DPAA2_SEC)
6. NXP DPAA CAAM (DPAA_SEC)
7. KASUMI Crypto Poll Mode Driver
8. OpenSSL Crypto Poll Mode Driver
9. MRVL Crypto Poll Mode Driver
10. Null Crypto Poll Mode Driver
11. Cryptodev Scheduler Poll Mode Driver Library
12. SNOW 3G Crypto Poll Mode Driver
13. Intel(R) QuickAssist (QAT) Crypto Poll Mode Driver
14. ZUC Crypto Poll Mode Driver
Event Device Drivers
1. NXP DPAA2 Eventdev Driver
2. Software Eventdev Poll Mode Driver
3. OCTEONTX SSOVF Eventdev Driver
Mempool Device Driver
1. OCTEONTX FPAVF Mempool Driver
Platform Specific Guides
1. OCTEONTX Board Support Package
Contributor’s Guidelines
1. DPDK Coding Style
2. Design
3. Managing ABI updates
4. DPDK Documentation Guidelines
5. Contributing Code to DPDK
6. DPDK Stable Releases and Long Term Support
7. Patch Cheatsheet
Release Notes
1. Description of Release
2. DPDK Release 17.11
3. DPDK Release 17.08
4. DPDK Release 17.05
5. DPDK Release 17.02
6. DPDK Release 16.11
7. DPDK Release 16.07
8. DPDK Release 16.04
9. DPDK Release 2.2
10. DPDK Release 2.1
11. DPDK Release 2.0
12. DPDK Release 1.8
13. Known Issues and Limitations in Legacy Releases
14. ABI and API Deprecation
FAQ
1. What does “EAL: map_all_hugepages(): open failed: Permission denied Cannot init memory” mean?
2. If I want to change the number of hugepages allocated, how do I remove the original pages allocated?
3. If I execute “l2fwd -l 0-3 -m 64 -n 3 – -p 3”, I get the following output, indicating that there are no socket 0 hugepages to allocate the mbuf and ring structures to?
4. I am running a 32-bit DPDK application on a NUMA system, and sometimes the application initializes fine but cannot allocate memory. Why is that happening?
5. On application startup, there is a lot of EAL information printed. Is there any way to reduce this?
6. How can I tune my network application to achieve lower latency?
7. Without NUMA enabled, my network throughput is low, why?
8. I am getting errors about not being able to open files. Why?
9. VF driver for IXGBE devices cannot be initialized
10. Is it safe to add an entry to the hash table while running?
11. What is the purpose of setting iommu=pt?
12. When trying to send packets from an application to itself, meaning smac==dmac, using Intel(R) 82599 VF packets are lost.
13. Can I split packet RX to use DPDK and have an application’s higher order functions continue using Linux pthread?
14. Is it possible to exchange data between DPDK processes and regular userspace processes via some shared memory or IPC mechanism?
15. Can the multiple queues in Intel(R) I350 be used with DPDK?
16. How can hugepage-backed memory be shared among multiple processes?
17. Why can’t my application receive packets on my system with UEFI Secure Boot enabled?
Data Plane Development Kit
Docs
»
DPDK Tools User Guides
View page source
DPDK Tools User Guides
1. dpdk-procinfo Application
1.1. Running the Application
2. dpdk-pdump Application
2.1. Running the Application
2.2. Example
3. dpdk-pmdinfo Application
3.1. Running the Application
4. dpdk-devbind Application
4.1. Running the Application
4.2. OPTIONS
4.3. Examples
5. dpdk-test-crypto-perf Application
5.1. Limitations
5.2. Compiling the Application
5.3. Running the Application
5.4. Examples
6. dpdk-test-eventdev Application
6.1. Compiling the Application
6.2. Running the Application
6.3. Eventdev Tests