以太网PHY环回测试的编码

时间:2011-11-09 21:28:25

标签: linux ethernet loopback

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

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

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

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

对于这个测试,我打算

  1. 使用特定的MAC地址配置以太网交换机上的内部PHY,
  2. 使用CPU的MAC地址作为源地址和
    来打包以太网测试数据包 在步骤1中配置的MAC地址作为目标地址
  3. 发送并​​等待接收测试包,
  4. 比较发送和接收的数据模式。
  5. 有什么建议吗?另外,我想知道Linux中是否有可用于生成步骤2的数据包的函数,并发送第3步的数据包。

    非常感谢。

1 个答案:

答案 0 :(得分:3)

大多数Phys可以切换到测试模式。我们使用bootloader直接写入 Phy并切换到测试模式。

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

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

MII ioctl。请注意,此功能将完全搞砸状态    机器,如果你写像BMCR,BMSR,ADVERTISE等寄存器。最好的    使用它只能写入非标准的寄存器,并且不会启动    重新谈判。