struttura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 (ntddndis.h)
La struttura NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 contiene informazioni sull'incapsulamento dei pacchetti per l'offload delle attività VXLAN (Virtual Extensible LAN). VXLAN è simile a 'offload delle attività NVGRE, ma con un protocollo diverso.
Questa struttura viene usata nel EncapsulatedPacketTaskOffloadVxlan membro della struttura NDIS_OFFLOAD in NDIS 6.50 e versioni successive.
Sintassi
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;
Membri
TransmitChecksumOffloadSupported
Impostazioni di offload delle attività per il checksum di trasmissione.
ReceiveChecksumOffloadSupported
Impostazioni di offload delle attività per il checksum di ricezione.
LsoV2Supported
Impostazioni di offload delle attività per l'offload di invio di grandi dimensioni versione 2 (LSOv2).
RssSupported
Impostazioni di offload delle attività per il ridimensionamento lato ricezione (RSS).
VmqSupported
Impostazioni di offload delle attività per la coda di macchine virtuali (VMQ).
UsoSupported
Impostazioni di offload delle attività per l'offload di segmentazione UDP (USO).
Reserved
Riservato per l'uso del sistema.
MaxHeaderSizeSupported
Questo membro deve essere impostato sulle dimensioni massime dell'intestazione dall'inizio del pacchetto all'inizio del payload TCP o UDP interno (l'ultimo byte dell'intestazione interna TCP o UDP) che la scheda di interfaccia di rete deve supportare per tutti questi offload di attività. Si prevede che il driver di protocollo non eselabori l'elaborazione di un pacchetto le cui intestazioni di incapsulamento combinate superano questa dimensione.
Mancia
256 byte è un buon valore predefinito che deve coprire tutti i casi possibili.
EncapsulationProtocolInfo
Unione contenente il membro VxlanInfo e il membro Value.
EncapsulationProtocolInfo.VxlanInfo
Struct che contiene il membro VxlanUDPPortNumber e il membro VxlanUDPPortNumberConfigurable.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber
Numero di porta da usare per la porta di destinazione UDP VXLAN.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable
Descrive se il numero di porta UDP è configurabile.
EncapsulationProtocolInfo.Value
Valore del checksum UDP per questo pacchetto.
_ENCAPSULATION_PROTOCOL_INFO
Reserved1
Riservato per l'uso del sistema.
Reserved2
Riservato per l'uso del sistema.
Osservazioni
Nell'annuncio iniziale delle funzionalità e in NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG e NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES indicazioni sullo stato, i TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupportede Membri UsoSupported possono essere impostati su un OR bit per bit dei flag seguenti:
Termine | Descrizione |
---|---|
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED | Specifica che l'adattatore miniport non supporta la funzionalità di offload dell'attività corrispondente specificata dal membro. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 | Specifica che l'adattatore miniport supporta la funzionalità di offload dell'attività corrispondente specificata dal membro in cui l'intestazione IP interna di un pacchetto incapsulato è IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 | Specifica che l'adattatore miniport supporta la funzionalità di offload dell'attività corrispondente specificata dal membro in cui l'intestazione IP esterna di un pacchetto incapsulato è IPv4. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 | Specifica che l'adattatore miniport supporta la funzionalità di offload dell'attività corrispondente specificata dal membro in cui l'intestazione IP interna di un pacchetto incapsulato è IPv6. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 | Specifica che l'adattatore miniport supporta la funzionalità di offload dell'attività corrispondente specificata dal membro in cui l'intestazione IP esterna di un pacchetto incapsulato è IPv6. |
Ad esempio, se un adattatore miniport e un driver supportano solo un'intestazione IPv6 come intestazione IP esterna, ma non come intestazione IP interna, imposta TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupportede UsoSupported sul valore dell'OR bit per bit del NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 e NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.
Per quanto riguarda le opzioni IP e le opzioni TCP, è stato fatto il presupposto seguente per i pacchetti incapsulati:
- Se la scheda di interfaccia di rete specifica IpOptions e TcpOptions supporto nell'offload checksum normale e nell'annuncio LSOv2, deve supportare l'elaborazione delle opzioni per i pacchetti incapsulati se è supportata l'offload dell'attività VXLAN tramite Virtualizzazione di rete. Ciò significa che supporterà le opzioni IP interne ed esterne e le opzioni TCP all'interno dei pacchetti incapsulati. Non esiste alcun annuncio di funzionalità separato per questi specifici per l'offload delle attività VXLAN.
È possibile che un driver di protocollo offload di pacchetti "modalità mista", ovvero pacchetti in cui le versioni dell'intestazione IP interna ed esterna siano diverse. Ad esempio, un pacchetto potrebbe avere un'intestazione IP esterna come IPv6 e l'intestazione IP interna come IPv4.
Per altre informazioni su VXLAN, vedere RFC 7348.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | NDIS 6.50 |
intestazione | ntddndis.h (include ndis.h) |