![]() |
![]() |
QoS cluster configuration structure for Modified Token Bucket. More...
#include <qmss_qos.h>
Data Fields | |
uint32_t | maxGlobalCredit |
uint8_t | qosQueCnt |
uint8_t | qosQueNum [QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT] |
uint16_t | qosQueRTFlags |
uint8_t | egressQueCnt |
Qmss_Queue | egressQueNum [QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT] |
uint32_t | egressCongestionThreshold1 |
uint32_t | egressCongestionThreshold2 |
uint32_t | egressCongestionThreshold3 |
uint32_t | egressCongestionThreshold4 |
QoS cluster configuration structure for Modified Token Bucket.
Each QOS cluster is configured with four egress congestion threshold values. Iteration credit is assigned to each queue in the cluster depending on the egress congestion, and the value of these four congestion thresholds.
It is implemented as shown below:
Egress Queue Congestion (Backlog) Level | QOS Queue Credit Assigned From no backlog to Threshold 1 | Double credit Between Threshold 1 and Threshold 2 | Normal credit Between Threshold 2 and Threshold 3 | Half credit Between Threshold 3 and Threshold 4 | Quarter credit Over Threshold 4 | No credit Egress Congestion Threshold point 1
Egress Congestion Threshold point 2
Egress Congestion Threshold point 3
Egress Congestion Threshold point 4
The total number of egress queues sampled to obtain the egress queue congestion estimation. Valid range is 1 to QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT
Qmss_Queue Qmss_QosClusterCfgTB::egressQueNum[QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT] |
The Queue manger and Queue index of every egress queue enumerated in Egress Queue Count. These queue indices are absolute index values
The maximum amount of global credit allowed to carry over to the next queue. Excess global credit is discarded
uint8_t Qmss_QosClusterCfgTB::qosQueCnt |
The number of QOS queues in this cluster. Valid range is 1 to QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT
uint8_t Qmss_QosClusterCfgTB::qosQueNum[QMSS_QOS_MAX_QUE_PER_CLUSTER_COUNT] |
The queue index (0 to 63) of each QOS queue in the cluster listed in priority order. These queue indices are relative to the configured QOS queue base index Ensure that the queue base passed into Qmss_setQosQueueBase supports the size of the queue index provided (eg some devices allocate fewer than 64 queues).
uint16_t Qmss_QosClusterCfgTB::qosQueRTFlags |
This 9-bit mask contains 1 bit for each QOS queue in the cluster. When this bit is set for its corresponding QOS queue, iteration credit is treated as "real time" scheduling and does not scale when the egress queue become congested