次の方法で共有


仮想関数切断シーケンス

単一ルート I/O 仮想化 (SR-IOV) をサポートするネットワーク アダプターは、次のハードウェア コンポーネントをサポートできる必要があります。

  • 1 つの PCI Express (PCIe) 物理機能 (PF)。 PF は常にネットワーク アダプター上に存在し、Hyper-V 親パーティションに接続されます。

    このハードウェア コンポーネントの詳細については、「SR-IOV 物理機能 (PF)」を参照してください。

  • 1 つ以上の PCIe 仮想関数 (VF)。 ゲスト オペレーティング システムのネットワーク コンポーネントが VF 経由でパケットを送受信するには、各 VF を初期化して Hyper-V 子パーティションに接続する必要があります。

    このハードウェア コンポーネントの詳細については、SR-IOV 仮想関数 (VFs)を参照してください。

VF ティアダウンでそのリソースが解放される前に、仮想化スタックは仮想 PCI (VPCI) 仮想サービス プロバイダー (VSP) に通知します。 この VSP は、Hyper-V 親パーティションの管理オペレーティング システムで実行されます。 この通知は、VF ティアダウンによって子パーティションからデタッチされることを VPCI VSP に知らせます。 VPCI VSP は、仮想マシン バス (VMBus) 経由で、子パーティションのゲスト オペレーティング システムで実行されている VPCI 仮想サービス クライアント (VSC) にメッセージを送信します。 これらのメッセージは、VF が子パーティションにアタッチされたときに公開された VF ネットワーク アダプターを正常に取り外すように VPCI VSC に要求します。 これにより、NetVSC が VF ミニポート ドライバーからバインドを解除し、ドライバーが停止します。 この時点で、子パーティション内のパケット トラフィックは VF データ パスからソフトウェア ベースの合成データ パスに移行されます。 これらのデータ パスの詳細については、「SR-IOV データ パス」を参照してください。

合成データ パスへのフェールオーバーが完了すると、VF ティアダウンによってそのリソースが解放されます。 次の図は、VF のティアダウンに関連するステップを示しています。

仮想化スタックから ndis への呼び出し、その後 pf ミニポート ドライバーへの呼び出しを示す vf 破棄シーケンスの例。

NDIS、仮想化スタック、および PF ミニポート ドライバーは、VF ティアダウン シーケンスで次の手順に従います。

  1. 仮想化スタックは、VM ネットワーク アダプターのメディア アクセス制御 (MAC) および仮想 LAN (VLAN) フィルターを PF にアタッチされている既定の仮想ポート (VPort) に移動します。 VM ネットワーク アダプターは、子パーティションのゲスト オペレーティング システムで公開されます。

    フィルターが既定の VPort に移動されると、合成データ パスは、ゲスト オペレーティング システムで実行されるネットワーク コンポーネントとの間のネットワーク トラフィックに対して完全に動作します。 PF ミニポート ドライバーは、合成データ パスを使用してゲスト オペレーティング システムへのパケットを示す既定の PF VPort で受信したパケットを示します。 同様に、ゲスト オペレーティング システムから送信されるすべてのパケットは合成データ パスを介してルーティングされ、既定の PF VPort を介して送信されます。

  2. 仮想化スタックは、PF ミニポート ドライバーに OID_NIC_SWITCH_DELETE_VPORT のオブジェクト識別子 (OID) セット要求を発行することによって、VF にアタッチされている VPort を削除します。 ミニポート ドライバーは、VPort に関連付けられているハードウェアおよびソフトウェア リソースを解放し、OID 要求を完了します。

    詳細については、「仮想ポートの削除」を参照してください。

  3. 仮想化スタックは、リソースの割り当てが解除される前に、VF の PCIe 関数レベル リセット (FLR) を要求します。 スタックは、PF ミニポート ドライバーに OID_SRIOV_RESET_VF の OID セット要求を発行することによってこれを行います。 FLR は SR-IOV ネットワーク アダプターの VF を静止状態にし、VF の保留中の割り込みイベントをクリアします。

  4. VF がリセットされた後、仮想化スタックは、PF ミニポート ドライバーに OID_NIC_SWITCH_FREE_VF の OID セット要求を発行することによって VF リソースの割り当て解除を要求します。 これにより、ミニポート ドライバーは、VF に関連付けられているハードウェア リソースを解放します。