Freigeben über


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)

Weitere Informationen

NDIS_OFFLOAD