解决dpdk kni能够启动,却不能收发数据包的问题
2016-11-21 22:15
597 查看
最近一个项目是基于dpdk开发lvs,但是又不想重写ospf等控制协议,于是决定使用DPDK的KNI接口来做dpdk与内核的之间的数据通道。即使用KNI虚拟出一个网卡,供内核及其其他相关程序使用。
但是在使用kni的过程中出现了问题,就是KNI模块正常启动,虚拟网卡vEth0也能够正常出现,但是这个网卡却不能正常收发数据包。分析问题之后,发现KNI网卡到内核的数据不能传输,kni网卡到dpdk 物理网卡的通道正常。于是经过多次尝试,最终确定为是linux内核版本太低了,我用的dpdk2.0.2,需要2.6.34以上的版本。
而我的linux内核版本是2.6.32,后来使用3.10的内核启动后就能够一次成功。
dpdk内核版本的问题已经不是第一次遇到了,之前有一次dpdk编译总是报错,最终发现是因为内核版本的问题,内核中没有定义某个变量,导致编译错误,换了个内核之后就成功了。
经验:对于dpdk 的开发和使用,需要认真阅读官方的运行环境要求,否则会出各种问题。在开发dpdk相关的产品的时候尽量选择高版本的linux内核,3.0以上的为好。
但是在使用kni的过程中出现了问题,就是KNI模块正常启动,虚拟网卡vEth0也能够正常出现,但是这个网卡却不能正常收发数据包。分析问题之后,发现KNI网卡到内核的数据不能传输,kni网卡到dpdk 物理网卡的通道正常。于是经过多次尝试,最终确定为是linux内核版本太低了,我用的dpdk2.0.2,需要2.6.34以上的版本。
而我的linux内核版本是2.6.32,后来使用3.10的内核启动后就能够一次成功。
dpdk内核版本的问题已经不是第一次遇到了,之前有一次dpdk编译总是报错,最终发现是因为内核版本的问题,内核中没有定义某个变量,导致编译错误,换了个内核之后就成功了。
经验:对于dpdk 的开发和使用,需要认真阅读官方的运行环境要求,否则会出各种问题。在开发dpdk相关的产品的时候尽量选择高版本的linux内核,3.0以上的为好。
相关文章推荐
- ORACLE监听器TNS服务不能启动的问题解决
- ORACLE监听器TNS服务不能启动的问题解决(转自:http://www.cnweblog.com/sunGIS/archive/2006/08/21/124117.html)
- 解决EOS启动“不能连接到Server”的问题
- 解决OUTLOOK2007安装后不能启动的问题
- 在linux下安装显卡驱动后不能启动问题分析和解决
- 解决tomcat不能启动的问题(8005端口被占用)
- 两种方法解决jbuilder2005不能启动问题
- 解决使用Tornado过程中不能启动simulator的问题
- jbuilder2005不能启动问题的解决
- 解决EOS启动“不能连接到Server”的问题
- 解决Oracle监听器服务不能启动的问题
- 解决Oracle监听器服务不能启动的问题
- Linux 上JBOSS 启动后只能本机访问,其它机器不能访问问题解决。
- jsEclipse 1.5.5不能启动问题解决办法
- 解决使用Tornado过程中不能启动simulator的问题
- 解决tomcat启动jmx远程管理后不能正常关闭问题
- 关于apache2不能启动的问题的解决方法
- 解决fedora 6安装kdevelop后不能启动的问题
- 解决tomcat5.5以上不能用命令行启动的问题
- 关于"Windows不能在本地计算机启动Apache2.......并参考特定服务错误代码1"问题解决