Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RTL8367 не пропускает UDP пакеты
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
Dilim
Всем привет!
У меня в наличии имеется:
1. Устройство на основе трансивера Micrel KSZ9031, которое формирует по гигабиту обычные UDP пакеты;
2. Компьютер с windows 7 (Realtek RTL8111F) и с windows 8 (Realtek RTL8171);
3. Компьютер с Ubuntu 14.04.1 (Marvell 88E8055);
4. Гигабитный "неуправляемый" свитч TP-Link TL-SG1005D на основе Realtek RTL8367, на котором видимо стоит некое подобие Linux (http://blog.zapto.org/?p=52).
5. Сетевая карта на основе Intel 82574L.

Если соединить напрямую устройство (KSZ9031) с компьютером (windows 7, 8), то линк поднимается, пакеты идут и их видно через wireshark. Если соединить напрямую устройство (KSZ9031) с компьютером (Ubuntu 14.04.1), то линк поднимается, но UDP пакеты с помощью wireshark или других утилит не видны. Пропустив UDP пакеты через TL-SG1005D, поднимается только линк, UDP пакеты до компьютера (windows 7, 8 или Ubuntu 14.04.1) тоже не доходят. Пробовали пропустить пакеты через D-link DGS-1005A, пакеты также не доходят. Длина всех патчкордов из UTP 5e во всех конфигурациях не превышает одного метра. Смена портов назначения (destination port) и портов источника (source port) не помогает. Broadcast пакеты тоже не доходят. Расчет контрольной суммы (установка значения отличного от 0х0000) пользовательских данных в UDP пакете не помогает. Если генерить точно такие же пакеты с компьютера (windows 7, 8 или Ubuntu 14.04.1) с помощью обычных сокетов, то пакеты спокойно проходят через TL-SG1005D и через DGS-1005A.

При подключении устройства (KSZ9031) с 82574L(windows 8) линк поднимается, но пакеты не видны даже в wireshark как бы я не старался.

Дамп из wiresharkа с UDP пакетами, которые доходят если напрямую подключать устройство (KSZ9031) с компьютером (windows 7, 8) можно посмотреть здесь - https://sites.google.com/site/dumpudp/home/...rects=0&d=1.

Хочется чтобы UDP пакеты в независимости от операционной системы и используемого трансивера доходили и через свитч тоже. Что я делаю не так? Есть ли какие-то методы решить эту проблему хотя бы частично? Буду крайне благодарен если поможете с этой задачей.
krux
для начала найдите устройство, которое покажет вам количество "битых" принимаемых пакетов, т.е. с неправильным FCS.
95% всех сетевок и свичей молча дропают пакеты если у них неправильный FCS.

дальше разбираться кто в этом виноват - либо физика, либо вы пакет неправильно формируете, либо PHY неправильно сконфигурирован или получает не ту частоту на RGMII, либо ещё что, типа неправильно отработавшего auto-negotiation half-duplex/full-duplex.

если FCS правильный, то пакет будет виден вайршарком с любой сетевушкой во всех 100% случаев.
также может помочь наблюдение за тем какой линк поднялся - 10 100 или 1000.
enclis_
krux, вот здесь - https://sites.google.com/site/dumpudp/home/...rects=0&d=1 лежит дамп из ста UDP пакетов, которые приняты вайршарком. С FCS там всё в порядке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.