OFFLOAD_IPSEC_ADD_UDPESP_SA Struktur (ntddndis.h)
Die OFFLOAD_IPSEC_ADD_UDPESP_SA-Struktur enthält Informationen für jede Sicherheitszuordnung (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;
Angehörige
SrcAddr
Die IP-Adresse des Quellhosts (der Host, der die Pakete sendet).
SrcMask
Das Subnetzformat 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 von Protocol ist identisch mit dem des Protokollfelds in einem IP-Header. Der Wert sollte 11 (hexadezimal) sein, der 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 Tunnel-IP-Header 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 wird für eine SA auf Null festgelegt, die für den Transportteil eines Pakets gilt.
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 auf Null festgelegt, die für den Transportteil eines Pakets gilt.
Flags
Eine Bitmaske, die angibt, ob die sa, die hinzugefügt wird, eine eingehende oder ausgehende SA wie folgt 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 Internetprotokollsicherheitsvorgängen (Internet Protocol Security, IPsec) (AH oder ESP) für die SA enthält. Die Informationen für jede IPsec-Vorgänge werden als OFFLOAD_SECURITY_ASSOCIATION Struktur formatiert.
Der TCP/IP-Transport gibt ein oder zwei OFFLOAD_SECURITY_ASSOCIATION Strukturen im Puffer bei SecAssocan. Jede OFFLOAD_SECURITY_ASSOCIATION Struktur gibt den Typ der Operation-Authentifizierung oder Verschlüsselung/Entschlüsselung an, für die 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. Nur eine Kombination von Vorgängen wird unterstützt: Verschlüsselung/Entschlüsselung (ESP) gefolgt von Authentifizierung (AH).
OffloadHandle
Der Handle für die neu erstellte SA. Der Miniporttreiber liefert diesen Handle vor Abschluss des Vorgangs
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 auch diesen Handle angeben, wenn die SA mit einer
OID_TCP_TASK_IPSEC_DELETE_SA Anforderung.
EncapTypeEntry
Der UDP-ESP Kapselungstyp und Zielport eines Parsereintrags. Diese Informationen werden als eine OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY Struktur.
EncapTypeEntryOffldHandle
Wenn Flags= OFFLOAD_INBOUND_SA und EncapTypeEntryOffldHandleNULL-ist, sollte der Miniporttreiber überprüfen, ob der durch EncapTypeEntry- angegebene Parsereintrag in der Parsereintragsliste der NIC enthalten ist. Ist dies nicht der Fall, sollte der Miniporttreiber einen Parsereintrag erstellen, indem der in EncapTypeEntryangegebene Kapselungstyp und Zielport verwendet wird, den Parsereintrag zur Parsereintragsliste hinzufügen und die angegebenen SAs auslagern. Der Miniporttreiber sollte einen Handle in EncapTypeEntryOffldHandle- zurückgeben, der den neu erstellten Parsereintrag identifiziert. Wenn der angegebene Parsereintrag bereits in der Parsereintragsliste enthalten ist, sollte der Miniport einfach den Handle in EncapTypeEntryOffldHandle- für den vorhandenen Parsereintrag zurückgeben.
Wenn Flags= OFFLOAD_INBOUND_SA und EncapTypeEntryOffldHand le nichtNULL-ist, enthält EncapTypeEntryOffldHandle den Handle für einen Parsereintrag, der sich bereits in der Parsereintragsliste der NIC befindet. In diesem Fall sollte der Miniporttreiber einfach die angegebenen SAs entladen.
Wenn Flags= OFFLOAD_OUTBOUND_SA, sollte der Miniporttreiber den parameter EncapTypeEntryOffldHandle ignorieren.
KeyLen
Die Länge des Puffers in Bytes bei KeyMat-.
KeyMat[1]
Ein Array mit variabler Länge, das Schlüssel für die unter SecAssocangegebenen SAs enthält. Wenn sowohl ein Vertraulichkeitsalgorithmus (Verschlüsselung/Entschlüsselung) als auch ein Authentifizierungsalgorithmus durch den ConfAlgo- und IntegrityAlgo- eines OFFLOAD_SECURITY_ASSOCIATION Struktur enthält der Puffer bei KeyMat zuerst wichtige Informationen für den Bestätigungsalgorithmus, gefolgt von wichtigen Informationen für den Integritätsalgorithmus.
Die Länge jedes Schlüssels im Puffer bei KeyMat- wird durch 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.)
Bemerkungen
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 EncapTypeEntry- und die EncapTypeEntryOffldHandle-Member enthält.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddndis.h (include Ndis.h) |