Packet processor settings

The packet processor is configured through the data-plane.conf file.

The optimal settings are determined automatically at startup. By default, this file is empty.

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

Available parameters:

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

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

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

// Control socket request timeout (seconds).
// [0, 10000]
control_request_timeout: 15

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

// Enable control socket log.
control_log: false

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

// Maximum supported number of IPv4 policies.
// [1, 60000]
max_policies: 100

// Maximum supported number of IPv6 policies.
// [1, 60000]
max_policies6: 100

// Size of packet memory pool (per NUMA node).
// [1, 2^31] or `auto` for auto-detect.
packet_mempool_size: auto

// Maximum allowed SIMD bitwidth.
// [0, 512] or `auto`
max_simd_bitwidth: auto

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

// Deferred start of packet processing.
deferred_start: false

// Link state propagation of port pairs.
port_lsp: false

// Port MTU (for all ports).
// [0, 65535]
port_mtu: 1500

// Number of port RX queue ring descriptors.
// [0, 65535]
port_rx_desc: 1024

// Number of port TX queue ring descriptors.
// [0, 65535]
port_tx_desc: 1024

// Maximum retries of port packet TX (power of 2).
// [0, 63]
port_tx_retries: 7

// Port direct IO mode.
// If `true`, process ports on single core per port RX/TX queue.
// Boolean or `auto` for auto-detect.
port_direct_mode: auto

// Bypass traffic on packet processor congestion (for `port_direct_mode: false`).
congestion_bypass: false

// Process each port of dual-port NIC on separate cores (for `port_direct_mode: true`).
// Improves performance for 100G or larger ports when both ports are used.
dual_port_mode: false

// Size of port RX/TX packet ring buffers (for `port_direct_mode: false`).
// [1, 2^20]
port_ring_size: 8192

// Port RX IO core list (for `port_direct_mode: false`).
// Range list [0, 127] or `auto|ht|noht`:
//   `auto` - auto-detect,
//   `ht` - auto-detect, use HT core pairs,
//   `noht` - auto-detect, do not use HT core pairs.
port_cores: auto

// Number of port IO cores (per NUMA node, for `port_direct_mode: false`).
// [0, 128], 0 - auto-detect
port_cores_nr: 0

// Port NUMA nodes.
// Range list [0, 1] or `auto|all`:
//   `auto` - auto-detect,
//   `all` - use all nodes.
port_nodes: auto

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

// Limit number of worker cores (per NUMA node).
// [0, 128], 0 - unlimited
worker_cores_nr: 0

// Worker NUMA nodes.
// Range list [0, 1] or `auto|all`:
//   `auto` - auto-detect,
//   `all` - use all nodes.
worker_nodes: auto

// Port list and settings.
// 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` [aaaa:bb:cc.d|bb:cc.d] or `Port number` [0, 255] or `Port name`.
ext0: 0
  // Number of port RX queue ring descriptors.
  // [0, 65535], 0 - default
  rx_desc: 0

  // Number of port TX queue ring descriptors.
  // [0, 65535], 0 - default
  tx_desc: 0

  // Port direct IO mode.
  // Boolean or `auto` for auto-detect.
  direct_mode: auto

  // Port RX IO cores (for `direct_mode: false`).
  // Range list [0, 127] or `auto|ht|noht`:
  //   `auto` - auto-detect,
  //   `ht` - auto-detect, use HT core pairs,
  //   `noht` - auto-detect, do not use HT core pairs.
  cores: auto

  // Number of port IO cores (per NUMA node, for `direct_mode: false`).
  // [0, 128], 0 - auto-detect
  cores_nr: 0

  // Port NUMA nodes.
  // Range list [0, 1] or `auto|all`:
  //   `auto` - auto-detect,
  //   `all` - use all nodes.
  nodes: auto