Page MenuHomeVyOS Platform

VPP num-rx-desc and num-tx-desc limits (16384) are lower than Mellanox hardware maximums (32768)
Closed, ResolvedPublicFEATURE REQUEST

Description

The VyOS CLI validation limits num-rx-desc and num-tx-desc for VPP interfaces to a maximum of 16384. However, modern hardware like Mellanox ConnectX-4/5/6 supports up to 32768 descriptors.

When attempting to tune the descriptor queues for a 40Gbps interface, the CLI rejects the valid hardware value.

According to vppctl show hardware-interfaces detail, the hardware max is clearly reported as 32768 by the DPDK driver. The CLI definitions (likely in vpp.xml.in or related validation scripts) need to be expanded to allow <256-32768> or higher, as restricting it prevents proper performance tuning on high-speed ISP environments.

  1. Steps to reproduce
set vpp settings interface eth2 num-rx-desc 32768
set vpp settings interface eth2 num-tx-desc 32768
  1. Expected behavior

The CLI should accept 32768 as a valid descriptor value, passing it to VPP.

  1. Actual behavior

The CLI validation rejects the value:

set vpp settings interface eth2 num-rx-desc 32768
Possible completions:
   <256-16384>          Number of descriptors in receive ring

set vpp settings interface eth2 num-tx-desc 32768
  Number is not in any of allowed ranges
  Value validation failed
  1. System Information
Version:          VyOS 2026.08.19-0012-rolling
Release train:    rolling
Release flavor:   generic
Architecture:     x86_64
System type:      bare metal
Hardware vendor:  Supermicro
  1. Additional Context

VPP clearly sees the hardware capability of 32768:

sudo vppctl show hardware-interfaces detail eth2
              Name               Idx   Link  Hardware
eth2                               1     up   eth2
  Link speed: 40 Gbps
  RX Queues:
    queue thread         mode    
    0     vpp_wk_0 (1)   polling 
    1     vpp_wk_1 (2)   polling 
    2     vpp_wk_2 (3)   polling 
    3     vpp_wk_3 (4)   polling 
    4     vpp_wk_4 (5)   polling 
    5     vpp_wk_0 (1)   polling 
  TX Queues:
    TX Hash: [name: hash-eth-l34 priority: 50 description: Hash ethernet L34 headers]
    queue shared thread(s)      
    0     no     0
    1     no     1
    2     no     2
    3     no     3
    4     no     4
    5     no     5
  Ethernet address 98:03:9b:c4:a0:00
  Mellanox ConnectX-4/5/6 Family
    carrier up full duplex max-frame-size 1522  promisc
    flags: admin-up promisc maybe-multiseg tx-offload intel-phdr-cksum rx-ip4-cksum
    Devargs: 
    rx: queues 6 (max 1024), desc 16384 (min 0 max 32768 align 1)
    tx: queues 6 (max 1024), desc 8192 (min 0 max 32768 align 1)
    pci: device 15b3:1017 subsystem 15b3:0007 address 0000:01:00.00 numa 0
    switch info: name 0000:01:00.0 domain id 0 port id 65535
    module: id QSFP+, compatibility: 40g_active_cable

Details

Version
2026.08.19-0012-rolling
Is it a breaking change?
Behavior change
Issue type
Bug (incorrect behavior)

Event Timeline

pautiina triaged this task as Normal priority.
pautiina created this object in space S1 VyOS Public.
Viacheslav changed the task status from Open to In progress.Mon, Sep 7, 10:39 AM
Viacheslav claimed this task.
Viacheslav changed the subtype of this task from "Task" to "Feature Request".Mon, Sep 7, 11:10 AM
Viacheslav moved this task from Need Triage to Completed on the VyOS Rolling board.

Will be available in the next rolling release.