首页 > 技术文章 > DPDK应用示例指南简介(汇总)

s2603898260 2020-11-11 23:40 原文

DPDK应用示例指南简介

在这里插入图片描述

《DPDK示例》系列文章主要是学习、记录、翻译DPDK官方示例文档。为了更好地理解和学习DPDK, 特通过对源码中的经典示例进行整理,供大家学习、交流和讨论。


  • Author : Toney
  • Email : vip_13031075266@163.com
  • Date : 2020.11.11
  • Copyright : 未经同意不得转载!!!
  • Versiondpdk-2.2.0
  • Reference

1. DPDK应用示例介绍

DPDK 示例应用程序是小型独立应用程序,它演示 了DPDK 的各种功能。这些示例可以被视为 DPDK 功能的说明书。有兴趣使用 DPDK 的用户可以获取应用程序,试用这些功能,然后扩展它们以满足其需求。

1.1 DPDK应用示例

下表中列出了在DPDK源码examples目录中一些主要的应用示例。

BondingNetmap Compatibility
Command LinePacket Ordering
DistributorPerformance Thread
EthtoolPrecision Time Protocol (PTP) Client
Exception PathQuality of Service (QoS) Metering
Hello WorldQoS Scheduler
Internet Protocol (IP) FragmentationQuota and Watermark
IP PipelineRX/TX Callbacks
IP ReassemblyServer node EFD
IPsec Security GatewayBasic Forwarding/Skeleton App
IPv4 multicastTunnel End Point (TEP) termination
Kernel NIC InterfaceTimer
Network Layer 2 Forwarding + variantsVhost
Network Layer 3 Forwarding + variantsVhost Xen
Link Status InterruptVMDQ Forwarding
Load BalancerVMDQ and DCB Forwarding
Multi-processVM Power Management

这些示例从简单到复杂,但大多数都旨在演示 DPDK 的一个特定功能。下面将重点介绍一些更有趣的示例。

  • Hello World(Hello World):与大多数编程框架的介绍一样,一个好的开始是Hello World应用程序。Hello World 示例设置 DPDK 环境抽象层 (EAL),并打印一个简单的"Hello World"消息到每个启用 DPDK 的核心。此应用程序不执行任何数据包转发,但它是测试 DPDK 环境是否编译和正确设置的一个很好的方法。
  • 基本转发框架Basic Forwarding/Skeleton App):基本转发/骨架包含使用DPDK 启用基本数据包转发所需的最小代码量。这允许您测试网络接口是否使用 DPDK。
  • 二层转发Network Layer 2 Forwarding):网络第 2 层转发,或者应用程序确实基于以太网 MAC 地址进行转发,就像一个简单的交换机。l2fwd
  • 三层转发(Network Layer 3 Forwarding):网络第 3 层转发,或应用程序确实基于互联网协议、IPv4 或 IPv6 进行转发,就像一个简单的路由器。l3fwd
  • 数据包分发器(Packet Distributor):数据包分发器演示如何将到达 Rx 端口的数据包分发到不同的内核进行处理和传输。
  • 多进程应用程序(Multi-process Application):多进程应用程序显示两个 DPDK 进程如何使用队列和内存池来共享信息。
  • RX/TX回调应用程序(RX/TX Callbacks Application) :RX/TX回调示例应用程序是一个数据包转发应用程序,演示用户在接收和传输的数据包上使用用户定义的回调。应用程序通过向 RX 和 TX 数据包处理函数添加回调来计算 RX(数据包到达)和 TX(数据包传输)之间的数据包延迟。
  • IPSec 安全网关(IPsec Security Gateway):IPSec 安全网关应用程序是更接近真实示例的最小示例。这也是使用 DPDK Cryptodev 框架的应用程序的一个很好的示例。
  • 精度时间协议Precision Time Protocol (PTP) Client)客户端:PTP 客户端是实际应用程序的另一个最小实现。在这种情况下,应用程序是一个 PTP 客户端,它与 PTP 主时钟通信,使用 IEEE1588 协议在网络接口卡 (NIC) 上同步时间。
  • 服务质量调度程序QoS Scheduler) :QoS 调度程序应用程序演示使用 DPDK 提供 QoS 调度。

在后续文章中会学习文档中提供的多个应用示例。并且对示例应用程序都演示如何编译、配置和运行应用程序,以及解释代码的主要功能。


推荐阅读