Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПК не посылает pause frame при включеном Flow control.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
Костян
Итак дано

ПЛИС -> Ethernet PHY -> кроссовый кабель -> ПК


ПЛИС формиурет ethernet пакеты на 1Gb линке с загрузкой сети порядка 80% и постоянно отсылает их в сеть.
Сетевая карта ПК настроена на 1000/full duplex flow_control ON

Каждый пакет нумеруется с инкрементом. ПК принимает пакеты с частыми потярями по 1..40 пакетов за раз.
По всей видимости ПК не успевает считывать с буфера сетевой карты пакеты , но при этом pause frame не формируются сетевой картой . В чем причина ?

pause frame пытаюсь словить при помощи ПЛИС, ослеживая все принимаемые PHY пакеты. Пусто.
AndreiUS
В регистрах PHY включена опция Enable Pause?
Костян
QUOTE (AndreiUS @ Dec 29 2011, 09:51) *
В регистрах PHY включена опция Enable Pause?

хм..нет. я предполагал, что паузами занимается MAC уровень. При чем тут PHY ?
AndreiUS
Цитата
я предполагал, что паузами занимается MAC уровень. При чем тут PHY ?

Первоначально я тоже так думал... Почитайте соседнюю тему.
Костян
QUOTE (AndreiUS @ Dec 29 2011, 10:32) *
Первоначально я тоже так думал... Почитайте соседнюю тему.

спасибо. действительно, я не подумал про автопереговоры.
Victor®
Цитата(AndreiUS @ Dec 29 2011, 15:32) *
Первоначально я тоже так думал... Почитайте соседнюю тему.


Ну, дык во многих (а может и всех всех) фаях страпится поддержка паузы.

P.S.
Не в обиду - читайте мануал sm.gif
Aprox
Цитата(Victor® @ Dec 30 2011, 23:50) *
Ну, дык во многих (а может и всех всех) фаях страпится поддержка паузы.

Не факт. Например, в меню настройки сетевых карт есть специальная опция- Вкл/Выкл Flow Control. И относится сия опция к МАС девайсу, а не к PHY. Да и пауз-пакет относится, как пишут в мануалах, к управлению на уровне MAC.
Victor®
Цитата(Aprox @ Dec 31 2011, 14:09) *
Не факт. Например, в меню настройки сетевых карт есть специальная опция- Вкл/Выкл Flow Control. И относится сия опция к МАС девайсу, а не к PHY. Да и пауз-пакет относится, как пишут в мануалах, к управлению на уровне MAC.


Управление на уровне MAC, говорите?
Думаю имеется ввиду MDIO, по которому связан MAC с PHY.
Ладно - новый год внесет ясность.

Всех с 2012!!! Нехай щастыть!
Костян
QUOTE (Victor® @ Dec 31 2011, 20:06) *
Управление на уровне MAC, говорите?

Да, именно на MAC уровне. И именно на этом уровне задается размер этой самой паузы.
Структуру кадра PAUSE Frame можно посмотреть по след. ссылки
http://ivt.psati.ru/metods/Seti_EVM/El_Uch...lan/5/index.htm (в самом низу страницы)

Либо в википедии
http://en.wikipedia.org/wiki/Ethernet_flow_control (прямо показано окошко с wireshark c захватом pause frame ) . Хотя тут тоже непонятка. Раз паузы обрабатываются только на mac уровне, как этот пакет попал в wireshark?

QUOTE
Думаю имеется ввиду MDIO, по которому связан MAC с PHY.

Насколько я понял по MDIO тоже связь идет. Грубо говоря две физики пообщались между собой и решили, что паузы потянут, они выставляют биты в своей конфигурации и уже mac уровень считывает их по MDIO и разрешает/запрешает на своем уровне обработку этих самых пауз.

QUOTE
Ладно - новый год внесет ясность.

хм.. посмотрим ;-)
Konst_777
Цитата(Костян @ Dec 28 2011, 15:40) *
Итак дано

ПЛИС -> Ethernet PHY -> кроссовый кабель -> ПК

ПЛИС формирует ethernet пакеты на 1Gb линке с загрузкой сети порядка 80% и постоянно отсылает их в сеть.
Сетевая карта ПК настроена на 1000/full duplex flow_control ON
...

  • ПЛИС: Cyclone IV;
  • Ethernet PHY: Marvell 88E1111;
  • MAC: Altera Triple-Speed Ethernet MegaCore;
  • MAC и PHY на модуле, вроде бы настроены на 1Gb/full duplex/flow_control ON;
  • обмен между модулем и ПЭВМ происходит через отдельный сетевой адаптер "Intel® Gigabit CT Desktop Adapter";
  • через второй (Fast Ethernet) адаптер подключен Интернет.

Если активным является окно программы обмена с модулем, то, при скорости PHY 1Gb/s потери пакетов нет. Потеря пакетов происходит если во время пересылки данных модуль->ПЭВМ в Проводнике открыть папку с фильмами в режиме отображения "... значки" или если одновременно говоришь с кем-нибудь через Skype. Предполагаю, что потеря пакетов вызвана высокой загрузкой процессора в какие-то моменты времени. Сетевой адаптер выдает pause-пакеты, а MAC модуля их принимает. Это видно по значениям регистра статистики MAC: aRxPAUSEMACCtrlFrames. То есть, flow-control вроде бы и работает, но все равно, происходит потеря пакетов.

