Packet Processor Settings

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

Put the file into the MITIGATOR working directory and set the required parameters. Other parameters will have the default values.

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

Available parameters (with default values):

# Control socket bind address.
control_address: 0.0.0.0

# 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

# Sync/web-challenger control socket UDP port.
# [1, 65535]
sync_udp_port: 8891

# 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

# Enable additional cores for sync/web-challenger control socket.
use_extra_service_cores: false

# MAC address of emitted challenge packets.
challenge_mac: <not set>

# VLAN ID of emitted challenge packets.
# [1, 4095]
challenge_vlan_id: <not set>

# 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>

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

# 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

# RX checksum offloading policy:
#   `false` - do not request the offloading, force software checksum verification.
#   `true` - enable the offloading for all ports if supported.
# Enables offloading only for physical ports if not specified.
port_checksum_offload: <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: <auto-detect>

# Network port link speed (Mb/s).
# Disables speed autonegotiation if enabled.
# [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