---
name: "rte_tm_capabilities"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_tm_capabilities"
---

# rte\_tm\_capabilities(3)

## NAME

rte\_tm\_capabilities

## SYNOPSIS

`#include <rte_tm.h>`

### Data Fields

uint32\_t **n\_nodes\_max**\
 uint32\_t **n\_levels\_max**\
 int **non\_leaf\_nodes\_identical**\
 int **leaf\_nodes\_identical**\
 uint32\_t **shaper\_n\_max**\
 uint32\_t **shaper\_private\_n\_max**\
 int **shaper\_private\_dual\_rate\_n\_max**\
 uint64\_t **shaper\_private\_rate\_min**\
 uint64\_t **shaper\_private\_rate\_max**\
 int **shaper\_private\_packet\_mode\_supported**\
 int **shaper\_private\_byte\_mode\_supported**\
 uint32\_t **shaper\_shared\_n\_max**\
 uint32\_t **shaper\_shared\_n\_nodes\_per\_shaper\_max**\
 uint32\_t **shaper\_shared\_n\_shapers\_per\_node\_max**\
 uint32\_t **shaper\_shared\_dual\_rate\_n\_max**\
 uint64\_t **shaper\_shared\_rate\_min**\
 uint64\_t **shaper\_shared\_rate\_max**\
 int **shaper\_shared\_packet\_mode\_supported**\
 int **shaper\_shared\_byte\_mode\_supported**\
 int **shaper\_pkt\_length\_adjust\_min**\
 int **shaper\_pkt\_length\_adjust\_max**\
 uint32\_t **sched\_n\_children\_max**\
 uint32\_t **sched\_sp\_n\_priorities\_max**\
 uint32\_t **sched\_wfq\_n\_children\_per\_group\_max**\
 uint32\_t **sched\_wfq\_n\_groups\_max**\
 uint32\_t **sched\_wfq\_weight\_max**\
 int **sched\_wfq\_packet\_mode\_supported**\
 int **sched\_wfq\_byte\_mode\_supported**\
 int **cman\_wred\_packet\_mode\_supported**\
 int **cman\_wred\_byte\_mode\_supported**\
 int **cman\_head\_drop\_supported**\
 uint32\_t **cman\_wred\_context\_n\_max**\
 uint32\_t **cman\_wred\_context\_private\_n\_max**\
 uint32\_t **cman\_wred\_context\_shared\_n\_max**\
 uint32\_t **cman\_wred\_context\_shared\_n\_nodes\_per\_context\_max**\
 uint32\_t **cman\_wred\_context\_shared\_n\_contexts\_per\_node\_max**\
 int **mark\_vlan\_dei\_supported** \[**RTE\_COLORS**\]\
 int **mark\_ip\_ecn\_tcp\_supported** \[**RTE\_COLORS**\]\
 int **mark\_ip\_ecn\_sctp\_supported** \[**RTE\_COLORS**\]\
 int **mark\_ip\_dscp\_supported** \[**RTE\_COLORS**\]\
 uint64\_t **dynamic\_update\_mask**\
 uint64\_t **stats\_mask**\

## Detailed Description

Traffic manager capabilities

Definition at line **199** of file **rte\_tm.h**.

## Field Documentation

### uint32\_t n\_nodes\_max

Maximum number of nodes.

Definition at line **201** of file **rte\_tm.h**.

### uint32\_t n\_levels\_max

Maximum number of levels (i.e. number of nodes connecting the root node with any leaf node, including the root and the leaf).

Definition at line **206** of file **rte\_tm.h**.

### int non\_leaf\_nodes\_identical

When non-zero, this flag indicates that all the non-leaf nodes (with the exception of the root node) have identical capability set.

Definition at line **211** of file **rte\_tm.h**.

### int leaf\_nodes\_identical

When non-zero, this flag indicates that all the leaf nodes have identical capability set.

Definition at line **216** of file **rte\_tm.h**.

### uint32\_t shaper\_n\_max

Maximum number of shapers, either private or shared. In case the implementation does not share any resources between private and shared shapers, it is typically equal to the sum of *shaper\_private\_n\_max* and *shaper\_shared\_n\_max*. The value of zero indicates that traffic shaping is not supported.

Definition at line **224** of file **rte\_tm.h**.

### uint32\_t shaper\_private\_n\_max

Maximum number of private shapers. Indicates the maximum number of nodes that can concurrently have their private shaper enabled. The value of zero indicates that private shapers are not supported.

Definition at line **230** of file **rte\_tm.h**.

### int shaper\_private\_dual\_rate\_n\_max

Maximum number of private shapers that support dual rate shaping. Indicates the maximum number of nodes that can concurrently have their private shaper enabled with dual rate support. Only valid when private shapers are supported. The value of zero indicates that dual rate shaping is not available for private shapers. The maximum value is *shaper\_private\_n\_max*.

Definition at line **239** of file **rte\_tm.h**.

### uint64\_t shaper\_private\_rate\_min

Minimum committed/peak rate (bytes per second) for any private shaper. Valid only when private shapers are supported.

