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)

Voir aussi

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