rte_tm_capabilities(3)
π rte_tm_capabilities π
okay bestie, this page is from the Library Functions Manual, section 3, and it's all about rte_tm_capabilities β the traffic manager capabilities checklist. Think of it as the "what can this TM actually do?" receipts. Let's get into it π
β¨ NAME β¨
rte_tm_capabilities β that's the name, no notes, iconic and to the point π
π SYNOPSIS π
#include <rte_tm.h>
π¦ Data Fields π¦
uint32_t n_nodes_maxuint32_t n_levels_maxint non_leaf_nodes_identicalint leaf_nodes_identicaluint32_t shaper_n_maxuint32_t shaper_private_n_maxint shaper_private_dual_rate_n_maxuint64_t shaper_private_rate_minuint64_t shaper_private_rate_maxint shaper_private_packet_mode_supportedint shaper_private_byte_mode_supporteduint32_t shaper_shared_n_maxuint32_t shaper_shared_n_nodes_per_shaper_maxuint32_t shaper_shared_n_shapers_per_node_maxuint32_t shaper_shared_dual_rate_n_maxuint64_t shaper_shared_rate_minuint64_t shaper_shared_rate_maxint shaper_shared_packet_mode_supportedint shaper_shared_byte_mode_supportedint shaper_pkt_length_adjust_minint shaper_pkt_length_adjust_maxuint32_t sched_n_children_maxuint32_t sched_sp_n_priorities_maxuint32_t sched_wfq_n_children_per_group_maxuint32_t sched_wfq_n_groups_maxuint32_t sched_wfq_weight_maxint sched_wfq_packet_mode_supportedint sched_wfq_byte_mode_supportedint cman_wred_packet_mode_supportedint cman_wred_byte_mode_supportedint cman_head_drop_supporteduint32_t cman_wred_context_n_maxuint32_t cman_wred_context_private_n_maxuint32_t cman_wred_context_shared_n_maxuint32_t cman_wred_context_shared_n_nodes_per_context_maxuint32_t cman_wred_context_shared_n_contexts_per_node_maxint 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_maskuint64_t stats_mask
π Detailed Description π
Traffic manager capabilities β yes, that's the whole vibe. Definition at line 199 of file rte_tm.h.
πΈ Field Documentation πΈ
π¦ uint32_t n_nodes_max
Maximum number of nodes. The absolute ceiling, no cap π§’
Definition at line 201 of file rte_tm.h.
π¦ uint32_t n_levels_max
Maximum number of levels β i.e. the 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 says all the non-leaf nodes have identical capability sets β with the exception of the root node, bestie π«Ά
Definition at line 211 of file rte_tm.h.
π¦ int leaf_nodes_identical
When non-zero, this flag says all the leaf nodes have identical capability sets. Copy-paste energy, but make it hardware β¨
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. This is 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. This is 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. Sharing is caring, but only if the hardware says so π
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. Tiny packet energy, but make it legal π
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. So don't assume every parent can handle the full squad π
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. It's giving "everyone gets the same slice" π
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.
part 1 stops here β part 2 is coming with the rest of the lore, don't touch that dial π β¨
int cman_head_drop_supportedβ head drop algorithm support, bestie. When this is non-zero it means at least one leaf node supports the head drop algorithm β and like, at least one is doing a lot of heavy lifting here, because it might not be true for all the leaf nodes. π
<!-- definition: line 408 of file rte_tm.h --> Defined at line 408 of file rte_tm.h.
uint32_t cman_wred_context_n_maxβ max number of WRED contexts, private or shared, no cap. π If the implementation doesn't share any resources between private and shared WRED contexts, it's typically equal to the sum ofcman_wred_context_private_n_maxandcman_wred_context_shared_n_max. And a value of zero means WRED is literally not supported, periodt.
Defined at line 417 of file rte_tm.h.
uint32_t cman_wred_context_private_n_maxβ max number of private WRED contexts. It tells you the max number of leaf nodes that can concurrently have their own private WRED context enabled. Value of zero = private WRED contexts not supported, sorry babe. π
Defined at line 424 of file rte_tm.h.
uint32_t cman_wred_context_shared_n_maxβ max number of shared WRED contexts. Zero means shared WRED contexts are not supported. Sharing is caring but apparently optional. π«Ά
Defined at line 429 of file rte_tm.h.
uint32_t cman_wred_context_shared_n_nodes_per_context_maxβ max number of leaf nodes that can share the same WRED context. Only valid when shared WRED contexts are supported (so like, vibe check the field above first β¨).
Defined at line 434 of file rte_tm.h.
uint32_t cman_wred_context_shared_n_contexts_per_node_maxβ max number of shared WRED contexts a single leaf node can be part of. This one tells you there's at least one leaf node that can be configured with this many shared WRED contexts β which, again, might not be true for all the leaf nodes, iykyk. Only valid when shared WRED contexts are supported, in which case it ranges from1tocman_wred_context_shared_n_max. π
Defined at line 443 of file rte_tm.h.
int mark_vlan_dei_supported[RTE_COLORS]β support for VLAN DEI packet marking, per color. Every color gets its own answer. π¨
Defined 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. π₯
Defined 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. SCTP girlies rise. π
Defined at line 452 of file rte_tm.h.
int mark_ip_dscp_supported[RTE_COLORS]β support for IPv4/IPv6 DSCP packet marking, per color. π
Defined at line 455 of file rte_tm.h.
uint64_t dynamic_update_maskβ the set of supported dynamic update operations, as a cute lil bitmask. See alsoenum rte_tm_dynamic_update_type. π¦
Defined at line 460 of file rte_tm.h.
uint64_t stats_maskβ the set of supported statistics counter types, also a mask. See alsoenum rte_tm_stats_type. β
Defined at line 465 of file rte_tm.h.
π AUTHOR π
Generated automatically by Doxygen for DPDK from the source code. No human hands typed this, it's giving robot main character energy. π€β¨
That's the whole page, bestie β you ate. π This one came from the DPDK docs, version26.03.0, and it's therte_tm_capabilities(3)page, dated26.03.0. Go forth and configure your traffic manager with confidence fr fr ππΈ
π¦ where this page comes from
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms