NDIS_QOS_PARAMETERS structure (ntddndis.h)
The NDIS_QOS_PARAMETERS structure specifies the NDIS Quality of Service (QoS) parameters that are enabled on a network adapter that supports the IEEE 802.1 Data Center Bridging (DCB) interface.
Syntax
typedef struct _NDIS_QOS_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG NumTrafficClasses;
UCHAR PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES];
UCHAR TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
UCHAR TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG PfcEnable;
ULONG NumClassificationElements;
ULONG ClassificationElementSize;
ULONG FirstClassificationElementOffset;
} NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS;
Members
Header
The type, revision, and size of the NDIS_QOS_PARAMETERS structure. This member is formatted as an NDIS_OBJECT_HEADER structure.
The miniport driver must set the Type member of Header to NDIS_OBJECT_TYPE_QOS_PARAMETERS. To specify the version of the NDIS_QOS_PARAMETERS structure, the driver must set the Revision member of Header to the following value:
NDIS_QOS_PARAMETERS_REVISION_1
Original version for NDIS 6.30 and later.
Set the Size member to NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Flags
A ULONG value that contains a bitwise OR of flags that specify the status of the NDIS QoS parameters for the network adapter. For more information about this member, see Overview of the Flags Member.
NumTrafficClasses
A ULONG value that specifies the number of NDIS QoS traffic classes that are enabled on the network adapter. Each traffic class is referenced through an identifier in the range from zero to (NumTrafficClasses–1).
PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES]
An array of UCHAR elements where each element represents the traffic class associated with an IEEE 802.1p priority level. The PriorityAssignmentTable array is indexed by the 802.1p priority level (0–7).
Each element contains the traffic class identifier. This identifier is the index of the NDIS_QOS_CLASSIFICATION_ELEMENT structure for the traffic class within the classification array.
TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
An array of UCHAR elements that specifies the percentage of the bandwidth allocation assigned to each traffic class. The TcBandwidthAssignmentTable array is indexed by the traffic class identifier.
Each element of the TcBandwidthAssignmentTable array specifies the bandwidth allocation for the traffic classes. The total value of all bandwidth allocation assignments in the TcBandwidthAssignmentTable array must equal 100.
TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
An array of UCHAR elements that specifies the TSA assigned to each traffic class. The TsaAssignmentTable array is indexed by the traffic class identifier.
Each element of the TsaAssignmentTable array contains one of the following values:
NDIS_QOS_TSA_STRICT
The strict priority algorithm must be used as the TSA for the traffic class. For more information about this TSA, see Strict Priority Algorithm.
NDIS_QOS_TSA_CBS
The IEEE 802.1Qav credit-based shaper (CBS) algorithm must be used as the TSA for the traffic class.
NDIS_QOS_TSA_ETS
The IEEE 802.1Qaz Enhanced Transmission Selection (ETS) algorithm must be used as the TSA for the traffic class. For more information about this TSA, see Enhanced Transmission Selection (ETS) Algorithm.
PfcEnable
A bitmap of 32 bits. The most-significant 24 bits are reserved for future use. The least-significant 8 bits are used to specify whether PFC is enabled on the IEEE 802.1p priority level. If the bit is set to one, PFC is enabled for the priority level.
Bit range | Meaning |
---|---|
31:24 | Reserved for future use. |
7 | If set to one, PFC is enabled on 802.1p priority level 7 (network control). |
6 | If set to one, PFC is enabled on 802.1p priority level 6 (internetwork control). |
5 | If set to one, PFC is enabled on 802.1p priority level 5 (voice). |
4 | If set to one, PFC is enabled on 802.1p priority level 4 (video). |
3 | If set to one, PFC is enabled on 802.1p priority level 3 (critical applications). |
2 | If set to one, PFC is enabled on 802.1p priority level 2 (excellent effort). |
1 | If set to one, PFC is enabled on 802.1p priority level 1 (background). |
0 | If set to one, PFC is enabled on 802.1p priority level 0 (best effort). |
NumClassificationElements
A ULONG value that specifies the number of elements in the traffic classification array. The offset to the first element in this array is specified by the FirstClassificationElementOffset member.
ClassificationElementSize
A ULONG value that specifies the size, in bytes, of each element in the traffic classification array.
sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT
).FirstClassificationElementOffset
A ULONG value that specifies the offset, in bytes, to the first element in an array of traffic classification elements that follow this structure. The offset is measured from the start of the NDIS_QOS_PARAMETERS structure up to the beginning of the first element. Each element in the array is an NDIS_QOS_CLASSIFICATION_ELEMENT structure.
Remarks
The NDIS_QOS_PARAMETERS structure specifies the parameters that define how the network adapter prioritizes transmit, or egress, packets. This structure is used in the following OID requests:
- OID query request of OID_QOS_OPERATIONAL_PARAMETERS. This OID request returns the operational QoS parameters that are currently provisioned on the network adapter.
- OID query request of OID_QOS_REMOTE_PARAMETERS. This OID request returns the remote QoS parameters that are currently provisioned on the network adapter.
- OID method requests of OID_QOS_PARAMETERS. This OID request provisions the network adapter with the local QoS parameters.
-
NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE. This miniport driver issues this status indication when its operational QoS parameters change.
-
NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE. This miniport driver issues this status indication when its remote QoS parameters change.
Overview of the Flags Member
The Flags member contains a bitwise OR of flags that specify the status of the NDIS QoS parameters for the network adapter.The miniport driver sets the Flags member when it issues the following NDIS status indications:
The DCB component sets the Flags member when it issues an OID method request of OID_QOS_PARAMETERS.Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.30 and later. |
Header | ntddndis.h (include Ndis.h) |
See also
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES
NDIS_QOS_CLASSIFICATION_ELEMENT
NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE
NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE
NdisMSetMiniportAttributes