OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur (ntddndis.h)

Die OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur enthält Informationen für jede Sicherheitszuordnung (Security Association, SA), die ein Miniporttreiber für UDP-gekapselte ESP-Pakete zu einer NIC hinzufügt.

Syntax

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;

Member

SrcAddr

Die IP-Adresse des Quellhosts (der Host, der die Pakete sendet).

SrcMask

Die Subnetzmaske für die Quell-IP-Adresse.

DstAddr

Die IP-Adresse des Zielhosts (der Host, der die Pakete empfängt).

DstMask

Die Subnetzmaske für die Ziel-IP-Adresse.

Protocol

Das IP-Protokoll. Die Codierung des Protokolls ist mit der des Felds Protokoll in einem IP-Header identisch. Der Wert sollte 11 (hexadezimal) sein, was UDP angibt.

SrcPort

Ein TCP- oder UDP-Quellport. Wenn SrcPort auf null festgelegt ist, gilt die SA für jeden TCP/UDP-Quellport.

DstPort

Ein TCP- oder UDP-Zielport. Wenn DestPort auf null festgelegt ist, gilt die SA für jeden TCP/UDP-Quellport.

SrcTunnelAddr

Die IP-Adresse für den Quellendpunkt, z. B. einen Connector, eines Tunnels. Der Miniporttreiber verwendet
SrcTunnelAddr als Quelladresse für den IP-Header des Tunnels von Paketen, die an die SA gesendet werden. SrcTunnelAddr wird nur für eine SA angegeben, die für den Tunnelteil eines Pakets gilt. SrcTunnelAddr ist für eine SA, die für den Transportteil eines Pakets gilt, auf Null festgelegt.

DstTunnelAddr

Die IP-Adresse für den Zielendpunkt, z. B. einen Connector, eines Tunnels. Der Miniporttreiber verwendet DestTunnelAddr als Zieladresse für den TUNNEL-IP-Header von Paketen, die an die SA gesendet werden. DestTunnelAddr wird nur für eine SA angegeben, die für den Tunnelteil eines Pakets gilt. DestTunnelAddr wird für eine SA, die für den Transportteil eines Pakets gilt, auf 0 (null) festgelegt.

Flags

Eine Bitmaske, die wie folgt angibt, ob die hinzugefügte SA eine eingehende oder ausgehende SA ist:

OFFLOAD_INBOUND_SA

Gibt eine eingehende SA an.

OFFLOAD_OUTBOUND_SA

Gibt eine ausgehende SA an.

NumSAs

Die Anzahl der Elemente im SecAssoc-Array . Jedes Element im Array ist ein OFFLOAD_SECURITY_ASSOCIATION Struktur.

SecAssoc[OFFLOAD_MAX_SAS]

Ein Array mit variabler Länge, das die Informationen zu den IPsec-Vorgängen (Internet Protocol Security, Internetprotokollsicherheit) (AH oder ESP) für die SA enthält. Die Informationen für die einzelnen IPsec-Vorgänge sind als OFFLOAD_SECURITY_ASSOCIATION-Struktur formatiert.

Der TCP/IP-Transport gibt eine oder zwei OFFLOAD_SECURITY_ASSOCIATION Strukturen im Puffer bei SecAssoc an. Jede OFFLOAD_SECURITY_ASSOCIATION-Struktur gibt den Typ des Vorgangs an – Authentifizierung oder Verschlüsselung/Entschlüsselung –, für den die in der -Struktur angegebene SA verwendet werden soll. Die Reihenfolge der OFFLOAD_SECURITY_ASSOCIATION Strukturen im Array gibt die Reihenfolge an, in der der Miniporttreiber die Vorgänge für jede SA ausführen soll. Es wird nur eine Kombination von Vorgängen unterstützt: Die Ver-/Entschlüsselung (ESP) gefolgt von der Authentifizierung (AH).

OffloadHandle

Das Handle für die neu erstellte SA. Der Miniporttreiber stellt diesen Ziehpunkt bereit, bevor er die
OID_TCP_TASK_IPSEC_ADD_SA Anforderung. Der TCP/IP-Transport muss dieses Handle in der NDIS_IPSEC_PACKET_INFO-Struktur angeben, bevor ein Sendepaket an den Miniporttreiber übergeben wird. Der TCP/IP-Transport muss dieses Handle auch beim Löschen der SA mit einem angeben. OID_TCP_TASK_IPSEC_DELETE_SA Anforderung.

EncapTypeEntry

Der UDP-ESP-Kapselungstyp und der Zielport eines Parsereintrags. Diese Informationen sind als formatiert. OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY Struktur.

EncapTypeEntryOffldHandle

Wenn Flags= OFFLOAD_INBOUND_SA und EncapTypeEntryOffldHandlenull ist, sollte der Miniporttreiber überprüfen, ob der von EncapTypeEntry angegebene Parsereintrag in der Parsereintragsliste der NIC enthalten ist. Andernfalls sollte der Miniporttreiber mithilfe des in EncapTypeEntry angegebenen Kapselungstyps und Zielports einen Parsereintrag erstellen, den Parsereintrag der Parsereintragsliste hinzufügen und die angegebenen SAs auslagern. Der Miniporttreiber sollte ein Handle in EncapTypeEntryOffldHandle zurückgeben, das den neu erstellten Parsereintrag identifiziert. Wenn sich der angegebene Parsereintrag bereits in der Parsereintragsliste befindet, sollte der Miniport einfach das Handle in EncapTypeEntryOffldHandle für den vorhandenen Parsereintrag zurückgeben.

Wenn Flags= OFFLOAD_INBOUND_SA und EncapTypeEntryOffldHandle ungleich NULL ist, enthält EncapTypeEntryOffldHandle das Handle für einen Parsereintrag, der sich bereits in der Parsereintragsliste der NIC befindet. In diesem Fall sollte der Miniporttreiber einfach die angegebenen SAs auslagern.

Wenn Flags= OFFLOAD_OUTBOUND_SA, sollte der Miniporttreiber den Parameter EncapTypeEntryOffldHandle ignorieren.

KeyLen

Die Länge des Puffers bei KeyMat in Bytes.

KeyMat[1]

Ein Array mit variabler Länge, das Schlüssel für die unter SecAssoc angegebenen SAs enthält. Wenn sowohl ein Vertraulichkeitsalgorithmus (Verschlüsselung/Entschlüsselung) als auch ein Integritätsalgorithmus (Authentifizierung) von ConfAlgo und IntegrityAlgo eines angegeben werden OFFLOAD_SECURITY_ASSOCIATION Struktur enthält der Puffer bei KeyMat zuerst wichtige Informationen für den Bestätigungsalgorithmus, gefolgt von schlüsseln Informationen für den Integritätsalgorithmus.

Die Länge jedes Schlüssels im Puffer bei KeyMat wird von algoKeyLen in der OFFLOAD_ALGO_INFO-Struktur angegeben, die den Vertraulichkeits- oder Integritätsalgorithmus angibt. (Eine OFFLOAD_ALGO_INFO-Struktur ist ein Element einer OFFLOAD_SECURITY_ASSOCIATION-Struktur.)

Hinweise

Die OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur wird mit der OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Beachten Sie, dass die OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur fast identisch mit der OFFLOAD_IPSEC_ADD_SA-Struktur ist, die in der OID_TCP_TASK_IPSEC_ADD_SA-Anforderung verwendet wird. Der einzige Unterschied besteht darin, dass die OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur die Member EncapTypeEntry undEncapTypeEntryOffldHandle enthält.

Anforderungen

Anforderung Wert
Header ntddndis.h (include Ndis.h)

Weitere Informationen

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