NDIS_QOS_CLASSIFICATION_ELEMENT结构(ntddndis.h)
NDIS_QOS_CLASSIFICATION_ELEMENT 结构为支持 IEEE 802.1 数据中心桥接(DCB)接口的网络适配器指定 NDIS 服务质量(QoS)流量分类。
每个流量分类指定以下内容:
-
基于出口数据包数据中的数据模式的分类 条件。
从 NDIS 6.30 开始,分类条件基于 16 位值,例如 UDP 或 TCP 目标端口或媒体访问控制 (MAC) EtherType。
-
分类 作 定义用于处理出口数据包的流量类。
从 NDIS 6.30 开始,分类作指定 802.1p 优先级级别。
语法
typedef struct _NDIS_QOS_CLASSIFICATION_ELEMENT {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
USHORT ConditionSelector;
USHORT ConditionField;
USHORT ActionSelector;
USHORT ActionField;
} NDIS_QOS_CLASSIFICATION_ELEMENT, *PNDIS_QOS_CLASSIFICATION_ELEMENT;
成员
Header
NDIS_QOS_CLASSIFICATION_ELEMENT 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
微型端口驱动程序必须将 标头 的 类型 成员设置为NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT。 若要指定 NDIS_QOS_CLASSIFICATION_ELEMENT 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值:
NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1
NDIS 6.30 的原始版本。
将 大小 成员设置为NDIS_SIZEOF_QOS_CLASSIFICATION_ELEMENT_REVISION_1。
Flags
ULONG 值,该值包含指定微型端口驱动程序支持的 NDIS QoS 流量分类的状态的按位 OR 标志。 定义了以下标志:
NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT
如果设置了此标志,微型端口驱动程序接受在 NDIS_QOS_CLASSIFICATION_ELEMENT 结构中指定的流量分类参数。 如果驱动程序接受参数,则必须将网络适配器配置为执行参数指定的流量分类。
ConditionSelector
USHORT 值,该值指定包含在 ConditionField 成员中的数据模式的类型。 例如,数据模式类型可以指定一个目标 UDP 端口,其值由 ConditionField 成员指定。
有关详细信息,请参阅 设置 ConditionSelector 和 ConditionField 成员指南。
ConditionField
USHORT 值,该值包含其类型由 ConditionSelector 成员指定的数据模式。
有关详细信息,请参阅 设置 ConditionSelector 和 ConditionField 成员指南。
ActionSelector
USHORT 值,该值指定包含在 ActionField 成员中的作数据类型。 从 NDIS 6.30 开始,作数据类型指定一个 802.1p 优先级级别,其值由 ConditionField 成员指定。
有关详细信息,请参阅 设置 ActionSelector 和 ActionField 成员的指南。
ActionField
USHORT 值,该值包含由 ActionSelector 成员指定的作值。
有关详细信息,请参阅 设置 ActionSelector 和 ActionField 成员的指南。
言论
流量分类指定 条件 和网络适配器应用于出口数据包数据的 作。 当适配器检查出口数据包数据并找到匹配的分类条件时,它会向出口数据包应用相应的作。
- OID_QOS_OPERATIONAL_PARAMETERS 和 OID_QOS_REMOTE_PARAMETERS的 OID 查询请求。
- OID_QOS_PARAMETERS的 OID 方法请求。
设置 ConditionSelector 和 ConditionField 成员的准则
下表定义了 ConditionSelector 和 ConditionField 成员的值范围。ConditionSelector 值 | ConditionField 值 |
---|---|
NDIS_QOS_CONDITION_RESERVED |
ConditionField 成员必须设置为零。
注意 此条件保留供将来使用。
|
NDIS_QOS_CONDITION_DEFAULT | ConditionField 成员必须设置为零。 |
NDIS_QOS_CONDITION_TCP_PORT | ConditionField 成员包含 16 位目标 TCP 端口值。 |
NDIS_QOS_CONDITION_UDP_PORT | ConditionField 成员包含 16 位目标 UDP 端口值。 |
NDIS_QOS_CONDITION_TCP_OR_UDP_PORT | ConditionField 成员包含 16 位目标 TCP 或 UDP 端口值。 |
NDIS_QOS_CONDITION_ETHERTYPE |
ConditionField 成员包含 16 位 IEEE EtherType 值。
注意 网络适配器需要确定数据包的帧布局才能检查 EtherType。 例如,EtherType 字段的位置在以太网 II 和 802.3 帧之间有所不同。
|
NDIS_QOS_CONDITION_NETDIRECT_PORT | ConditionField 成员包含 16 位 NetworkDirect 端口值。 |
如果 ConditionSelector 成员包含一个值NDIS_QOS_CONDITION_DEFAULT,则关联的分类作必须应用于与任何其他分类条件不匹配的所有出口数据包。 当 DCB 组件发出 OID_QOS_PARAMETERS的 OID 方法请求时,它可以将 ConditionSelector 设置为仅在 NDIS_QOS_PARAMETERS 数组的第一个 NDIS_QOS_CLASSIFICATION_ELEMENT 结构中NDIS_QOS_CONDITION_DEFAULT。
如果 ConditionSelector 成员包含NDIS_QOS_CONDITION_NETDIRECT_PORT的值,则微型端口驱动程序必须与 networkDirect 连接的源端口或目标端口匹配 ConditionField 成员。 如果微型端口驱动程序接受 NetDirect 连接,驱动程序必须与通过该连接发送的任何数据包的源端口匹配 ConditionField 成员。 如果微型端口驱动程序启动 NetDirect 连接,则必须将 ConditionField 成员与通过该连接发送的任何数据包的目标端口匹配。
有关 DCB 组件的详细信息,请参阅 数据中心桥接的 NDIS QoS 体系结构。
设置 ActionSelector 和 ActionField 成员的 准则
下表定义了 ActionSelector 和 ActionField 成员的值范围。ActionSelector 值 | ActionField 值 |
---|---|
NDIS_QOS_ACTION_PRIORITY | ActionField 成员包含 3 位 IEEE 802.1p 优先级级别值。 有关这些优先级的详细信息,请参阅 IEEE 802.1p 优先级。 |
从 NDIS 6.30 开始,流量分类作定义向其分配出口数据包的 IEEE 802.1p 优先级级别。 当网络适配器将优先级分配给出口数据包时,适配器还会为与指定优先级关联的 NDIS QoS 流量类应用参数。 这些参数确定网络适配器如何传输数据包,并包括带宽分配和传输选择算法(TSA)。
有关 NDIS QoS 流量类的详细信息,请参阅 NDIS QoS 流量类。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
标头 | ntddndis.h (include Ndis.h) |
另请参阅
NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE
NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE