
dpdk
文章平均质量分 54
bestboyxie
谢正明
一名喜欢写代码的程序员
bestboyxie@qq.com
展开
-
DPDK中文-EAL层
多进程模型linux app EAL允许 多进程与多线程开发模型一样;可以查看2.20章 Muti-prcess Support查看更多细节;内存映射发现和内存预留分配大量且连续的内存永固哦是用hugetlbfs 内核文件系统。EAL提供了API去预留命名的内存区域在这个连续内存中。 意思应该是这块内存可以命名;通过名字分配的意思;支持Xen Dom0技术,不使用huget翻译 2016-09-08 23:38:03 · 3535 阅读 · 0 评论 -
DPDK中文-DPDK的reorder
dpdk reorder库是dpdk设计用来保证报文不乱序的;可能就是传说中的包保顺序代码在lib/librte_reorder目录下放进recorder bufer的报文会根据报文的sequence number来重新排序常用在报文发送前的缓存;就是用来存放rte_mbuf的示例代码在examples\packet_ordering主要API1原创 2016-11-30 23:02:50 · 1822 阅读 · 1 评论 -
DPDK中文-DPDK的ring
DPDK的ring是一个线程安全的队列支持单生产者单消费模型 同时也支持多生产者多消费者模型一、单生产者单消费者模型二、多生产者对消费者模型多生产者多消费者应该至少是由原子变量或者锁来完成的,而单生产者单消费者则可以做到完全无锁,效率感觉单生产者单消费应该是最高的;不然这个单生产者单消费者就没有存在的必要了;、效率:单生产者单消费者最高本文章的内原创 2016-11-30 22:24:19 · 9015 阅读 · 0 评论 -
DPDK中文-DPDK调试信息
DPDK调试信息分成两种一种是DPDK的log输出,RTE_PMD_DEBUG_TRACE 类似于这种通过修改build目录下的.config文件,以获得支持另外一种就是支持编译的时候带debug信息这种其实很简单使用find+sed就可以搞定了find . -name Makefile |xargs sed -i "s/-O3/-O0 -g/g"原创 2016-12-08 10:09:14 · 7247 阅读 · 2 评论 -
DPDK中文-DPDK工具
dpdk在app目录下其实提供给我们去查询dpdk信息的工具翻译自http://dpdk.org/doc/guides/tools/index.html主要工具有以下几个dpdk-procinfodpdk-procinfo是DPDK提供给我们的应用程序,这个程序以dpdk secondary的进程模型运行;用于输出端口的统计。重置端口统计和打印DPDK内存信息。dp原创 2017-02-28 22:49:37 · 1981 阅读 · 1 评论 -
DPDK中文-DPDK工具(procinfo)
源文章http://dpdk.org/doc/guides/tools/proc_info.htmldpdk-procinfodpdk-procinfo是DPDK开发套件里面的一个工具,运行方式是DPDK的secondary 进程方式运行,它能够取回port的统计信息,重置port的统计信息,并且打印DPDK的内存信息,踏实原来dump_cfg功能的一个扩展;1.1运行app程序原创 2017-02-28 22:57:24 · 3609 阅读 · 1 评论 -
DPDK中文-DPDK工具(pdump)
翻译自:http://dpdk.org/doc/guides/tools/pdump.htmlpdump故名思意:就是packet dump的意思。是DPDK提供给我们意secondary方式运行程序捕获dpdkport报文的app;一句话就是dpdk抓包的工具;注意:pdump只能是主dpdk程序准备OK了;pdump依赖基于PMD的libpcap。这个选项默原创 2017-02-28 23:21:25 · 9100 阅读 · 0 评论 -
DPDK中文-DPDK工具(pmdinfo)
英文原文:http://dpdk.org/doc/guides/tools/pmdinfo.htmlpmdinfo可以dump出PMD设备的支持信息;我猜应该是例如网卡队列数,以及帮忙校验checksum等等信息的把;运行这个程序dpdk-pmdinfo [-hrtp] [-d -h, --help Show a short help message and exit-原创 2017-02-28 23:29:12 · 1868 阅读 · 0 评论 -
DPDK中文-intel网卡的RSS
在搞DPDK的时候有个RSS设置,RSS(Receive-Side Scaling)网卡硬件实现的分队列的算法:报文进入网卡后通过rss hash算法,算出一个32bit的数,LS的意思:参考 https://zhidao.baidu.com/question/155072477.htmlLSB(Least Significant Bit),意为最低有效原创 2017-03-21 18:45:01 · 8998 阅读 · 2 评论 -
修改vmware网卡的类型
修改vmware的网卡类型http://blog.youkuaiyun.com/wang_xya/article/details/20131577参见VMware Guest Operating System Installation Guide中的内容可知: vmware workstation的默认网卡是AMD PCNet AM79C970A,可以改变网卡配置,虚拟出Intel(R) PR转载 2017-03-16 10:55:30 · 4604 阅读 · 0 评论 -
DPDK中文-l3fwd-power
l3fwd-power普通的DPDK是采用的PMD模式,也就是轮询模式,这种模式下无论是否有报文处理,都是采用的轮询也就是CPU占用率100%;L3FWD-power就是为了解决这个问题,当CPU根本就不需要处理报文的时候进入省电模式也就是中断模式;使用者可以根据自己的策略来决定于什么时候用轮询什么时候用中断模式;这种模式叫做DPDK的混合中断轮询机制,是基于UIO原创 2017-03-27 14:28:28 · 4955 阅读 · 0 评论 -
DPDK中文-mTCP编译
下载mTCP源码https://github.com/eunyoung14/mtcp解压unzip mtcp-master.zip (git clone 跳过这个阶段)安装libnuma库支持。mtcp需要依赖这个。ftp://oss.sgi.com/www/projects/libnuma/download编译安装(中间可能有些依赖自行解决问题)然后进入mtc原创 2016-10-09 13:40:18 · 5621 阅读 · 9 评论 -
DPDK中文-insmod ERROR
在搞DPDK 的时候在fedora环境下遇到了如下提醒insmod: ERROR: could not insert module ./build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.ko: Permission denied我做了如下操作1.检查自己是不是root权限。。我的回答是YES2.检查编译使用的kernel版本原创 2017-04-15 10:17:52 · 2818 阅读 · 0 评论 -
DPDK中文-dpdk指定kernel版本
编译DPDK的时候可以不用使用系统环境的编译export RTE_KERNELDIR=$PWD这个$PWD是kernel编译的目录。我是进入kernel目录里面搞定的这个问题。。。原创 2017-05-03 15:32:08 · 3477 阅读 · 0 评论 -
source insight遇到__attribute__解析不到函数
bestboyxie 励志做一名能帮助到他人的程序员,如果你觉得这篇文章对你有帮助,麻烦你点赞最近分析DPDK代码的时候遇到 __attribute__这种东西。就无法解析对应的函数,跳转苦不堪言:如果你遇到这个问题,然后有幸,看到了我的文章。告诉你有幸啦打开 source insight 安装目录C:\Program Files (x86)\Sou原创 2016-11-30 23:34:14 · 7555 阅读 · 3 评论 -
DPDK中文-查看dpdk是否支持该网卡
Cause:No Ethernet ports - bye在群里回答大家的问题的时候经常会出现运行L2FWD失败的情况其实主要怀疑点:1。是否把网卡绑定成功了?2。运行L2FWD是否带了-p参数。。3。网卡知否支持DPDK绑卡绑定情况可以使用dpdk_nic_bind.py --status来查询运行参数可以参考sample_app_ug原创 2016-12-01 16:27:50 · 12090 阅读 · 4 评论 -
dpdk中文-dpdk简单介绍
bestboyxie话说DPDK~~其实dpdk中文文档太少了,好多大神都不愿意分享,所以我如果不写对不起谢大神名号啦~~DPDK = Data Plane Development Kit 数据平面开发套件,说白了就是做数据通讯的SDK。以前传统的数据平面实现主要是以一下几种形态出现;1、早期linux内核转发;使用linux内核协议栈实现二三层转发。使用netfite原创 2016-08-27 23:35:04 · 10410 阅读 · 9 评论 -
dpdk中文-DPDK学习路线图
接触DPDK也有快一年的时间了;因为项目中需要使用,所以一直在操练;讲说说一般DPDK的学习路线图;因为DPDK至今也没有一本靠谱的教程,所以决定亲自下手;上图我会持续更新,将总结的一些细节放在上面https://www.processon.com/view/link/57c1ba15e4b00cf02335a2b4其实学完前面4个部分呢,基本上就算是入门DPD原创 2016-08-28 00:05:40 · 13106 阅读 · 3 评论 -
dpdk中文-dpdk快速开始
快速开始 使用libpcap来测试,所有网卡兼容,但是性能不是那么好咯。1.解压源代码tar xf dpdk.tar.gzcd dpdk2.允许pcap 在编译前记得安装libpcap(fedora 安装: dnf install libpcap-devel)make config T=x86_64-native-linuxapp-gccsed -ri 's,(PMD_PCAP=)翻译 2016-09-01 22:28:20 · 3332 阅读 · 1 评论 -
dpdk支持的网卡
http://www.dpdk.org/doc/nics从这个网址上可以查询到dpdk如今支持的网卡前面的intel amzone一类的都是物理网卡没啥好讲的,主要说一下Paravirtualizationvirtio-net (QEMU)xenvirt (Xen)vmxnet3 usermap or vmxnet3 + uio (VMware ESXi)mem原创 2016-08-25 22:07:02 · 13186 阅读 · 0 评论 -
dpdk中文-mtcp如何使用自己的DPDK
应用mtcp的时候有可能dpdk的代码是自己的。而不是想用它带的16.04,这个时候就需要知道mtcp针对于dpdk做了哪些修改:通过对比dpdk的代码,做的修改并不多,两个mk文件,和一个代码文件两个makefile:rte.app.mk rte.cpuflags.mk1。是把dpdk的编译的cpu信息传到include中的cflags.txt里面便于MTCP编译使用;原创 2016-10-09 13:49:22 · 3978 阅读 · 3 评论 -
dpdk中文-编译笔记
1.下载代码从dpdk的官方网站下载dpdk的源代码一般下载最新源代码就OK了,现在最新的dpdk的源代码更新的dpdk 16.07 如今dpdk的命明规范是用的年加月份,更加容易识别了官网:http://dpdk.org/下载:http://dpdk.org/download就拿dpdk16.07 来说明dpdk的编译过程原创 2016-08-25 22:09:58 · 4957 阅读 · 0 评论 -
dpdk中文-从helloworld看dpdk
讲解DPDK-helloworld之前不得不说的DPDK官方文档,其实看官方文档+example其实很容易学会dpdk的功能+代码;http://fast.dpdk.org/doc/pdf-guides/查看文档sample_app_ug-16.07.pdf就可以找到DPDK helloworld的启动方法从DPDK的hello-world中我们学到原创 2016-09-28 23:11:35 · 8398 阅读 · 0 评论 -
dpdk中文-dpdk虚拟机出错
EAL: Error reading from file descriptor 23: Input/output error原创 2016-09-28 22:35:46 · 4913 阅读 · 0 评论 -
DPDK中文-dpdk亚洲开发者大会
唯一的DPDK中文视频资料~视频连接:https://www.youtube.com/watch?v=SwXd8W3fdFA&list=PLo97Rhbj4ceKxk_20x24yRsrx-a6yU4Qk文档介绍:http://mp.weixin.qq.com/s?__biz=MzI3NDA4ODY4MA==&mid=2653334090&idx=1&sn=da5d98e91f30原创 2016-09-30 13:59:33 · 1468 阅读 · 0 评论 -
dpdk打印编译参数
今天遇到一个怪问题,我把dpdk所有的.o都打包成libdpdk.a 然后连接这个.a但是不知道什么原因,就是获取网卡信息的时候出错了,不知道什么原因。然后修改了dpdk的 makefile 文件 让dpdk的打印信息可以输出出来打印编译信息修改如下现在暂时不清楚啥子原因,后面有时间需要分析具体修改的情况原创 2016-08-25 22:12:32 · 2195 阅读 · 0 评论 -
dpdk中文-mbuf的基本操作
mbuf是报文中的描素的结构体,是整个转发过程中最核心的数据结构之一。主要针对于mbuf的常用API与基本原理做一个简单的介绍:首先我们看一下rte_mbuf的数据结构的定义:先主要说明几个跟数据有关的变量struct rte_mbuf {。。。。void *buf_addr; /**。。。。uint16_t data_off;。。。。原创 2016-10-31 17:47:55 · 12819 阅读 · 5 评论 -
dpdk中文-使用虚拟机调试dpdk准备工作
虚拟机调试DPDK原创 2016-09-07 22:55:20 · 2716 阅读 · 3 评论 -
DPDK入门-DPDK绑定cpu失败
EAL eal_thread_init_master() call eal_thread_set_affinity() fail!原创 2016-11-11 18:02:57 · 2174 阅读 · 0 评论 -
dpdk中文-使用openwrt-SDK编译DPDK
openwrt一直是我关注的项目,而DPDK是我工作必须的技能,所以把dpdk与openwrt想结合是我的一个想法。于是乎我这样干了。。为了减少版本带来的问题,openwrt我选择的是比较新的版本15.05,这个版本是支持glibc的至于如何编译openwrt以及生成带SDK,这个比较容易。就不详细讲解了。。必须准备的条件1.openwrt需要选glibc而不是ug原创 2017-05-03 15:54:22 · 6196 阅读 · 6 评论