count_enable
May 6 2015, 11:36
Стандартный пример UDP эхо на Microblaze+lwIP, xethernet_lite. Все пакеты больше 1500 дропаются, больше 1000 - идут потери до 20%. Не могу найти в каком заголовке задаётся макс. размер пакета. Не подскажете?
dm.pogrebnoy
May 6 2015, 12:37
UDP, он же в IP, а IP он же в Ethernet. А Ethernet фрейм ограничен размером 1514 байт + 4 байта CRC.
UDPMTUВам нужно смотреть в сторону Jumbo-фреймов. Но не все оборудование его поддерживает.
JUMBOА потери будут, всегда, если у вас в сети больше одного устройства, коллизию пакетов никто не отменял.
тыц
count_enable
May 6 2015, 13:04
Вот о джамбо и идёт речь. Точно знаю что плата поддерживает, но на форумах очень запутанные и противоречивые данные какие дефайны надо править чтобы включить поддержку.
count_enable
May 6 2015, 15:30
UPD: Поменял корку на AXI_ETHERNET + DMA, теперь работает на 1 Гбит/с но в дефолтной конфигурации не поддерживает больших пакетов. Прочитал xapp1026, поменял установки BSP как рекомендуется на стр. 24, добавил дефайн с lwIP #define USE_JUMBO_FRAMES 1, но ничего не поменялось.
А на приёмном конце, в настройках сетевой Jumbo Frame разрешены?
count_enable
May 6 2015, 16:29
Цитата(Corvus @ May 6 2015, 19:50)

А на приёмном конце, в настройках сетевой Jumbo Frame разрешены?
Конечно Вы правы, большое спасибо.
Мораль: Xilinx не всегда виноват. Почему 7 винда до сих пор не включает их по дефолту - тайна сия великая есть.
Цитата(count_enable @ May 6 2015, 14:36)

Стандартный пример UDP эхо на Microblaze+lwIP, xethernet_lite. Все пакеты больше 1500 дропаются, больше 1000 - идут потери до 20%. Не могу найти в каком заголовке задаётся макс. размер пакета. Не подскажете?
Размер UDP задаётся в заголовке UDP и может достигать 2^16 (примерно), используйте фрагментацию и сможете отправлять UDP макимального размера. LwIP поддерживает фрагментацию, т.о. если длина пакета будет превышать 1500 он сам разделит пакет на фрагменты и отправит.
eugen_pcad_ru
May 6 2015, 18:44
Цитата(count_enable @ May 6 2015, 15:36)

Стандартный пример UDP эхо на Microblaze+lwIP, xethernet_lite. Все пакеты больше 1500 дропаются, больше 1000 - идут потери до 20%. Не могу найти в каком заголовке задаётся макс. размер пакета. Не подскажете?
Да, еще. Стандартные API функции при работе с сокетом UDP-пакеты нормально не ловят. Для отладки лучше всего использовать wireshark. Ну и соединение точка-точка.
count_enable
May 7 2015, 06:01
Всем еще раз большое спасибо. Именно за такие быстрые и дельные советы люблю этот форум.
QUOTE (count_enable @ May 6 2015, 17:36)

Все пакеты больше 1500 дропаются, больше 1000 - идут потери до 20%.
Откуда про 20%? При уменьшении размера с 1500 до 1000 потери возрастают на 1.5%,
см график по ссылке.
count_enable
May 7 2015, 14:29
За потери не знаю кто был виноват, это был одноразовый получасовой тест. Сейчас потери в пределах нормы (меньше 1 на 1000) при гигабитном линке.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.