Настройки обработчика пакетов

Обработчик пакетов настраивается через файл dataplane.conf.

Оптимальные настройки определяются автоматически при запуске.

Комментарии задаются через #, // или /* */.

Доступные параметры:

# TCP-порт управления приложением.
# [1, 65535]
control_port: 8888

# Отладочный TCP-порт управления приложением.
# [1, 65535]
debug_port: 8889

# TCP-порт управления приложением через gRPC.
# [1, 65535]
grpc_port: 8890

# Количество потоков обработки запросов к порту управления.
# [1, 1000]
control_threads: 20

# Таймаут обработки запросов к порту управления (секунды).
# [1, 10000]
control_request_timeout: 15

# Таймаут обработки содержимого запросов/ответов порта управления (секунды).
# [1, 10000]
control_content_timeout: 300

# Включение логирования событий порта управления.
control_log: false

# Ограничение на максимальную длину сообщения логирования событий порта управления.
# [0, 100000]
control_log_limit: 100

# Количество потоков обработки синхронизации данных.
# [1, 1000]
sync_threads: 10

# Включение логирования событий синхронизации данных.
sync_log: false

# LACP system ID.
# Если не задан, используется локальный MAC-адрес.
lacp_system_id: <auto-detect>

# Операционный ключ порта LACP.
# [0, 65535]
lacp_oper_key: 1000

# Период повторной отправки запросов резолвера MAC-адресов (секунды).
# [1, 10000]
mac_retransmit_time: 5

# Время жизни валидных записей резолвера MAC-адресов (секунды).
# [1, 10000]
mac_reachable_time: 30

# Время жизни протухших записей резолвера MAC-адресов (секунды).
# [1, 10000]
mac_stale_time: 60

# Максимально допустимое количество политик IPv4.
# [1, 60000]
max_policies: 100

# Максимально допустимое количество политик IPv6.
# [1, 60000]
max_policies6: 100

# Максимально допустимая разрядность используемых SIMD-инструкций.
# [0, 512]
max_simd_bitwidth: <автоопределение>

# Включение пропуска обработки трафика при перегрузке обработчика пакетов
# (для `port_direct_mode: false`).
congestion_bypass: false

# Включение отложенного старта обработки пакетов.
# Сетевые порты поднимаются только после полной инициализации приложения.
# Предотвращает появление петель на сети.
deferred_start: false

# Включение особого режима работы с сетевыми картами с двумя портами
# (для `port_direct_mode: true`).
# Каждый порт карты обрабатывается на отдельном наборе ядер.
# Улучшает производительность на скоростях 100G и выше,
# если используются оба порта одновременно.
dual_port_nic: false

# Размер пула памяти сетевых пакетов (на NUMA-ноду).
# [0, 2^31]
packet_mempool_size: <автоопределение>

# Режим обработки I/O-очередей сетевых портов:
#   `false` - обрабатывать I/O-очереди портов на выделенных ядрах,
#     рекомендуется для небольших скоростей;
#   `true` - обрабатывать I/O-очереди портов на ядрах обработки пакетов,
#     рекомендуется для скоростей 100G и выше.
port_direct_mode: false

# Скорость сетевых портов (Мбит/с).
# Отключает автосогласование скорости, если задано.
# [100|1000|10000|...] или [100M|1G|10G|...]
port_link_speed: <автосогласование>

# Включение синхронизации состояния линка пар сетевых портов.
port_lsp: false

# MTU сетевых портов.
# [0, 65535]
port_mtu: 1500

# Размер кольцевых буферов обмена пакетами между ядрами обработки I/O-очередей сетевых
# портов и ядрами обработки пакетов (для `port_direct_mode: false`).
# [0, 2^20]
port_ring_size: 8192

# Количество RX-дескрипторов сетевых портов.
# [0, 65535]
port_rx_desc: 1024

# Количество TX-дескрипторов сетевых портов.
# [0, 65535]
port_tx_desc: 1024

# Максимальное количество попыток повторной отправки сетевых пакетов в порт.
# [0, 2^31]
port_tx_retries: 128

# Ядра обработки I/O-очередей сетевых портов (для `port_direct_mode: false`).
# Список диапазонов [0, 127] или `ht|noht`:
#   `ht` - автоопределение, использовать HT-пары ядер;
#   `noht` - автоопределение, не использовать HT-пары ядер.
port_cores: <автоопределение>

# Количество ядер обработки I/O-очередей сетевых портов
# (на NUMA-ноду, для `port_direct_mode: false`).
# [0, 128]
port_cores_nr: <автоопределение>

# NUMA-ноды ядер обработки I/O-очередей сетевых портов.
# Список диапазонов [0, 1] или `all`:
#   `all` - использовать все ноды.
port_nodes: <автоопределение>

# Ядра обработки пакетов.
# Список диапазонов [0, 127] или `ht|noht`:
#   `ht` - автоопределение, использовать HT-пары ядер;
#   `noht` - автоопределение, не использовать HT-пары ядер.
worker_cores: <автоопределение>

# Количество ядер обработки пакетов (на NUMA-ноду).
# [0, 128]
worker_cores_nr: <автоопределение>

# NUMA-ноды ядер обработки пакетов.
# Список диапазонов [0, 1] или `all`:
#   `all` - использовать все ноды.
worker_nodes: <автоопределение>

# Список сетевых портов.
# Определяет сетевые порты, используемые обработчиком пакетов.
# Настраивает пары портов, зоны портов и их порядок.
# Формируется автоматически для всех обнаруженных портов, если не задан.
# Если задан, должны быть перечислены все используемые порты.
#
# Формат:
#   <зона_порта> [ext|int] <индекс_пары> [0, 255] : <id_порта>
# id_порта:
#   <pci_адрес> или <номер_порта> [0, 255] или <имя_порта> (строка).
#
# Пример:
ext0: 01:00.0
int0: 01:00.1
ext1: 04:00.0
int1: 04:00.1