Skip to content

Dataplane

Dataplane and DPDK configuration.

Field Type Description Example
rx_mode string Interface RX mode: polling, interrupt, or adaptive polling
dpdk DPDK DPDK-specific configuration
statseg StatsSegment Stats segment configuration

RX Mode

Controls how VPP polls AF_PACKET host interfaces for incoming packets.

  • interrupt (default): Workers sleep until the kernel signals a packet arrival. Near-zero CPU when idle.
  • polling: Each worker thread busy-polls its assigned interfaces, pinning its core at 100% CPU even when idle. This is by design in VPP to maximise time spent packet processing and minimise latency.
  • adaptive: VPP dynamically switches between polling and interrupt based on traffic load.

LCP tap interfaces are always set to interrupt mode regardless of this setting. These interfaces exist to pass control plane packets (BGP, OSPF, ARP, ND, etc.) into the kernel for FRR and do not benefit from polling.

This setting does not affect DPDK interfaces, which manage their own RX mode independently.

dataplane:
  rx_mode: polling

Stats Segment

Field Type Description Example
size string Stats segment size 64m
page-size string Page size 2m
per-node-counters bool Enable per-node counters true

DPDK Configuration

Field Type Description Example
uio_driver string UIO driver: vfio-pci, uio_pci_generic vfio-pci
devices DPDKDevice List of DPDK devices
dev_defaults DPDKDeviceOptions Default device options applied to all devices
socket_mem string Hugepage memory per socket 1024,1024
no_multi_seg bool Disable multi-segment mbufs false
no_tx_checksum_offload bool Disable TX checksum offload false
enable_tcp_udp_checksum bool Enable TCP/UDP checksum false
max_simd_bitwidth int Max SIMD bitwidth 512

DPDK Devices

Field Type Description Example
pci string PCI address 0000:05:00.0
name string Interface name eth1
options DPDKDeviceOptions Per-device options

DPDK Device Options

Applies to both per-device options and global dev_defaults.

Field Type Description Example
num_rx_queues int Number of RX queues 2
num_tx_queues int Number of TX queues 2
num_rx_desc int RX descriptor ring size 1024
num_tx_desc int TX descriptor ring size 1024
tso bool Enable TCP segmentation offload false
devargs string Additional device arguments
rss_queues string RSS queue configuration
no_rx_interrupt bool Disable RX interrupts false

Example

dataplane:
  statseg:
    size: 64m
    per-node-counters: true
  dpdk:
    dev_defaults:
      num_rx_queues: 2
      num_tx_queues: 2
    devices:
      - pci: "0000:05:00.0"
        name: eth1
      - pci: "0000:06:00.0"
        name: eth2
        options:
          num_rx_queues: 4
    socket_mem: "1024,1024"