Partilhar via


Suporte a NVGRE no LSO (Descarregamento de Envio Grande)

O NDIS 6.30 (Windows Server 2012) introduz a Virtualização de Rede usando o NVGRE (Encapsulamento de Roteamento Genérico). Os drivers de miniporto, protocolo e filtro NDIS e NICs que executam LSO (descarregamento de envio grande) versão 2 (LSOV2) 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 NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO. IsEncapsulatedPacket é TRUE e as informações de OOB (fora de banda) de TcpIpChecksumNetBufferListInfo são válidas, isso indica que o suporte a NVGRE é necessário e a NIC deve executar o descarregamento LSOV2 no pacote formatado em NVGRE, com as seguintes condições:

Para dar suporte a NVGRE em LSOV2, os drivers de protocolo e filtro devem fazer as seguintes alterações:

Os drivers NICs e miniport podem usar os valores InnerFrameOffset, TransportIpHeaderRelativeOffset e TcpHeaderRelativeOffset fornecidos na estrutura NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO . O driver NIC ou miniport pode executar as verificações de cabeçalho necessárias no cabeçalho IP do túnel (externo) ou cabeçalhos subsequentes para validar esses deslocamentos.

Os drivers de miniporta devem lidar com o caso em que NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO. InnerFrameOffset pode estar em uma lista de dispersão diferente do início do pacote. O driver de protocolo garantirá que todos os cabeçalhos de encapsulamento anexados (ETH, IP, GRE) sejam fisicamente contíguos e estarão no primeiro MDL do pacote.

Os drivers de protocolo e filtro não garantem que o comprimento total da carga TCP seja um múltiplo exato do valor reduzido do MSS . Por esse motivo, os drivers de miniporto e as NICs devem atualizar o cabeçalho IP do túnel (externo). As NICs devem gerar o máximo possível de segmentos de tamanho completo com base no valor reduzido do MSS no NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO. LsoV2Transmit Informações de OOB. Somente um segmento sub MSS pode ser gerado por LSOv2 send.

Os drivers de miniport devem fazer o seguinte:

  • Compute a soma de verificação do cabeçalho IP do túnel (externo).
  • Incremente o valor de identificação de IP (ID de IP) do cabeçalho IP do túnel (externo) para cada pacote. O primeiro pacote deve usar a ID de IP no cabeçalho IP do túnel original (externo).
  • Incremente a ID de IP do cabeçalho IP de transporte (interno) para cada pacote. O primeiro pacote deve usar a ID de IP no cabeçalho IP de transporte original (interno).
  • Compute a soma de verificação para o cabeçalho TCP e o cabeçalho IP de transporte (interno).
  • Verifique se os cabeçalhos completos, incluindo os cabeçalhos de túnel de encapsulamento (externos), são adicionados a cada pacote gerado.

Descarregando a segmentação de pacotes TCP grandes