Здравствуйте. Интересует мнение экспертов в правильном ли я направлении думаю. Есть FPGA PCIe карточка на Virtex-6 или 7, у которой есть 4-8шт 10Gbit SFP+ Портов. Через SFP порты карточка подключается к Ethernet. Хотелось бы сделать из нее нечто вроде "продвинутой" сетевой карты. "Продвинутость" должна заключаться в том, что ПЛИС должна выделять из сетевого трафика отдельные MAC фреймы и обрабатывать из локально, чтобы получить более быструю реакцию на определенные события в сети. Весь остальной трафик должен тупо передаваться на CPU по PCIe для дальнейшей обработки процессором, в таком виде, как это обычно делает обычная сетевая карта. Я так понимаю, что на уровне PCIe ПЛИС должна эмулировать какой-либо из стандартных Intelовских сетевых контроллеров типа i82xxx, чтобы она работала со стандартным драйвером со стороны процессора. Это так?
Ну и собственно основной вопрос - так вообще делают? Просто мы с таким в своих проектах не сталкивались, мы с PCIe больше дружим, а Ethernet только под свои нужды использовали. Выглядит не сильно сложно, но насколько это нетривиальная задача по реализации? В сети читаю, что так борются с DDoS атаками, а также делают майнинг. Ну и вопрос, как такая карточка должна определяться со стороны CPU? Как свитч и несколько "виртуальных" endpoints?
|