estrutura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 (ntddndis.h)
A estrutura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 contém informações de encapsulamento de pacotes para descarregamento de tarefa VXLAN (VIRTUAL Extensible LAN). A VXLAN é semelhante ao descarregamento de tarefa NVGRE, mas com um protocolo diferente.
Essa estrutura é usada no membro EncapsulatedPacketTaskOffloadVxlan da estrutura NDIS_OFFLOAD no NDIS 6.50 e posterior.
Sintaxe
typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 {
ULONG TransmitChecksumOffloadSupported : 4;
ULONG ReceiveChecksumOffloadSupported : 4;
ULONG LsoV2Supported : 4;
ULONG RssSupported : 4;
ULONG VmqSupported : 4;
ULONG UsoSupported : 4;
#if ...
ULONG Reserved : 8;
#else
ULONG Reserved : 12;
#endif
ULONG MaxHeaderSizeSupported;
union {
struct {
USHORT VxlanUDPPortNumber;
USHORT VxlanUDPPortNumberConfigurable : 1;
} VxlanInfo;
ULONG Value;
} EncapsulationProtocolInfo;
_ENCAPSULATION_PROTOCOL_INFO _ENCAPSULATION_PROTOCOL_INFO;
ULONG Reserved1;
ULONG Reserved2;
} NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2;
Membros
TransmitChecksumOffloadSupported
Configurações de descarregamento de tarefa para transmitir soma de verificação.
ReceiveChecksumOffloadSupported
Configurações de descarregamento de tarefa para a soma de verificação de recebimento.
LsoV2Supported
Configurações de descarregamento de tarefa para O descarregamento de envio grande versão 2 (LSOv2).
RssSupported
Configurações de descarregamento de tarefa para RSS (dimensionamento lateral de recebimento).
VmqSupported
Configurações de descarregamento de tarefa para VMQ (fila de máquinas virtuais).
UsoSupported
Configurações de descarregamento de tarefa para USO (descarregamento de segmentação UDP).
Reserved
Reservado para uso do sistema.
MaxHeaderSizeSupported
Esse membro deve ser definido como o tamanho máximo do cabeçalho desde o início do pacote até o início da carga interna de TCP ou UDP (o último byte do cabeçalho interno TCP ou UDP) ao qual a NIC deve dar suporte para todos esses descarregamentos de tarefa. Espera-se que o driver de protocolo não descarregue o processamento de um pacote cujos cabeçalhos de encapsulamento combinados excedam esse tamanho.
Dica
256 bytes é um bom valor padrão que deve abranger todos os casos possíveis.
EncapsulationProtocolInfo
Uma união que contém o membro VxlanInfo e o membro Value .
EncapsulationProtocolInfo.VxlanInfo
Um struct que contém o membro VxlanUDPPortNumber e o membro VxlanUDPPortNumberConfigurable .
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber
O número da porta a ser usado para a porta de destino UDP da VXLAN.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable
Descreve se o número da porta UDP é configurável.
EncapsulationProtocolInfo.Value
O valor da soma de verificação UDP para esse pacote.
_ENCAPSULATION_PROTOCOL_INFO
Reserved1
Reservado para uso do sistema.
Reserved2
Reservado para uso do sistema.
Comentários
No anúncio de funcionalidade inicial e em NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG e NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES status indicações, os membros TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported e UsoSupported podem ser definidos como um OR bit a bit dos seguintes sinalizadores:
Termo | Descrição |
---|---|
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED | Especifica que o adaptador de miniporta não dá suporte ao recurso de descarregamento de tarefa correspondente especificado pelo membro. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 | Especifica que o adaptador de miniporto dá suporte ao recurso de descarregamento de tarefa correspondente que o membro especifica onde o cabeçalho IP interno de um pacote encapsulado é IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 | Especifica que o adaptador de miniporto dá suporte ao recurso de descarregamento de tarefa correspondente que o membro especifica onde o cabeçalho IP externo de um pacote encapsulado é IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 | Especifica que o adaptador de miniporto dá suporte ao recurso de descarregamento de tarefa correspondente que o membro especifica onde o cabeçalho IP interno de um pacote encapsulado é IPv6. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 | Especifica que o adaptador de miniporto dá suporte ao recurso de descarregamento de tarefa correspondente que o membro especifica onde o cabeçalho IP externo de um pacote encapsulado é IPv6. |
Por exemplo, se um adaptador de miniporto e driver oferecerem suporte apenas a um cabeçalho IPv6 como cabeçalho IP externo, mas não como cabeçalho IP interno, ele definirá TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported e UsoSupported como o valor do OR bit a bit de NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 e NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.
Em relação a opções de IP e opções de TCP, a seguinte suposição foi feita para pacotes encapsulados:
- Se a NIC especificar suporte a IpOptions e TcpOptions em descarregamento de soma de verificação normal e anúncio LSOv2, ele deverá dar suporte ao processamento de opção para pacotes encapsulados se houver suporte para a Virtualização de Rede usando o descarregamento de tarefa VXLAN. Isso significa que ele dará suporte a opções de IP interno e externo e opções TCP dentro dos pacotes encapsulados. Não há nenhum anúncio de funcionalidade separado para esses dados específicos apenas para o descarregamento de tarefas VXLAN.
É possível que um driver de protocolo descarregue pacotes de "modo misto", o que significa pacotes nos quais as versões de cabeçalho IP interno e externo são diferentes. Por exemplo, um pacote pode ter o cabeçalho IP externo como IPv6 e o cabeçalho IP interno como IPv4.
Para obter mais informações sobre VXLAN, consulte RFC 7348.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | NDIS 6.50 |
Cabeçalho | ntddndis.h (inclua ndis.h) |