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