Definition at line **244** of file **rte\_tm.h**.

### uint64\_t shaper\_private\_rate\_max

Maximum committed/peak rate (bytes per second) for any private shaper. Valid only when private shapers are supported.

Definition at line **249** of file **rte\_tm.h**.

### int shaper\_private\_packet\_mode\_supported

Shaper private packet mode supported. When non-zero, this parameter indicates that there is at least one node that can be configured with packet mode in its private shaper. When shaper is configured in packet mode, committed/peak rate provided is interpreted in packets per second.

Definition at line **257** of file **rte\_tm.h**.

### int shaper\_private\_byte\_mode\_supported

Shaper private byte mode supported. When non-zero, this parameter indicates that there is at least one node that can be configured with byte mode in its private shaper. When shaper is configured in byte mode, committed/peak rate provided is interpreted in bytes per second.

Definition at line **265** of file **rte\_tm.h**.

### uint32\_t shaper\_shared\_n\_max

Maximum number of shared shapers. The value of zero indicates that shared shapers are not supported.

Definition at line **271** of file **rte\_tm.h**.

### uint32\_t shaper\_shared\_n\_nodes\_per\_shaper\_max

Maximum number of nodes that can share the same shared shaper. Only valid when shared shapers are supported.

Definition at line **276** of file **rte\_tm.h**.

### uint32\_t shaper\_shared\_n\_shapers\_per\_node\_max

Maximum number of shared shapers a node can be part of. This parameter indicates that there is at least one node that can be configured with this many shared shapers, which might not be true for all the nodes. Only valid when shared shapers are supported, in which case it ranges from 1 to *shaper\_shared\_n\_max*.

Definition at line **284** of file **rte\_tm.h**.

### uint32\_t shaper\_shared\_dual\_rate\_n\_max

Maximum number of shared shapers that can be configured with dual rate shaping. The value of zero indicates that dual rate shaping support is not available for shared shapers.

Definition at line **290** of file **rte\_tm.h**.

### uint64\_t shaper\_shared\_rate\_min

Minimum committed/peak rate (bytes per second) for any shared shaper. Only valid when shared shapers are supported.

Definition at line **295** of file **rte\_tm.h**.

### uint64\_t shaper\_shared\_rate\_max

Maximum committed/peak rate (bytes per second) for any shared shaper. Only valid when shared shapers are supported.

Definition at line **300** of file **rte\_tm.h**.

### int shaper\_shared\_packet\_mode\_supported

Shaper shared packet mode supported. When non-zero, this parameter indicates a shared shaper can be configured with packet mode. When shared shaper is configured in packet mode, committed/peak rate provided is interpreted in packets per second.

Definition at line **307** of file **rte\_tm.h**.

### int shaper\_shared\_byte\_mode\_supported

Shaper shared byte mode supported. When non-zero, this parameter indicates that a shared shaper can be configured with byte mode. When shared shaper is configured in byte mode, committed/peak rate provided is interpreted in bytes per second.

Definition at line **314** of file **rte\_tm.h**.

### int shaper\_pkt\_length\_adjust\_min

Minimum value allowed for packet length adjustment for any private or shared shaper.

Definition at line **320** of file **rte\_tm.h**.

### int shaper\_pkt\_length\_adjust\_max

Maximum value allowed for packet length adjustment for any private or shared shaper.

Definition at line **325** of file **rte\_tm.h**.

### uint32\_t sched\_n\_children\_max

Maximum number of children nodes. This parameter indicates that there is at least one non-leaf node that can be configured with this many children nodes, which might not be true for all the non-leaf nodes.

Definition at line **332** of file **rte\_tm.h**.

### uint32\_t sched\_sp\_n\_priorities\_max

Maximum number of supported priority levels. This parameter indicates that there is at least one non-leaf node that can be configured with this many priority levels for managing its children nodes, which might not be true for all the non-leaf nodes. The value of zero is invalid. The value of 1 indicates that only priority 0 is supported, which essentially means that Strict Priority (SP) algorithm is not supported.

Definition at line **342** of file **rte\_tm.h**.

### uint32\_t sched\_wfq\_n\_children\_per\_group\_max

Maximum number of sibling nodes that can have the same priority at any given time, i.e. maximum size of the WFQ sibling node group. This parameter indicates there is at least one non-leaf node that meets this condition, which might not be true for all the non-leaf nodes. The value of zero is invalid. The value of 1 indicates that WFQ algorithm is not supported. The maximum value is *sched\_n\_children\_max*.

Definition at line **352** of file **rte\_tm.h**.

### uint32\_t sched\_wfq\_n\_groups\_max

Maximum number of priority levels that can have more than one child node at any given time, i.e. maximum number of WFQ sibling node groups that have two or more members. This parameter indicates there is at least one non-leaf node that meets this condition, which might not be true for all the non-leaf nodes. The value of zero states that WFQ algorithm is not supported. The value of 1 indicates that (*sched\_sp\_n\_priorities\_max* - 1) priority levels have at most one child node, so there can be only one priority level with two or more sibling nodes making up a WFQ group. The maximum value is: min(floor(*sched\_n\_children\_max* / 2), *sched\_sp\_n\_priorities\_max*).

