Jump to content
    

Низкоуровневая верификация TCP/IP стека в FPGA

3 часа назад, RobFPGA сказал:

Приветствую! 

Нет не путаю - 4 штуки 10G по UDP льют из FPGA общий поток параллельно. На приемной стороне все собирается опять в один поток.

Успехов! Rob.

Если приемная сторона это процессор, то как справляется с этим потоком? Не секрет, какой размер ethernet фрейма и UDP сообщения?

Share this post


Link to post
Share on other sites

Приветствую!

42 minutes ago, Flood said:

Если приемная сторона это процессор, то как справляется с этим потоком? Не секрет, какой размер ethernet фрейма и UDP сообщения?

Да нормально справляется, 2x 4-ядерных Хeon принимают и синхронизирует потоки, пишут на SSD raid, да еще и кой-какую обработку и статистику по потоку считают - для нынешнего железа это не проблема. По UDP бегают jumbo с payload 4-8K. Но это уже старая система - медленная ;)

Удачи! Rob.

Share this post


Link to post
Share on other sites

1 hour ago, RobFPGA said:

Приветствую!

Да нормально справляется, 2x 4-ядерных Хeon принимают и синхронизирует потоки, пишут на SSD raid, да еще и кой-какую обработку и статистику по потоку считают - для нынешнего железа это не проблема. По UDP бегают jumbo с payload 4-8K. Но это уже старая система - медленная ;)

Удачи! Rob.

А не подскажете, как с потерями данных? Вот прямо сейчас пытаемся по 10Г на сетевую карту предать данные, так даже на скорости 100мбит/c пакеты куда-то деваются(ОС W7). Раньше как-то не приходилось передавать данные на сетевую карту, всё больше на ПЛИС+PCI, потому и подвоха не ждал. А тут..(

Share this post


Link to post
Share on other sites

1 час назад, RobFPGA сказал:

Да нормально справляется, 2x 4-ядерных Хeon принимают и синхронизирует потоки, пишут на SSD raid, да еще и кой-какую обработку и статистику по потоку считают - для нынешнего железа это не проблема. По UDP бегают jumbo с payload 4-8K. Но это уже старая система - медленная ;)

Я бы не сказал, что даже для современного железа это простенькая задачка. Проблема не столько в потоке, сколько в приеме большого числа пакетов, которые не могут быть больше нескольких килобайт (и то это уже jumbo).

Один поток 10GE еще ладно, а вот 4 - не поверю что оно просто работает само собой. Тут потребуется объединение прерываний, раскидывание их на разные процессоры, привязка потоков к процессорам и, возможно, маппинг памяти с учетом NUMA.

А вот что оно просто так без дополнительной настройки берет и работает с 4-я потоками 10GE пусть даже и джамбо фреймов - как-то не верится.

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, TRILLER said:

А не подскажете, как с потерями данных? Вот прямо сейчас пытаемся по 10Г на сетевую карту предать данные, так даже на скорости 100мбит/c пакеты куда-то деваются(ОС W7). Раньше как-то не приходилось передавать данные на сетевую карту, всё больше на ПЛИС+PCI, потому и подвоха не ждал. А тут..(

Конечно тут все зависит от конфигурации сети. Если точка - точка  или через хороший  коммутатор и сетевые карты - то для радикального уменьшения потерь надо настраивать  сетевухи для работа в режиме lostless - это типа xon|xoff - когда  сетевуха видит что место в приемном буфере заканчивается то тормозит удаленный передатчик и тот ждет разрешения . Пакеты не теряются но естественно и скорость падает. Соответственно и на стороне FPGA это надо поддерживать. Отлаживалась кстати это сначала как раз на Win7.   Если же сеть на noname мыльницах - то тут увы ничего не поможет.

1 hour ago, Flood said:

...

А вот что оно просто так без дополнительной настройки берет и работает с 4-я потоками 10GE пусть даже и джамбо фреймов - как-то не верится.

Так я и не говорил что без настройки - естественно  пошаманили и с настройками стека и c прерываниями. Но все крутилось на стандартном стеке linux  без новомодных DPDK и тому подобного. Даже 6 потоков в 10g принимали  с трех 2-портовых 10G сетевух. Делалось это уже лет 5 назад. С тех времен это все еще проще стало.

Успехов! Rob.

Share this post


Link to post
Share on other sites

17 часов назад, RobFPGA сказал:

Так я и не говорил что без настройки - естественно  пошаманили и с настройками стека и c прерываниями.

Просто вы часто пишете так, будто все тривиально и для решения задачи не потребовалось ничего делать. Отчего со стороны создается (частенько ложное) впечатление, что достаточно воткнуть кабель и все само заработает :)

Примерно как в ответ на вопрос, как полететь в космос, сказать - "А какие проблемы? Сделали ракету из металла, летает нормально."

Share this post


Link to post
Share on other sites

Приветствую!

2 hours ago, Flood said:

Просто вы часто пишете так, будто все тривиально и для решения задачи не потребовалось ничего делать. Отчего со стороны создается (частенько ложное) впечатление, что достаточно воткнуть кабель и все само заработает :)

Примерно как в ответ на вопрос, как полететь в космос, сказать - "А какие проблемы? Сделали ракету из металла, летает нормально."

