编程指南

Figures

Fig. 2.1 Core Components Architecture

Fig. 3.1 EAL在Linux APP环境中被初始化。

Fig. 3.2 Malloc库中malloc heap 和 malloc elements。

Fig. 4.2 Ring 结构

Fig. 4.3 Enqueue first step

Fig. 4.4 Enqueue second step

Fig. 4.5 Enqueue last step

Fig. 4.6 Dequeue last step

Fig. 4.7 Dequeue second step

Fig. 4.8 Dequeue last step

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.3 报文处理上下文中哈希表操作的步骤顺序

Fig. 26.4 可配置Key大小的散列表的数据结构

Fig. 26.5 用于Key查找操作的流水线(可配置Key大小的哈希表)

Fig. 26.6 8B Key哈希表数据结构

Fig. 26.7 16B Key哈希表数据结构

Fig. 26.8 用于Key查找操作的桶搜索水线(单一Key大小的哈希表)

Fig. 13.2 Load Balancing Using Front End Node

Fig. 13.3 Consistent Hashing

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.8 Group Assignment

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.2 端口类型

Table 26.3 20 端口抽象接口

Table 26.4 表类型

Table 26.6 所有散列表类型的通用配置参数

Table 26.7 可扩展桶散列表特定的配置参数

Table 26.8 预先计算哈希值的哈希表配置参数

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 26.18 用户动作实例

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