Definition at line **365** of file **rte\_tm.h**.

### uint32\_t sched\_wfq\_weight\_max

Maximum WFQ weight. The value of 1 indicates that all sibling nodes with same priority have the same WFQ weight, so WFQ is reduced to FQ.

Definition at line **370** of file **rte\_tm.h**.

### int sched\_wfq\_packet\_mode\_supported

WFQ packet mode supported. When non-zero, this parameter indicates that there is at least one non-leaf node that supports packet mode for WFQ among its children. WFQ weights will be applied against packet count for scheduling children when a non-leaf node is configured appropriately.

Definition at line **378** of file **rte\_tm.h**.

### int sched\_wfq\_byte\_mode\_supported

WFQ byte mode supported. When non-zero, this parameter indicates that there is at least one non-leaf node that supports byte mode for WFQ among its children. WFQ weights will be applied against bytes for scheduling children when a non-leaf node is configured appropriately.

Definition at line **386** of file **rte\_tm.h**.

### int cman\_wred\_packet\_mode\_supported

WRED packet mode support. When non-zero, this parameter indicates that there is at least one leaf node that supports the WRED packet mode, which might not be true for all the leaf nodes. In packet mode, the WRED thresholds specify the queue length in packets, as opposed to bytes.

Definition at line **394** of file **rte\_tm.h**.

### int cman\_wred\_byte\_mode\_supported

WRED byte mode support. When non-zero, this parameter indicates that there is at least one leaf node that supports the WRED byte mode, which might not be true for all the leaf nodes. In byte mode, the WRED thresholds specify the queue length in bytes, as opposed to packets.

Definition at line **402** of file **rte\_tm.h**.

### int cman\_head\_drop\_supported

Head drop algorithm support. When non-zero, this parameter indicates that there is at least one leaf node that supports the head drop algorithm, which might not be true for all the leaf nodes.

Definition at line **408** of file **rte\_tm.h**.

### uint32\_t cman\_wred\_context\_n\_max

Maximum number of WRED contexts, either private or shared. In case the implementation does not share any resources between private and shared WRED contexts, it is typically equal to the sum of *cman\_wred\_context\_private\_n\_max* and *cman\_wred\_context\_shared\_n\_max*. The value of zero indicates that WRED is not supported.

Definition at line **417** of file **rte\_tm.h**.

### uint32\_t cman\_wred\_context\_private\_n\_max

Maximum number of private WRED contexts. Indicates the maximum number of leaf nodes that can concurrently have their private WRED context enabled. The value of zero indicates that private WRED contexts are not supported.

Definition at line **424** of file **rte\_tm.h**.

### uint32\_t cman\_wred\_context\_shared\_n\_max

Maximum number of shared WRED contexts. The value of zero indicates that shared WRED contexts are not supported.

Definition at line **429** of file **rte\_tm.h**.

### uint32\_t cman\_wred\_context\_shared\_n\_nodes\_per\_context\_max

Maximum number of leaf nodes that can share the same WRED context. Only valid when shared WRED contexts are supported.

Definition at line **434** of file **rte\_tm.h**.

### uint32\_t cman\_wred\_context\_shared\_n\_contexts\_per\_node\_max

Maximum number of shared WRED contexts a leaf node can be part of. This parameter indicates that there is at least one leaf node that can be configured with this many shared WRED contexts, which might not be true for all the leaf nodes. Only valid when shared WRED contexts are supported, in which case it ranges from 1 to *cman\_wred\_context\_shared\_n\_max*.

Definition at line **443** of file **rte\_tm.h**.

### int mark\_vlan\_dei\_supported\[RTE\_COLORS\]

Support for VLAN DEI packet marking (per color).

Definition at line **446** of file **rte\_tm.h**.

### int mark\_ip\_ecn\_tcp\_supported\[RTE\_COLORS\]

Support for IPv4/IPv6 ECN marking of TCP packets (per color).

Definition at line **449** of file **rte\_tm.h**.

### int mark\_ip\_ecn\_sctp\_supported\[RTE\_COLORS\]

Support for IPv4/IPv6 ECN marking of SCTP packets (per color).

Definition at line **452** of file **rte\_tm.h**.

### int mark\_ip\_dscp\_supported\[RTE\_COLORS\]

Support for IPv4/IPv6 DSCP packet marking (per color).

Definition at line **455** of file **rte\_tm.h**.

### uint64\_t dynamic\_update\_mask

Set of supported dynamic update operations.

**See also**

enum **rte\_tm\_dynamic\_update\_type**

Definition at line **460** of file **rte\_tm.h**.

### uint64\_t stats\_mask

Set of supported statistics counter types.

**See also**

enum **rte\_tm\_stats\_type**

Definition at line **465** of file **rte\_tm.h**.

## Author

Generated automatically by Doxygen for DPDK from the source code.
