DPDK应用示例指南简介(汇总)
DPDK应用示例指南简介

《DPDK示例》系列文章主要是学习、记录、翻译DPDK官方示例文档。为了更好地理解和学习DPDK, 特通过对源码中的经典示例进行整理,供大家学习、交流和讨论。
- Author : Toney
- Email : vip_13031075266@163.com
- Date : 2020.11.11
- Copyright : 未经同意不得转载!!!
- Version : dpdk-2.2.0
- Reference:
1. DPDK应用示例介绍
DPDK 示例应用程序是小型独立应用程序,它演示 了DPDK 的各种功能。这些示例可以被视为 DPDK 功能的说明书。有兴趣使用 DPDK 的用户可以获取应用程序,试用这些功能,然后扩展它们以满足其需求。
1.1 DPDK应用示例
下表中列出了在DPDK源码examples目录中一些主要的应用示例。
| Bonding | Netmap Compatibility |
|---|---|
| Command Line | Packet Ordering |
| Distributor | Performance Thread |
| Ethtool | Precision Time Protocol (PTP) Client |
| Exception Path | Quality of Service (QoS) Metering |
| Hello World | QoS Scheduler |
| Internet Protocol (IP) Fragmentation | Quota and Watermark |
| IP Pipeline | RX/TX Callbacks |
| IP Reassembly | Server node EFD |
| IPsec Security Gateway | Basic Forwarding/Skeleton App |
| IPv4 multicast | Tunnel End Point (TEP) termination |
| Kernel NIC Interface | Timer |
| Network Layer 2 Forwarding + variants | Vhost |
| Network Layer 3 Forwarding + variants | Vhost Xen |
| Link Status Interrupt | VMDQ Forwarding |
| Load Balancer | VMDQ and DCB Forwarding |
| Multi-process | VM 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 调度。
在后续文章中会学习文档中提供的多个应用示例。并且对示例应用程序都演示如何编译、配置和运行应用程序,以及解释代码的主要功能。
DPDK应用示例指南简介(汇总)的更多相关文章
- OSG中的示例程序简介
OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示 ...
- OSG中的示例程序简介(转)
OSG中的示例程序简介 1.example_osganimate一)演示了路径动画的使用 (AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera ...
- 第一个Mybatis程序示例 Mybatis简介(一)
在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...
- 计算机视觉--CV技术指南文章汇总
前言 本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...
- [dpdk] 读开发指南(2)(内容长期整理中)
接续前节. 7 PMD (Poll Mode Driver) A Poll Mode Driver (PMD) consists of APIs, provided through the BSD d ...
- [dpdk] 读开发指南(1)
该文档是随着对于文档的阅读进度,不断增加的阅读笔记.主要内容以大纲为主,以及记录帮助记忆的内容. 在之后的实际应用中,也不随着不断的深入理解,逐渐丰富各大纲下面的内容. 1. 前期准备:设置两个环境变 ...
- Java 设计模式 -- 示例指南
设计模式在软件开发者中非常受欢迎的.每个设计模式都是对常见软件问题的通用的描述解决方案. 我们使用设计模式的好处有: 1.设计模式已经对于一个重复出现的问题进行了定义并且提供了工业标准的解决方案,因为 ...
- Rest Framework简介 和 RESTful API 设计指南
使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...
- python_面向对象魔法方法指南
原文: http://www.rafekettler.com/magicmethods.html 原作者: Rafe Kettler 翻译: hit9 原版(英文版) Repo: https://gi ...
随机推荐
- 还有更惨的吗?字节面经,美团,网易,招银,360全部在HR前一面挂了
最近一朋友向我吐槽去年的秋招,字节面经,美团,网易,招银,360全部在HR前一面挂了,实在是有点惨.我把他语无伦次的话做了一个整理: 最近真的很暴躁,控制不住自己陷入情绪低落胡思乱想,每天都是在希望失 ...
- Python3实现Two-Pass算法检测区域连通性
技术背景 连通性检测是图论中常常遇到的一个问题,我们可以用五子棋的思路来理解这个问题五子棋中,横.竖.斜相邻的两个棋子,被认为是相连接的,而一样的道理,在一个二维的图中,只要在横.竖.斜三个方向中的一 ...
- STM32—TIMx输出PWM信号驱动MG996R舵机
文章目录 一.前言 二.MG996R舵机简介 三.TIM定时器简介 四.通用定时器TIMx 1.TIMx主要功能 2.TIMx框图 3.计数单元 4.时钟选择 5.输出比较PWM 五.TIM3输出双路 ...
- (一)Linux之目录结构
Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...
- javaWeb之Maven
为什么要学这个技术? 在JavaWeb开发中,需要使用大量的jar包 如何能够让一个工具自动帮我们导入和配置这个jar包 一.Maven项目架构管理工具 核心思想:约定大于配置 有约束,不要去违反 M ...
- NLP与深度学习(一)NLP任务流程
1. 自然语言处理简介 根据工业界的估计,仅有21% 的数据是以结构化的形式展现的[1].在日常生活中,大量的数据是以文本.语音的方式产生(例如短信.微博.录音.聊天记录等等),这种方式是高度无结构化 ...
- FPGA学习过程(一)
前言 终于有时间折腾这块fpga开发板了,不知不觉又熬夜了. 正文 实现一个呼吸灯的项目 打开quartus ii 建立工程 步骤就不讲了 新建一个pwm.v文件内容 module PWM ( inp ...
- Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)
请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...
- 什么是.NET CLI CLR IL JIT GC,它们是如何工作的
参考网址: https://cloud.tencent.com/developer/article/1432891 1:什么是.NET? NET 是 Microsoft 的用以创建 XML Web 服 ...
- dataTemplate 之 ContentTemplate 的使用
<Window x:Class="WpfApplication1.Window38" xmlns="http://schemas.microsoft.com/win ...