2011-11-09 3 views
3

Linux에서 이더넷 PHY 루프백 테스트를 작성해야합니다. 나는 전에 그것을 해본 적이 없으며 시작할 곳이 없다. 몇 가지 조사를 한 후에 테스트 계획을 세우고 누군가가 나를 확인하고 내 질문에 대한 조언을 해 줄 수 있는지 궁금합니다.이더넷 PHY 루프백 테스트 코딩

이것은 외부 루프백 설정입니다. 이더넷 스위치 칩의 각 내부 PHY에 대한 TX +/-를 RX +/- 핀에 연결합니다. -> 이더넷 스위치 (칩)의 내부 PHY-> PHY0 (칩) -> CPU

CPU-> PHY0 (칩)

그래서 루프백 고레벨 패킷 경로는 다음과 같다 이 테스트를 위해, 나는
  • 소스 주소로 CPU의 MAC 주소를 사용하여 이더넷 테스트 패킷과
    ,536 팩,

    1. 구성 특정 MAC 주소를 가진 이더넷 스위치의 내부 PHY를 계획MAC 주소는 단계 1에서 대상 주소로 구성되어 있습니다.
    2. 테스트 패킷을 보내고 대기하려면 송수신 된 데이터 패턴을 비교하여
    3. 을 비교하십시오.

    의견이 있으십니까? 또한 Linux에 2 단계의 패킷을 생성하고 3 단계의 패킷을 보낼 수있는 기능이 있는지 궁금합니다.

    고맙습니다.

  • +0

    이 테스트에 사용하려는 언어는 무엇입니까? –

    +0

    안녕하세요, 혹시 리눅스 나 부트 로더에서 루프백 테스트를하셨습니까? 감사 – ransh

    답변

    3

    대부분의 Phys는 테스트 모드로 전환 할 수 있습니다. 부트 로더를 사용하여 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 등과 같은 레지스터를 작성하는 경우 상태 상태를 완전히 망칠 것입니다.

    관련 문제