我在我的项目中使用memif设备。如您所知,memif是dpdk中的eth设备。当我结束我的应用程序,我停止,禁用混杂模式和关闭memif eth设备。这是我休憩的顺序;
rte_eth_dev_stop(portId);
rte_eth_promiscuous_disable(portId);
rte_eth_dev_close(portId);rte_eth_dev_stop(portId)中的误差为-95 (-95),rte_eth_promiscuous_disable()函数的误差为no。此外,我还得到了memif_disconnect():未能注销控制通道回调错误。但是rte_eth_dev_close()返回成功。我不知道我做错了什么?也许结尾的顺序可能是错的。
如果你能在这个问题上指导我,我将不胜感激。诚挚的问候。
发布于 2022-11-26 03:06:40
@Mustafa请求在文档和代码中花费一些时间,这将有助于轻松理解memif不启用或禁用混杂模式。
让我解释一下
Table 1.1 Features availability in networking drivers中调用各种支持promiscuous_enable and promiscuous_disable以支持要传输到底层PMD.< code >H 111Table 1.1 Features availability in networking drivers>的用户请求,检查代码<代码>D12。不存在杂乱的enable\dsiable函数处理程序。
因此,没有什么不对的道理。
关于memif rte_eth_dev_stop,检查memif_dev_stop,只有返回值为return 0;,因此-95对停止设备的声明无效。
注意:请检查代码和链接,以更好地理解代码。1:https://doc.dpdk.org/guides/nics/overview.html 2:https://git.dpdk.org/dpdk/tree/drivers/net/memif/rte_eth_memif.c
https://stackoverflow.com/questions/74574900
复制相似问题