NDIS_IPSEC_OFFLOAD_V2结构(ntddndis.h)

[IPsec 任务卸载功能已弃用,不应使用。]

NDIS_IPSEC_OFFLOAD_V2结构提供有关 NDIS_OFFLOAD 结构中 Internet 协议安全性 (IPsec) 版本 2 任务卸载功能的信息。

语法

typedef struct _NDIS_IPSEC_OFFLOAD_V2 {
  ULONG   Encapsulation;
  BOOLEAN IPv6Supported;
  BOOLEAN IPv4Options;
  BOOLEAN IPv6NonIPsecExtensionHeaders;
  BOOLEAN Ah;
  BOOLEAN Esp;
  BOOLEAN AhEspCombined;
  BOOLEAN Transport;
  BOOLEAN Tunnel;
  BOOLEAN TransportTunnelCombined;
  BOOLEAN LsoSupported;
  BOOLEAN ExtendedSequenceNumbers;
  ULONG   UdpEsp;
  ULONG   AuthenticationAlgorithms;
  ULONG   EncryptionAlgorithms;
  ULONG   SaOffloadCapacity;
} NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2;

成员

Encapsulation

IPsec 卸载支持的 MAC 封装类型。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv6Supported

如果支持 IPv6 流量上的 IPsec 卸载处理,则布尔值设置为 TRUE。 否则,此成员 FALSE

IPv4Options

如果 NIC 支持使用 IPv4 选项卸载数据包,则布尔值设置为 TRUE。 否则,此成员 FALSE

IPv6NonIPsecExtensionHeaders

如果 NIC 支持 IPsec 卸载处理非 IPsec IPv6 扩展标头的数据包(除了 IPsec 标头),则布尔值设置为 TRUE。 否则,此成员 FALSE

Ah

如果 NIC 可以在发送和接收包含身份验证标头 (AH) 安全有效负载的数据包上执行 IPsec 卸载作,则布尔值设置为 TRUE。 否则,此成员 FALSE

Esp

如果 NIC 可以对发送和接收包含封装安全有效负载(ESP)的数据包执行 IPsec 卸载作,则布尔值设置为 TRUE。 否则,此成员 FALSE

AhEspCombined

如果 NIC 可以对发送和接收包含 AH 有效负载和 ESP 有效负载的数据包执行 IPsec 卸载作,则布尔值设置为 TRUE。 否则,此成员 FALSE

Transport

