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 Detection
- 3.1.13. 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. RCU Library
- 6. Ring Library
- 7. Stack Library
- 8. Mempool Library
- 9. Mbuf Library
- 10. Poll Mode Driver
- 11. Generic flow API (rte_flow)
- 12. Switch Representation within DPDK Applications
- 13. Traffic Metering and Policing API
- 14. Traffic Management API
- 15. Wireless Baseband Device Library
- 16. Cryptography Device Library
- 17. Compression Device Library
- 18. Security Library
- 19. Rawdevice Library
- 20. Link Bonding Poll Mode Driver Library
- 21. Timer Library
- 22. Hash Library
- 22.1. Hash API Overview
- 22.2. Multi-process support
- 22.3. Multi-thread support
- 22.4. Extendable Bucket Functionality support
- 22.5. Implementation Details (non Extendable Bucket Case)
- 22.6. Implementation Details (with Extendable Bucket)
- 22.7. Entry distribution in hash table
- 22.8. Use Case: Flow Classification
- 22.9. References
- 23. Elastic Flow Distributor Library
- 24. Membership Library
- 25. LPM Library
- 26. LPM6 Library
- 27. Flow Classification Library
- 28. Packet Distributor Library
- 29. Reorder Library
- 30. IP Fragmentation and Reassembly Library
- 31. Generic Receive Offload Library
- 32. Generic Segmentation Offload Library
- 33. The librte_pdump Library
- 34. Multi-process Support
- 35. Kernel NIC Interface
- 36. Thread Safety of DPDK Functions
- 37. Event Device Library
- 38. Event Ethernet Rx Adapter Library
- 38.1. API Walk-through
- 38.1.1. Creating an Adapter Instance
- 38.1.2. Adding Rx Queues to the Adapter Instance
- 38.1.3. Querying Adapter Capabilities
- 38.1.4. Configuring the Service Function
- 38.1.5. Starting the Adapter Instance
- 38.1.6. Getting Adapter Statistics
- 38.1.7. Interrupt Based Rx Queues
- 38.1.8. Rx Callback for SW Rx Adapter
- 38.1. API Walk-through
- 39. Event Ethernet Tx Adapter Library
- 39.1. API Walk-through
- 39.1.1. Creating an Adapter Instance
- 39.1.2. Adding Tx Queues to the Adapter Instance
- 39.1.3. Querying Adapter Capabilities
- 39.1.4. Linking a Queue to the Adapter’s Event Port
- 39.1.5. Configuring the Service Function
- 39.1.6. Starting the Adapter Instance
- 39.1.7. Enqueuing Packets to the Adapter
- 39.1.8. Getting Adapter Statistics
- 39.1. API Walk-through
- 40. Event Timer Adapter Library
- 41. Event Crypto Adapter Library
- 42. Quality of Service (QoS) Framework
- 43. Power Management
- 44. Packet Classification and Access Control
- 45. Packet Framework
- 46. Vhost Library
- 47. Metrics Library
- 48. Berkeley Packet Filter Library
- 49. IPsec Packet Processing Library
- 50. Source Organization
- 51. Development Kit Build System
- 51.1. Building the Development Kit Binary
- 51.2. Building External Applications
- 51.3. Makefile Description
- 51.3.1. General Rules For DPDK Makefiles
- 51.3.2. Makefile Types
- 51.3.3. Internally Generated Build Tools
- 51.3.4. Useful Variables Provided by the Build System
- 51.3.5. Variables that Can be Set/Overridden in a Makefile Only
- 51.3.6. Variables that can be Set/Overridden by the User on the Command Line Only
- 51.3.7. Variables that Can be Set/Overridden by the User in a Makefile or Command Line
- 52. Development Kit Root Makefile Help
- 53. Extending the DPDK
- 54. Building Your Own Application
- 55. External Application/Library Makefile help
- 56. Performance Optimization Guidelines
- 57. Writing Efficient Code
- 58. Profile Your Application
- 59. Glossary