estructura OFFLOAD_IPSEC_ADD_UDPESP_SA (ntddndis.h)

La estructura de OFFLOAD_IPSEC_ADD_UDPESP_SA contiene información para cada asociación de seguridad (SA) que un controlador de minipuerto agrega para paquetes ESP encapsulados udp a una NIC.

Sintaxis

typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
  IPAddr                               SrcAddr;
  IPMask                               SrcMask;
  IPAddr                               DstAddr;
  IPMask                               DstMask;
  ULONG                                Protocol;
  USHORT                               SrcPort;
  USHORT                               DstPort;
  IPAddr                               SrcTunnelAddr;
  IPAddr                               DstTunnelAddr;
  USHORT                               Flags;
  SHORT                                NumSAs;
  OFFLOAD_SECURITY_ASSOCIATION         SecAssoc[OFFLOAD_MAX_SAS];
  HANDLE                               OffloadHandle;
  OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
  HANDLE                               EncapTypeEntryOffldHandle;
  ULONG                                KeyLen;
  UCHAR                                KeyMat[1];
} OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA;

Miembros

SrcAddr

La dirección IP del host de origen (el host que envía los paquetes).

SrcMask

Máscara de subred para la dirección IP de origen.

DstAddr

La dirección IP del host de destino (el host que recibe los paquetes).

DstMask

Máscara de subred para la dirección IP de destino.

Protocol

Protocolo IP. La codificación del protocolo es idéntica a la del campo Protocolo en un encabezado IP. El valor debe ser 11 (hexadecimal), que especifica UDP.

SrcPort

Un puerto TCP o UDP de origen. Si SrcPort se establece en cero, la SA se aplica a cualquier puerto TCP/UDP de origen.

DstPort

Un puerto TCP o UDP de destino. Si DestPort se establece en cero, la SA se aplica a cualquier puerto TCP/UDP de origen.

SrcTunnelAddr

La dirección IP del punto de conexión de origen, como un conector, de un túnel. El controlador de minipuerto usa
SrcTunnelAddr como la dirección de origen del encabezado IP del túnel de paquetes enviados en la SA. SrcTunnelAddr solo se especifica para una SA que se aplica a la parte del túnel de un paquete. SrcTunnelAddr se establece en cero para una SA que se aplica a la parte de transporte de un paquete.

DstTunnelAddr

La dirección IP del punto de conexión de destino, como un conector, de un túnel. El controlador de minipuerto usa DestTunnelAddr como dirección de destino para el encabezado IP del túnel de paquetes enviados en la SA. DestTunnelAddr solo se especifica para una SA que se aplica a la parte del túnel de un paquete. DestTunnelAddr se establece en cero para una SA que se aplica a la parte de transporte de un paquete.

Flags

Máscara de bits que indica si la SA que se va a agregar es una SA entrante o saliente como se indica a continuación:

OFFLOAD_INBOUND_SA

Especifica una SA de entrada.

OFFLOAD_OUTBOUND_SA

Especifica una SA de salida.

NumSAs

Número de elementos de la matriz SecAssoc . Cada elemento de la matriz es un OFFLOAD_SECURITY_ASSOCIATION estructura.

SecAssoc[OFFLOAD_MAX_SAS]

Matriz de longitud variable que contiene la información sobre las operaciones de seguridad del protocolo de Internet (IPsec) (AH o ESP) para la SA. La información de cada operación de IPsec tiene el formato de estructura OFFLOAD_SECURITY_ASSOCIATION.

El transporte TCP/IP especifica una o dos estructuras OFFLOAD_SECURITY_ASSOCIATION en el búfer en SecAssoc. Cada estructura OFFLOAD_SECURITY_ASSOCIATION indica el tipo de operación--autenticación o cifrado/descifrado- para el que se va a usar la SA especificada en la estructura. El orden de las estructuras de OFFLOAD_SECURITY_ASSOCIATION de la matriz indica el orden en el que el controlador de miniporte debe realizar las operaciones de cada SA. Solo se admite una combinación de operaciones: cifrado y descifrado (ESP) seguido de la autenticación (AH).

