estrutura OFFLOAD_IPSEC_ADD_UDPESP_SA (ntddndis.h)

A estrutura OFFLOAD_IPSEC_ADD_UDPESP_SA contém informações para cada SA (associação de segurança) que um driver de miniporto adiciona para pacotes ESP encapsulados por UDP a uma NIC.

Sintaxe

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;

Membros

SrcAddr

O endereço IP do host de origem (o host que envia os pacotes).

SrcMask

A máscara de sub-rede para o endereço IP de origem.

DstAddr

O endereço IP do host de destino (o host que recebe os pacotes).

DstMask

A máscara de sub-rede para o endereço IP de destino.

Protocol

O protocolo IP. A codificação de Protocolo é idêntica à do campo Protocolo em um cabeçalho IP. O valor deve ser 11 (hexadecimal), que especifica UDP.

SrcPort

Uma porta TCP ou UDP de origem. Se SrcPort estiver definido como zero, a SA se aplicará a qualquer porta TCP/UDP de origem.

DstPort

Uma porta TCP ou UDP de destino. Se DestPort for definido como zero, a SA se aplicará a qualquer porta TCP/UDP de origem.

SrcTunnelAddr

O endereço IP do ponto de extremidade de origem, como um conector, de um túnel. O driver de miniporte usa
SrcTunnelAddr como o endereço de origem do cabeçalho IP do túnel de pacotes enviados na SA. SrcTunnelAddr é especificado apenas para uma SA que se aplica à parte do túnel de um pacote. SrcTunnelAddr é definido como zero para uma SA que se aplica à parte de transporte de um pacote.

DstTunnelAddr

O endereço IP do ponto de extremidade de destino, como um conector, de um túnel. O driver de miniporto usa DestTunnelAddr como o endereço de destino para o cabeçalho IP do túnel de pacotes enviados na SA. DestTunnelAddr é especificado apenas para uma SA que se aplica à parte do túnel de um pacote. DestTunnelAddr é definido como zero para uma SA que se aplica à parte de transporte de um pacote.

Flags

Uma máscara de bits que indica se a SA que está sendo adicionada é uma SA de entrada ou saída da seguinte maneira:

OFFLOAD_INBOUND_SA

Especifica uma SA de entrada.

OFFLOAD_OUTBOUND_SA

Especifica uma SA de saída.

NumSAs

O número de elementos na matriz SecAssoc . Cada elemento na matriz é um OFFLOAD_SECURITY_ASSOCIATION estrutura.

SecAssoc[OFFLOAD_MAX_SAS]

Uma matriz de comprimento variável que contém as informações sobre as operações de segurança de protocolo IPsec (AH ou ESP) para a SA. As informações para cada operação IPsec são formatadas como uma estrutura OFFLOAD_SECURITY_ASSOCIATION.

O transporte TCP/IP especifica uma ou duas estruturas OFFLOAD_SECURITY_ASSOCIATION no buffer em SecAssoc. Cada estrutura OFFLOAD_SECURITY_ASSOCIATION indica o tipo de operação, autenticação ou criptografia/descriptografia, para o qual a SA especificada na estrutura deve ser usada. A ordem das estruturas de OFFLOAD_SECURITY_ASSOCIATION na matriz indica a ordem na qual o driver de miniporto deve executar as operações para cada SA. Há suporte apenas para uma combinação de operações: criptografia/descriptografia (ESP) seguida por AH (autenticação).

OffloadHandle

O identificador para a SA recém-criada. O driver de miniporte fornece esse identificador antes de concluir o
OID_TCP_TASK_IPSEC_ADD_SA solicitação. O transporte TCP/IP deve especificar esse identificador na estrutura NDIS_IPSEC_PACKET_INFO antes de passar um pacote de envio para o driver de miniport. O transporte TCP/IP também deve especificar esse identificador ao excluir a SA com um OID_TCP_TASK_IPSEC_DELETE_SA solicitação.

EncapTypeEntry

O tipo de encapsulamento UDP-ESP e a porta de destino de uma entrada de analisador. Essas informações são formatadas como um OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY estrutura.

EncapTypeEntryOffldHandle

Quando Flags= OFFLOAD_INBOUND_SA e EncapTypeEntryOffldHandle for NULL, o driver de miniporto deverá marcar se a entrada do analisador especificada por EncapTypeEntry está na lista de entradas do analisador da NIC. Se não estiver, o driver de miniporto deverá criar uma entrada de analisador, usando o tipo de encapsulamento e a porta de destino especificada em EncapTypeEntry, adicionar a entrada do analisador à lista de entradas do analisador e descarregar os SAs especificados. O driver de miniporte deve retornar um identificador em EncapTypeEntryOffldHandle que identifica a entrada do analisador recém-criada. Se a entrada do analisador especificada já estiver na lista de entradas do analisador, o miniporto deverá simplesmente retornar o identificador em EncapTypeEntryOffldHandle para a entrada do analisador existente.

Quando Flags= OFFLOAD_INBOUND_SA e EncapTypeEntryOffldHandle não é NULL, EncapTypeEntryOffldHandle contém o identificador para uma entrada de analisador que já está na lista de entradas do analisador da NIC. Nesse caso, o driver de miniporte deve simplesmente descarregar os SAs especificados.

Quando Flags= OFFLOAD_OUTBOUND_SA, o driver de miniporto deve ignorar o parâmetro EncapTypeEntryOffldHandle .

KeyLen

O comprimento, em bytes, do buffer em KeyMat.

KeyMat[1]

Uma matriz de comprimento variável que contém chaves para os SAs especificados em SecAssoc. Se um algoritmo de confidencialidade (criptografia/descriptografia) e um algoritmo de integridade (autenticação) forem especificados pelo ConfAlgo e IntegrityAlgo de um OFFLOAD_SECURITY_ASSOCIATION estrutura, o buffer em KeyMat contém informações importantes para o algoritmo de confirmação primeiro, seguido imediatamente por informações de chave para o algoritmo de integridade.

O comprimento de cada chave no buffer em KeyMat é especificado por algoKeyLen na estrutura OFFLOAD_ALGO_INFO que especifica o algoritmo de confidencialidade ou integridade. (Uma estrutura OFFLOAD_ALGO_INFO é membro de uma estrutura OFFLOAD_SECURITY_ASSOCIATION.)

Comentários

A estrutura OFFLOAD_IPSEC_ADD_UDPESP_SA é usada com o OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Observe que a estrutura de OFFLOAD_IPSEC_ADD_UDPESP_SA é quase idêntica à estrutura OFFLOAD_IPSEC_ADD_SA usada na solicitação de OID_TCP_TASK_IPSEC_ADD_SA . A única diferença é que a estrutura OFFLOAD_IPSEC_ADD_UDPESP_SA contém os membros EncapTypeEntry e EncapTypeEntryOffldHandle .

Requisitos

Requisito Valor
Cabeçalho ntddndis.h (inclua Ndis.h)

Confira também

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