第一部分 硬件识别包类型 网卡,是可以识别包类型的。在dpdk的API中。识别完之后,存在这个结构里: 这非常厉害,利用硬件能力;但是遗憾的是,有一些硬件并不能这么干,因为他们比较low,然后我们就需要软件实现。参考例子l3fwd,加一个回调替代硬件功能,提高兼容性: 所以,在实现这个函数之前,必须 ...
分类:
其他好文 时间:
2017-03-24 17:48:20
阅读次数:
1499
Linux环境下DPDK入门 Release 17.02.0 目录 Linux环境下DPDK入门... 1 1 引言... 2 2 资料集... 2 3 系统需求... 2 3.1 x86平台的先决条件BIOS设置... 2 3.2 编译DPDK. 3 3.3 运行DPDK程序... 3 4 编译D ...
分类:
其他好文 时间:
2017-03-20 19:02:10
阅读次数:
16593
在dpdk中,由于封装了原子量的操作。如 typedefstruct{ volatileint32_t cnt;/**< An internal counter value. */ }rte_atomic32_t; 但是很多人在使用的时候,经常如下使用 rte_atomic32_t pkt_coun ...
分类:
编程语言 时间:
2017-03-01 21:06:43
阅读次数:
602
概念:librte_malloc库提供了一套用于管理内存空间的API接口,它管理的内存是hugepages上创建出来的memzone,而不是系统的堆空间。通过这套接口,可以提高系统访问内存的命中率,防...
分类:
Windows程序 时间:
2017-02-12 21:30:04
阅读次数:
1724
前言: dpdk-16.07.2 与 内核Linux-3.10.0-514.6.1.el7.x86_64 编译的时候有个关于kni的错误 已知: 1. 学会了编译。 2. config已完成 配置: 修改文件 /root/src/thirdparty/dpdk/dpdk-stable-16.07.2 ...
分类:
其他好文 时间:
2017-02-08 13:15:16
阅读次数:
4109
0. 前提: 环境是CentOS7,archlinux编译有问题,不知道却什么。 1. 解压: [root@dpdk dpdk]# tar Jxf dpdk-2.2.0.tar.xz 2. 设置环境变量 [root@dpdk dpdk-2.2.0]# export RTE_SDK=/root/src ...
分类:
其他好文 时间:
2017-02-07 12:29:25
阅读次数:
170
1、前言 记得刚开始工作的时,老大将我安排到数据面组,当时第一次听说”数据面“这个概念,感觉挺新鲜的。误打误撞就开始搞了,刚开始接触的时候,由于不懂其中的原理,觉得很神奇,因为报文的转发是在应用层,通过一个进程进行转发。而传统的报文转发是基于内核的,要想控制报文,需要写驱动程序。后面接触了一段时间, ...
分类:
其他好文 时间:
2016-12-10 19:32:08
阅读次数:
205
接续前节:[dpdk] 熟悉SDK与初步使用 (一)(qemu搭建实验环境) 程序逻辑: 运行参数: 关键API: 入口函数: int rte_eal_init(int argc, char **argv) 内存池函数: rte_pktmbuf_pool_create。 它是函数 rte_mempo ...
分类:
其他好文 时间:
2016-12-08 21:25:24
阅读次数:
453
对例子IP Fragmentation的熟悉,使用,以及源码分析。 问题一: main()函数大概是这样的:标红的三行将与下面叙述的事情相关 其中,函数 rte_eal_wait_lcore 的实现如下: 阅读红色部分,可以很明显的发现,这是一个死循环啊!!! 从字面意义上来看,main函数在完成了 ...
分类:
其他好文 时间:
2016-12-08 21:15:58
阅读次数:
512
搭建实验环境: troubleshoot 第一步加载驱动 第二步切换驱动 使用了所有qemu支持的卡 只有virtio是对队列的 xxx qemu的所有nic都可以使用uio ...
分类:
其他好文 时间:
2016-12-08 20:48:35
阅读次数:
640