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 优先级。

例如,流量分类可以指定目标 TCP 端口号 3260 (条件) 的所有出口数据包都分配有 802.1p 优先级 3 (操作) 。

语法

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 结构。

微型端口驱动程序必须将 HeaderType 成员设置为NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT。 若要指定 NDIS_QOS_CLASSIFICATION_ELEMENT 结构的版本,驱动程序必须将 HeaderRevision 成员设置为以下值:

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 结构中指定的流量分类参数。 如果驱动程序接受参数,则必须配置网络适配器以执行参数指定的流量分类。

注意 此标志仅在微型端口驱动程序从 OID_QOS_PARAMETERS OID 方法请求返回到 NDIS 的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 成员的指南

注解

流量分类指定网络适配器应用于出口数据包数据 的条件操作 。 当适配器检查出口数据包数据并找到匹配的分类条件时,它会对出口数据包应用相应的操作。

注意 从 NDIS 6.30 开始,所有操作都基于 802.1p 优先级。 但是,在网络适配器确定优先级后,它必须使用与优先级关联的 NDIS QoS 流量类的出口策略。 优先级别与流量类的关联在 NDIS_QOS_PARAMETERS 结构中指定。
 
NDIS_QOS_CLASSIFICATION_ELEMENT 结构指定数组中由NDIS_QOS_PARAMETERS结构指定的每个流量分类元素。 此结构用于以下 OID 请求: 微型端口驱动程序还返回 一个NDIS_QOS_PARAMETERS 结构,其中包含以下 NDIS 状态指示中的 NDIS_QOS_CLASSIFICATION_ELEMENT 结构数组: 有关详细信息,请参阅 NDIS QoS 流量分类

设置 ConditionSelector 和 ConditionField 成员的指南

下表定义了 ConditionSelectorConditionField 成员的值范围。
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 成员的指南

下表定义了 ActionSelectorActionField 成员的值范围。
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_OBJECT_HEADER

NDIS_QOS_PARAMETERS

NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE

OID_QOS_OPERATIONAL_PARAMETERS

OID_QOS_PARAMETERS

OID_QOS_REMOTE_PARAMETERS