Condividi tramite


struttura OFFLOAD_IPSEC_ADD_UDPESP_SA (ntddndis.h)

La struttura OFFLOAD_IPSEC_ADD_UDPESP_SA contiene informazioni per ogni associazione di sicurezza (SA) che un driver miniport aggiunge per i pacchetti ESP incapsulati UDP a una scheda di interfaccia di rete.

Sintassi

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;

Members

SrcAddr

Indirizzo IP dell'host di origine (l'host che invia i pacchetti).

SrcMask

Subnet mask per l'indirizzo IP di origine.

DstAddr

Indirizzo IP dell'host di destinazione (l'host che riceve i pacchetti).

DstMask

Subnet mask per l'indirizzo IP di destinazione.

Protocol

Protocollo IP. La codifica del protocollo è identica a quella del campo Protocollo in un'intestazione IP. Il valore deve essere 11 (esadecimale), che specifica UDP.

SrcPort

Porta TCP o UDP di origine. Se SrcPort è impostato su zero, l'amministratore di sistema si applica a qualsiasi porta TCP/UDP di origine.

DstPort

Porta TCP o UDP di destinazione. Se DestPort è impostato su zero, l'amministratore di sistema si applica a qualsiasi porta TCP/UDP di origine.

SrcTunnelAddr

Indirizzo IP per l'endpoint di origine, ad esempio un connettore, di un tunnel. Il driver miniport usa
SrcTunnelAddr come indirizzo di origine per l'intestazione IP del tunnel dei pacchetti inviati nell'amministratore di sistema. SrcTunnelAddr viene specificato solo per un sa che si applica alla parte del tunnel di un pacchetto. SrcTunnelAddr è impostato su zero per un sa che si applica alla parte di trasporto di un pacchetto.

DstTunnelAddr

Indirizzo IP per l'endpoint di destinazione, ad esempio un connettore, di un tunnel. Il driver miniport usa DestTunnelAddr come indirizzo di destinazione per l'intestazione IP del tunnel dei pacchetti inviati nell'sa. DestTunnelAddr viene specificato solo per un sa che si applica alla parte del tunnel di un pacchetto. DestTunnelAddr è impostato su zero per un sa che si applica alla parte di trasporto di un pacchetto.

Flags

Maschera di bit che indica se l'amministratore di sistema aggiunto è un sa in ingresso o in uscita, come indicato di seguito:

OFFLOAD_INBOUND_SA

Specifica un sa in ingresso.

OFFLOAD_OUTBOUND_SA

Specifica un sa in uscita.

NumSAs

Numero di elementi nella matrice SecAssoc . Ogni elemento nella matrice è un OFFLOAD_SECURITY_ASSOCIATION struttura.

SecAssoc[OFFLOAD_MAX_SAS]

Matrice a lunghezza variabile che contiene le informazioni sulle operazioni IPsec (Internet Protocol Security) (AH o ESP) per l'amministratore di sistema. Le informazioni per ogni operazione IPsec vengono formattate come struttura OFFLOAD_SECURITY_ASSOCIATION.

Il trasporto TCP/IP specifica una o due strutture OFFLOAD_SECURITY_ASSOCIATION nel buffer in SecAssoc. Ogni struttura OFFLOAD_SECURITY_ASSOCIATION indica il tipo di operazione-autenticazione o crittografia/decrittografia, per cui deve essere utilizzato l'amministratore di sistema specificato nella struttura. L'ordine delle strutture OFFLOAD_SECURITY_ASSOCIATION nella matrice indica l'ordine in cui il driver miniport deve eseguire le operazioni per ogni sa. È supportata una sola combinazione di operazioni: crittografia/decrittografia (ESP) seguita dall'autenticazione (AH).

OffloadHandle

Handle per l'amministratore di sicurezza appena creato. Il driver miniport fornisce questo handle prima di completare il
OID_TCP_TASK_IPSEC_ADD_SA richiesta. Il trasporto TCP/IP deve specificare questo handle nella struttura NDIS_IPSEC_PACKET_INFO prima di passare un pacchetto di invio al driver miniport. Il trasporto TCP/IP deve inoltre specificare questo handle durante l'eliminazione dell'sa con un OID_TCP_TASK_IPSEC_DELETE_SA richiesta.

EncapTypeEntry

Tipo di incapsulamento UDP-ESP e porta di destinazione di una voce del parser. Queste informazioni sono formattate come OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY struttura.

EncapTypeEntryOffldHandle

Quando Flags= OFFLOAD_INBOUND_SA e EncapTypeEntryOffldHandle è NULL, il driver miniport deve verificare se la voce del parser specificata da EncapTypeEntry si trova nell'elenco delle voci del parser della scheda di interfaccia di rete. In caso contrario, il driver miniport deve creare una voce del parser, usando il tipo di incapsulamento e la porta di destinazione specificata in EncapTypeEntry, aggiungere la voce del parser all'elenco di voci del parser e eseguire l'offload delle SA specificate. Il driver miniport deve restituire un handle in EncapTypeEntryOffldHandle che identifica la voce del parser appena creato. Se la voce del parser specificata è già presente nell'elenco delle voci del parser, il miniport deve restituire semplicemente l'handle in EncapTypeEntryOffldHandle per la voce del parser esistente.

Quando Flags= OFFLOAD_INBOUND_SA e EncapTypeEntryOffldHandle non è NULL, EncapTypeEntryOffldHandle contiene l'handle per una voce del parser già presente nell'elenco delle voci del parser della scheda di interfaccia di rete. In questo caso, il driver miniport deve semplicemente eseguire l'offload delle ca specificate.

Quando Flags= OFFLOAD_OUTBOUND_SA, il driver miniport deve ignorare il parametro EncapTypeEntryOffldHandle .

KeyLen

Lunghezza, in byte, del buffer in KeyMat.

KeyMat[1]

Matrice a lunghezza variabile che contiene chiavi per gli account di sicurezza specificati in SecAssoc. Se sia un algoritmo di riservatezza (crittografia/decrittografia) che un algoritmo di integrità (autenticazione) vengono specificati da ConfAlgo e IntegrityAlgo di un OFFLOAD_SECURITY_ASSOCIATION struttura, il buffer in KeyMat contiene prima le informazioni chiave per l'algoritmo di conferma, seguito immediatamente dalle informazioni chiave per l'algoritmo di integrità.

La lunghezza di ogni chiave nel buffer in KeyMat viene specificata da algoKeyLen nella struttura OFFLOAD_ALGO_INFO che specifica la riservatezza o l'algoritmo di integrità. Una struttura OFFLOAD_ALGO_INFO è un membro di una struttura OFFLOAD_SECURITY_ASSOCIATION.

Commenti

La struttura OFFLOAD_IPSEC_ADD_UDPESP_SA viene utilizzata con l'oggetto OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Si noti che la struttura OFFLOAD_IPSEC_ADD_UDPESP_SA è quasi identica alla struttura OFFLOAD_IPSEC_ADD_SA utilizzata nella richiesta di OID_TCP_TASK_IPSEC_ADD_SA . L'unica differenza è che la struttura OFFLOAD_IPSEC_ADD_UDPESP_SA contiene i membri EncapTypeEntry e EncapTypeEntryOffldHandle .

Requisiti

Requisito Valore
Intestazione ntddndis.h (include Ndis.h)

Vedi anche

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