Привет! С прерываниями уже давно научились бороться: поллинг во Фре был ещё в конце 90-х AFAIR ;) Коме прерываний, DPDK помогает избежать переключений контекста (драйвера карт работают в userspace), экономит кэш блока управления памятью (используя hugepages) и предоставляет базовые библиотеки (от управления памятью до QoS). DPI пишут. Кстати, BIRD тоже пытаются интегрировать с VPP: https://wiki.fd.io/view/VPP_Sandbox/router Andriy
On 29 Jun 2016, at 14:11, Volodymyr Litovka
wrote: Для DPDK выделяется отдельный CPU core (или несколько), которые заняты опрашиванием сетевых карт на предмет новых данных. Это позволяет процессорам не отвлекаться на прерывания, что существенно упрощает жизнь системе "в целом".
Но DPI - в любом случае в тысячи раз более "тяжелая" задача, чем mac / ip-lookup :) Тут нужна предельная оптимизация кода, но, на самом деле, всё равно вся надежда на Intel, в программистов я не верю :-)
On 6/29/16 3:07 PM, Andrii Stesin wrote: Если мне не изменяет техническая интуиция, DPDK расшивает узкое "горлышко" архитектуры, а уж такие вещи как DPI etc. реализуются просто на процессоре(ах) в общей RAM без каких-то особых ухищрений, в N потоков, ...
2016-06-29 14:45 GMT+03:00 Volodymyr Litovka
: Свичинг - не вопрос. Даже ip routing уже почти не вопрос.
Вопрос - анализ и обработка пакетов. Например, vBNG (QoS, ACL, accounting) или DPI или whatever else выше простого ip lookup.
On 6/29/16 2:43 PM, Andrii Stesin wrote: Кстати быстрый свитчинг на интеле - вопрос уже очень недурно проработан, см. http://dpdk.org/ и что характерно http://openvswitch.org/ is the default switch in XenServer 6.0 в частности, и он на базе DPDK https://github.com/openvswitch/ovs/blob/master/FAQ.md
-- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison