dpdk
文章平均质量分 74
老王不让用
芝兰生于幽谷,不以无人而不芳; 君子修身立德,不为穷困而改节
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
dpdk l3fwd/l2fwd实验
目录1 组网配置2 运行结果1 组网配置vmware启动上三个host:host1、host2、host3。host之间的网口通过虚拟交换机相连。在host2上跑dpdk-l3fwd打通host1和host3之间的连接,组网如下:host1-port0(ens38:192.168.56.167)<---->(port0) | | (host2_l3fwd) | |原创 2022-01-06 17:30:16 · 5020 阅读 · 8 评论 -
f-stack socket 编程实例(tcp)
环境需求:客户端和服务器均已编译安装f-stack,dpdk接管的网口网络通信OK。安装链接:https://github.com/F-Stack/f-stack 客户端绑定本地网口192.138.15.200,向服务器192.168.15.201建链 服务器192.168.15.201监听80号端口 客户端/服务器代码放在f-stack的example路径下编译执行客户端:/* * 通过 shell 执行 * ./tcp_client --conf /etc/f-stack.conf原创 2021-11-10 13:55:33 · 2610 阅读 · 0 评论 -
DPDK驱动UIO框架及网卡初始化分析
目录1 DPDK的可执行程序运行步骤1.1 分配大页内存1.2. 加载 igb_uio.ko / uio.ko1.3 绑定网卡1.4运行二层转发程序2 DPDK运行步骤与源代码执行关系2.1 内核启动初始化2.2 insmod igb_uio.ko 加载igb_uio驱动(含igb、ixgbe、e1000、vmxnet3等)2.3 Python脚本dpdk-devbind.py执行bind网卡2.4 运行实例程序(l2fwd)2.4.1 各网卡驱动注册到全局驱动.转载 2021-10-18 20:05:12 · 3874 阅读 · 0 评论 -
DPDK-20.11.1版本在Centos8上安装和测试
1 安装前提条件uname -a Kernel version >= 2.6.34ldd --version glibc >=2.7我在虚拟机安装的是centos8.3 版本,里面的glibc只到2.18,需要升级。“ 说明:这个条件有点不靠谱,特别是要求glibc>=2.7我用的8.3版本的centos安装的, centos默认的glibc版本是2.28,还是可以安装,害的我升级glibc把系统都搞挂了,重装的.2 编译安装DPDK2...转载 2021-10-18 11:03:29 · 4807 阅读 · 0 评论 -
dpdk pmd驱动初始化
前言 在没有引入pmd用户态网卡驱动之前, 网卡在收到报文后,网卡驱动会将报文从网卡缓冲区拷贝到内核, 接着内核在把报文拷贝到应用层,整个过程需要2次的拷贝以及系统调用。当应用层需要发送数据时,应用层将报文拷贝到内核,接着内核拷贝到网卡缓冲区,由网卡负责发送,整个过程也需要2次的拷贝以及系统调用。 不管接收还是发送报文,系统调用以及内存拷贝都是需要消耗性能的。在引入了pmd用户态...转载 2020-01-22 10:53:16 · 1752 阅读 · 0 评论 -
dpdk 应用层对网卡进行配置
dpdk用户态驱动初始化完成后,应用层就可以来对网卡进行设置操作。对于每一个网卡,应用层都需要调用相应接口进行配置。可以对网卡进行哪些设置操作呢? 例如应用层将对网卡进行配置下发,将配置信息下发给网卡;应用层对网卡接收队列进行设置;应用层对网卡发送队列进行设置;应用层启动网卡等操作。以l2fwd为例, 应用层调用rte_eth_dev_configure进行配置下发; 调用rte...转载 2020-01-21 15:20:58 · 4523 阅读 · 4 评论 -
dpdk uio驱动实现
目录1、dpdk uio驱动框架2、用户态驱动pmd轮询与uio中断的关系3、dpdk uio驱动的实现过程3.1、igb_uio驱动初始化3.2、驱动探测probe3.2.1 激活pci设备3.2.2 为pci设备预留内存与io空间3.2.3 为pci网卡设置dma模式3.2.4 将pci网卡的物理空间以及io空间暴露给uio设备3.2.5 设置uio...转载 2020-01-20 14:57:00 · 2613 阅读 · 1 评论 -
dpdk内存池管理单元mbuf
1、rte_mbuf、rte_mempool及网卡收到的数据包在内存中的组织结构 调用rte_mempool_create()函数创建rte_mempool的时候,指定申请多少个rte_mbuff及每个rte_mbuf中elt_size的大小。elt_size是为网卡接收的数据包预先分配的内存的大小,该内存块就是rte_mbuf->pkt.data的实际...转载 2020-01-19 13:58:35 · 1627 阅读 · 0 评论 -
dpdk内存池 mpool 实现机制
dpdk可以通过两种方式来管理内存, 一种是调用rte_malloc, 在大页内存上申请空间; 另一种是使用内存池,也是通过在大页内存上申请空间方式。 两种有什么区别呢?虽然两者最终都是在大页内存上获取空间,但内存池这种方式直接在大页内存上获取,绕开了rte_malloc调用。rte_malloc一般用于申请小的内存空间。通常在需要非常大的缓冲区时,在大页内存上一次性申请一个大的缓冲...转载 2020-01-19 13:33:56 · 3738 阅读 · 0 评论 -
dpdk大页内存实现
前言 所谓的dpdk大页内存的实现,说白了就是dpdk自己实现了一套大页内存的使用库,这个和libhugetlbfs.so是类似的,就是自己实现了大页内存的申请,释放操作, 替代了传统的malloc, free系统调用。先从整体上看下dpdk大页内存有哪些内容。 当应用层需要申请内存时,直接调用rte_malloc接口进...转载 2020-01-15 14:43:16 · 1517 阅读 · 0 评论 -
dpdk大页内存原理
前言 在分析dpdk大页内存的源码之前,有必要对linux内存管理的原理以及大页内存的原理有个了解,缺少这些底层基础知识,分析dpdk大页内存的源码将举步维艰。这篇文章详细介绍下linux内存管理以及大页内存的方方面面,为分析dpdk大页内存源码扫除障碍。目录1、linux内存管理原理1.1、mmu内存管理的引入1.2、页表的演化1.2.1、一级页表...转载 2020-01-15 14:06:32 · 2412 阅读 · 1 评论 -
dpdk:收发包全景分析
前言:DPDK收发包是基础核心模块,从网卡收到包到驱动把包拷贝到系统内存中,再到系统对这块数据包的内存管理,由于在处理过程中实现了零拷贝,数据包从接收到发送始终只有一份,对这个报文的管理在前面的mempool内存池中有过介绍。这篇主要介绍收发包的过程。 目录1、收发包分解2、收发包的配置和初始化...转载 2020-01-07 16:46:10 · 9239 阅读 · 0 评论
分享