VMMQ の送信と受信の処理

仮想マシンの複数キュー (VMMQ) は、RSS 処理を使用して、物理機能仮想ポート (PF VPorts) のネットワーク トラフィックを効率的に分散します。 シングル ルート I/O 仮想化 (SR-IOV) インターフェイスとそのコンポーネントの詳細については、「SR-IOV アーキテクチャ」を参照してください。

次の図は、VMMQ インターフェイス内のネットワーク パケット受信パスを示しています。

diagram illustrating network packet data paths with vmmq.

受信パスで、パケットが VMMQ をサポートする NIC に到着すると、NIC は次のようになります。

  1. 宛先 MAC アドレスと照合し、ターゲット VPort を検索します。

  2. VPort の RSS パラメーター (秘密鍵、ハッシュ関数、ハッシュの種類) を使用して、パケットの RSS ハッシュ値を計算します。

  3. ハッシュ値を使用して、VPort に関連付けられている間接テーブルのインデックスを作成します。 間接テーブル内の値は、受信したデータをプロセッサに割り当てるために使用されます。

  4. ターゲット プロセッサに割り込み、受信したパケットがホスト ネットワーク スタックに示されます。

受信した NBL を示す場合、ミニポート アダプターは、VPort ID と RSS 関連の帯域外 (OOB) フィールドを適切な値に設定します。

送信パスでは、NIC はパケット内の RSS ハッシュ値 (存在する場合) を VPort の RSS 間接参照テーブルのインデックスとして使用する必要があります。 NIC は、この間接テーブル値を使用して、パケットの送信完了割り込みと DPC を処理するプロセッサを決定します。

NIC が受信パケットの RSS ハッシュ値を計算できない場合、または RSS ハッシュ値が送信パケットに存在しない場合は、VPort の既定の RSS プロセッサをターゲット RSS プロセッサとして使用する必要があります。 VPort の既定の RSS プロセッサは、VPort の RSS パラメーターで指定されます。 詳細については、「VPort でのVMMQ の有効化、無効化、および更新」を参照してください。

ホスト ネットワーク スタックは、実行時に VPort の RSS パラメーターを動的に更新できます。 NIC は、VPort との間で発生するトラフィックの中断を最小限に抑えながら、VPort の RSS パラメーターの変更に応答する必要があります。