DPDK - KNI
系列 - DPDK 原理与实践
目录
使用 kni 接口时,需要插入 rte_kni.ko 库到内核中,插入时有部分参数可以进行调整,下面简单描述一下参数的用途:
- carrier:默认设置为
off,表示载波状态(Carrier Status)关闭,能够设置on来开启。当使用off时,需要使用rte_kni_update_link函数来设置 KNI 接口的载波状态 - lo_mode:环回模式关闭设置为
lo_mode_none,此时KNI接口发送的数据包会被传递给Linux内核网络栈,随后根据路由表等网络配置发送到外部网络。通常在测试环境下,设置lo_mode_fifo或lo_mode_fifo_skb,模式开启时,KNI模块会在内核空间创建一个虚拟的环回路径,此配置下数据包发到内核时,并不真正的发到外部网络,而是在内核中被“环回”;其中lo_mode_fifo_skb模式,还会涉及到 sk_buff 缓冲区的拷贝,模拟了数据包在内核中的处理过程,更接近于真实的网络环境 - kthread_mode:默认配置为
single,内核侧只为所有 KNI 设备创建一个内核线程来接收数据包。在multiple模式下,每个 KNI 接口都会创建一个单独的内核线程来接收数据包
载波状态是网络接口的物理链路状态,表明接口是否连接到网络并能够传输数据,对应 ifconfig 查询到的 UP/DOWN 状态