DPDK
文章平均质量分 90
cling60
关注通信领域的开源软件、开源方案
展开
-
DPDK(一):DPDK安装
dpdk安装介绍原创 2017-09-05 21:01:27 · 5974 阅读 · 0 评论 -
DPDK(12):rte_mempool内存管理
转自:http://www.cnblogs.com/MerlinJ/p/4081986.html,作为记录参考DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,从rte_confi转载 2017-11-09 10:00:15 · 881 阅读 · 0 评论 -
DPDK(13):rte_malloc内存管理
转自:http://www.cnblogs.com/MerlinJ/p/4092432.html,用于个人记录学习rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。1 void *2 rte_malloc(const char *type, size_t size, unsigned align)3 {4 return rte_ma转载 2017-11-09 10:02:07 · 486 阅读 · 0 评论 -
DPDK(14):rte_mbuf
本文主要介绍rte_mbuf与rte_mempool数据结构之间的组织关系、以及网卡接收到的数据是如何存储在rte_mbuf中的。 一、rte_mbuf、rte_mempool及网卡收到的数据包在内存中的组织结构 调用rte_mempool_create()函数创建rte_mempool的时候,指定申请多少个rte_mbuff及每个rte_mbuf中elt_size的大小转载 2017-11-09 10:03:16 · 623 阅读 · 0 评论 -
DPDK(15):DPDK中断机制简析
转自:http://www.cnblogs.com/MerlinJ/p/4104039.html DPDK通过在线程中使用epoll模型,监听UIO设备的事件,来模拟操作系统的中断处理。 一、中断初始化在rte_eal_intr_init()函数中初始化中断。具体如下:1、首先初始化intr_sources链表。所有UIO设备的中断都挂在这个链表上,中断处理线程通过遍历这个链表转载 2017-11-09 10:48:58 · 1744 阅读 · 0 评论 -
DPDK(16):DPDK多核多线程机制简析
在看FSTACK的代码时发现FSTACK将一些查询配置的处理放到了转发线程上,显然这种方式会导致转发处理每个包都要多处理,建议是控制和转发分离,不过具体有多大影响还是需要测试,毕竟协议栈的处理流程很长,在流程中增加一个判断并没有那么大影响。在转发流程中处理了消息,不建议这么使用: } process_msg_ring(qconf->proc_id);转载 2017-11-09 11:15:16 · 2098 阅读 · 0 评论 -
DPDK(17):网卡多队列技术与RSS功能介绍、DPDK多队列
转自:http://blog.csdn.net/baidu_24553027/article/details/54927724多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。转载 2017-11-19 00:06:43 · 7408 阅读 · 1 评论 -
DPDK(18):内存屏障
转自:http://blog.csdn.net/world_hello_100/article/details/50131497Memory barrier 简介程序在运行时内存实际的访问顺序和程序代码编写的访问顺序不一定一致,这就是内存乱序访问。内存乱序访问行为出现的理由是为了提升程序运行时的性能。内存乱序访问主要发生在两个阶段:编译时,编译器优化导致内存乱序访问(指转载 2017-11-19 17:53:26 · 3539 阅读 · 0 评论 -
DPDK pdump抓包说明
转自:https://www.cnblogs.com/yhp-smarthome/p/7102557.html一.环境与编译pdump库是在16.07版本引入的,提供了一个抓包调试功能。在$(RTE_SDK)/app目录下就有一个dpdk-pdump的工具。配置这个这个工具可以用于抓取指定接口、队列的数据包。1.1 库及依赖Pdump依赖于libpcap库及libpcap-转载 2017-11-15 16:48:05 · 10264 阅读 · 0 评论 -
DPDK(11):内存初始化
写的很好的文章,我应该是不能写的比这个更加清晰了。需要指出的一点的时DPDK多进程通过将大叶内存映射到相同的虚拟地址,达到通过队列发送报文到另外进程只需发送指针即可,能够取到相同的内容。DPDK的内存管理是DPDK一个很重要的点,是DPDK的基础。转自:http://www.cnblogs.com/jiayy/p/3429725.html一 前言htt转载 2017-11-08 21:12:28 · 1240 阅读 · 0 评论 -
DPDK(10):报文处理中的指令预取(prefetcht0)
在DPDK的例子中报文处理时读取报文内容时添加了指令预取命令: /* * Read packet from RX queues */ for (i = 0; i n_rx_port; i++) { portid = qconf->rx_port_list[i]; nb_rx = rte_eth_rx_burst((uint8_t) portid, 0,原创 2017-11-08 17:04:15 · 9416 阅读 · 1 评论 -
DPDK(二):系统要求
dpdk运行系统要求原创 2017-09-06 09:42:02 · 1765 阅读 · 0 评论 -
DPDK(三):使用setup.sh脚本快速构建
使用快速构建脚本构建版本原创 2017-09-06 10:36:52 · 2066 阅读 · 0 评论 -
DPDK(四):GDB调试
gdb运行DPDK应用程序转载 2017-09-06 21:50:02 · 4958 阅读 · 0 评论 -
DPDK(五):发包工具------pktgen
测试DPDK不可或缺的一个发包工具,一般需要一台实体测试仪,家中环境简单,只能使用软发包工具了,找到一款叫做pktgen,其实也可以自己用pcap或者raw socket实现,看介绍使用pktgen性能很不错,也进行了绑核,不再造轮子了。原创 2017-09-09 15:47:47 · 7459 阅读 · 6 评论 -
DPDK(六):DPDK整体介绍
DPDK整体介绍原创 2017-09-06 20:50:24 · 9363 阅读 · 0 评论 -
DPDK(7):l2fwd测试过程
l2fwd测试过程原创 2017-09-09 21:26:37 · 6242 阅读 · 1 评论 -
DPDK(八):l2fwd代码分析
l2fwd代码分析原创 2017-09-10 10:06:37 · 4116 阅读 · 0 评论 -
DPDK(9):tcpdump出现本机地址替换为bogon
tcpdump抓包时IP地址莫名其妙变为bogon,应该是和DNS或者hostname有一定的关系,但是我的电脑hostname又没有修改,应该和我修改了虚拟机配置有关系。 找到一种办法是在tcpdump中加参数-nn,姑且解决一下问题。加参数前:root@ubuntu:/home/cling60# tcpdump -vv -i eth3 -c 10tcpdump原创 2017-11-08 09:35:21 · 1946 阅读 · 0 评论 -
DPDK(19):CENTOS 7.5编译DPDK
在网上看很多人在CENTOS上编译DPDK很顺利,而在FSTACK的群里面大部分人运维KNI和内核不配套编译失败:1、操作系统版本[root@localhost x86_64-native-linuxapp-gcc]# uname -aLinux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2...原创 2018-06-19 15:08:51 · 2842 阅读 · 0 评论