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

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

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

注意 此标志仅在微型端口驱动程序从 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 (include 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