При скорости PHY 100М/s вызвать потерю пакетов из за перегрузки процессора не удается.

Есть ли у кого-нибудь опыт решения подобной проблемы?
Aprox
Цитата(Konst_777 @ Jan 10 2012, 20:29) *
Сетевой адаптер выдает pause-пакеты, а MAC модуля их принимает. Это видно по значениям регистра статистики MAC: aRxPAUSEMACCtrlFrames. То есть, flow-control вроде бы и работает, но все равно, происходит потеря пакетов.

Как я понял ситуацию, МАС внутри FPGA пауз-пакеты принимает, но притормаживания посылок не отрабатывает? Я использую самодельный упрощенный MAC, который нормально отрабатывает все, что мне нужно. Может, в вашем случае дело в глюкавости самой core готового супер-МАС, которую вы используете? Если брали ее с opencores, то почти наверняка какая-нибудь засада там сидит. Убеждался не раз, и зарекся в конце концов.
Костян
QUOTE (Konst_777 @ Jan 10 2012, 15:29) *
[*]MAC и PHY на модуле, вроде бы настроены на 1Gb/full duplex/flow_control ON;
[*]обмен между модулем и ПЭВМ происходит через отдельный сетевой адаптер "Intel® Gigabit CT Desktop Adapter";


ПЭВМ и плата FPGA соединены кросс кабелем ? или через свитч ?
Konst_777
Цитата(Aprox @ Jan 10 2012, 22:04) *
...Может, в вашем случае дело в глюкавости самой core готового супер-МАС, которую вы используете?...

Altera в Errata не упоминает о проблемах с flow-control для Triple-Speed Ethernet MegaCore Function. И на форуме Altera никто пока на flow-control не жаловался. Похоже, что сетевой адаптер выдает pause-пакеты в самый последний момент, когда в его буфере уже остается свободного места меньше, чем длина пакета от модуля. А поскольку MAC модуля не приостанавливает выдачу данных до окончания выдачи текущего пакета, то и происходит потеря пакета. Вот, как проверить эту версию, я пока не знаю.

Цитата(Костян @ Jan 11 2012, 13:52) *
ПЭВМ и плата FPGA соединены кросс кабелем ? или через свитч ?

Сейчас ПЭВМ и модуль с FPGA соединены кросс кабелем напрямую. Нужно будет проверить, останется ли потеря пакетов при подключении модуля к ПЭВМ через маршрутизатор TL-WR1043ND.
Aprox
Цитата(Konst_777 @ Jan 13 2012, 11:15) *
Похоже, что сетевой адаптер выдает pause-пакеты в самый последний момент, когда в его буфере уже остается свободного места меньше, чем длина пакета от модуля. А поскольку MAC модуля не приостанавливает выдачу данных до окончания выдачи текущего пакета, то и происходит потеря пакета. Вот, как проверить эту версию, я пока не знаю.

Проверить можно другой сетевой картой, более авторитетной. Я тут полазил по последним новациям и обнаружил, что продвинутая общественность использует серверные сетевые адаптеры для ввода быстрых потоков непосредственно в память ПК, минуя Винды и центральный процессор. Удовольствие не сказать, чтобы очень дорогое. Пошукайте, может, вообще FlowCntrol не понадобится.

Konst_777
Цитата(Aprox @ Jan 13 2012, 21:44) *
Проверить можно другой сетевой картой, более авторитетной...

То есть, существуют сетевые адаптеры, ПО которых позволяет пользователю задавать уровень заполненности буфера приема, при котором сетевые адаптеры будут выдавать пакет XOFF ? А можете порекомендовать такой сетевой адаптер?

Цитата(Aprox @ Jan 13 2012, 21:44) *
...Я тут полазил по последним новациям и обнаружил, что продвинутая общественность использует серверные сетевые адаптеры для ввода быстрых потоков непосредственно в память ПК, минуя Винды и центральный процессор. Удовольствие не сказать, чтобы очень дорогое. Пошукайте, может, вообще FlowCntrol не понадобится.

Flow control поддерживается всеми современными сетевыми адаптерами (Gigabit Ethernet, PCIe). Даже недорогими. "Зачем же платить больше ?" ©
Костян
QUOTE (Aprox @ Jan 13 2012, 16:44) *
Я тут полазил по последним новациям и обнаружил, что продвинутая общественность использует серверные сетевые адаптеры для ввода быстрых потоков непосредственно в память ПК, минуя Винды и центральный процессор. Удовольствие не сказать, чтобы очень дорогое. Пошукайте, может, вообще FlowCntrol не понадобится.

и как такие сетевухи именуются ? все равно же они сидят на PCIe . различие по всей видимости будет в дровах.
Костян
установка бита en_pause в PHY ничего не дало. по прежнему нету пакетов пауз.
Konst_777
Цитата(Костян @ Dec 28 2011, 15:40) *
Итак дано
ПЛИС -> Ethernet PHY -> кроссовый кабель -> ПК...

Цитата(Костян @ Feb 14 2012, 16:35) *
установка бита en_pause в PHY ничего не дало. по прежнему нету пакетов пауз.

А что за ПЛИС, MAC и PHY Вы используете?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.