FastNetMon

Wednesday 25 June 2014

Пару слов о режимах работы PF_RING

parm:           transparent_mode

0=standard Linux,
1=direct2pfring+transparent,
2=direct2pfring+non transparent

For 1 and 2 you need to use a PF_RING aware driver (uint).

Как можно понять, стандартно используется режим 0, так как 1 и 2 требуют установки специального драйвера. Где его взять? В дистрибутиве PF_RING в папке drivers/PF_RING_aware. Папку DNA пока не трогайте, она Вам незачем пока что.

Теперь шерстите папки :) Но вообще я Вам не рекомендую заниматься чем-то подобным, если у Вас сетевая не класса 82599. То есть можете, но не факт, что все будет работать, как Вам нужно.

Итак, идем в папку cd intel/ixgbe/ixgbe-3.21.2-zc/src (мой случай), собираем и устанавливаем в систему драйвер (тут установка штучная, в продакшене соберите пакет или используйте dkms):
make
make install

И после этого загружаете драйверы спец скриптом:
./load_driver.sh

Если он начнет ругаться "не могу найти pf_ring.ko", то исправьте к нему путь на абсолютный. Тоже самое касается случая, когда Вам нужен иной transparent_mode, его нужно указать драйверу явно в этом же файле.

Теперь убеждаемся, что у нас запустилась пропатченная версия драйвера, а не системная. Это можно легко определить по выдаче команды modinfo ixgbe. Следующие строки есть только в патченном драйвере.
parm:           numa_cpu_affinity:Comma separated list of core ids where per-adapter memory will be allocated (array of int)
parm:           enable_debug:Set to 1 to enable debug tracing into the syslog (uint)
 А вот дальше возникли сложности, так как хидер pfring_zc.h не устанавливается при установке либы, о чем я уже отправил багрепорт. 

No comments :

Post a Comment

Note: only a member of this blog may post a comment.