|
ethernet, RGMII, потеря пакетов |
|
|
|
Dec 16 2016, 09:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Уважаемые форумчане, требуется помощь. Суть проблемы - теряются UDP пакеты в режиме RGMII. Была связка ПК->marvell 88e1111->борда с arriaII->marvell 88e1111->ПК и, соответственно, гонялись пакеты по обратной связи. Из миллиона отправленных пакетов принимались все без ошибок. Сделали собственную плату с точно таким же контроллером - из миллиона пакетов стабильно теряются пару сотен, при этом MAC в fpga говорит о том, что все пакеты приняты и отправлены, т.е. потеря происходит где-то между выходом fpga->marvell->ПК. Все временные ограничения на fpga описаны в соответствии с документацией, более того - разводка на выходе фиксировалась и двигалась по фазе опорная частота с мелким шагом в пределах рабочего окна - в результате система либо не работала вообще, либо все те же доли процентов потери пакетов. Разработчик ПП проверил разброс длин сигнальных линий - все в пределах 20ps. Куда двигаться дальше, ну помимо того, чтобы тыкаться осциллографом в сигналы RGMII?
|
|
|
|
|
Dec 16 2016, 09:13
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(bogaev_roman @ Dec 16 2016, 16:04)  Куда двигаться дальше, ну помимо того, чтобы тыкаться осциллографом в сигналы RGMII? Смотреть счетчики на PHY.
|
|
|
|
|
Dec 16 2016, 10:28
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Цитата(bogaev_roman @ Dec 16 2016, 12:49)  Я в курсе, что UDP не гарантирует доставку всех пакетов без ошибок. При этом, со слов программиста, - в режиме точка-точка ошибок быть не должно. Как много раз я слышал эту песню Если найдете ответ, сообщите пожалуйста. Мне это крайне интересно, т.к есть такая же проблема. Пока решение есть только одно - ставить самое быстрое железо для ПК какое есть сейчас. Цитата Тут ведь вопрос в чем - во всей этой тестовой системе отличие одно - ПП другая стоит (ПК, кабеля и прочее одинаковое) Ну так это элементарно. Замыкаете шины mac ядра в плисе, (loopback на уровне mac), в дырку эзернета подтыкаете BER тестер для медного эзернета и тестируете.
|
|
|
|
|
Dec 16 2016, 11:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Ant_m @ Dec 16 2016, 13:28)  Как много раз я слышал эту песню Если найдете ответ, сообщите пожалуйста. Мне это крайне интересно, т.к есть такая же проблема. Пока решение есть только одно - ставить самое быстрое железо для ПК какое есть сейчас. ... Потеря пакетов при точка-точка может быть как по "электрическим" причинам (помехи на кабель тут уж ничего не сделать) так из за того что приемный буфер в сетевой карте переполнен и не может принят очередной пакет. С этим можно бороться используя loss-less режим работы сетевой карты и соответственно поддерживая flow-control со стороны MAC в FPGA. Удачи! Rob.
|
|
|
|
|
Dec 16 2016, 11:46
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Цитата(bogaev_roman @ Dec 16 2016, 13:46)  Там вообще можно пустить loopback через сам 88e1111, в обход fpga, только я пока не понял как. Что, кстати, на тестере можно увидеть? Там нужно битик в регистре поставить. Ищите в доках какой. Но это не нужно делать, т.к вы проверите работу phy, а mac нет. На тестере можно увидеть статистику (кол пакетов туды и взад). Смоделировать разные типы нагрузки (burst к примеру), поиграться с объемом трафика, длинной пакетов и т.п. Я гонял по 6-8 часов тесты с нашей железкой - все успешно. Насчет антивирусов и прочего, да может быть и такое, но далеко не всегда. Тут ключевая фраза Цитата отнимал процессорное время - если нагрузка на превышает 20% общей, или 50% на поток, то пакеты теряются. Картинки выше сняты на винде №7, установленной с офф. диска + драйвера от intel для сетевушки. Винда устанавливалась специально для тестов, к интернету/сети доступа не имела, на тестируемом интерфейсе отключено все, кроме IPv4.
|
|
|
|
|
Dec 16 2016, 11:47
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 23-01-13
Пользователь №: 75 311

|
Цитата(bogaev_roman @ Dec 16 2016, 13:46)  Там вообще можно пустить loopback через сам 88e1111, в обход fpga, только я пока не понял как. Что, кстати, на тестере можно увидеть? На тестере можно увидеть например количество битовых ошибок, определить правильно ли подсчитана контрольная сумма, возможно в преамбуле проблемы (это тоже может тестер показать), по крайней мере он может показать, что проблема точно не в FPGA или наоборот. ОС на ПК может не пропускать например пакеты с неправильной CRC (или даже сетевая карта на ПК может такое делать). Ну и тайминги на FPGA, должны обязательно выполняться) У меня была такая же схема ПК->ПЛИС->ПК, только не RGMII, а MII, тоже пакеты терялись, проблемы решить не удалось, забросил, с RGMII проще мне кажется.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|