structure IPSEC_OFFLOAD_V2_ADD_SA_EX (ndis.h)

[La fonctionnalité de déchargement de tâche IPsec est déconseillée et ne doit pas être utilisée.]

La structure IPSEC_OFFLOAD_V2_ADD_SA_EX définit des informations sur une association de sécurité (SA) qu’un pilote miniport doit ajouter à une carte réseau.

Syntaxe

typedef struct _IPSEC_OFFLOAD_V2_ADD_SA_EX {
  NDIS_OBJECT_HEADER                    Header;
  ULONG                                 NumExtHdrs;
  ULONG                                 Flags;
  union {
    struct {
      IPAddr SrcAddr;
      IPAddr DestAddr;
    } IPv4Endpoints;
    struct {
      UCHAR SrcAddr[16];
      UCHAR DestAddr[16];
    } IPv6Endpoints;
  };
  NDIS_HANDLE                           OffloadHandle;
  ULONG                                 UdpEspEncapsulation;
  IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS];
  ULONG                                 KeyLength;
  ULONG                                 KeyOffset;
  NDIS_SWITCH_PORT_ID                   SourceSwitchPortId;
  USHORT                                VlanId;
} IPSEC_OFFLOAD_V2_ADD_SA_EX, *PIPSEC_OFFLOAD_V2_ADD_SA_EX;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure IPSEC_OFFLOAD_V2_ADD_SA_EX. Définissez le membre Type de la structure spécifiée par l’en-tête sur NDIS_OBJECT_TYPE_DEFAULT, le membre Revision sur NDIS_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1 et le membre Size sur NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1.

NumExtHdrs

Nombre d’en-têtes d’extension IPsec. Ce membre peut être l’une des valeurs suivantes.

Type de sécurité En-têtes d’extension
Authentification AH uniquement 1
Authentification ESP uniquement 1
Chiffrement ESP uniquement 1
Authentification ESP plus chiffrement 1
AH plus l’authentification ESP plus le chiffrement 2
UDP ESP 1

Flags

Masque de bits qui indique si l’accès partagé ajouté est une sap entrante ou sortante comme suit :

IPSEC_OFFLOAD_V2_IPv6

Si cet indicateur est défini, les adresses sont IPv6. Sinon, les adresses sont IPv4

IPSEC_OFFLOAD_V2_INBOUND

Si cet indicateur est défini, l’accès partagé est entrant. Dans le cas contraire, l’accès partagé est sortant.

IPv4Endpoints

Adresses de point de terminaison IPv4. Cette structure contient les membres suivants :

IPv4Endpoints.SrcAddr

Adresse IPv4 de l’hôte source (l’hôte qui envoie les paquets).

IPv4Endpoints.DestAddr

Adresse IPv4 de l’hôte de destination (l’hôte qui reçoit les paquets).

IPv6Endpoints

Adresses de point de terminaison IPv6. Cette structure contient les membres suivants :

IPv6Endpoints.SrcAddr[16]

Adresse IPv6 de l’hôte source (l’hôte qui envoie les paquets).

IPv6Endpoints.DestAddr[16]

Adresse IPv6 de l’hôte de destination (l’hôte qui reçoit les paquets).

OffloadHandle

Handle de la sap nouvellement créée. Le pilote miniport fournit cette poignée avant de terminer le
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX demande. Le transport TCP/IP doit spécifier ce handle dans le
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO ou NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO structure 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_OFFLOAD_V2_DELETE_SA demande.

UdpEspEncapsulation

Type d’encapsulation UDP ESP. Ce membre peut être un ou plusieurs des indicateurs suivants :

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE

Aucune encapsulation UDP n’est utilisée.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT

Un paquet en mode transport encapsulé ESP est encapsulé par UDP.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL

La partie en mode tunnel d’un paquet est encapsulée UDP. La partie en mode transport du paquet n’est pas encapsulée UDP et n’est pas protégée par ESP.

IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL

La partie en mode tunnel d’un paquet est encapsulée UDP. La partie en mode transport d’un paquet n’est pas encapsulée UDP, mais est protégée par ESP.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL

La partie en mode tunnel d’un paquet n’est pas encapsulée UDP. La partie en mode transport d’un paquet est encapsulée UDP et protégée par ESP.

SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]

Tableau avec deux éléments qui contiennent les informations sur les opérations IPsec (AH, ESP ou les deux) pour l’AS. Le nombre d’éléments fournis est spécifié dans le membre NumExtHdrs . Les informations pour chaque opération IPsec sont mises en forme en tant que IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure, décrite ci-dessous.

Le transport TCP/IP spécifie une ou deux structures IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION dans la mémoire tampon à SecAssoc . Chaque structure IPSEC_OFFLOAD_V2_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 IPSEC_OFFLOAD_V2_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).

KeyLength

Longueur, en octets, de la mémoire tampon dans KeyOffset.

KeyOffset

Décalage, en octets, entre le début de la structure IPSEC_OFFLOAD_V2_ADD_SA_EX et le début d’un tableau de longueur variable qui contient des clés pour l’sap spécifié dans SecAssoc. Si un algorithme de chiffrement et un algorithme d’authentification sont spécifiés par les membres EncryptionAlgorithm et AuthenticationAlgorithm d’un IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure, la mémoire tampon dans KeyOffset contient des informations clés pour l’une suivie de l’autre. Le début et la longueur de la clé sont spécifiés par le IPSEC_OFFLOAD_V2_ALGORITHM_INFO membres KeyOffsetBytes et KeyLength de la structure, respectivement.

SourceSwitchPortId

Réservé.

VlanId

Réservé.

Remarques

La structure IPSEC_OFFLOAD_V2_ADD_SA_EX spécifie une sap de sécurité qui doit être ajoutée. La structure IPSEC_OFFLOAD_V2_ADD_SA_EX est utilisée avec le
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID.

La structure IPSEC_OFFLOAD_V2_ADD_SA_EX spécifie la source et la destination, ainsi que les protocoles IP auxquels s’applique l’AS. Ce filtre concerne une connexion en mode transport, c’est-à-dire une connexion de bout en bout entre deux hôtes. Si la connexion spécifiée est établie via un tunnel, les adresses source et de destination du tunnel sont spécifiées.

Si un membre est défini sur zéro, ce paramètre n’est pas utilisé pour filtrer les paquets pour l’entité d’accès unique spécifiée. Par exemple, si SrcAddr est défini sur zéro, l’accès partagé spécifié peut s’appliquer à un paquet qui contient n’importe quelle adresse source. Si tous les paramètres de filtre sont définis sur zéro, l’accès partagé spécifié s’applique à n’importe quel hôte source qui envoie n’importe quel type de paquet à n’importe quel hôte de destination.

Cette structure est presque identique à la version précédente, IPSEC_OFFLOAD_V2_ADD_SA. Les membres Next et KeyData ont été supprimés. Les membres KeyOffset, SourceSwitchPortId et VlanId ont été ajoutés.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.30 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

IPSEC_OFFLOAD_V2_ADD_SA

NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION IPSEC_OFFLOAD_V2_ALGORITHM_INFO

NDIS_OBJECT_HEADER

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA