以太网PHY环回测试的编码



我必须在Linux中编写一个以太网PHY环回测试。我以前从来没有做过,也不知道从哪里开始。经过一番研究,我想出了测试的计划,我想知道是否有人能帮我验证一下,并给我一些问题的指点。

这是一个外部环回设置。它为以太网交换芯片上的每个内部PHY连接TX+/-到RX+/-引脚。

所以环回高级数据包路径如下:

CPU->PHY0(芯片)->以太网交换机(芯片)内部PHY->PHY0(芯片)->CPU

对于这个测试,我计划

  1. 在以太网交换机上配置具有特定MAC地址的内部物理,
  2. 使用CPU的MAC地址作为源地址和
    打包以太网测试数据包。步骤1中配置的MAC地址。作为目的地址,
  3. 发送并等待接收测试数据包,
  4. 比较发送和接收的数据模式。

有什么建议吗?另外,我想知道Linux中是否有函数可以用来生成步骤2的数据包,并发送步骤3的数据包。

大多数物理可以切换到测试模式。我们使用引导加载程序直接写入Phy并切换到测试模式。

还有一个从documentation/networking/phy.txt中获取的ioctlEthtool便利功能。

int phy_mii_ioctl(struct phy_device)Struct mii_ioctl_data *mii_data, int cmd);

MII ioctl。注意,这个函数会完全搞砸状态如果你写寄存器,如BMCR, BMSR, ADVERTISE等。最好使用此方法仅用于编写不标准的寄存器,并且不设置重新谈判。

最新更新