3

LinuxでイーサネットPHYループバックテストを作成する必要があります。私はこれまでやったことがなく、どこから始めればよいのかわかりませんでした。調査の結果、テストの計画を立てました。誰かがそれを検証し、私の質問へのポインタを教えてくれるのではないかと思います。

これは外部ループバック設定です。イーサネットスイッチチップ上の各内部PHYのTX+/-ピンをRX+/-ピンに接続します。

したがって、ループバックの高レベルパケットパスは次のようになります。

CPU-> PHY0(チップ)->イーサネットスイッチ(チップ)の内部PHY-> PHY0(チップ)-> CPU

このテストでは、

  1. 特定のMACアドレスを使用してイーサネットスイッチの内部PHYを構成します。

  2. CPUのMACアドレスを送信元アドレスとして使用し、手順1で構成したMACアドレスを宛先アドレスとして使用して、イーサネットテストパケットをパックします。
  3. テストパケットを送信して受信するのを待ちます。
  4. 送受信されたデータパターンを比較します。

助言がありますか?また、ステップ2のパケットを生成し、ステップ3のパケットを送信するために使用できる関数がLinuxにあるのではないかと思います。

どうもありがとうございます。

4

1 に答える 1

4

ほとんどの Phys は、テスト モードに切り替えることができます。ブートローダーを使用して Phy に直接書き込み、テスト モードに切り替えました。

また、documentation/networking/phy.txt Ethtool の便利な関数から取得した ioctl もあります。

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 に答える