我有 2 个 SFP,都已插入。lspci 显示它们位于 0000:05:00.0 和 0000:05:00.1。位于 0000:05:00.0 的设备被指定为“sfp2”,位于 0000:05:00.1 的设备被指定为“sfp1”。“sfp1”受 DPDK 控制(绑定到 igb_uio 驱动程序),而 sfp2 受 kenel 控制(绑定到 ixgbe 驱动程序)。
每当我将 sfp1 从 ugb_uio 解除绑定并绑定到 ixgbe 时,SFP2 都无法接收任何数据包。步骤:
解除 sfp1 绑定
echo 0000:05:00.1 > /sys/bus/pci/devices/0000:05:00.1/driver/unbind
将 sfp1 绑定到 ixgbe
echo 0000:05:00.1 > /sys/bus/pci/drivers/ixgbe/bind
检查 0x03000 处的 RXCTRL 寄存器
ethtool -d sfp2| grep 0x03000
返回 0x00000。
我的问题是:
我做得对吗?如果正确,那么为什么 sfp2 无法接受任何数据包?
如果我错了那么正确的顺序是什么?
需要进一步研究哪些方面来解决这个问题?
注意:使用 dpdk-devbind.py 解除绑定和绑定也会发生这种情况。
提前致谢。