OffloadHandle

Identificador de la SA recién creada. El controlador de minipuerto proporciona este asa antes de completar el
OID_TCP_TASK_IPSEC_ADD_SA solicitud. El transporte TCP/IP debe especificar este identificador en la estructura de NDIS_IPSEC_PACKET_INFO antes de pasar un paquete de envío al controlador de minipuerto. El transporte TCP/IP también debe especificar este identificador al eliminar la SA con un OID_TCP_TASK_IPSEC_DELETE_SA solicitud.

EncapTypeEntry

El tipo de encapsulación UDP-ESP y el puerto de destino de una entrada del analizador. Esta información tiene el formato OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY estructura.

EncapTypeEntryOffldHandle

Cuando Flags= OFFLOAD_INBOUND_SA y EncapTypeEntryOffldHandle es NULL, el controlador de miniporte debe comprobar si la entrada del analizador especificada por EncapTypeEntry está en la lista de entradas del analizador de la NIC. Si no es así, el controlador de miniporte debe crear una entrada del analizador, usando el tipo de encapsulación y el puerto de destino especificados en EncapTypeEntry, agregar la entrada del analizador a la lista de entradas del analizador y descargar los SAs especificados. El controlador de minipuerto debe devolver un identificador en EncapTypeEntryOffldHandle que identifique la entrada del analizador recién creada. Si la entrada del analizador especificada ya está en la lista de entradas del analizador, el miniporte simplemente debe devolver el identificador en EncapTypeEntryOffldHandle para la entrada del analizador existente.

Cuando Flags= OFFLOAD_INBOUND_SA y EncapTypeEntryOffldHandle no son NULL, EncapTypeEntryOffldHandle contiene el identificador de una entrada del analizador que ya está en la lista de entradas del analizador de la NIC. En este caso, el controlador de minipuerto simplemente debe descargar los SAs especificados.

Cuandolas marcas= OFFLOAD_OUTBOUND_SA, el controlador de minipuerto debe omitir el parámetro EncapTypeEntryOffldHandle.

KeyLen

Longitud, en bytes, del búfer en KeyMat.

KeyMat[1]

Matriz de longitud variable que contiene claves para las SAs especificadas en SecAssoc. Si tanto un algoritmo de confidencialidad (cifrado/descifrado) como un algoritmo de integridad (autenticación) se especifican mediante confAlgo e IntegrityAlgo de un OFFLOAD_SECURITY_ASSOCIATION estructura, el búfer de KeyMat contiene información clave para el algoritmo de confirmación en primer lugar, seguido inmediatamente de la información de clave para el algoritmo de integridad.

La longitud de cada clave del búfer en KeyMat se especifica mediante algoKeyLen en la estructura OFFLOAD_ALGO_INFO que especifica la confidencialidad o el algoritmo de integridad. (Una estructura OFFLOAD_ALGO_INFO es un miembro de una estructura de OFFLOAD_SECURITY_ASSOCIATION).

Comentarios

La estructura de OFFLOAD_IPSEC_ADD_UDPESP_SA se usa con OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Tenga en cuenta que la estructura de OFFLOAD_IPSEC_ADD_UDPESP_SA es casi idéntica a la estructura de OFFLOAD_IPSEC_ADD_SA usada en la solicitud de OID_TCP_TASK_IPSEC_ADD_SA . La única diferencia es que la estructura OFFLOAD_IPSEC_ADD_UDPESP_SA contiene los miembros EncapTypeEntry y EncapTypeEntryOffldHandle .

Requisitos

Requisito Valor
Header ntddndis.h (include Ndis.h)

Consulte también

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_IPSEC_ADD_SA

OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_ADD_UDPESP_SA

OID_TCP_TASK_IPSEC_DELETE_SA