реклама на сайте
подробности

 
 
> FPGA + PCIe ethernet сниффер, общая информация
некуцй
сообщение Oct 20 2012, 20:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 19-07-12
Пользователь №: 72 823



доброго времени суток!
Стоит следующая задача - подключить некоторое количество сетевых карточек Intel 82574l (через свич вестимо) к FPGA (присматриваюсь пока к cyclone IV GX )
на 100 Мбит снифить входящий из сети поток и вытаскивать данные из определенных пакетов (сетевой протокол уровня tcp) и передачи содержимого на ПК
отсюда куча вопросов новичка в реализации этого дела

1 есть ли примеры подключения pcie (или pci) сетевухи к данным fpga?
как я понимаю, мне надо будет сконфигурировать чип при старте, а потом по DMA вытаскивать из него ethernet пакеты и анализировать их?
понемного начал читать про режимы конфигурирования на шине, чуствую, что не совсем пока представляю весь объем необходимой работы (пока с pci работал программно , на уровне API ОС , где не недо было думать о начальной конфигурации)

2 допустим я разобрался с подключением одного чипа, а как быть с несколькими чипами и мостом? ведь хост(в даннмо случае FPGA) должен выделить память под каждое устройство на шине? вероятно придется еще и память внешную прикручивать (а возможно ее придется прикручивать и при одиночном чипе)

2 насколько я понял, cyclone IV GX (а конекретнее EP4CGX15BF14) содержит аппаратную реализацию одного pcie порта , который может быть x4
можно ли реализовать связь с сетью через аппаратное pcie ядро а связь с вышестоящей системой через оставшиеся линии (достаточно x1)
пока в голову лишь лезет реализация обычного PCI для связи с ПК , если потребуется в будущем PCIE то видимо придется поставить мост PEX 8112

3 в идеале , все таки хотелось, чтобы данные сетевухи были прозрачные для вышестоящей системы
то есть fpga будет выступать в роли отдельного устройства, которое просто будет снифить входящий траффик, после того как ПК сконфигурирует сетевые чипы сама
как такое можно реализовать?
мне такой вариант больше подуше , ибо не надо будет заниматься конфигурированием всего этого мяса, правда чтобы вычленить нужные данные , мне необходимо будет знать положение и данные об конфигурационном пространстве каждого из чипов на шине, а это значит что мне все таки придется с ними общаться в рамках шины (а не тупо снифить линию)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
некуцй
сообщение Oct 21 2012, 07:39
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 19-07-12
Пользователь №: 72 823



Цитата(Flood @ Oct 21 2012, 03:31) *
Как-то трудно понять, о чем все-таки идет речь.
FPGA должна перехватывать поток на шине PCIe, или на Ethernet'е? Зачем нужны сетевые карты?

Сетевые карты нужны поскольку уже есть готовая система на них , которая программно выполняет все возложенные задачи задачи (пассивный снифф , и просто работа со всеми протоколами, которые могут быть в данных сетях) , цель стоит именно в передачи части функционала (а именно только прослушки) для разгрузки процессора
Насколько я знаю подключать к FPGA PHY езернета через MDI и им подобные интерфейсы хреновый вариант ибо ethernet МAC ядро у альтеры платное (я пока не знаю насколько сложная его самостоятельная реализация и есть ли бесплатные аналоги)


посмотрел, у 82574l есть NC-SI интерфейс, судя по описанию это как раз то, что мне нужно!
Прикрепленное изображение

вроде как фильтрация по MAC адресам и vlan тегам релизуется в самом контроллере а не FPGA а это еще более упрощает задачу
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 21 2012, 11:43
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(некуцй @ Oct 21 2012, 11:39) *
Сетевые карты нужны поскольку уже есть готовая система на них , которая программно выполняет все возложенные задачи задачи (пассивный снифф , и просто работа со всеми протоколами, которые могут быть в данных сетях) , цель стоит именно в передачи части функционала (а именно только прослушки) для разгрузки процессора


Я не большой специалист в данном вопросе, но по моему мнению, в данной постановке задача неподъемная.
У вас имеется некая процессорная система с сетевыми картами и почти наверняка linux-системой, с навороченным над нею программным пакетным обработчиком.
Теперь вы хотите заменить могучий процессор на дохлую FPGA, заставить ее работать с сетевыми картами по PCIe и аппаратно что-то там делать с пакетами. Насколько я понимаю данную область, это практически нереально. Придется аппаратно реализовать драйвер сетевой карты, TCP/IP и прочие прелести.

Что касается простого пассивного подслушивания 100Мбит портов, это можно сделать на FPGA, но врезаться нужно не в PCIe шину, а в Ethernet. Сложность окажется намного меньшей. Однако, и для этой задачи FPGA - не самое лучшее решение.

Вражеская промышленность предлагает море готовых решений в виде специализированных многоядерных сетевых процессоров, оснащенных большим количеством MAC-интерфейсов, а зачастую - и совсем уж специальных сетевых акселераторов. Все это сдобрено готовыми программными стеками под linux, включая базу для построения DPI-систем, при этом обеспечивается как прозрачность, так и низкие значения задержек. Все это работает с портами до 10Гбит на line-speed. Все что нужно - перейти с процессора общего назначения на сетевой и перенести софт под такой же linux, но усиленный аппаратными ускорителями (под которые уже есть готовые драйверы).

В зависимости от тяжести задачи можно применять как универсальные сетевые процессоры (много жрут, могут все), например: Broadcom XLR/XLP, Cavium Octeon, Freescale QorlQ, или же пакетные процессоры (очень много портов, ограниченные возможности обработки) EZchip, Marvell Xelerated, и др.

Есть готовые платы (обычно ATCA), например, от Radisys, снаружи - набор Ethernet-портов (обычно 1Гбит, 10Гбит), внутри - пара XLR или Octeon'ов + управляющая система на PowerPC.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th September 2025 - 06:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016

IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here