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 ...
随机推荐
- Windows内核开发-5-(2)-内核模式调试
Windows内核开发-5-(2)-内核模式调试 普通用户模式的调试,采取的是给进程添加一个线程来挂起断点,作为一个调试器的线程在进程中使用.照这样来类推,对操作系统调试相当于添加一个进程来限制操作系 ...
- MIPS汇编学习
MIPS汇编学习 mips汇编不同于x86汇编,属于精简指令集,常见于路由器等一些嵌入式设备中. mips汇编没有对堆栈的直接操作,也就是没有push和pop指令,mips汇编中保留了32个通用寄存器 ...
- JVM 常用监控工具
概述 给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段. 这里说的数据包括但不限于异常堆栈.虚拟机运行日志.垃圾收集器日志.线程快照(threaddump/ja ...
- STM32启动代码分析及其汇编学习-ARM
STM32 启动代码 Author By YuCloud 边看启动文件边学汇编 汇编 see ARM: Assembler User Guide see: https://blog.csdn.net/ ...
- docker搭建clickhouse集群
//需要先搭建zookeeper集群.机器1: sudo docker run -d \ --name clickhouse --ulimit nofile=262144:262144 \ -p 81 ...
- 零基础学Java之Java学习笔记(四):运算符
算术运算符: 算术运算符是对数值类型的变量进行运算的,在 Java 程序中使用的非常多. 运算符 说明 例子 结果 + 加法-相加运算符两侧的值 9+9 18 - 减法-左操作数减去右操作数 10 ...
- DVWA靶场之SQL Injection通关
SQL注入,一个大概的手工流程: 判断是否有注入,什么类型 破解SQL语句中查询的字段数是多少 确定回显位置 破库 破表 破字段 获得内容 Low: <?php if( isset( $_REQ ...
- Apache/Nginx/IIS日志记录的各个字段内容与含义
一.Apache 1.1 Apache日志文件名称及路径介绍 当我们安装并启动Apache后,Apache会自动生成两个日志文件,这两个日志文件分别是访问日志access_log(在Windows上是 ...
- NOIP 模拟 $33\; \rm Connect$
题解 状压 \(\rm DP\). 从 \(1\) 到 \(n\) 一共只要一条路径,那么就是一条链,只要维护一个点集和当前链的末尾就行. 设 \(\rm dp_{i,j}\) 为 \(i\) 的点集 ...
- 题解 P3191 [HNOI2007]紧急疏散EVACUATE
题解 本篇题解做法为BFS+二分+最大流 二分需要撤离的时间,也就是答案(这算是一个比较套路的了) 重点在于建模(设时间为 \(tim\)): 我们将每个门拆点,拆成 \(tim\) 个,每个点向汇点 ...