DPDK KNI 接口1

Posted mysky007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DPDK KNI 接口1相关的知识,希望对你有一定的参考价值。

参考文献:

  DPDK官网

........................................................................................................................................一. DPDK KNI 作用

DPDK Kernel NIC Interface(KNI)允许用户空间应用程序访问Linux *控制面。

使用DPDK KNI的好处是:

  • 比现有的Linux TUN / TAP接口更快(通过消除系统调用和copy_to_user()/copy_from_user()操作)。
  • 允许使用标准Linux网络工具(如ethtool,ifconfig和tcpdump)管理DPDK端口。
  • 允许与内核网络堆栈的接口。

使用DPDK内核NIC接口的应用程序的组件如图所示。

技术图片

 

 

KNI内核可加载模块支持两种类型的设备:

  • 其他设备:
    • 创建网络设备(通过ioctl调用)。
    • 维护所有KNI实例共享的内核线程上下文(模拟网络驱动程序的RX端)。
    • 对于单内核线程模式,维护所有KNI实例共享的内核线程上下文(模拟网络驱动程序的RX端)。
    • 对于多个内核线程模式,为每个KNI实例(模拟新驱动程序的RX侧)维护一个内核线程上下文。

网络设备:

    • 通过实现由struct net_device定义的诸如netdev_ops,header_ops,ethtool_ops之类的几个操作提供的Net功能,包括支持DPDK mbufs和FIFO。
    • 接口名称由用户空间提供。
    • MAC地址可以是真正的NIC MAC地址或随机

 

DPDK缓冲区流
  为了最小化在内核空间中运行的DPDK代码的数量,mbuf mempool仅在用户空间中进行管理。内核模块可以感知mbufs,但是所有mbuf分配和释放操作将仅由DPDK应用程序处理。

 

  • 技术图片

以上是关于DPDK KNI 接口1的主要内容,如果未能解决你的问题,请参考以下文章

运行DPDK KNI示例的问题

(dpdk f-stack)-通过kni与kernel上服务通信

(dpdk f-stack)-通过kni与kernel上服务通信

(dpdk f-stack)-通过kni与kernel上服务通信

内核调试技巧-逆向寻踪,揭开 LACP 协议流程的神秘面纱

DPDK-A1:Centos配置MLX5驱动