(1) DPDK 简介

news/2024/4/15 6:56:21

1、DPDK 是什么?

DPDK全称 Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持。通俗地说,就是一个用来进行 包数据处理加速的软件库

当然现在,也不光只用Intel的处理器支持,还有其它的处理器也慢慢支持DPDK,比如NXP LS系列的众多平台,LS1012A, LS1028A, LS1043A, LS1046A, LS1088A, LS2088A, and LX2160 family of SoCs 等在 DPDK中都已经支持。

换句话说,DPDK 是一个跑在用户空间的,数据包处理加速软件库

DPDK 专注于网络应用中数据包的高性能处理绕过了Linux内核协议栈对数据包处理过程 ,在用户空间上利用自身提供的数据平面库来收发数据包。可以大幅提升IPV4的转发性能。

2、DPDK 解决什么问题的?如何解决?

高速高性能的网络数据包处理。可达到千兆、万兆的速度。

要实现高速、高性能的需求,就要想尽一切办法,降低延迟。

考虑到 linux内核中网络协议栈可能引起的延迟:

  • 不必要的内存拷贝和系统调用
  • 高速网络数据处理时的内存 cache miss 
  • 多核cpu任务切换带来的cpu cache miss
  • 中断上下文切换带来的开销 

基于上述的问题,DPDK均有对应的解决方案。

(1) 为了减少不必要的内存拷贝和系统调用,DPDK中采用 UIO技术,直接将报文拷贝到用户空间处理,避免了很多不必要的内存拷贝和系统调用。

(2) 内存的cache miss 问题,可以通过 大页内存 HUGEPAGE 来解决 ,降低cache miss(访存开销),利用内存多通道交错访问提高内存访问有效带宽,即提高命中率,进而提高cpu访问速度。

(3) 通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换。特定任务可以被指定只在某个核上工作,避免线程在不同核间频繁切换,保证更多的cache命中。

(4) 通过无锁队列,减少资源竞争。cache行对齐,预取数据,多元数据批量操作。

(5) 通过轮询可在包处理时避免中断上下文切换的开销

3、DPDK 对 NXP LS 系列CPU支持的框架

PMD:Pool Mode Driver,轮询模式驱动,通过非中断,以及数据帧进出应用缓冲区内存的零拷贝机制,提高发送/接受数据帧的效率。

EAL:Environment Abstract Layer,环境抽象(适配)层,PMD初始化、CPU内核和DPDK线程配置/绑定、设置HugePage大页内存等系统初始化。

4、DPDK build  and  binary 

DPDK 官方文档:http://doc.dpdk.org/guides-17.05/index.html

DPDK源码(NXP提供):

git clone https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk -b github.qoriq-os/
integration

先介绍下 编译DPDK出来的 binary 文件

关于如何 build DPDK 可以参考 LSDKUG_Rev19.09.pdf 第9章节。


http://www.ppmy.cn/news/219529.html

相关文章

DPU网络开发SDK—DPDK(八)

rte_eal_init() 接上次内容继续对rte_eal_init()所做的工作进行分析。 25. 内存堆初始化 调用rte_eal_malloc_heap_init()进行初始化。 如果进程类型是primary的,需要额外先做如下工作:初始化mem_config.malloc_heaps数组,初始化元素的数…

DPDK and XDP and ebpf

另外除了以下文章还有个ebpf https://qiita.com/sg-matsumoto/items/8194320db32d4d8f7a16 图片上传有问题,原文参考 https://cloud.tencent.com/developer/article/1484793 xdp其他文章 https://blog.cloudflare.com/l4drop-xdp-ebpf-based-ddos-mitigations/…

DPDK——概述

一、使用传统协议栈的问题 https://blog.csdn.net/u011426247/article/details/113374288 传统的协议栈结构如下: 其存在的不足如下: 异步模式的弊端 在没有请求到来的时候,线程将会休眠,当数据到来时,将由操作系统…

DPDK简介之二

前沿 DPDK是专为快速收发包所开发的一系列的库文件和驱动代码。可以在Intel的芯片上运行。可以用来在极短的时间里面完成收发包(一般低于80个周期)。可以运行第三方的快速路径栈而DPDK最大的优点就是改进小封包吞吐量与作业负荷效能,传统的网…

DPDK Mempool

mempool是DPDK提供的内存池,其用处有: 由于DPDK使用UIO让DMA将网卡中的数据直接拷贝至用户态,因此需要一块固定的区域提供给DMA重复利用内存,提高效率 结构 mempool的主要结构如下图所示。 mempool为每个注册的lcore都分配了一…

D8PSK

