- build-essential # Компиляторы GCC, make
- meson # Система сборки
- ninja-build # Ускоритель сборки
- python3 # Для скриптов DPDK
- python3-pyelftools # Обработка ELF файлов
- libnuma-dev # Поддержка NUMA
- pkg-config # Конфигурация пакетов
- iproute2 # Управление сетью
- iputils-arping # Генерация трафика
- wget # Загрузка DPDK
git clone <URL_репозитория>
cd dpdk-rxtx-callbacksdocker build -t dpdk-rxtx-callbacks .mkdir -p logsdocker run --rm --privileged \
-v $(pwd)/logs:/logs \
dpdk-rxtx-callbacksПосле запуска контейнер автоматически:
- Настраивает hugepages
- Создает TAP интерфейсы tap0 и tap1
- Запускает DPDK приложение
- Генерирует сетевой трафик на 20 секунд
- Сохраняет логи в /logs/
В директории ./logs/ появится файл: dpdk_test_{дата}_{время}.log
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
Port 0 MAC: 12:34:56:78:9a:bc
Port 1 MAC: bc:9a:78:56:34:12
Core 0 forwarding packets. [Ctrl+C to quit]
Latency = 15 cycles
Latency = 12 cycles
Latency = 14 cycles
Latency = 11 cycles
Latency = 13 cycles