structure OFFLOAD_IPSEC_ADD_UDPESP_SA (ntddndis.h)
La structure OFFLOAD_IPSEC_ADD_UDPESP_SA contient des informations pour chaque association de sécurité (SA) qu’un pilote miniport ajoute pour les paquets ESP encapsulés UDP à une carte réseau.
Syntaxe
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;
Membres
SrcAddr
Adresse IP de l’hôte source (l’hôte qui envoie les paquets).
SrcMask
Masque de sous-réseau pour l’adresse IP source.
DstAddr
Adresse IP de l’hôte de destination (l’hôte qui reçoit les paquets).
DstMask
Masque de sous-réseau pour l’adresse IP de destination.
Protocol
Protocole IP. L’encodage du protocole est identique à celui du champ Protocole dans un en-tête IP. La valeur doit être 11 (hexadécimale), ce qui spécifie UDP.
SrcPort
Port TCP ou UDP source. Si SrcPort est défini sur zéro, l’accès partagé s’applique à n’importe quel port TCP/UDP source.
DstPort
Port TCP ou UDP de destination. Si DestPort est défini sur zéro, l’accès partagé s’applique à n’importe quel port TCP/UDP source.
SrcTunnelAddr
Adresse IP du point de terminaison source, tel qu’un connecteur, d’un tunnel. Le pilote miniport utilise
SrcTunnelAddr en tant qu’adresse source pour l’en-tête IP du tunnel des paquets envoyés sur l’entité d’accès partagé.
SrcTunnelAddr est spécifié uniquement pour une sap qui s’applique à la partie tunnel d’un paquet.
SrcTunnelAddr a la valeur zéro pour une sap qui s’applique à la partie transport d’un paquet.
DstTunnelAddr
Adresse IP du point de terminaison de destination, tel qu’un connecteur, d’un tunnel. Le pilote miniport utilise DestTunnelAddr comme adresse de destination pour l’en-tête IP du tunnel des paquets envoyés sur l’accès partagé. DestTunnelAddr est spécifié uniquement pour une sap qui s’applique à la partie tunnel d’un paquet. DestTunnelAddr a la valeur zéro pour une SAP qui s’applique à la partie transport d’un paquet.
Flags
Masque de bits qui indique si l’accès partagé ajouté est une sap entrante ou sortante comme suit :
OFFLOAD_INBOUND_SA
Spécifie une sa entrante.
OFFLOAD_OUTBOUND_SA
Spécifie une sa sortante.
NumSAs
Nombre d’éléments dans le tableau SecAssoc . Chaque élément du tableau est un OFFLOAD_SECURITY_ASSOCIATION structure.
SecAssoc[OFFLOAD_MAX_SAS]
Tableau de longueur variable qui contient les informations sur les opérations de sécurité du protocole Internet (IPsec) (AH ou ESP) pour l’AS. Les informations relatives à chaque opération IPsec sont mises en forme sous la forme d’une structure OFFLOAD_SECURITY_ASSOCIATION.
Le transport TCP/IP spécifie une ou deux structures OFFLOAD_SECURITY_ASSOCIATION dans la mémoire tampon sur SecAssoc. Chaque structure OFFLOAD_SECURITY_ASSOCIATION indique le type d’opération (authentification ou chiffrement/déchiffrement) pour lequel l’assemblée spécifiée dans la structure doit être utilisée. L’ordre des structures de OFFLOAD_SECURITY_ASSOCIATION dans le tableau indique l’ordre dans lequel le pilote miniport doit effectuer les opérations pour chaque SAP. Une seule combinaison d’opérations est prise en charge : chiffrement/déchiffrement (ESP) suivi de l’authentification (AH).
OffloadHandle
Handle de la sap nouvellement créée. Le pilote miniport fournit cette poignée avant de terminer le
OID_TCP_TASK_IPSEC_ADD_SA demande.
Le transport TCP/IP doit spécifier ce handle dans la structure NDIS_IPSEC_PACKET_INFO avant de passer un paquet d’envoi au pilote miniport. Le transport TCP/IP doit également spécifier ce handle lors de la suppression de l’accès partagé avec un OID_TCP_TASK_IPSEC_DELETE_SA demande.
EncapTypeEntry
Type d’encapsulation UDP-ESP et port de destination d’une entrée d’analyseur. Ces informations sont mises en forme en tant que OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY structure.
EncapTypeEntryOffldHandle
Lorsque Flags= OFFLOAD_INBOUND_SA et EncapTypeEntryOffldHandle a la valeur NULL, le pilote miniport doit case activée si l’entrée de l’analyseur spécifiée par EncapTypeEntry se trouve dans la liste d’entrées de l’analyseur de la carte réseau. Si ce n’est pas le cas, le pilote miniport doit créer une entrée d’analyseur, en utilisant le type d’encapsulation et le port de destination spécifiés dans EncapTypeEntry, ajouter l’entrée de l’analyseur à la liste d’entrées de l’analyseur et décharger les autorités de sécurité spécifiées. Le pilote miniport doit retourner un handle dans EncapTypeEntryOffldHandle qui identifie l’entrée de l’analyseur nouvellement créée. Si l’entrée de l’analyseur spécifiée figure déjà dans la liste des entrées de l’analyseur, le miniport doit simplement retourner le handle dans EncapTypeEntryOffldHandle pour l’entrée d’analyseur existante.
Lorsque Flags= OFFLOAD_INBOUND_SA et qu’EncapTypeEntryOffldHandle n’a pas la valeur NULL, EncapTypeEntryOffldHandle contient le handle d’une entrée d’analyseur qui se trouve déjà dans la liste d’entrées de l’analyseur de la carte réseau. Dans ce cas, le pilote miniport doit simplement décharger les autorités de sécurité spécifiées.
Lorsque les= indicateurs OFFLOAD_OUTBOUND_SA, le pilote miniport doit ignorer le paramètre EncapTypeEntryOffldHandle .
KeyLen
Longueur, en octets, de la mémoire tampon sur KeyMat.
KeyMat[1]
Tableau de longueur variable qui contient des clés pour les autorités de sécurité spécifiées dans SecAssoc. Si un algorithme de confidentialité (chiffrement/déchiffrement) et un algorithme d’intégrité (authentification) sont spécifiés par confAlgo et IntegrityAlgo d’un OFFLOAD_SECURITY_ASSOCIATION structure, la mémoire tampon dans KeyMat contient d’abord des informations clés pour l’algorithme de confirmation, suivies immédiatement d’informations clés pour l’algorithme d’intégrité.
La longueur de chaque clé dans la mémoire tampon sur KeyMat est spécifiée par algoKeyLen dans la structure OFFLOAD_ALGO_INFO qui spécifie l’algorithme de confidentialité ou d’intégrité. (Une structure OFFLOAD_ALGO_INFO est membre d’une structure OFFLOAD_SECURITY_ASSOCIATION.)
Remarques
La structure OFFLOAD_IPSEC_ADD_UDPESP_SA est utilisée avec le OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.
Notez que la structure de OFFLOAD_IPSEC_ADD_UDPESP_SA est presque identique à la structure OFFLOAD_IPSEC_ADD_SA utilisée dans la demande de OID_TCP_TASK_IPSEC_ADD_SA . La seule différence est que la structure OFFLOAD_IPSEC_ADD_UDPESP_SA contient les membres EncapTypeEntry et EncapTypeEntryOffldHandle .
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntddndis.h (inclure Ndis.h) |