我所调试的部分是一个D8PSK的收发系统。按理说,D8PSK在本科通信原理学习中也是一个可以说是最简单的系统了,可是实现起来并没有那么简单。当然当时学通信原理时就知道事情没有那么简单,但是却不知道怎样开始做一个系统,现在算是补…

DPDK

摘要 http://www.dpdk.org/ Intel开源的x86平台上的报文处理套件。 要求 Kernel > 2.6.33 glibc > 2.7 Kernel需要支持UIO、HUGETLBFS、PROC_PAGE_MONITOR 如果使用HPET支持, Kernel需要支持HPET和HPET_MMAP 如果使用HPET timer和电源管理(power management)功能,…

DPDK AF_XDP

DPDK AF_XDP AF_XDP 是 kernel v4.18 新加入的一个协议族(如AF_INET), 主要使用 XDP 实现(下图是 XDP 的基本原理图). 核心原理是在 kernel NAPI poll 位置(网卡驱动内部实现, 为内核最早RX数据包位置)运行 BPF 程序, 通过不断调用 poll 方法, 最终将数据包送到正确的XDP程序处…

DPDK技术介绍(一)

DPDK是INTEL公司开发的一款高性能的网络驱动组件,旨在为数据面应用程序提供一个简单方便的,完整的,快速的数据包处理解决方案,主要技术有用户态、轮询取代中断、零拷贝、网卡RSS、访存DirectIO等。 一、主要特点 1、UIO&#xf…

Mocha AE:工具栏

Mocha AE 工具栏(经典模式)中的工具及视图选项。 保存 Save the project 保存项目 快捷键:Ctrl S 选取类工具 Pick Tool 选取工具 --Marquee Selection 矩形框选 --Lasso Selection 套索选取 Move inner and edge points 移动内部点和边缘…

i5 11400f配什么主板

i5 11400f是6核12线程,基准频率仅为2.6GHz,最高睿频单核4.4GHz、全核4.2GHz,TDP 65W,后缀不带“K”所以不能超频 i5 11400f组装电脑怎么搭配更合适这些点很重要看过你就懂了http://www.adiannao.cn/du i5 11400f可以搭配b560主板…

DIY 主机 所有AMD IntelCPU及主板

DIY 主机 所有AMD IntelCPU及主板 查看intel的cpu及amd的cpu或者对应的主板可以查看这个项目。diy-pc

华擎H97 Performance 1150主板板载千兆网卡手动从百兆切换千兆设置

1.首先先确认台式机连接的网线是不是超六类线; 2.再确认网线连接的路由器或者光猫LAN口是不是千兆网口; 3.最后确认下网络适配器里面的网卡状态中连接速度当前是不是100Mbps; 那么恭喜你,进入正题: 第一步&#xf…

i510600k配什么主板

英特尔酷睿i5-10600K是一款中端处理器,适用于具有六个基于Comet Lake架构(CML-S,第四代Skylake)的六核的桌面处理器。 处理器的频率在4.1至4.8 GHz之间,并且借助超线程技术可以同时执行多达十二个线程。 i510600k配什么…

B150主板安装win10

http://mscfh.blog.163.com/blog/static/225549049201392275632638/

FPGA PAL视频BT656解码Video Processing Subsystem去隔行工程源码 TW2867采集4路视频拼接输出 提供技术支持

目录 1、前言2、我这里已有的PAL视频解码方案3、模拟视频概述4、模拟视频颜色空间5、逐行与隔行6、BT656数据与解码BT656数据格式BT656数据解码 7、TW2867芯片解读与配置TW2867芯片解读TW2867芯片配置TW2867时序分析 8、设计思路与框架9、vivado工程详解Block Design设计SDK设计…

JSP+SQL网上书店售书系统(源代码+论文+答辩PPT)

二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。当钱天白教授于1986年9月14日在北京计算机应用技术研究所内向德国卡尔斯鲁厄大学发出第一封电子邮件“穿越长城,走向世界”的时候,他也许不知道自己推开了中国信息时代的大门;1994年4月20日,中国科学院计…

ISO21434 组织网络安全管理(二)

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全治理 4.2 网络安全文化 4.3 信息共享 4.4 管理系统 4.5 工具管理 4.6 信息安全管理 4.7 组织网络安全审计 五、输出 一、概述 为了实现网络安全工程,该…

专家PID控制轨迹跟踪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

GD32F4xx DMA 串口发送BUG

每次发送前必须清除 full transfer 标志位: dma_flag_clear(DMA1, DMA_CH7, DMA_INT_FLAG_FTF); 或者 dma_interrupt_flag_clear(DMA1, DMA_CH7, DMA_INT_FLAG_FTF); 否则只会执行发送,但实际串口未不发送。
最新文章