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_CONFIG 和 NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES 狀態指示中, TransmitChecksumOffloadSupported、 ReceiveChecksumOffloadSupported、 LsoV2Supported、 RssSupported、 VmqSupported 和 UsoSupported 成員可以設定為下列旗標的位 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、ReceiveChecksumOffloadSupported、LsoV2Supported、RssSupported、VmqSupported 和 UsoSupported 設定為位 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 公告中指定 IpOptions 和 TcpOptions 支援,則如果支援使用 VXLAN 工作卸除的網路虛擬化,則必須支援封裝封包的選項處理。 這表示它同時支援封裝封包內的內部和外部IP選項和TCP選項。 只有 VXLAN 工作卸除的特定功能公告沒有個別的功能公告。
通訊協議驅動程式可以卸除「混合模式」封包,這表示內部和外部IP標頭版本的封包不同。 例如,封包可能會有外部IP標頭作為IPv6,而內部IP標頭則為IPv4。
如需 VXLAN 的詳細資訊,請參閱 RFC 7348。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.50 |
標頭 | ntddndis.h (include ndis.h) |