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 的 BOOLEAN 值。 否则,此成员为 FALSE

IPv4Options

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

IPv6NonIPsecExtensionHeaders

一个 BOOLEAN 值,如果除 IPsec 标头外,NIC 还支持具有非 IPsec IPv6 扩展标头的数据包的 IPsec 卸载处理,则该值设置为 TRUE 。 否则,此成员为 FALSE

Ah

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

Esp

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

AhEspCombined

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

Transport

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

Tunnel

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

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

TransportTunnelCombined

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

LsoSupported

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

ExtendedSequenceNumbers

如果 NIC 支持 IPsec 扩展序列号,则设置为 TRUE 的 BOOLEAN 值。 否则,此成员为 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 可以使用高级加密标准 - 伽罗瓦/计数器模式 (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 或两者。 TCP/IP 维护卸载的 SA 捆绑包的计数,不应添加超过微型端口驱动程序报告的最大 SA 捆绑数。

注解

在 NDIS 6.1 及更高版本中,NDIS_IPSEC_OFFLOAD_V2 结构在 NDIS_OFFLOAD 结构的 IPsecV2 成员中使用。 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 (包括 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