Кодирование для Ethernet PHY Loopback Test - PullRequest
3 голосов
/ 10 ноября 2011

Я должен написать тест Ethernet PHY loopback в Linux.Я никогда не делал этого раньше и понятия не имел, с чего начать.После некоторых исследований я разработал план теста, и мне интересно, сможет ли кто-нибудь помочь мне проверить его и дать несколько указаний на мои вопросы.

Это внешняя петлевая настройка.Он соединяет контакты TX +/- и RX +/- для каждого внутреннего PHY на чипе коммутатора Ethernet.

Таким образом, петлевой высокоуровневый пакетный путь выглядит следующим образом:

CPU-> PHY0 (микросхема) -> внутренняя PHY-> PHY0 (микросхема) коммутатора Ethernet (> микросхема) -> CPU

Для этого теста я планирую

  1. настроить внутренние PHY на коммутаторе Ethernet с определенными MAC-адресами,
  2. упаковать тестовый пакет Ethernet с использованием MAC-адреса ЦПв качестве адреса источника и MAC-адреса
    , настроенного на шаге 1. в качестве адреса назначения
  3. отправьте и ожидайте получения тестового пакета,
  4. сравните отправленные и полученные шаблоны данных.

Есть предложения?Кроме того, мне интересно, есть ли функции в Linux, которые я могу использовать для генерации пакетов для шага 2 и отправки пакетов для шага 3.

Большое спасибо.

1 Ответ

4 голосов
/ 17 января 2012

Большинство Phys можно переключить в тестовый режим. Мы использовали загрузчик, чтобы писать прямо в Фей и перейти в режим тестирования.

Существует также ioctl, взятый из документации / сети / phy.txt Ethtool удобные функции.

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

MII ioctl. Обратите внимание, что эта функция полностью испортит состояние машина, если вы пишете регистры, такие как BMCR, BMSR, ADVERTISE и т. д. Лучше всего используйте это только для записи регистров, которые не являются стандартными и не установлены пересмотр.

...