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) |