Programmer’s Guide
- 1. Introduction
 - 2. Overview
 - 3. Environment Abstraction Layer
- 3.1. EAL in a Linux-userland Execution Environment
- 3.1.1. Initialization and Core Launching
 - 3.1.2. Shutdown and Cleanup
 - 3.1.3. Multi-process Support
 - 3.1.4. Memory Mapping Discovery and Memory Reservation
 - 3.1.5. Support for Externally Allocated Memory
 - 3.1.6. Per-lcore and Shared Variables
 - 3.1.7. Logs
 - 3.1.8. CPU Feature Identification
 - 3.1.9. User Space Interrupt Event
 - 3.1.10. Blacklisting
 - 3.1.11. Misc Functions
 - 3.1.12. IOVA Mode Configuration
 
 - 3.2. Memory Segments and Memory Zones (memzone)
 - 3.3. Multiple pthread
 - 3.4. Malloc
 
 - 3.1. EAL in a Linux-userland Execution Environment
 - 4. Service Cores
 - 5. Ring Library
 - 6. Mempool Library
 - 7. Mbuf Library
 - 8. Poll Mode Driver
 - 9. Generic flow API (rte_flow)
 - 10. Switch Representation within DPDK Applications
 - 11. Traffic Metering and Policing API
 - 12. Traffic Management API
 - 13. Wireless Baseband Device Library
 - 14. Cryptography Device Library
 - 15. Compression Device Library
 - 16. Security Library
 - 17. Rawdevice Library
 - 18. Link Bonding Poll Mode Driver Library
 - 19. Timer Library
 - 20. Hash Library
- 20.1. Hash API Overview
 - 20.2. Multi-process support
 - 20.3. Multi-thread support
 - 20.4. Extendable Bucket Functionality support
 - 20.5. Implementation Details (non Extendable Bucket Case)
 - 20.6. Implementation Details (with Extendable Bucket)
 - 20.7. Entry distribution in hash table
 - 20.8. Use Case: Flow Classification
 - 20.9. References
 
 - 21. Elastic Flow Distributor Library
 - 22. Membership Library
 - 23. LPM Library
 - 24. LPM6 Library
 - 25. Flow Classification Library
 - 26. Packet Distributor Library
 - 27. Reorder Library
 - 28. IP Fragmentation and Reassembly Library
 - 29. Generic Receive Offload Library
 - 30. Generic Segmentation Offload Library
 - 31. The librte_pdump Library
 - 32. Multi-process Support
 - 33. Kernel NIC Interface
 - 34. Thread Safety of DPDK Functions
 - 35. Event Device Library
 - 36. Event Ethernet Rx Adapter Library
- 36.1. API Walk-through
- 36.1.1. Creating an Adapter Instance
 - 36.1.2. Adding Rx Queues to the Adapter Instance
 - 36.1.3. Querying Adapter Capabilities
 - 36.1.4. Configuring the Service Function
 - 36.1.5. Starting the Adapter Instance
 - 36.1.6. Getting Adapter Statistics
 - 36.1.7. Interrupt Based Rx Queues
 - 36.1.8. Rx Callback for SW Rx Adapter
 
 
 - 36.1. API Walk-through
 - 37. Event Ethernet Tx Adapter Library
- 37.1. API Walk-through
- 37.1.1. Creating an Adapter Instance
 - 37.1.2. Adding Tx Queues to the Adapter Instance
 - 37.1.3. Querying Adapter Capabilities
 - 37.1.4. Linking a Queue to the Adapter’s Event Port
 - 37.1.5. Configuring the Service Function
 - 37.1.6. Starting the Adapter Instance
 - 37.1.7. Enqueuing Packets to the Adapter
 - 37.1.8. Getting Adapter Statistics
 
 
 - 37.1. API Walk-through
 - 38. Event Timer Adapter Library
 - 39. Event Crypto Adapter Library
 - 40. Quality of Service (QoS) Framework
 - 41. Power Management
 - 42. Packet Classification and Access Control
 - 43. Packet Framework
 - 44. Vhost Library
 - 45. Metrics Library
 - 46. Berkeley Packet Filter Library
 - 47. IPsec Packet Processing Library
 - 48. Source Organization
 - 49. Development Kit Build System
- 49.1. Building the Development Kit Binary
 - 49.2. Building External Applications
 - 49.3. Makefile Description
- 49.3.1. General Rules For DPDK Makefiles
 - 49.3.2. Makefile Types
 - 49.3.3. Internally Generated Build Tools
 - 49.3.4. Useful Variables Provided by the Build System
 - 49.3.5. Variables that Can be Set/Overridden in a Makefile Only
 - 49.3.6. Variables that can be Set/Overridden by the User on the Command Line Only
 - 49.3.7. Variables that Can be Set/Overridden by the User in a Makefile or Command Line
 
 
 - 50. Development Kit Root Makefile Help
 - 51. Extending the DPDK
 - 52. Building Your Own Application
 - 53. External Application/Library Makefile help
 - 54. Performance Optimization Guidelines
 - 55. Writing Efficient Code
 - 56. Profile Your Application
 - 57. Glossary