DPDK发包流程

2019/08/13
今天在看libnet的发包过程的时候,才发现他的内容是多么复杂,我的理解是,这种通用库,他们的设计相对来说都是很抽象的,要尽可能复用代码,我现在也没怎么看,这就算了。
但是引发我的思考的是,如果是我利用DPDK进行发包的话,这个包从什么地方来,你要考虑的事情要复杂的多,原来的时候都是直接使用libnet进行发包,他底层的很多东西都是我现在没有理解的。


所以针对这个问题来说,我需要考虑几个方面:

  1. 数据包的构造,DPDK官方是不是有相关的函数
  2. 如果上一个问题的答案是没有,那么是不是可以利用libnet构造的包,其实就是将这部分包给提取出来
  3. 从DPDK收包的过程可以看出,他可以一次取出多个数据包,那么我发送的时候是不是也可以发送多个数据包,但是从我现在的流程来看,怎么实现的这个多个数据包发送问题,内核协调这部分内容就是利用中断,利用队列,然后集中发送把,当然最底层部分的细节我也不是非常了解。
  4. 是不是那种关于协议栈的设计就已经将构造包的过程给涵盖住了
  5. OVS-DPDK这种是怎么设计的

关于第三个问题,因为没用过DPDK发包,我觉得应该是要把整个SK_BUF的结构给填充完好,也就是说, 我收的时候就是收多个数据包,那么我是不是可以同时处理多个数据包,然后先存上,再一起发送。

你可能感兴趣的:(DPDK发包流程)