NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2-Struktur (ntddndis.h)
Die NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2-Struktur enthält Paketkapselungsinformationen für die VXLAN-Aufgabe (Virtual Extensible LAN). VXLAN ähnelt nvgre task offload, aber mit einem anderen Protokoll.
Diese Struktur wird im EncapsulatedPacketTaskOffloadVxlan-Member der NDIS_OFFLOAD-Struktur in NDIS 6.50 und höher verwendet.
Syntax
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;
Member
TransmitChecksumOffloadSupported
Aufgabenauslagerungseinstellungen für übertragungsprüfsumme.
ReceiveChecksumOffloadSupported
Aufgabenauslagerungseinstellungen für die Empfangsprüfsumme.
LsoV2Supported
Task offload settings for large send offload Version 2 (LSOv2) (Task offload settings for large send offload Version 2 (LSOv2).
RssSupported
Aufgabenauslagerungseinstellungen für die empfangsseitige Skalierung (RSS).
VmqSupported
Aufgabenauslagerungseinstellungen für die VM-Warteschlange (VMQ).
UsoSupported
Task offload settings for UDP segmentation offload (USO).
Reserved
Ist für das System reserviert.
MaxHeaderSizeSupported
Dieser Member sollte auf die maximale Headergröße vom Anfang des Pakets bis zum Anfang der inneren TCP- oder UDP-Nutzlast (dem letzten Byte des tcp- oder UDP-inneren Headers) festgelegt werden, die die NIC für alle diese Aufgabenauslagerungen unterstützen muss. Vom Protokolltreiber wird erwartet, dass die Verarbeitung eines Pakets, dessen kombinierte Kapselungsheader diese Größe überschreiten, nicht ausgelagert wird.
Tipp
256 Byte ist ein guter Standardwert, der alle möglichen Fälle abdecken sollte.
EncapsulationProtocolInfo
Eine Union, die das VxlanInfo-Element und das Value-Element enthält.
EncapsulationProtocolInfo.VxlanInfo
Eine Struktur, die das VxlanUDPPortNumber-Element und das VxlanUDPPortNumberConfigurable-Element enthält.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber
Die Portnummer, die für den VXLAN UDP-Zielport verwendet werden soll.
EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable
Beschreibt, ob die UDP-Portnummer konfigurierbar ist.
EncapsulationProtocolInfo.Value
Der UDP-Prüfsummenwert für dieses Paket.
_ENCAPSULATION_PROTOCOL_INFO
Reserved1
Ist für das System reserviert.
Reserved2
Ist für das System reserviert.
Hinweise
In der anfänglichen Funktionsanzeige sowie in NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG und NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES status Anzeigen können die Member TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported und UsoSupported auf ein bitweises OR der folgenden Flags festgelegt werden:
Begriff | BESCHREIBUNG |
---|---|
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED | Gibt an, dass der Miniportadapter das vom Member angibt entsprechende Aufgabenauslagerungsfeature nicht unterstützt. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 | Gibt an, dass der Miniportadapter das entsprechende Aufgabenauslagerungsfeature unterstützt, das vom Member angibt, wo der innere IP-Header eines gekapselten Pakets IPv4 ist. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 | Gibt an, dass der Miniportadapter das entsprechende Aufgabenauslagerungsfeature unterstützt, das vom Member angibt, wo der äußere IP-Header eines gekapselten Pakets IPv4 ist. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 | Gibt an, dass der Miniportadapter das entsprechende Aufgabenauslagerungsfeature unterstützt, das der Member angibt, wo der innere IP-Header eines gekapselten Pakets IPv6 ist. |
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 | Gibt an, dass der Miniportadapter das entsprechende Aufgabenauslagerungsfeature unterstützt, das der Member angibt, wo der äußere IP-Header eines gekapselten Pakets IPv6 ist. |
Wenn beispielsweise ein Miniportadapter und ein Treiber einen IPv6-Header nur als äußerer IP-Header, aber nicht als innerer IP-Header unterstützen, wird TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported und UsoSupported auf den Wert des bitweisen OR von NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 und festgelegt. NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.
In Bezug auf IP-Optionen und TCP-Optionen wurde für gekapselte Pakete folgendes angenommen:
- Wenn die NIC IpOptions - und TcpOptions-Unterstützung in normaler Prüfsummenabladung und LSOv2-Ankündigung angibt, muss sie die Optionsverarbeitung für gekapselte Pakete unterstützen, wenn die Netzwerkvirtualisierung mit VXLAN-Taskauslagerung unterstützt wird. Dies bedeutet, dass sowohl innere als auch äußere IP-Optionen und TCP-Optionen in den gekapselten Paketen unterstützt werden. Es gibt keine separate Funktionsankündigung für diese speziellen VXLAN-Aufgabenauslagerungen.
Ein Protokolltreiber kann Pakete im gemischten Modus auslagern, d. h. Pakete, in denen sich die versionen des inneren und äußeren IP-Headers unterscheiden. Beispielsweise könnte ein Paket einen äußeren IP-Header als IPv6 und den inneren IP-Header als IPv4 aufweisen.
Weitere Informationen zu VXLAN finden Sie unter RFC 7348.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | NDIS 6.50 |
Kopfzeile | ntddndis.h (include ndis.h) |