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 f-stack)-通过kni与kernel上服务通信
(dpdk f-stack)-通过kni与kernel上服务通信