SHAPER_PRIVATE_SUPPORTED(3)

πŸ“¦ version 26.03, in nixos 26.05, nixpkgs unstable

✨ rte_tm_level_capabilities ✨

Library Functions Manual β€” bestie, this is a section 3 page and it lives in rte_tm.h, ok? πŸ’…


🌸 NAME 🌸

rte_tm_level_capabilities β€” no cap, that's the whole name, that's the whole vibe ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <rte_tm.h>

πŸŽ€ Data Fields πŸŽ€

  • uint32_t n_nodes_max
  • uint32_t n_nodes_nonleaf_max
  • uint32_t n_nodes_leaf_max
  • int non_leaf_nodes_identical
  • int leaf_nodes_identical

πŸ’– DETAILED DESCRIPTION πŸ’–

Traffic manager level capabilities. That's it, that's the whole sentence β€” it's the capabilities of a traffic manager level, and she's iconic for it πŸ‘‘

Definition at line 471 of file rte_tm.h.

🌈 FIELD DOCUMENTATION 🌈

πŸ“ uint32_t n_nodes_max

The absolute maximum number of nodes for the current hierarchy level. Like, full capacity, ceiling, the limit-bestie πŸ’€

Definition at line 473 of file rte_tm.h.

πŸ“ uint32_t n_nodes_nonleaf_max

Maximum number of non-leaf nodes for the current hierarchy level. Heads up: a value of 0 means this level only supports leaf nodes. And the maximum value here is n_nodes_max.

Definition at line 479 of file rte_tm.h.

πŸ“ uint32_t n_nodes_leaf_max

Maximum number of leaf nodes for the current hierarchy level. A value of 0 means this level only supports non-leaf nodes (plot twist 😭). The maximum value is n_nodes_max.

Definition at line 485 of file rte_tm.h.

πŸ“ int non_leaf_nodes_identical

When this is non-zero, the flag means all the non-leaf nodes on this level have an identical capability set β€” matching outfits, coordinated, slay πŸ’…. Valid only when n_nodes_nonleaf_max is non-zero.

Definition at line 491 of file rte_tm.h.

πŸ“ int leaf_nodes_identical

When non-zero, this flag says all the leaf nodes on this level have an identical capability set. Valid only when n_nodes_leaf_max is non-zero.

Definition at line 497 of file rte_tm.h.

πŸ“ int shaper_private_supported

Private shaper support, and it's giving two flavors, so pay attention bestie:

  • For non-leaf nodes: when non-zero, it means there's at least one non-leaf node on this level with private shaper support β€” which may not be the case for all the non-leaf nodes on this level.
  • For leaf nodes: when non-zero, it means there's at least one leaf node on this level with private shaper support β€” which may not be the case for all the leaf nodes on this level.
Definition at line 507 of file rte_tm.h.

πŸ“ int shaper_private_dual_rate_supported

Dual rate support for the private shaper. Two whole descriptions, here we go:

  • Non-leaf: valid only when private shaper is supported for the non-leaf nodes on the current level. When non-zero, it means there's at least one non-leaf node on this level with dual rate private shaper support β€” which may not be true for all the non-leaf nodes on this level.
  • Leaf: valid only when private shaper is supported for the leaf nodes on this level. When non-zero, it means there's at least one leaf node on this level with dual rate private shaper support β€” which may not be true for all the leaf nodes on this level.
Definition at line 517 of file rte_tm.h.

πŸ“ uint64_t shaper_private_rate_min

Minimum committed/peak rate (bytes per second) for private shapers β€” and yes, both node types get a line:

  • Of the non-leaf nodes of this level. Valid only when private shaper is supported on this level.
  • Of the leaf nodes of this level. Valid only when private shaper is supported for the leaf nodes on this level.
Definition at line 524 of file rte_tm.h.

πŸ“ uint64_t shaper_private_rate_max

Maximum committed/peak rate (bytes per second) for private shapers:

  • Of the non-leaf nodes on this level. Valid only when private shaper is supported on this level.
  • Of the leaf nodes on this level. Valid only when private shaper is supported for the leaf nodes on this level.
Definition at line 531 of file rte_tm.h.

πŸ“ int shaper_private_packet_mode_supported

Shaper private packet mode supported. Non-zero means yes:

  • Non-leaf: there's at least one non-leaf node at this level that can be configured with packet mode in its private shaper. When private shaper is configured in packet mode, the committed/peak rate provided is interpreted in packets per second.
  • Leaf: there's at least one leaf node at this level that can be configured with packet mode in its private shaper. Same deal β€” when configured in packet mode, committed/peak rate is interpreted in packets per second.
Definition at line 540 of file rte_tm.h.

πŸ“ int shaper_private_byte_mode_supported

Shaper private byte mode supported:

  • Non-leaf: non-zero means there's at least one non-leaf node at this level that can be configured with byte mode in its private shaper. When configured in byte mode, committed/peak rate provided is interpreted in bytes per second.
  • Leaf: non-zero means there's at least one leaf node at this level that can be configured with byte mode in its private shaper. When configured in byte mode, committed/peak rate provided is interpreted in bytes per second.
Definition at line 549 of file rte_tm.h.

πŸ“ uint32_t shaper_shared_n_max

Maximum number of shared shapers that any node on this level can be part of β€” double the lore:

  • Non-leaf: value of zero means shared shapers are not supported by the non-leaf nodes on this level. When non-zero, it means there's at least one non-leaf node on this level that meets this condition β€” which may not be the case for all the non-leaf nodes on this level.
  • Leaf: value of zero means shared shapers are not supported by the leaf nodes on this level. When non-zero, it means there's at least one leaf node on this level that meets this condition β€” which may not be the case for all the leaf nodes on this level.
