共用方式為


NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 結構 (ntddndis.h)

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 結構包含虛擬可擴展 LAN (VXLAN) 工作卸除的封包封裝資訊。 VXLAN 類似於 NVGRE 工作卸除,但使用不同的通訊協定。

這個結構用於 NDIS 6.50 和更新版本中 NDIS_OFFLOAD 結構的PackedPacketTaskOffloadVxlan 成員。

語法

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;

成員

TransmitChecksumOffloadSupported

傳輸總和檢查碼的工作卸除設定。

ReceiveChecksumOffloadSupported

接收總和檢查碼的工作卸除設定。

LsoV2Supported

大型傳送卸除第 2 版的工作卸除設定 (LSOv2) 。

RssSupported

接收端調整的工作卸除設定 (RSS) 。

VmqSupported

虛擬機佇列的工作卸除設定 (VMQ) 。

UsoSupported

UDP 分割卸除的工作卸除設定 (USO) 。

Reserved

保留供系統使用。

MaxHeaderSizeSupported

此成員應設定為封包開頭到內部 TCP 或 UDP 承載開頭的最大標頭大小, (TCP 或 UDP 內部標頭的最後一個字節,) NIC 必須支援所有這些工作卸除。 通訊協定驅動程式預期不會卸除合併封裝標頭超過此大小的封包處理。

提示

256 個字節是適當的預設值,應涵蓋所有可能的情況。

EncapsulationProtocolInfo

包含 VxlanInfo 成員和 Value 成員的聯集。

EncapsulationProtocolInfo.VxlanInfo

結構,包含 VxlanUDPPortNumber 成員和 VxlanUDPPortNumberConfigurable 成員。

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber

要用於 VXLAN UDP 目的地埠的埠號碼。

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable

描述 UDP 連接埠號碼是否可設定。

EncapsulationProtocolInfo.Value

此封包的 UDP 總和檢查碼值。

_ENCAPSULATION_PROTOCOL_INFO

Reserved1

保留供系統使用。

Reserved2

保留供系統使用。

備註

在初始功能公告 和NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIGNDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES 狀態指示中, TransmitChecksumOffloadSupportedReceiveChecksumOffloadSupportedLsoV2SupportedRssSupportedVmqSupportedUsoSupported 成員可以設定為下列旗標的位 OR:

詞彙 描述
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED 指定迷你埠配接器不支持成員指定的對應工作卸載功能。
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 指定迷你埠配接器支持成員指定封裝封包內部IP標頭為IPv4的對應工作卸除功能。
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 指定迷你埠配接器支持成員指定封裝封包外部IP標頭為IPv4的對應工作卸除功能。
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 指定迷你埠配接器支持成員指定封裝封包內部IP標頭為IPv6的對應工作卸除功能。
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 指定迷你埠配接器支持成員指定封裝封包外部IP標頭為IPv6的對應工作卸除功能。

例如,如果迷你埠適配卡和驅動程式只支援 IPv6 標頭做為外部 IP 標頭,但不是內部 IP 標頭,則會將 TransmitChecksumOffloadSupported、ReceiveChecksumOffloadSupportedLsoV2SupportedRssSupportedVmqSupportedUsoSupported 設定為位 OR 的值,NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4、NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4和NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6。

關於IP選項和 TCP 選項,已針對封裝封包進行下列假設:

  • 如果 NIC 在一般總和檢查碼卸除和 LSOv2 公告中指定 IpOptionsTcpOptions 支援,則如果支援使用 VXLAN 工作卸除的網路虛擬化,則必須支援封裝封包的選項處理。 這表示它同時支援封裝封包內的內部和外部IP選項和TCP選項。 只有 VXLAN 工作卸除的特定功能公告沒有個別的功能公告。

通訊協議驅動程式可以卸除「混合模式」封包,這表示內部和外部IP標頭版本的封包不同。 例如,封包可能會有外部IP標頭作為IPv6,而內部IP標頭則為IPv4。

如需 VXLAN 的詳細資訊,請參閱 RFC 7348

規格需求

需求
最低支援的用戶端 NDIS 6.50
標頭 ntddndis.h (include ndis.h)

另請參閱

NDIS_OFFLOAD