December 20, 2014
Contents
Figures
Figure 1. Core Components Architecture
Figure 2. EAL Initialization in a Linux Application Environment
Figure 3. Example of a malloc heap and malloc elements within the malloc library
Figure 5. Two Channels and Quad-ranked DIMM Example
Figure 6. Three Channels and Two Dual-ranked DIMM Example
Figure 7. A mempool in Memory with its Associated Ring
Figure 8. An mbuf with One Segment
Figure 9. An mbuf with Three Segments
Figure 10. Virtualization for a Single Port NIC in SR-IOV Mode
Figure 11. Performance Benchmark Setup
Figure 12. Fast Host-based Packet Processing
Figure 13. Inter-VM Communication
Figure 14. Host2VM Communication Example Using kni vhost Back End
Figure 15. Host2VM Communication Example Using qemu vhost Back End
Figure 16. Memory Sharing inthe Intel® DPDK Multi-process Sample Application
Figure 17. Components of an Intel® DPDK KNI Application
Figure 18. Packet Flow via mbufs in the Intel DPDK® KNI
Figure 19. vHost-net Architecture Overview
Figure 21. Complex Packet Processing Pipeline with QoS Support
Figure 22. Hierarchical Scheduler Block Internal Diagram
Figure 23. Scheduling Hierarchy per Port
Figure 24. Internal Data Structures per Port
Figure 25. Prefetch Pipeline for the Hierarchical Scheduler Enqueue Operation
Figure 26. Pipe Prefetch State Machine for the Hierarchical Scheduler Dequeue Operation
Figure 27. High-level Block Diagram of the Intel® DPDK Dropper
Figure 28. Flow Through the Dropper
Figure 29. Example Data Flow Through Dropper
Figure 30. Packet Drop Probability for a Given RED Configuration
Figure 33. Sequence of steps for hash table operations in packet processing context
Figure 34. Data structures for configurable key size hash tables
Figure 35. Bucket search pipeline for key lookup operation (configurable key size hash tables)
Figure 36. Pseudo-code for match, match_many and match_pos
Figure 37. Data structures for 8-byte key hash tables
Figure 38. Data structures for 16-byte key hash tables
Figure 39. Bucket search pipeline for key lookup operation (single key size hash tables)
Tables
Table 1. Packet Processing Pipeline Implementing QoS
Table 2. Infrastructure Blocks Used by the Packet Processing Pipeline
Table 3. Port Scheduling Hierarchy
Table 4. Scheduler Internal Data Structures per Port
Table 5. Ethernet Frame Overhead Fields
Table 6. Token Bucket Generic Operations
Table 7. Token Bucket Generic Parameters
Table 8. Token Bucket Persistent Data Structure
Table 9. Token Bucket Operations
Table 10. Subport/Pipe Traffic Class Upper Limit Enforcement Persistent Data Structure
Table 11. Subport/Pipe Traffic Class Upper Limit Enforcement Operations
Table 12. Weighted Round Robin (WRR)
Table 13. Subport Traffic Class Oversubscription
Table 15. Watermark Calculation
Table 16. RED Configuration Parameters
Table 17. Relative Performance of Alternative Approaches
Table 18. RED Configuration Corresponding to RED Configuration File
Table 20. Port abstract interface
Table 29. Table Abstract Interface
Table 22. Configuration parameters common for all hash table types
Table 23. Configuration parameters specific to extendible bucket hash table
Table 24. Configuration parameters specific to pre-computed key signature hash table
Table 25. The main large data structures (arrays) used for configurable key size hash tables
Table 26. Field description for bucket array entry (configurable key size hash tables)
Table 27. Description of the bucket search pipeline stages (configurable key size hash tables)
Table 28. Lookup tables for match, match_many, match_pos
Table 29. Collapsed lookup tables for match, match_many and match_pos
Table 30. The main large data structures (arrays) used for 8-byte and 16-byte key size hash tables
Table 31. Field description for bucket array entry (8-byte and 16-byte key hash tables)
Table 32. Description of the bucket search pipeline stages (8-byte and 16-byte key hash tables)