编程指南¶
- 1. 简介
- 2. 概述
- 3. 环境适配层EAL
- 4. Ring 库
- 5. Mempool 库
- 6. Mbuf 库
- 7. 轮询模式驱动
- 8. 通用流 API (rte_flow)
- 8.1. 概述
- 8.2. 流规则
- 8.3. Rules management
- 8.4. Verbose error reporting
- 8.5. Caveats
- 8.6. PMD interface
- 8.7. Device compatibility
- 8.8. Future evolutions
- 8.9. API migration
- 8.9.1.
MACVLAN
toETH
→VF
,PF
- 8.9.2.
ETHERTYPE
toETH
→QUEUE
,DROP
- 8.9.3.
FLEXIBLE
toRAW
→QUEUE
- 8.9.4.
SYN
toTCP
→QUEUE
- 8.9.5.
NTUPLE
toIPV4
,TCP
,UDP
→QUEUE
- 8.9.6.
TUNNEL
toETH
,IPV4
,IPV6
,VXLAN
(or other) →QUEUE
- 8.9.7.
FDIR
to most item types →QUEUE
,DROP
,PASSTHRU
- 8.9.8.
HASH
- 8.9.9.
L2_TUNNEL
toVOID
→VXLAN
(or others)
- 8.9.1.
- 9. Cryptography Device Library
- 10. 链路绑定PMD
- 11. 定时器库
- 12. 哈希库
- 13. Elastic Flow Distributor Library
- 14. LPM库
- 15. LPM6库
- 16. 报文分发库
- 17. 排序器库
- 18. IP分片及重组库
- 19. Librte_pdump库
- 20. 多进程支持
- 21. 内核网络接口卡接口
- 22. DPDK功能的线程安全
- 23. QoS框架
- 24. 电源管理
- 25. 报文分类及访问控制
- 26. 报文框架
- 27. Vhost 库
- 28. Metrics 库
- 29. 端口热插拔框架
- 30. 源码组织
- 31. 开发套件构建系统
- 32. DPDK 根目录 Makefile 理解
- 33. 扩展 DPDK
- 34. 构建你自己的应用程序
- 35. 外部应用程序/库的 Makefile
- 36. 性能优化指南
- 37. 编写高效代码
- 38. 配置你的应用程序
- 39. 术语
Figures
Fig. 2.1 Core Components Architecture
Fig. 3.1 EAL在Linux APP环境中被初始化。
Fig. 3.2 Malloc库中malloc heap 和 malloc elements。
Fig. 4.9 Multiple producer enqueue first step
Fig. 4.10 Multiple producer enqueue second step
Fig. 4.11 Multiple producer enqueue third step
Fig. 4.12 Multiple producer enqueue fourth step
Fig. 4.13 Multiple producer enqueue last step
Fig. 4.14 Modulo 32-bit indexes - Example 1
Fig. 4.15 Modulo 32-bit indexes - Example 2
Fig. 5.1 Two Channels and Quad-ranked DIMM Example
Fig. 5.2 Three Channels and Two Dual-ranked DIMM Example
Fig. 5.3 A mempool in Memory with its Associated Ring
Fig. 6.1 An mbuf with One Segment
Fig. 6.2 An mbuf with Three Segments
Fig. 20.1 Memory Sharing in the DPDK Multi-process Sample Application
Fig. 21.1 Components of a DPDK KNI Application
Fig. 21.2 Packet Flow via mbufs in the DPDK KNI
Fig. 23.2 Complex Packet Processing Pipeline with QoS Support
Fig. 23.3 Hierarchical Scheduler Block Internal Diagram
Fig. 23.4 Scheduling Hierarchy per Port
Fig. 23.5 Internal Data Structures per Port
Fig. 23.6 Prefetch Pipeline for the Hierarchical Scheduler Enqueue Operation
Fig. 23.8 High-level Block Diagram of the DPDK Dropper
Fig. 23.9 Flow Through the Dropper
Fig. 23.10 Example Data Flow Through Dropper
Fig. 23.11 Packet Drop Probability for a Given RED Configuration
Fig. 23.12 Initial Drop Probability (pb), Actual Drop probability (pa) Computed Using a Factor 1 (Blue Curve) and a Factor 2 (Red Curve)
Fig. 26.2 输入端口0和1通过表0和表1与输出端口0,1和2连接的数据包流水线示例
Fig. 26.5 用于Key查找操作的流水线(可配置Key大小的哈希表)
Fig. 26.8 用于Key查找操作的桶搜索水线(单一Key大小的哈希表)
Fig. 13.2 Load Balancing Using Front End Node
Fig. 13.4 Table Based Flow Distribution
Fig. 13.5 Searching for Perfect Hash Function
Fig. 13.6 Divide and Conquer for Millions of Keys
Fig. 13.7 EFD as a Flow-Level Load Balancer
Fig. 13.9 Perfect Hash Search - Assigned Keys & Target Value
Fig. 13.10 Perfect Hash Search - Satisfy Target Values
Fig. 13.11 Finding Hash Index for Conflict Free lookup_table
Fig. 13.12 EFD Lookup Operation
Tables
Table 23.1 Packet Processing Pipeline Implementing QoS
Table 23.2 Infrastructure Blocks Used by the Packet Processing Pipeline
Table 23.3 Port Scheduling Hierarchy
Table 23.4 Scheduler Internal Data Structures per Port
Table 23.5 Ethernet Frame Overhead Fields
Table 23.6 Token Bucket Generic Operations
Table 23.7 Token Bucket Generic Parameters
Table 23.8 Token Bucket Persistent Data Structure
Table 23.9 Token Bucket Operations
Table 23.10 Subport/Pipe Traffic Class Upper Limit Enforcement Persistent Data Structure
Table 23.11 Subport/Pipe Traffic Class Upper Limit Enforcement Operations
Table 23.12 Weighted Round Robin (WRR)
Table 23.13 Subport Traffic Class Oversubscription
Table 23.14 Watermark Propagation from Subport Level to Member Pipes at the Beginning of Each Traffic Class Upper Limit Enforcement Period
Table 23.15 Watermark Calculation
Table 23.16 RED Configuration Parameters
Table 23.17 Relative Performance of Alternative Approaches
Table 23.18 RED Configuration Corresponding to RED Configuration File
Table 26.9 Main Large Data Structures (Arrays) used for Configurable Key Size Hash Tables
Table 26.10 数组输入的字段描述(可配置的密钥大小哈希表)
Table 26.11 桶搜索流水线阶段的描述(可配置Key大小的哈希表)
Table 26.12 Lookup Tables for Match, Match_Many and Match_Pos
Table 26.13 Collapsed Lookup Tables for Match, Match_Many and Match_Pos
Table 26.14 用于8B和16B Key大小的哈希表的主要数据结构
Table 26.15 桶数组条目字段说明(8B和16B Key大小的哈希表)
Table 26.16 桶搜索流水线阶段的描述(8B和16B的Key散列表)
Table 26.17 Next Hop Actions (Reserved)
Table 12.1 Entry distribution measured with an example table with 1024 random entries using jhash algorithm
Table 12.2 Entry distribution measured with an example table with 1 million random entries using jhash algorithm