キュー ペアの対称および非対称割り当て

キュー ペアは、ネットワーク アダプター上の個別の送信キューと受信キューで構成されます。 キュー ペアは、仮想ポート(VPort) の作成時に VPort で構成されます。 既定の VPort に関連付けられているキュー ペアは、OID_NIC_SWITCH_CREATE_SWITCH の OID メソッド要求によってスイッチ作成時に構成されます。 1 つ以上のキュー ペアが、OID_NIC_SWITCH_CREATE_VPORT の OID メソッド要求によって既定以外の VPort に構成されます。

既定以外の各 VPort は、異なる数のキュー ペアを持つように構成できます。 これを、キュー ペアの非対称割り当てと呼びます。 非対称割り当てをサポートしていないミニポート ドライバーでは、既定以外の各 VPort は、同じ数のキュー ペアを持つように構成されます。 これを、キュー ペアの対称割り当てと呼びます。

ミニポート ドライバーは、MiniportInitializeEx 時に NDIS_NIC_SWITCH_CAPABILITIES 構造体を使用して、その VPort とキュー ペアの機能をアドバタイズします。 ドライバーは、この構造体の NicSwitchCapabilities メンバーに NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED フラグを設定することで、キュー ペアの非対称割り当てのサポートをアドバタイズします。

非対称キュー ペアの割り当てをサポートしているミニポート ドライバーでは、仮想化スタックは、既定以外の各 VPort を異なる数のキュー ペアで構成します。 対称キュー ペアの割り当てをサポートしているミニポート ドライバーでは、仮想化スタックは、既定以外の各 VPort を同じ数のキュー ペアで構成します。

: 既定以外の VPort で対称または非対称のキュー ペアの割り当てをサポートするミニポート ドライバーは、既定の VPort に割り当てられる異なる数のキュー ペアをサポートする必要があります。 既定の VPort は、常にネットワーク アダプターの PF に接続されます。

キュー ペアの構成は、OID_NIC_SWITCH_CREATE_VPORTOID_NIC_SWITCH_VPORT_PARAMETERS の OID 要求によって既定以外の VPort が作成または更新されるときに指定されます。 構成パラメーターは、NDIS_NIC_SWITCH_VPORT_PARAMETERS 構造体で指定され、両方の OID 要求に関連付けられます。

たとえば、ミニポート ドライバーが、NDIS_NIC_SWITCH_CAPABILITIES 構造体の次のメンバーを設定することによって、NIC スイッチの VPort とキュー ペアの構成をアドバタイズすると仮定します。

  • MaxNumQueuePairs は 128 に設定されています。

  • MaxNumVPorts は 64 に設定されています。

  • MaxNumQueuePairsPerNonDefaultPort は 4 に設定されています。

既定以外の VPort のキュー ペアの非対称構成をサポートしていないミニポート ドライバーでは、仮想化スタックは VPort の作成時に次のキュー ペアの構成を指定できます。

  • それぞれ 2 つのキュー ペアを持つ 63 個の既定以外の VF VPort と、1 つのキュー ペアを持つ既定の PF VPort。
  • それぞれ 4 つのキュー ペアを持つ 63 個の既定以外の VF VPort と、1 つのキュー ペアを持つ既定の PF VPort。

: Windows Server 2012 以降では、既定の VPort は 1 つのみがサポートされ、常にネットワーク アダプターの PF に接続されます。