SR-IOV、VMQ、および RSS の標準化された INF キーワードの処理
単一ルート I/O 仮想化 (SR-IOV)、仮想マシン キュー (VMQ)、および受信側スケーリング (RSS) をサポートするネットワーク アダプターでは、次の方法でこれらのインターフェイスの使用を有効にすることができます:
SR-IOV と VMQ は、個別に有効にすることも、同時に有効にすることもできます。
SR-IOV または VMQ が有効になっている場合、ネットワーク アダプターで RSS を有効にすることはできません。
オペレーティング システムでは、SR-IOV、VMQ、または RSS インターフェイスを次のように使用できます:
ネットワーク アダプターが TCP/IP スタックにバインドされている場合、操作によって RSS 機能の使用が有効になります。
ネットワーク アダプターが Hyper-V 拡張可能スイッチ ドライバー スタックにバインドされている場合、オペレーティング システムは SR-IOV または VMQ 機能の使用を有効にします。
Hyper-V 拡張可能スイッチの詳細については、「Hyper-V 拡張可能スイッチ」を参照してください。
ネットワーク アダプターが TCP/IP スタックと Hyper-V 拡張可能スイッチ ドライバー スタックからバインド解除されると、ミニポート ドライバーが停止し、再初期化されます。 このため、このようなネットワーク アダプターで RSS、VMQ、SR-IOV を自動的に切り替えすることはできません。
NDIS が、MiniportInitializeEx 関数を呼び出すとき、ミニポート ドライバーは、現在有効な SR-IOV、VMQ、または RSS 機能をNDIS に報告する前に、次の手順に従います。
ミニポート ドライバーは、現在有効になっている機能を NDIS に報告する前に、*SriovPreferred キーワードを読み取ります。
*SriovPreferred キーワードの値が 1 の場合、ミニポート ドライバーは SR-IOV 基本設定用に構成されます。
ミニポート ドライバーは、現在有効になっている機能を NDIS に報告する前に、*RssOrVmqPreference キーワードを読み取ります。
*RssOrVmqPreference キーワードの値が 1 の場合、ミニポート ドライバーは VMQ 基本設定用に構成されます。
*RssOrVmqPreference キーワード の値が 0 の場合、またはキーワードが存在しない場合、ミニポート ドライバーは RSS 優先設定用に構成されます。
ミニポート ドライバーが SR-IOV 優先設定用に構成されている場合は、*SRIOV キーワードを読み取って、SR-IOV がネットワーク アダプターで有効になっているかどうかを判断する必要があります。 キーワード (keyword)が 1 に設定されている場合、ドライバーは現在有効な SR-IOV 設定を報告します。
ミニポート ドライバーが SR-IOV 設定を報告する方法の詳細については、「SR-IOV 機能の決定」を参照してください。
SR-IOV キーワードの詳細については、 「SR-IOV の標準化された INF キーワード」を参照してください。
注 ミニポート ドライバーが SR-IOV 優先設定用に構成されている場合は、RSS 標準化されたキーワードのいずれかを読み取ってはいけません。 ただし、ドライバーは、標準化されたキーワード VMQ *VMQVlanFiltering を読み取る必要があります。 このキーワードは、ミニポート ドライバーがメディア アクセス制御 (MAC) ヘッダーの仮想 VLAN (VLAN) 識別子を使用してネットワーク パケットをフィルター処理できるようにするかどうかを指定します。 ミニポート ドライバーは、NDIS_RECEIVE_FILTER_CAPABILITIES 構造体の SupportedMacHeaderFields メンバーに NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED フラグを設定することによって、この機能を報告します。 *VMQVlanFiltering の標準化されたキーワードの詳細については、「VMQの標準化された INF キーワード」を参照してください。
ミニポート ドライバーが VMQ 基本設定用に構成されている場合は、*VMQ キーワード (keyword)を読み取って、ネットワーク アダプターで VMQ が有効になっているかどうかを確認する必要があります。 キーワードが 1 に設定されている場合、ドライバーは現在有効な VMQ 設定を報告します。 ミニポート ドライバーが VMQ 設定を報告する方法の詳細については、「ネットワーク アダプターの VMQ 機能の決定」を参照してください。
VMQ キーワードの詳細については、「VMQ の標準化された INF キーワード」を参照してください。
注 ミニポート ドライバーが VMQ 優先設定用に構成されている場合は、RSS または SR-IOV 標準化されたキーワードのいずれかを読み取ってはいけません。
ミニポート ドライバーが RSS 優先設定用に構成されている場合は、*RSS キーワードを読み取って、ネットワーク アダプターで RSS が有効になっているかどうかを確認する必要があります。 キーワードが 1 に設定されている場合、ドライバーは現在有効な RSS 設定を報告します。 ミニポート ドライバーが RSS 設定を報告する方法の詳細については、「RSS 構成」を参照してください。
RSS キーワードの詳細については、「RSS の標準化された INF キーワード」を参照してください。
注 ミニポート ドライバーが RSS 優先設定用に構成されている場合は、RSS または SR-IOV 標準化されたキーワードのいずれかを読み取ってはいけません。
次の表では、ミニポート ドライバーが、ネットワーク アダプターで正しいインターフェイスを有効にするために SR-IOV、VMQ、または RSS の優先設定を決定する方法について説明します。
SriovPreferred | RssOrVmqPreference | SRIOV | VMQ | *RSS | 有効なインターフェイス |
---|---|---|---|---|---|
1 |
1 |
1 |
1 |
該当なし |
SR-IOV と VMQ |
1 |
1 |
0 |
1 |
該当なし |
VMQ |
1 |
1、0、またはレジストリに存在しない |
0 |
0 |
該当なし |
なし |
0、またはレジストリに存在しない |
1 |
該当なし |
1 |
該当なし |
VMQ |
0、またはレジストリに存在しない |
1 |
該当なし |
0 |
該当なし |
なし |
0、またはレジストリに存在しない |
0、またはレジストリに存在しない |
該当なし |
該当なし |
1 |
RSS |
0、またはレジストリに存在しない |
0、またはレジストリに存在しない |
該当なし |
該当なし |
0 |
なし |
注 SR-IOV インターフェイスと VMQ インターフェイスの両方が有効になっている場合、VMQ インターフェイスの VM キューの代わりに、PCI Express (PCIe) 物理関数 (PF) に接続されている SR-IOV の既定以外の仮想ポート (VPorts) が使用されます。 詳細については、「既定以外の仮想ポートと VMQ」を参照してください。
ミニポート ドライバーは、現在有効になっているインターフェイスの機能をアドバタイズする必要があります。 たとえば、SR-IOV が有効になっている場合、ミニポート ドライバーは、VMQ または RSS 機能ではなく、SR-IOV 機能をアドバタイズする必要があります。 ただし、ミニポート ドライバーは、ネットワーク アダプターで有効になっているインターフェイスに関係なく、完全な RSS、VMQ、SR-IOV ハードウェア機能を常に報告する必要があります。
注 VMQ および SR-IOV インターフェイスでは、VM キューまたは SR-IOV 仮想ポート (VPort) を介した受信フィルター処理が使用されます。 その結果、一部の受信フィルター機能では、これらのインターフェイスのいずれかが有効になっている場合、同じ設定または異なる設定が必要になります。 SR-IOV インターフェイスの受信フィルター機能を報告する方法の詳細については、「受信フィルター機能の決定」を参照してください。 VMQ インターフェイスの受信フィルター機能を報告する方法の詳細については、「ネットワーク アダプターの VMQ 機能の決定」を参照してください。