IPSEC_OFFLOAD_V2_ADD_SA_EX構造体 (ndis.h)

[IPsec タスク オフロード機能は非推奨であり、使用しないでください。]

IPSEC_OFFLOAD_V2_ADD_SA_EX構造体は、ミニポート ドライバーが NIC に追加する必要があるセキュリティ関連付け (SA) に関する情報を定義します。

構文

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;

メンバー

Header

IPSEC_OFFLOAD_V2_ADD_SA_EX構造体のNDIS_OBJECT_HEADER構造体。 Header が指定する構造体の Type メンバーを NDIS_OBJECT_TYPE_DEFAULT、Revision メンバーを NDIS_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1、Size メンバーを NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1 に設定します。

NumExtHdrs

IPsec 拡張機能ヘッダーの数。 このメンバーには、次のいずれかの値を指定できます。

セキュリティの種類 拡張ヘッダー
AH 認証のみ 1
ESP 認証のみ 1
ESP 暗号化のみ 1
ESP 認証と暗号化 1
AH と ESP 認証と暗号化 2
UDP ESP 1

Flags

追加される SA が受信 SA か送信 SA かを示すビットマスクを次に示します。

IPSEC_OFFLOAD_V2_IPv6

このフラグが設定されている場合、アドレスは IPv6 になります。 それ以外の場合、アドレスは IPv4 です

IPSEC_OFFLOAD_V2_INBOUND

このフラグが設定されている場合、SA はインバウンドになります。 それ以外の場合、SA は送信されます。

IPv4Endpoints

IPv4 エンドポイント アドレス。 この構造体には、次のメンバーが含まれています。

IPv4Endpoints.SrcAddr

送信元ホスト (パケットを送信しているホスト) の IPv4 アドレス。

IPv4Endpoints.DestAddr

宛先ホスト (パケットを受信しているホスト) の IPv4 アドレス。

IPv6Endpoints

IPv6 エンドポイント アドレス。 この構造体には、次のメンバーが含まれています。

IPv6Endpoints.SrcAddr[16]

送信元ホスト (パケットを送信しているホスト) の IPv6 アドレス。

IPv6Endpoints.DestAddr[16]

宛先ホスト (パケットを受信しているホスト) の IPv6 アドレス。

OffloadHandle

新しく作成された SA へのハンドル。 ミニポート ドライバーは、完了する前に、このハンドルを提供します。
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 要求。 TCP/IP トランスポートでは、 でこのハンドルを指定する必要があります。
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO または ミニポート ドライバーに送信パケットを渡す前に構造体をNDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFOします。 TCP/IP トランスポートでは、 を使用して SA を削除するときにも、このハンドルを指定する必要があります。 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 要求。

UdpEspEncapsulation

UDP ESP カプセル化の種類。 このメンバーには、次のフラグを 1 つ以上指定できます。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE

UDP カプセル化は使用されません。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT

ESP カプセル化されたトランスポート モード パケットは、UDP によってカプセル化されます。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL

パケットのトンネル モード部分は UDP カプセル化されます。 パケットのトランスポート モード部分は UDP カプセル化されておらず、ESP で保護されていません。

IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL

パケットのトンネル モード部分は UDP カプセル化されます。 パケットのトランスポート モード部分は UDP カプセル化されていませんが、ESP で保護されています。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL

パケットのトンネル モード部分は UDP カプセル化されません。 パケットのトランスポート モード部分は、UDP カプセル化され、ESP で保護されます。

SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]

SA の IPsec 操作 (AH、ESP、またはその両方) に関する情報を含む 2 つの要素を含む配列。 指定された要素の数は、 NumExtHdrs メンバーで指定されます。 各 IPsec 操作の情報は、 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 構造は、以下に説明する。

TCP/IP トランスポートは、 SecAssoc のバッファー内の 1 つまたは 2 つのIPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体を指定します。 各IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体は、構造体で指定された SA を使用する操作認証または暗号化/復号化の種類を示します。 配列内のIPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体の順序は、ミニポート ドライバーが各 SA の操作を実行する順序を示します。 サポートされている操作の組み合わせは、暗号化/復号化 (ESP) とそれに続く認証 (AH) の 1 つだけです。

KeyLength

KeyOffset のバッファーの長さ (バイト単位)。

KeyOffset

IPSEC_OFFLOAD_V2_ADD_SA_EX構造体の先頭から、 SecAssoc で指定された SA のキーを含む可変長配列の先頭までのオフセット (バイト単位)。 暗号化アルゴリズムと認証アルゴリズムの両方が、 の EncryptionAlgorithm メンバーと AuthenticationAlgorithm メンバーによって指定されている場合 構造体IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATIONKeyOffset のバッファーには、一方のキー情報の後にもう一方のキー情報が格納されます。 キーの先頭と長さは、 構造体のKeyOffsetBytes メンバーと KeyLength メンバーをそれぞれIPSEC_OFFLOAD_V2_ALGORITHM_INFOします。

SourceSwitchPortId

予約済み。

VlanId

予約済み。

注釈

IPSEC_OFFLOAD_V2_ADD_SA_EX構造体は、追加する必要があるセキュリティ SA を指定します。 IPSEC_OFFLOAD_V2_ADD_SA_EX構造体は、 と共に使用されます。
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX Oid。

IPSEC_OFFLOAD_V2_ADD_SA_EX構造体は、SA が適用される送信元と宛先、および IP プロトコルを指定します。 このフィルターは、トランスポート モード接続 (つまり、2 つのホスト間のエンド ツー エンド接続) に関連します。 指定した接続がトンネル経由で行われる場合、トンネルの送信元アドレスと宛先アドレスが指定されます。

メンバーが 0 に設定されている場合、そのパラメーターは、指定された SA のパケットをフィルター処理するために使用されません。 たとえば、 SrcAddr が 0 に設定されている場合、指定した SA は、任意の送信元アドレスを含むパケットに適用できます。 すべてのフィルター パラメーターが 0 に設定されている場合、指定した SA は、任意の種類のパケットを任意の宛先ホストに送信しているソース ホストに適用されます。

この構造は、以前のバージョンの IPSEC_OFFLOAD_V2_ADD_SAとほぼ同じです。 Next メンバーと KeyData メンバーが削除されました。 KeyOffsetSourceSwitchPortIdVlanId の各メンバーが追加されました。

要件

要件
サポートされている最小のクライアント NDIS 6.30 以降でサポートされています。
Header ndis.h (Ndis.h を含む)

こちらもご覧ください

IPSEC_OFFLOAD_V2_ADD_SA

IPSEC_OFFLOAD_V2_ALGORITHM_INFO IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO

NDIS_OBJECT_HEADER

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA