Partilhar via


Suporte a NVGRE em descarregamentos de tarefa de recebimento de RSS e VMQ

O NDIS 6.30 (Windows Server 2012) introduz a Virtualização de Rede usando o NVGRE (Encapsulamento de Roteamento Genérico). Drivers de miniporto NDIS e NICs que executam RSS ( Receive Side Scaling ) e VMQ (Virtual Machine Queue) recebem descarregamentos de tarefa devem fazer isso de uma maneira que dê suporte a NVGRE.

Nota Esta página pressupõe que você esteja familiarizado com as informações em Descarregando a segmentação de pacotes TCP grandes.

Se o driver de miniporto der suporte a RSS e VMQ para pacotes encapsulados, ele deverá anunciar esses recursos nos membros RssSupported e VmqSupported da estrutura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD . Se o miniporto anunciou esses recursos, recebeu um OID_TCP_OFFLOAD_PARAMETERS solicitação OID e conseguiu o OID, a NIC deve executar RSS e VMQ nos tipos de pacote encapsulados anunciados.

Para pacotes encapsulados com suporte que ele é capaz de analisar, a NIC deve executar RSS no cabeçalho TCP ou UDP no conteúdo do cabeçalho IP de transporte (interno) e VMQ no cabeçalho MAC interno.

Para executar o RSS e o VMQ, a NIC deve acessar o cabeçalho IP de transporte (interno) do pacote encapsulado, conforme descrito em Localizando o cabeçalho de transporte para pacotes encapsulados no Caminho de Recebimento e marcar o número do protocolo. Se a NIC receber um pacote que usa um protocolo que a NIC pode analisar, a NIC deverá:

  • Execute o RSS fazendo um hash de 4 tuplas no cabeçalho IP de transporte (interno) e no cabeçalho TCP ou UDP.
    • Para pacotes encapsulados cujo protocolo o miniporto não pode analisar, a NIC deve executar um hash de duas tuplas nos campos de endereço de origem e destino no cabeçalho IP do túnel (externo).
    • Para pacotes encapsulados que não contêm um cabeçalho TCP ou UDP imediatamente após o cabeçalho IP de transporte (interno), a NIC deve executar um hash de duas tuplas nos campos de endereço de origem e de destino no cabeçalho IP do túnel (externo).
  • Execute o VMQ usando o cabeçalho Ethernet no pacote encapsulado. Para pacotes encapsulados que não contêm um cabeçalho Ethernet (dentro do pacote encapsulado), o VMQ deve ser executado usando o cabeçalho Ethernet mais externo.