API Reference Manual  1.45.0
odp_tm_capabilities_t Struct Reference

TM Capabilities Record. More...

#include <traffic_mngr.h>

Collaboration diagram for odp_tm_capabilities_t:
[legend]

Data Fields

char * name
 The name is an optional name associated with a capabilities record. More...
 
uint32_t max_tm_queues
 max_tm_queues specifies the maximum number of tm_queues that can be in existence for this TM System.
 
uint8_t max_levels
 max_levels specifies that maximum number of levels of hierarchical scheduling allowed by this TM System. More...
 
odp_bool_t egress_fcn_supported
 egress_fcn_supported indicates whether the tm system supports egress function. More...
 
odp_bool_t tm_queue_shaper_supported
 Shaper is supported in rate shape mode.
 
odp_bool_t tm_queue_rate_limiter_supported
 Shaper is supported in rate limit mode.
 
odp_bool_t tm_queue_shaper_packet_mode
 tm_queue_shaper_packet_mode indicates that tm_queues support shaper in packet mode
 
odp_bool_t tm_queue_wred_supported
 tm_queue_wred_supported indicates that the tm_queues support some form of Random Early Detection.
 
odp_bool_t tm_queue_dual_slope_supported
 tm_queue_dual_slope_supported indicates that the tm_queues support the dual slope WRED capability. More...
 
odp_bool_t vlan_marking_supported
 vlan_marking_supported indicates that this TM system supports SOME form of VLAN egress marking using the odp_tm_vlan_marking() function. More...
 
odp_bool_t ecn_marking_supported
 ecn_marking_supported indicates that this TM system supports Explicit Congestion Notification egress marking by using the odp_tm_ip_ecn_marking() function. More...
 
odp_bool_t drop_prec_marking_supported
 drop_prec_marking_supported indicates that this TM system supports SOME form of IPv4/IPv6 egress marking by using the odp_tm_drop_prec_marking() function. More...
 
odp_bool_t marking_colors_supported [ODP_NUM_PACKET_COLORS]
 The marking_colors_supported array is used to indicate which colors can be used for marking. More...
 
odp_tm_level_capabilities_t per_level [ODP_TM_MAX_LEVELS]
 The per_level array specifies the TM system capabilities that can vary based upon the tm_node level.
 
odp_bool_t dynamic_topology_update
 dynamic_topology_update indicates support for TM system dynamic topology update. More...
 
odp_bool_t dynamic_shaper_update
 dynamic_shaper_update indicates support for TM system's dynamic shaper profile changes. More...
 
odp_bool_t dynamic_sched_update
 dynamic_sched_update indicates support for TM system's dynamic sched profile changes. More...
 
odp_bool_t dynamic_wred_update
 dynamic_wred_update indicates support for TM system's dynamic wred profile changes. More...
 
odp_bool_t dynamic_threshold_update
 dynamic_threshold_update indicates support for TM system's dynamic threshold profile changes. More...
 
odp_tm_queue_stats_capability_t queue_stats
 TM queue statistics counter capabilities.
 
struct {
   uint8_t   byte: 1
 Threshold given as bytes.
 
   uint8_t   packet: 1
 Threshold given as packets.
 
