NDIS_QOS_CLASSIFICATION_ELEMENT 構造体 (ntddndis.h)

NDIS_QOS_CLASSIFICATION_ELEMENT構造体は、IEEE 802.1 データ センター ブリッジング (DCB) インターフェイスをサポートするネットワーク アダプターの NDIS サービス品質 (QoS) トラフィック分類を指定します。

各トラフィック分類では、次の指定が行われます。

  • エグレス パケット データ内のデータ パターンに基づく分類 条件

    NDIS 6.30 以降では、分類条件は、UDP または TCP 宛先ポート、メディア アクセス制御 (MAC) EtherType などの 16 ビット値に基づいています。

  • エグレス パケットの処理に使用するトラフィック クラスを定義する分類 アクション

    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 構造体として書式設定されます。

ミニポート ドライバーは、ヘッダーType メンバーを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

ミニポート ドライバーがサポートする NDIS QoS トラフィック分類の状態を指定するフラグのビットごとの OR を含む ULONG 値。 次のフラグが定義されています。

NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT

このフラグが設定されている場合、ミニポート ドライバーは、 NDIS_QOS_CLASSIFICATION_ELEMENT 構造で指定されているトラフィック分類パラメーターを受け入れます。 ドライバーがパラメーターを受け入れる場合は、パラメーターで指定されたトラフィック分類を実行するようにネットワーク アダプターを構成する必要があります。

メモ このフラグは、ミニポート ドライバーが OID_QOS_PARAMETERS OID メソッド要求から NDIS に返す NDIS_QOS_CLASSIFICATION_ELEMENT 構造体でのみ設定されます。
 

ConditionSelector

ConditionField メンバーに含まれるデータ パターンの型を指定する USHORT 値。 たとえば、データ パターン型では、 ConditionField メンバーによって値が指定された宛先 UDP ポートを指定できます。

詳細については、「 ConditionSelector メンバーと ConditionField メンバーを設定するためのガイドライン」を参照してください。

ConditionField

ConditionSelector メンバーによって型が指定されたデータ パターンを含む USHORT 値。

詳細については、「 ConditionSelector メンバーと ConditionField メンバーを設定するためのガイドライン」を参照してください。

ActionSelector

ActionField メンバーに含まれるアクション データの種類を指定する USHORT 値。 NDIS 6.30 以降では、アクション データ型は ConditionField メンバーによって値が指定される 802.1p 優先度レベルを指定します。

詳細については、「 ActionSelector および ActionField メンバーを設定するためのガイドライン」を参照してください。

ActionField

ActionSelector メンバーによって型が指定されたアクション値を含む USHORT 値。

詳細については、「 ActionSelector および ActionField メンバーを設定するためのガイドライン」を参照してください。

注釈

トラフィック分類では、ネットワーク アダプターがエグレス パケット データに適用する 条件アクション を指定します。 アダプターは、エグレス パケット データを検査し、一致する分類条件を見つけると、対応するアクションをエグレス パケットに適用します。

メモ NDIS 6.30 以降では、すべてのアクションは 802.1p 優先度レベルに基づいています。 ただし、ネットワーク アダプターは、優先順位レベルを決定した後、優先順位レベルに関連付けられている NDIS QoS トラフィック クラスのエグレス ポリシーを使用する必要があります。 トラフィック クラスへの優先度レベルの関連付けは、 NDIS_QOS_PARAMETERS 構造体で指定します。
 
NDIS_QOS_CLASSIFICATION_ELEMENT構造体は、NDIS_QOS_PARAMETERS構造体で指定された配列内の各トラフィック分類要素を指定します。 この構造体は、次の OID 要求で使用されます。 ミニポート ドライバーは、次の NDIS 状態を示す NDIS_QOS_CLASSIFICATION_ELEMENT 構造体の配列を含む NDIS_QOS_PARAMETERS 構造体も返します。 詳細については、「 NDIS QoS トラフィック分類」を参照してください。

ConditionSelector メンバーと ConditionField メンバーを設定するためのガイドライン

次の表では、 ConditionSelector メンバーと ConditionField メンバーの値の範囲を定義します。
ConditionSelector 値 ConditionField 値
NDIS_QOS_CONDITION_RESERVED ConditionField メンバーは 0 に設定する必要があります。
メモ この条件は、今後使用するために予約されています。
 
NDIS_QOS_CONDITION_DEFAULT ConditionField メンバーは 0 に設定する必要があります。
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 以降でサポートされています。
Header 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