Я пытаюсь создать тест, чтобы проверить, что петля PHY работает правильно. Разработка на linux в c. Это, по существу, что тест в настоящее время делает:Тест петли Ethernet
- Поднимает интерфейс и убедитесь, что он имеет действительный IP-адрес
- Создать два разъема в режиме UDP (SOCK_DGRAM)
- Bind оба гнезда к конкретному интерфейс испытывается
- Bind входящий сокет к определенному порту
- Записи к исходящему разъему с SendTo, указав порт и IP-адрес
- чтения из входящего сокета
Проблема, с которой я столкнулась, связана с включенным или включенным loopback, я всегда читаю данные обратно. Интерфейс не подключен к коммутатору, поэтому я не ожидал, что данные вернутся через физический кабель. Я подозреваю, что стек перенаправляет данные до того, как он дойдет до PHY. Есть ли способ гарантировать, что пакеты физически отправляются через интерфейс?
Я подозреваю, что мне может понадобиться, отправляет пакет с адресом, отличным от адреса интерфейса. Тогда мне пришлось бы смотреть интерфейс для любого входящего пакета, даже пакетов, не предназначенных для него. Сортировка сырого режима «обнюхивания». – jdepth