Перейти к содержанию
    

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

Может поможет проект 1G Ethernet DPI: https://opencores.org/project/1g_ethernet_dpi

Там реализовано сквозное моделирование при помощи DPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Успехов! Rob.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

42 minutes ago, Flood said:

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

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

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, RobFPGA said:

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

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

Удачи! Rob.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

31 minutes ago, Flood said:

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

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

Успехов! Rob. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, RobFPGA said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

8 hours ago, fguy said:

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

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

Удачи! Rob.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 и сколько это может стоить?..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

17 minutes ago, :-) said:

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

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

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

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...