2011-11-09 35 views
3

LinuxでイーサネットPHYループバックテストを作成する必要があります。私は以前にそれをやったことがないし、どこから始めるべきなのか分からなかった。いくつかの調査の後、私はテストの計画を思いつきました。誰かが私にそれを確認し、私の質問へのいくつかの指針を与えるのを助けることができるのだろうかと思います。イーサネットPHYループバックテスト用コード化

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

そこでループバック高レベルパケットの経路は次の通りである:

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

このテストでは、私は

  1. は、送信元アドレスと
    としてCPUのMACアドレスを使用して、イーサネットテストパケットをパック、特定のMACアドレスを持つイーサネットスイッチ上の内部のPHYを設定することを計画しますステップ1.で宛先アドレスとして設定されたMACアドレス
  2. テストパケットを送信して受信するのを待って、
  3. 送受信されたデータパターンを比較します。

また、私はステップ2のためのパケットを生成するために使用し、ステップ3

のパケットを送信することができ、Linuxでの機能があるのだろうかどうもありがとうございました。

+0

このテストにはどの言語を使用しますか? –

+0

こんにちは、最終的にLinuxやブートローダでループバックテストをしましたか?ありがとう – ransh

答えて

3

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

ドキュメント/ネットワーキング/ 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などベスト 使用これだけに標準でないレジスタを書くこと、および 再ネゴシエーションをオフに設定していないことに注意してください。

関連する問題