如果 NIC 可以处理发送和接收数据包的传输模式部分的安全有效负载,则该值设置为 TRUE。 (数据包的传输模式部分与端到端连接相关。否则,此成员 FALSE

Tunnel

如果 NIC 可以处理发送和接收数据包的隧道模式部分的安全有效负载,则布尔值设置为 TRUE。 (数据包的隧道模式部分与隧道连接相关。否则,此成员 FALSE

注意 当 IPsec 层通过 IPsec 任务卸载接口发送隧道数据包时,IPsec 层可确保不会对这些数据包使用大型发送卸载(LSO)。
 

TransportTunnelCombined

如果 NIC 可以同时处理传输模式部分和发送和接收数据包的隧道模式部分的安全有效负载,则布尔值设置为 TRUE。 否则,此成员 FALSE。 数据包的传输模式部分与端到端连接相关。 数据包的隧道模式部分与隧道连接相关。

LsoSupported

如果 NIC 支持大型发送卸载(LSO),则布尔值设置为 TRUE。 否则,此成员 FALSE。 请注意,NIC 的 LSO 功能是在 LsoV1LsoV2NDIS_OFFLOAD 结构的成员中指定的。 LsoSupported 标志表示,如果连接受到 IPsec 保护,这些成员中指定的功能也有效。

ExtendedSequenceNumbers

如果 NIC 支持 IPsec 扩展序列号,则布尔值设置为 TRUE。 否则,此成员 FALSE

UdpEsp

NIC 可以分析的 UDP 封装 ESP 数据包的类型。 有关 UDP 封装类型的说明,请参阅 UDP-ESP 封装类型。 此成员可以是以下一个或多个标志:

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE

IPsec 卸载处理不适用于任何 UDP 封装类型。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT

UDP 封装的 ESP 封装传输模式数据包支持 IPsec 卸载。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL

UDP 封装的数据包的隧道模式部分支持 IPsec 卸载。 数据包的传输模式部分未封装 UDP,并且不受 ESP 保护。

IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL

UDP 封装的数据包的隧道模式部分支持 IPsec 卸载。 数据包的传输模式部分不是 UDP 封装的,而是受 ESP 保护的。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL

对于未封装 UDP 的数据包的隧道模式部分,支持 IPsec 卸载。 数据包的传输模式部分是 UDP 封装和 ESP 保护的。

AuthenticationAlgorithms

用于标识 NIC 支持的 IPsec 身份验证算法的位掩码。 微型端口驱动程序指定以下值的按位 OR:

IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5

NIC 可以使用密钥消息摘要 5 (MD5) 算法来计算或验证加密校验和。

IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1

NIC 可以使用安全哈希算法 (SHA) 1 算法来计算或验证加密校验和。

IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256

NIC 可以使用 SHA 256 算法来计算或验证加密校验和。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128

NIC 可以使用高级加密标准 - Galois/Counter Mode (AES-GMAC) 128 算法来计算或验证加密校验和。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192

NIC 可以使用 AES-GMAC 192 算法来计算或验证加密校验和。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256

NIC 可以使用 AES-GMAC 256 算法来计算或验证加密校验和。

EncryptionAlgorithms

一个位掩码,用于标识 NIC 支持的 IPsec 加密算法。 此位掩码是以下值的按位 OR:

IPSEC_OFFLOAD_V2_ENCRYPTION_NONE

NIC 可以使用 null 加密,即 ESP 有效负载,但不加密,但包含身份验证信息。

IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC

NIC 可以使用 DES 算法来加密和解密 ESP 有效负载。

IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC

NIC 可以使用三重 DES 算法来加密和解密 ESP 有效负载。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128

NIC 可以使用 AES-GCM 128 算法来加密和计算加密校验和,或者解密和验证 ESP 有效负载的加密校验和。 请注意,此算法是组合模式算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192

NIC 可以使用 AES-GCM 192 算法来加密和计算加密校验和,或者解密和验证 ESP 有效负载的加密校验和。 请注意,此算法是组合模式算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256

NIC 可以使用 AES-GCM 256 算法来加密和计算加密校验和,或者解密和验证 ESP 有效负载的加密校验和。 请注意,此算法是组合模式算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128

NIC 可以使用高级加密标准 - 密码块链模式 (AES-CBC) 128 算法来加密和解密 ESP 有效负载。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192

NIC 可以使用 AES-CBC 192 算法来加密和解密 ESP 有效负载。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256

NIC 可以使用 AES-CBC 256 算法来加密和解密 ESP 有效负载。

SaOffloadCapacity

可以卸载到 NIC 的 SA 捆绑包数(可能包括 ESP 或 AH 或 AH 或两者)。 TCP/IP 维护卸载的 SA 捆绑包数的计数,不应添加超过微型端口驱动程序报告的 SA 捆绑包的最大数量。

言论

在 NDIS 6.1 及更高版本中,NDIS_IPSEC_OFFLOAD_V2结构用于 IPsecV2NDIS_OFFLOAD 结构的成员。 NDIS_IPSEC_OFFLOAD_V2结构指定微型端口适配器为 IPsec 卸载处理提供的当前或受支持的功能。

注意 若要支持 IPsec 任务卸载,微型端口驱动程序必须在 Tunnel 成员中指定 TRUE
 
NDIS_OFFLOAD用于 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 结构、NDIS_BIND_PARAMETERS 结构、 NDIS_FILTER_ATTACH_PARAMETERS 结构, OID_TCP_OFFLOAD_CURRENT_CONFIG OID 和 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

对于 OID_TCP_OFFLOAD_CURRENT_CONFIG,NDIS_OFFLOAD结构指定微型端口适配器支持的任务卸载功能。 如果当前卸载功能发生更改,微型端口驱动程序在 中报告新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

NDIS_IPSEC_OFFLOAD_V2的 封装 成员定义微型端口适配器支持 IPsec 卸载的 MAC 封装。

响应 OID_TCP_OFFLOAD_CURRENT_CONFIG 查询请求,NDIS 在 封装 成员中提供封装标志(指示支持的封装设置)的按位 OR。 微型端口驱动程序必须提供以太网封装(NDIS_ENCAPSULATION_IEEE_802_3)。 其他类型的封装是可选的。

对于 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示,微型端口驱动程序在 封装 成员中提供封装标志(指示当前功能)的按位 OR。

封装 成员定义了以下标志:

要求

要求 价值
最低支持的客户端 NDIS 6.1 及更高版本中受支持。
标头 ntddndis.h (include Ndis.h)

另请参阅

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_IPSEC_OFFLOAD_V1

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OFFLOAD

NDIS_OID_REQUEST

NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG

NET_BUFFER_LIST

OID_TCP_OFFLOAD_CURRENT_CONFIG