   uint8_t   byte_and_packet: 1
 Threshold given as bytes and packets simultaneously.
 
tm_queue_threshold
 TM queue threshold profile support.
 
uint32_t tm_queue_query_flags
 tm_queue_query_flags indicates supported types of TM queue query. More...
 
odp_bool_t pkt_prio_modes [ODP_TM_PKT_PRIO_MODE_MAX]
 Indicates the packet priority modes supported by TM systems on a platform. More...
 
uint8_t max_schedulers_per_node
 Maximum number of schedulers supported by a TM node at any level. More...
 

Detailed Description

TM Capabilities Record.

The odp_tm_capabilities_t record type is used to describe the feature set and limits of a TM system.

Examples
odp_traffic_mgmt.c.

Definition at line 393 of file api/spec/traffic_mngr.h.

Field Documentation

◆ name

char* odp_tm_capabilities_t::name

The name is an optional name associated with a capabilities record.

This name, if present, can be used by odp_tm_find to return a TM system matching this set of capabilities.

Definition at line 397 of file api/spec/traffic_mngr.h.

◆ max_levels

uint8_t odp_tm_capabilities_t::max_levels

max_levels specifies that maximum number of levels of hierarchical scheduling allowed by this TM System.

This is a count of the tm_node stages and does not include tm_queues or tm_egress objects. Hence any given tm_node will have associated tm_node_level in the range 0 to max_levels - 1, where tm_node's at level 0 output's only go to egress objects and tm_nodes whose level is max_levels - 1 have their fan_in only from tm_queues.

Examples
odp_traffic_mgmt.c.

Definition at line 410 of file api/spec/traffic_mngr.h.

◆ egress_fcn_supported

odp_bool_t odp_tm_capabilities_t::egress_fcn_supported

egress_fcn_supported indicates whether the tm system supports egress function.

It is an optional feature used to receive the packet from the tm system and its performance might be limited.

Definition at line 416 of file api/spec/traffic_mngr.h.

◆ tm_queue_dual_slope_supported

odp_bool_t odp_tm_capabilities_t::tm_queue_dual_slope_supported

tm_queue_dual_slope_supported indicates that the tm_queues support the dual slope WRED capability.

This field is ignored if tm_queue_wred_supported above is false.

Definition at line 435 of file api/spec/traffic_mngr.h.

◆ vlan_marking_supported

odp_bool_t odp_tm_capabilities_t::vlan_marking_supported

vlan_marking_supported indicates that this TM system supports SOME form of VLAN egress marking using the odp_tm_vlan_marking() function.

This being true does not imply that all colors and subfield values and changes are supported. Unsupported features can be detected by the marking function returning an error code.

Definition at line 442 of file api/spec/traffic_mngr.h.

◆ ecn_marking_supported

odp_bool_t odp_tm_capabilities_t::ecn_marking_supported

ecn_marking_supported indicates that this TM system supports Explicit Congestion Notification egress marking by using the odp_tm_ip_ecn_marking() function.

Note that the ECN is the bottom two bits of the IPv4 TOS field or the analogous IPv6 Traffic Class (TC) field. Note that the ecn_marking_supported boolean being true does not imply that all colors are supported.

Definition at line 450 of file api/spec/traffic_mngr.h.

◆ drop_prec_marking_supported

odp_bool_t odp_tm_capabilities_t::drop_prec_marking_supported

drop_prec_marking_supported indicates that this TM system supports SOME form of IPv4/IPv6 egress marking by using the odp_tm_drop_prec_marking() function.

Note that the actually field modified for IPv4 pkts is called TOS, whereas the field modified for IPv6 pkts is called Traffic Class (TC) - but they are analogous fields. Note that the drop_prec_marking_supported boolean being true does not imply that all colors and subfield values and changes are supported. Unsupported features can be detected by the marking function returning an error code.

Definition at line 461 of file api/spec/traffic_mngr.h.

◆ marking_colors_supported

odp_bool_t odp_tm_capabilities_t::marking_colors_supported[ODP_NUM_PACKET_COLORS]

The marking_colors_supported array is used to indicate which colors can be used for marking.

A value of FALSE means that this color should not be enabled for either vlan marking, ecn marking or drop precedence marking. A value of TRUE means that this color is supported for at least one of (and ideally all of) vlan marking, ecn marking or drop precedence marking.

Definition at line 469 of file api/spec/traffic_mngr.h.

◆ dynamic_topology_update

odp_bool_t odp_tm_capabilities_t::dynamic_topology_update

dynamic_topology_update indicates support for TM system dynamic topology update.

A dynamic topology update is defined as update to a TM system topology while TM system is not in stopped state. When TRUE, application can update topology dynamically without bringing the TM system to stopped state. When FALSE, application has to call odp_tm_stop() before updating the topology and odp_tm_start() after completing the update.

Definition at line 483 of file api/spec/traffic_mngr.h.

◆ dynamic_shaper_update

odp_bool_t odp_tm_capabilities_t::dynamic_shaper_update

dynamic_shaper_update indicates support for TM system's dynamic shaper profile changes.

When TRUE, application can update shaper profile of a TM queue or TM node dynamically. When FALSE, it implies that TM system should be brought to stopped state before changing the shaper profile or updating the parameters of the shaper profile of any TM node or TM queue.

Definition at line 492 of file api/spec/traffic_mngr.h.

◆ dynamic_sched_update

odp_bool_t odp_tm_capabilities_t::dynamic_sched_update

dynamic_sched_update indicates support for TM system's dynamic sched profile changes.

When TRUE, application can update sched profile of a TM queue or TM node dynamically. When FALSE, it implies that TM system should be brought to stopped state before changing the sched profile or updating the parameters of the sched profile of any TM node or TM queue.

Definition at line 501 of file api/spec/traffic_mngr.h.

◆ dynamic_wred_update

odp_bool_t odp_tm_capabilities_t::dynamic_wred_update

dynamic_wred_update indicates support for TM system's dynamic wred profile changes.

When TRUE, application can update wred profile of a TM queue or TM node dynamically. When FALSE, it implies that TM system should be brought to stopped state before changing the wred profile or updating the parameters of the wred profile of any TM node or TM queue.

Definition at line 510 of file api/spec/traffic_mngr.h.

◆ dynamic_threshold_update

odp_bool_t odp_tm_capabilities_t::dynamic_threshold_update

dynamic_threshold_update indicates support for TM system's dynamic threshold profile changes.

When TRUE, application can update threshold profile of a TM queue or TM node dynamically. When FALSE, it implies that TM system should be brought to stopped state before changing the threshold profile or updating the parameters of the threshold profile of any TM node or TM queue.

Definition at line 519 of file api/spec/traffic_mngr.h.

◆ tm_queue_query_flags

uint32_t odp_tm_capabilities_t::tm_queue_query_flags

tm_queue_query_flags indicates supported types of TM queue query.

Types of TM queue query are same as query_flags that are passed to odp_tm_queue_query(), odp_tm_priority_query() and odp_tm_total_query(). When zero, none of the queue query API's are supported. When non-zero, only the only supported types of passed query_flags are taken into account and corresponding fields updated.

See also
ODP_TM_QUERY_PKT_CNT, ODP_TM_QUERY_BYTE_CNT, ODP_TM_QUERY_THRESHOLDS.

Definition at line 547 of file api/spec/traffic_mngr.h.

◆ pkt_prio_modes

odp_bool_t odp_tm_capabilities_t::pkt_prio_modes[ODP_TM_PKT_PRIO_MODE_MAX]

Indicates the packet priority modes supported by TM systems on a platform.

A platform can support multiple packet priority modes. The actual mode a TM system runs with is defined by odp_tm_requirements_t.

Definition at line 554 of file api/spec/traffic_mngr.h.

◆ max_schedulers_per_node

uint8_t odp_tm_capabilities_t::max_schedulers_per_node

Maximum number of schedulers supported by a TM node at any level.

A TM node contains a WFQ/WRR scheduler for each packet priority level for which the node has more than one possible input. TM topology and priority configuration must be made so that the resulting number of WFQ/WRR schedulers does not exceed this capability in any TM node.

The value can vary between 0 and ODP_TM_MAX_PRIORITIES.

Definition at line 564 of file api/spec/traffic_mngr.h.


The documentation for this struct was generated from the following file: