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인지 여부를 나타내는 비트 마스크입니다.

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 캡슐화 형식입니다. 이 멤버는 다음 플래그 중 하나 이상이 될 수 있습니다.

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 또는 둘 다)에 대한 정보를 포함하는 두 개의 요소가 있는 배열입니다. 제공된 요소의 수는 NumExtHdrs 멤버에 지정됩니다. 각 IPsec 작업에 대한 정보는 로 형식이 지정됩니다. 아래에 설명된 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 구조체입니다.

TCP/IP 전송은 SecAssoc 의 버퍼에서 하나 또는 두 개의 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 구조를 지정합니다. 각 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 구조체는 구조에 지정된 SA를 사용할 작업 유형(인증 또는 암호화/암호 해독)을 나타냅니다. 배열의 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 구조체 순서는 미니포트 드라이버가 각 SA에 대해 작업을 수행해야 하는 순서를 나타냅니다. 한 가지 작업 조합만 지원됩니다. ESP(암호화/암호 해독) 다음에 인증(AH)이 지원됩니다.

KeyLength

KeyOffset의 버퍼 길이(바이트)입니다.

KeyOffset

IPSEC_OFFLOAD_V2_ADD_SA_EX 구조체의 시작부터 SecAssoc에 지정된 SA에 대한 키가 포함된 가변 길이 배열의 시작 부분까지의 오프셋(바이트)입니다. 암호화 알고리즘과 인증 알고리즘이 모두 의 EncryptionAlgorithmAuthenticationAlgorithm 멤버에 의해 지정된 경우 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 구조에 따라 KeyOffset 의 버퍼에는 하나의 키 정보 다음에 다른 키 정보가 포함됩니다. 키의 시작 및 길이는 에 의해 지정됩니다.구조체의 KeyOffsetBytesKeyLength 멤버를 각각 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 프로토콜뿐만 아니라 원본 및 대상을 지정합니다. 이 필터는 전송 모드 연결, 즉 두 호스트 간의 엔드투엔드 연결과 관련이 있습니다. 지정된 연결이 터널을 통해 이루어지면 터널의 원본 및 대상 주소가 지정됩니다.

멤버가 0으로 설정된 경우 해당 매개 변수는 지정된 SA에 대한 패킷을 필터링하는 데 사용되지 않습니다. 예를 들어 SrcAddr 이 0으로 설정된 경우 지정된 SA가 원본 주소가 포함된 패킷에 적용할 수 있습니다. 모든 필터 매개 변수가 0으로 설정된 경우 지정된 SA는 모든 유형의 패킷을 대상 호스트에 보내는 모든 원본 호스트에 적용됩니다.

이 구조체는 IPSEC_OFFLOAD_V2_ADD_SA 이전 버전과 거의 동일합니다. NextKeyData 멤버가 제거되었습니다. KeyOffset, SourceSwitchPortIdVlanId 멤버가 추가되었습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.30 이상에서 지원됩니다.
머리글 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