摘要: 前言:在调试DPDK时,在发送完一定数量的包后,通过内存统计rte_mempool_count()计算出的值,也就是mempool中剩余的mbuf的数量并没有回升,那么就有一个问题,从mempool中分配的mbuf什么时候才被还回给mempool?没还的部分都在哪? I. 先回答第二个问题,对于多核 阅读全文
posted @ 2017-05-26 23:00 AISEED 阅读(4444) 评论(0) 推荐(0) 编辑
摘要: 前言:网桥设备作为一个虚拟设备,用于连接多个端口,可以构建一个局域网。与之相似的是vlan设备,在linux中,vlan设备是为了处理802.1q的添加和去除TAG的问题,这和传统交换机中vlan的功能—划分局域网,不太一样,在这里仅仅是处理了消息头,只是实现了隔离功能,并未实现交换功能,如果需要v 阅读全文
posted @ 2017-05-26 22:57 AISEED 阅读(4610) 评论(1) 推荐(0) 编辑
摘要: DPDK KNI接口的说明 前言:在DPDK报文处理中,有些报文需要发送到内核协议栈进行处理,如GTP C控制报文,如果报文数量较少,可以使用内核提供的TAP/TUN设备,但是鉴于这种设备使用的系统调用的方式,还涉及到 和`copy_from_user()`的开销,因此,提供了KNI接口用于改善用户 阅读全文
posted @ 2017-05-26 22:47 AISEED 阅读(8990) 评论(0) 推荐(0) 编辑
摘要: 1.ring提供的接口 对于一个模块而言,其对外提供的接口直接表明了它所提供的功能,也是我们分析一个模块最初的入口。ring是一个环形无锁队列,支持多生产者多消费者操作,所以对于队列的操作构成了模块的主要接口。ring的实现在文件 和`rte_ring.h`中。 以上的几个大的接口提供了ring的开 阅读全文
posted @ 2017-05-26 22:45 AISEED 阅读(7447) 评论(0) 推荐(1) 编辑
摘要: 1.初始化EAL环境, ; 2.解析参数,因为DPDK的参数在EAL初始化时就进行了解析,所以,这里主要解析的是我们自己的参数,可以使用 函数。 3.初始化内存池等,这里要注意放在接口的初始化之前,为接收数据包做准备。 4.初始化接口。这里具体说一下,在初始化接口时,主要有三部分工作: 1. 首先配 阅读全文
posted @ 2017-05-26 22:43 AISEED 阅读(2421) 评论(0) 推荐(0) 编辑
摘要: 前言 对于一个德国士兵而言,从1944年开始,最大的梦魇可能就是当后卫队,且战且退,阻击战,这次是保卫德国。这是一种更大的煎熬,因为人往往很难在强弩之末时保持意志,更确切的说,是元首的意志。 1. 从骑士铁十字勋章到木制十字架 这是第十三章的标题,从十三来说,这一章肯定有作者最不能接受的事情。他们的 阅读全文
posted @ 2017-05-26 22:40 AISEED 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 前言: 对于苏联,我相信更多的人已经没有了印象,甚至对于苏联的轰然离去都不甚知之。通过越来越多的书和电影,逐渐了解到那时的纷繁复杂而又独特的社会景象,深深地被那个红色帝国所吸引。然而,更多的是对彼时的想象!过往如烟,从印象开始。 1.苏联的秩序 不得不说,提到苏联的社会秩序,首先让人想起的就是克格勃 阅读全文
posted @ 2017-05-26 22:33 AISEED 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 前言:IP的分片和重组是一种很影响效率的无奈之举,应该尽量避免形成分片包。在TCP中,已经自己限定了MSS,默认是536字节,不会形成IP分片。所以值得注意的就是UDP包和ICMP,他们并未对此作出限定,因此,在发送数据包时需要注意包的大小。在这篇中,我们主要分析在DPDK中,是怎么设计分片和重组的 阅读全文
posted @ 2017-05-26 22:30 AISEED 阅读(2264) 评论(0) 推荐(0) 编辑
摘要: linux网络栈本已有无数的文档在飞,对于开发者而言,有兴趣的一直有兴趣,而没兴趣的,对于动辄数十篇的分析文档,恐怕也不是一时半会儿就能消化的了的。对于linux网络栈,我一直怀有敬畏之心,毕竟无论是从架构上说,还是包罗万象的协议,设备上说,linux协议栈都是一个巧夺天工的设计。但终于,尽管前辈的 阅读全文
posted @ 2017-05-26 22:12 AISEED 阅读(643) 评论(0) 推荐(0) 编辑