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 に報告する前に、次の手順に従います。

  1. ミニポート ドライバーは、現在有効になっている機能を NDIS に報告する前に、*SriovPreferred キーワードを読み取ります。

    *SriovPreferred キーワードの値が 1 の場合、ミニポート ドライバーは SR-IOV 基本設定用に構成されます。

  2. ミニポート ドライバーは、現在有効になっている機能を NDIS に報告する前に、*RssOrVmqPreference キーワードを読み取ります。

    *RssOrVmqPreference キーワードの値が 1 の場合、ミニポート ドライバーは VMQ 基本設定用に構成されます。

    *RssOrVmqPreference キーワード の値が 0 の場合、またはキーワードが存在しない場合、ミニポート ドライバーは RSS 優先設定用に構成されます。

  3. ミニポート ドライバーが 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 キーワード」を参照してください。

  4. ミニポート ドライバーが VMQ 基本設定用に構成されている場合は、*VMQ キーワード (keyword)を読み取って、ネットワーク アダプターで VMQ が有効になっているかどうかを確認する必要があります。 キーワードが 1 に設定されている場合、ドライバーは現在有効な VMQ 設定を報告します。 ミニポート ドライバーが VMQ 設定を報告する方法の詳細については、「ネットワーク アダプターの VMQ 機能の決定」を参照してください。

    VMQ キーワードの詳細については、「VMQ の標準化された INF キーワード」を参照してください

    ミニポート ドライバーが VMQ 優先設定用に構成されている場合は、RSS または SR-IOV 標準化されたキーワードのいずれかを読み取ってはいけません。

  5. ミニポート ドライバーが 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 機能の決定」を参照してください。