次の方法で共有


RSS および VMQ 受信タスク オフロードでの NVGRE のサポート

NDIS 6.30 (Windows Server 2012) では、NVGRE (Network Virtualization using Generic Routing Encapsulation) が導入されています。 Receive Side Scaling (RSS) と Virtual Machine Queue (VMQ) 受信タスク オフロードを実行する NDIS ミニポート ドライバーと NIC は、NVGRE をサポートする方法で行う必要があります。

: このページは、「大きな TCP パケットのセグメント化のオフロード」の情報を理解していることを前提としています。

ミニポート ドライバーは、カプセル化されたパケットの RSS と VMQ をサポートする場合、その能力を NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD 構造体の RssSupportedVmqSupported メンバーでアドバタイズする必要があります。 ミニポートがこれらの機能をアドバタイズし、OID_TCP_OFFLOAD_PARAMETERS OID 要求を受信し、OID に成功した場合、NIC はアドバタイズされたカプセル化されたパケットの種類に対して RSS と VMQ を実行する必要があります。

解析できる、サポートされているカプセル化されたパケットの場合、NIC はトランスポート (内部) IP ヘッダーのペイロード内の TCP または UDP ヘッダーで RSS を実行し、内部 MAC ヘッダーの VMQ を実行する必要があります。

RSS と VMQ を実行するには、「受信パスのカプセル化されたパケットのトランスポート ヘッダーの位置」で説明されているように、NIC はカプセル化されたパケットのトランスポート (内部) IP ヘッダーを取得し、プロトコル番号をチェックする必要があります。 NIC が解析可能なプロトコルを使用するパケットを受信した場合、NIC は次のことを行う必要があります。

  • トランスポート (内部) IP ヘッダーと TCP または UDP ヘッダーに対して 4 タプルのハッシュを行うことで RSS を実行します。
    • ミニポートが解析できないプロトコルのカプセル化されたパケットに対して、NIC はトンネル (外部) IP ヘッダーの送信元と宛先のアドレス フィールドに対して 2 タプルのハッシュを実行する必要があります。
    • トランスポート (内部) IP ヘッダーの直後に TCP または UDP ヘッダーを含まないカプセル化されたパケットでは、NIC はトンネル (外部) IP ヘッダーの送信元と宛先のアドレス フィールドに対して 2 タプル ハッシュを実行する必要があります。
  • カプセル化されたパケットのイーサネット ヘッダーを使用して VMQ を実行します。 (カプセル化されたパケット内に) イーサネット ヘッダーを含まないカプセル化されたパケットでは、最も外側のイーサネット ヘッダーを使用して VMQ を実行する必要があります。