А смысл вас пугать " ... что это ужасно сложно.. что ничего у вас не получиться (без меня ;)  )"    Конечно когда этот проект свалился  мне пришлось поломать голову как вывести из FPGA эти 4 GByte/s.  На чем систему записи построить. Увидеть много удивленных лиц когда говорил что мне нужна система для записи гарантированно 4 GByte/s непрерывно как минимум в течении часа. И делать еще более удивленное лицо когда мне выкатывали возможный состав железа и прайс на него. 8-() .

А сейчас конечно все тривиально :)  Вот новая система  - в комп fiber-optic PCIe extender x8 gen3 ,  в FPGA PCIe подключенный к  модулю FireFly - и по одному 100 m кабелю у вас по 6GByte/s  в обе стороны.   Что тут сложного? :)

 

Успехов! Rob.

Share this post


Link to post
Share on other sites

11 минут назад, RobFPGA сказал:

Вот новая система  - в комп fiber-optic PCIe extender x8 gen3 ,  в FPGA PCIe подключенный к  модулю FireFly - и по одному 100 m кабелю у вас по 6Gbyte/s  в обе стороны.   Что тут сложного? :)

Тут разве что сложно понять, почему отказались от решения на Ethernet. Из-за цены?

16 минут назад, RobFPGA сказал:

А смысл вас пугать " ... что это ужасно сложно.. что ничего у вас не получиться (без меня ;)  )" 

При ответе "воткнули - все работает" у вопрошающего возникает ложное ощущение, что задача не стоит и выеденного яйца. Ничего ужасно сложного, конечно, нет. Но и потрудиться, чтобы все заработало, все равно придется. И не только плисоводу (вывести поток), но программисту и системщику тоже (конечно, все это может быть и один человек).

Share this post


Link to post
Share on other sites

Приветствую!

31 minutes ago, Flood said:

Тут разве что сложно понять, почему отказались от решения на Ethernet. Из-за цены?

Нет не отказались - это просто другая система  - но по сравнению с 4-6 параллельными 10G потоками она еще и проще в реализации (в части передачи данных на комп).

Успехов! Rob. 

 

Share this post


Link to post
Share on other sites

4 hours ago, RobFPGA said:

А сейчас конечно все тривиально :)  Вот новая система  - в комп fiber-optic PCIe extender x8 gen3 ,  в FPGA PCIe подключенный к  модулю FireFly - и по одному 100 m кабелю у вас по 6GByte/s  в обе стороны.   Что тут сложного? :)

а зачем на плис вешать "сетевуху" по PCIe? по фэншую xilinx предлагается QSFP на GTY - проще и конструктивно и в плис, тем более что поток в плис сами формируете без всяких линуксов (насколько я понял)

Share this post


Link to post
Share on other sites

Приветствую!

8 hours ago, fguy said:

а зачем на плис вешать "сетевуху" по PCIe? по фэншую xilinx предлагается QSFP на GTY - проще и конструктивно и в плис, тем более что поток в плис сами формируете без всяких линуксов (насколько я понял)

Фэншуй  маловат :( и не позволяет сделать на одной плате размером 3U  и слот для FMC модуля ADC/DAC и поставить пару штук QSFP+ туда же. 

Удачи! Rob.

 

 

 

Share this post


Link to post
Share on other sites

Проверить то, что передатчик правильно формирует пакеты, а приемник их принимает - это, как вы правильно заметили, задача весьма простая. Сложное - правильно реализовать и проверить машины состояний, реагирующие на нештатные ситуации. Вот пример решения такой задачи, в котором без выхода за рамки TCP исследуется подключенное к сети устройство.

https://www.bobbriscoe.net/projects/2020comms/tcp-test/draft-moncaster-tcpm-rcv-cheat-03.html

А вот что пишет нам автор стека lwIP:

http://lists.nongnu.org/archive/html/lwip-users/2016-05/msg00125.html

Share this post


Link to post
Share on other sites

On 10/18/2018 at 8:30 PM, RobFPGA said:

Приветствую!

А смысл вас пугать " ... что это ужасно сложно.. что ничего у вас не получиться (без меня ;)  )"    Конечно когда этот проект свалился  мне пришлось поломать голову как вывести из FPGA эти 4 GByte/s.  На чем систему записи построить. Увидеть много удивленных лиц когда говорил что мне нужна система для записи гарантированно 4 GByte/s непрерывно как минимум в течении часа. И делать еще более удивленное лицо когда мне выкатывали возможный состав железа и прайс на него. 8-() .

А сейчас конечно все тривиально :)  Вот новая система  - в комп fiber-optic PCIe extender x8 gen3 ,  в FPGA PCIe подключенный к  модулю FireFly - и по одному 100 m кабелю у вас по 6GByte/s  в обе стороны.   Что тут сложного? :)

 

Успехов! Rob.

Подскажите, пожалуйста, а как можно реализовать запись потока 4GByte/s и сколько это может стоить?..

Share this post


Link to post
Share on other sites

Приветствую!

17 minutes ago, :-) said:

Подскажите, пожалуйста, а как можно реализовать запись потока 4GByte/s и сколько это может стоить?..

Вопрос слишком общий - в старой системе 2x Xeon, 64GByte, cсервер, 2x 2x10G Ethernet, 2x raid контроллера- 36x 256GB SSD диска.

Сейчас можно было все на PCIe SSD сделать было бы проще.  Это если делать все на "коммерческом" железе.  Сколько это стоит можно прикинуть по прайсам в инете.

Удачи! Rob.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...