3

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

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

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

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

对于这个测试,我计划

  1. 使用特定 MAC 地址配置以太网交换机上的内部 PHY,

  2. 以 CPU 的 MAC 地址为源地址,以步骤 1 中配置的 MAC 地址为目的地址,打包以太网测试包,
  3. 发送并等待接收测试数据包,
  4. 比较发送和接收的数据模式。

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

非常感谢。

4

1 回答 1

4

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

还有一个 ioctl 取自 documentation/networking/phy.txt Ethtool 便利功能。

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

MII ioctl。请注意,如果您编写 BMCR、BMSR、ADVERTISE 等寄存器,此函数将完全搞砸状态机。最好仅将其用于写入非标准寄存器,并且不要引发重新协商。

于 2012-01-17T15:36:35.217 回答