1
0
mirror of https://github.com/pavel-odintsov/fastnetmon synced 2024-11-23 17:32:59 +01:00
fastnetmon-rewritten/README_ZC.md
Pavel Odintsov ebb15616cd Fix
2014-10-17 17:17:38 +04:00

1.1 KiB
Raw Blame History

Как обеспечить работу с PF_RING в режиме ZC и обрабатывать до 14 MPPS?

Нужно наложить следующие патчи:

  1. Включаем REENTRANT_MODE, чтобы можно было выбирать пакеты из нескольких потоков и не крашить PF_RING
-unsigned int num_threads = 1;
+unsigned int num_threads = 8;
  1. Активируем многопоточную выборку пакетов:
-    pfring_loop(pf_ring_descr, parse_packet_pf_ring, (u_char*)NULL, wait_for_packet);
+    boost::thread* my_calc_threads[8];
+
+    for (int number_of_thread=0; number_of_thread<8; number_of_thread++) {
+        my_calc_threads[number_of_thread] = new boost::thread(pfring_loop, pf_ring_descr, parse_packet_pf_ring, (u_char*)NULL, wait_for_packet);
+    } 
  1. Раскомментируем парсер пакетов, так как в режиме ZC он отключен и именно он производит основную нагрузку на систему:
// pfring_parse_pkt((u_char*)p, (struct pfring_pkthdr*)h, 5, 0, 0);