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