estructura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 (ntddndis.h)
La estructura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 contiene información de encapsulación de paquetes para la descarga de tareas de LAN extensible virtual (VXLAN). VXLAN es similar a la descarga de tareas NVGRE, pero con un protocolo diferente.
Esta estructura se usa en el miembro EncapsulatedPacketTaskOffloadVxlan de la estructura NDIS_OFFLOAD en NDIS 6.50 y versiones posteriores.
Sintaxis
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;
Miembros
TransmitChecksumOffloadSupported
Configuración de descarga de tareas para la suma de comprobación de transmisión.
ReceiveChecksumOffloadSupported
Configuración de descarga de tareas para la suma de comprobación de recepción.
LsoV2Supported
Configuración de descarga de tareas para la descarga de envío grande versión 2 (LSOv2).
RssSupported
Configuración de descarga de tareas para el escalado lateral de recepción (RSS).
VmqSupported
Configuración de descarga de tareas para la cola de máquinas virtuales (VMQ).
UsoSupported
Configuración de descarga de tareas para la descarga de segmentación UDP (USO).
Reserved
Reservado para uso del sistema.
MaxHeaderSizeSupported
Este miembro debe establecerse en el tamaño máximo del encabezado desde el principio del paquete hasta el principio de la carga tcp o UDP interna (el último byte del encabezado interno TCP o UDP) que la NIC debe admitir para todas estas descargas de tareas. Se espera que el controlador de protocolo no descargue el procesamiento de un paquete cuyos encabezados de encapsulación combinados superen este tamaño.
Sugerencia
256 bytes es un buen valor predeterminado que debe abarcar todos los casos posibles.
EncapsulationProtocolInfo
Unión que contiene el miembro VxlanInfo y el miembro Value .
EncapsulationProtocolInfo.VxlanInfo
Estructura que contiene el miembro VxlanUDPPortNumber y el miembro VxlanUDPPortNumberConfigurable .
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber
Número de puerto que se va a usar para el puerto de destino UDP de VXLAN.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable
Describe si el número de puerto UDP es configurable.
EncapsulationProtocolInfo.Value
Valor de suma de comprobación udp para este paquete.
_ENCAPSULATION_PROTOCOL_INFO
Reserved1
Reservado para uso del sistema.
Reserved2
Reservado para uso del sistema.
Comentarios
En el anuncio de funcionalidad inicial y en NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG y NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES indicaciones de estado, los miembros TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported y UsoSupported se pueden establecer en un OR bit a bit de las marcas siguientes:
Término | Descripción |
---|---|
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED | Especifica que el adaptador de miniporte no admite la característica de descarga de tareas correspondiente que especifica el miembro. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 | Especifica que el adaptador de miniporte admite la característica de descarga de tareas correspondiente que el miembro especifica dónde se encuentra el encabezado IP interno de un paquete encapsulado IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 | Especifica que el adaptador de minipuerto admite la característica de descarga de tareas correspondiente que el miembro especifica dónde se encuentra el encabezado IP externo de un paquete encapsulado IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 | Especifica que el adaptador de minipuerto admite la característica de descarga de tareas correspondiente que el miembro especifica dónde está el encabezado IP interno de un paquete encapsulado es IPv6. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 | Especifica que el adaptador de minipuerto admite la característica de descarga de tareas correspondiente que el miembro especifica dónde se encuentra el encabezado IP externo de un paquete encapsulado es IPv6. |
Por ejemplo, si un adaptador de miniporte y un controlador solo admiten un encabezado IPv6 como encabezado IP externo, pero no como encabezado IP interno, establecerá TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported y UsoSupported en el valor del OR bit a bit de NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 y NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.
Con respecto a las opciones de IP y las opciones tcp, se ha supuesto lo siguiente para los paquetes encapsulados:
- Si la NIC especifica la compatibilidad con IpOptions y TcpOptions en la descarga de suma de comprobación normal y el anuncio de LSOv2, debe admitir el procesamiento de opciones para paquetes encapsulados si se admite la descarga de tareas VXLAN mediante virtualización de red mediante la descarga de tareas VXLAN. Esto significa que admitirá tanto las opciones ip internas como externas y las opciones tcp dentro de los paquetes encapsulados. No hay ningún anuncio de funcionalidad independiente para estos específicos solo para la descarga de la tarea VXLAN.
Es posible que un controlador de protocolo descargue paquetes de "modo mixto", lo que significa que los paquetes en los que las versiones de encabezado IP internas y externas son diferentes. Por ejemplo, un paquete podría tener un encabezado IP externo como IPv6 y el encabezado IP interno como IPv4.
Para obtener más información sobre VXLAN, consulte RFC 7348.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | NDIS 6.50 |
Encabezado | ntddndis.h (include ndis.h) |