Definition at line 559 of file rte_tm.h.

πŸ“ int shaper_shared_packet_mode_supported

Shaper shared packet mode supported:

  • Non-leaf: non-zero means there's at least one non-leaf node on this level that can be part of shared shapers which work in packet mode.
  • Leaf: non-zero means there's at least one leaf node on this level that can be part of shared shapers which work in packet mode.
Definition at line 566 of file rte_tm.h.

πŸ“ int shaper_shared_byte_mode_supported

Shaper shared byte mode supported:

  • Non-leaf: non-zero means there's at least one non-leaf node on this level that can be part of shared shapers which work in byte mode.
  • Leaf: non-zero means there's at least one leaf node on this level that can be part of shared shapers which work in byte mode.
Definition at line 573 of file rte_tm.h.

πŸ“ uint32_t sched_n_children_max

Maximum number of children nodes. This parameter means there's at least one non-leaf node on this level that can be configured with this many children nodes β€” which might not be true for all the non-leaf nodes on this level 🫢

Definition at line 581 of file rte_tm.h.

πŸ“ uint32_t sched_sp_n_priorities_max

Maximum number of supported priority levels. This parameter means there's at least one non-leaf node on this level 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 on this level.

Now the spicy bits, and don't skip them:

  • A value of 0 is invalid.
  • A value of 1 means only priority 0 is supported, which essentially means that Strict Priority (SP) algorithm is not supported on this level.
Definition at line 594 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. the maximum size of the WFQ sibling node group. This parameter means there's at least one non-leaf node on this level that meets this condition β€” which may not be true for all the non-leaf nodes on this level.

The receipts:

  • A value of 0 is invalid.
  • A value of 1 means the WFQ algorithm is not supported on this level.
  • The maximum value is sched_n_children_max.
Definition at line 606 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. the maximum number of WFQ sibling node groups that have two or more members. This parameter means there's at least one non-leaf node on this level that meets this condition β€” which might not be true for all the non-leaf nodes πŸ‘€

The breakdown:

  • A value of 0 states that the WFQ algorithm is not supported on this level.
  • A value of 1 means (sched_sp_n_priorities_max - 1) priority levels on this level 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 on this level.
  • The maximum value is: min(floor(sched_n_children_max / 2), sched_sp_n_priorities_max).
Definition at line 625 of file rte_tm.h.

πŸ“ uint32_t sched_wfq_weight_max

Maximum WFQ weight. And a value of 1 means all sibling nodes on this level with the same priority have the same WFQ weight, so on this level WFQ is reduced to FQ. Budget-friendly behavior, honestly πŸ’€

Definition at line 632 of file rte_tm.h.

πŸ“ int sched_wfq_packet_mode_supported

WFQ packet mode supported. When non-zero, this parameter means there's at least one non-leaf node at this level 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 642 of file rte_tm.h.

πŸ“ int sched_wfq_byte_mode_supported

WFQ byte mode supported. When non-zero, this parameter means there's at least one non-leaf node at this level 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 651 of file rte_tm.h.

πŸ“ uint64_t stats_mask

Mask of statistics counter types supported by the nodes on this level β€” and yes, both flavors show up:

  • Non-leaf: every supported statistics counter type is supported by at least one non-leaf node on this level β€” which may not be true for all the non-leaf nodes on this level.
  • Leaf: every supported statistics counter type is supported by at least one leaf node on this level β€” which may not be true for all the leaf nodes on this level.

See also: enum rte_tm_stats_type ✨

Definition at line 660 of file rte_tm.h.

πŸ“ struct { ... } nonleaf

Items valid only for the non-leaf nodes on this level. Non-leaf girlies only, no gatekeeping 🌸


πŸ’… int cman_wred_packet_mode_supported

WRED packet mode support, bestie. When this is non-zero, it means there's at least one leaf node on this level that supports the WRED packet mode β€” but key word: at least one, so this might not be true for all the leaf nodes, okurrr? In packet mode, the WRED thresholds specify the queue length in packets, as opposed to bytes. Very demure, very packet-y. πŸŽ€

Definition at line 744 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 on this level 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. So like, the other flavor of the same vibe, iykyk. ✨

Definition at line 753 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 on this level that supports the head drop algorithm, which might not be true for all the leaf nodes on this level. Not a guarantee for every leaf, just a "someone here can do it" situation. πŸ’…

Definition at line 761 of file rte_tm.h.

πŸ‘‘ int cman_wred_context_private_supported

Private WRED context support. When non-zero, it indicates there is at least one node on this level with private WRED context support, which may not be true for all the leaf nodes on this level. Private means private, no sharing, main character energy only. πŸ’œ

Definition at line 768 of file rte_tm.h.

🌈 uint32_t cman_wred_context_shared_n_max

Maximum number of shared WRED contexts that any leaf node on this level can be part of. A value of zero means shared WRED contexts are not supported by the leaf nodes on this level β€” literally zero support, nothing, nada. 🫢 When it's non-zero, it indicates there is at least one leaf node on this level that meets this condition, which may not be the case for all the leaf nodes on this level. So again: at least one, not all. Read the fine print, bestie. 😭

Definition at line 779 of file rte_tm.h.

🧚 struct { ... } leaf

Items valid only for the leaf nodes on this level. Like, this little bundle is strictly for the leaves β€” everyone else mind your business. πŸ“


⭐ Author ⭐

Generated automatically by Doxygen for DPDK from the source code. Not a human, not a vibe curator, just Doxygen doing its thing. πŸ’€


That's a wrap on this one, bestie! πŸŽ€ Source of all this wisdom: DPDK, and the version on the tin is Version 26.03.0 β€” go forth and slay your traffic management configs. Periodt. πŸ’–βœ¨

πŸ“¦ where this page comes from