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 结构。
微型端口驱动程序必须将 Header 的 Type 成员设置为NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT。 若要指定 NDIS_QOS_CLASSIFICATION_ELEMENT 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值:
NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1
NDIS 6.30 的原始版本。
将 Size 成员设置为 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 (包括 Ndis.h) |
另请参阅
NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE
NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE