Packet processor settings

The packet processor is configured through the dataplane.conf file.

The optimal settings are determined automatically at startup.

Comments are specified with #, // or /* */.

Available parameters:

# Control socket TCP port.
# [1, 65535]
control_port: 8888

# Debug control socket TCP port.
# [1, 65535]
debug_port: 8889

# gRPC control socket TCP port.
# [1, 65535]
grpc_port: 8890

# Number of control socket processing threads.
# [1, 1000]
control_threads: 20

# Control socket request timeout (seconds).
# [1, 10000]
control_request_timeout: 15

# Control socket request/response content timeout (seconds).
# [1, 10000]
control_content_timeout: 300

# Enable control socket event log.
control_log: false

# Control socket event log message length limit.
# [0, 100000]
control_log_limit: 100

# Number of sync task threads.
# [1, 1000]
sync_threads: 10

# Enable sync task log.
sync_log: false

# LACP system ID.
# Set to local MAC address if not specified.
lacp_system_id: <auto-detect>

# LACP port operational key.
# [0, 65535]
lacp_oper_key: 1000

# MAC resolver request retransmit delay (seconds).
# [1, 10000]
mac_retransmit_time: 5

# MAC resolver entry validity period (seconds).
# [1, 10000]
mac_reachable_time: 30

# MAC resolver stale entry cleanup timeout (seconds).
# [1, 10000]
mac_stale_time: 60

# Maximum allowed number of IPv4 policies.
# [1, 60000]
max_policies: 100

# Maximum allowed number of IPv6 policies.
# [1, 60000]
max_policies6: 100

# Maximum allowed SIMD instruction bitwidth.
# [0, 512]
max_simd_bitwidth: <auto-detect>

# Enable traffic bypass on packet processor congestion (for `port_direct_mode: false`).
congestion_bypass: false

# Enable deferred start of packet processing.
# Starts ports only after full application initialization.
# Prevents network traffic loops.
deferred_start: false

# Enable special processing mode of dual-port NICs (for `port_direct_mode: true`).
# Process each port on a separate set of cores.
# Improves performance for 100G or larger ports when both ports are used.
dual_port_nic: false

# Size of network packet memory pool (per NUMA node).
# [0, 2^31]
packet_mempool_size: <auto-detect>

# Processing mode of network port I/O queues:
#   `false` - process port I/O queues on dedicated cores,
#     recommended for low speeds.
#   `true` - process port I/O queues on worker cores,
#     recommended for 100G or higher speeds.
port_direct_mode: false

# Network port link speed (Mb/s).
# [100|1000|10000|...] or [100M|1G|10G|...]
port_link_speed: <auto-negotiate>

# Enable link state propagation of port pairs.
port_lsp: false

# Network port MTU.
# [0, 65535]
port_mtu: 1500

# Size of packet ring buffers between network port I/O queue processing cores
# and worker cores (for `port_direct_mode: false`).
# [0, 2^20]
port_ring_size: 8192

# Number of network port RX descriptors.
# [0, 65535]
port_rx_desc: 1024

# Number of network port TX descriptors.
# [0, 65535]
port_tx_desc: 1024

# Maximum number of retry attempts of network port packet TX.
# [0, 2^31]
port_tx_retries: 128

# Network port I/O queue processing cores (for `port_direct_mode: false`).
# Range list [0, 127] or `ht|noht`:
#   `ht` - auto-detect, use HT core pairs,
#   `noht` - auto-detect, do not use HT core pairs.
port_cores: <auto-detect>

# Number of network port I/O queue processing cores
# (per NUMA node, for `port_direct_mode: false`).
# [0, 128]
port_cores_nr: <auto-detect>

# NUMA nodes of network port I/O queue processing cores.
# Range list [0, 1] or `all`:
#   `all` - use all nodes.
port_nodes: <auto-detect>

# Worker cores.
# Range list [0, 127] or `ht|noht`:
#   `ht` - auto-detect, use HT core pairs,
#   `noht` - auto-detect, do not use HT core pairs.
worker_cores: <auto-detect>

# Number of worker cores (per NUMA node).
# [0, 128]
worker_cores_nr: <auto-detect>

# Worker core NUMA nodes.
# Range list [0, 1] or `all`:
#   `all` - use all nodes.
worker_nodes: <auto-detect>

# Network port list.
# Defines network ports used by packet processor.
# Configures port pairs, port zones and their order.
# Auto-configured for all detected ports if not specified.
# If specified, all used ports must be listed.
#
# Format:
#   <port_zone> [ext|int] <pair_index> [0, 255] : <port_id>
# port_id:
#   <pci_address> or <port_number> [0, 255] or <port_name> (string).
#
# Example:
ext0: 01:00.0
int0: 01:00.1
ext1: 04:00.0
int1: 04:00.1