OFFLOAD_IPSEC_ADD_UDPESP_SA 구조체(ntddndis.h)

OFFLOAD_IPSEC_ADD_UDPESP_SA 구조에는 미니포트 드라이버가 UDP 캡슐화된 ESP 패킷을 NIC에 추가하는 각 SA(보안 연결)에 대한 정보가 포함되어 있습니다.

구문

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;

멤버

SrcAddr

원본 호스트의 IP 주소(패킷을 보내는 호스트)입니다.

SrcMask

원본 IP 주소에 대한 서브넷 마스크입니다.

DstAddr

대상 호스트의 IP 주소(패킷을 수신하는 호스트)입니다.

DstMask

대상 IP 주소에 대한 서브넷 마스크입니다.

Protocol

IP 프로토콜입니다. 프로토콜 인코딩은 IP 헤더의 프로토콜 필드와 동일합니다. 값은 UDP를 지정하는 11(16진수)이어야 합니다.

SrcPort

원본 TCP 또는 UDP 포트입니다. SrcPort가 0으로 설정된 경우 SA는 모든 원본 TCP/UDP 포트에 적용됩니다.

DstPort

대상 TCP 또는 UDP 포트입니다. DestPort가 0으로 설정된 경우 SA는 모든 원본 TCP/UDP 포트에 적용됩니다.

SrcTunnelAddr

터널의 원본 엔드포인트(예: 커넥터)의 IP 주소입니다. 미니포트 드라이버에서
SA에서 보낸 패킷의 터널 IP 헤더에 대한 원본 주소인 SrcTunnelAddr입니다. SrcTunnelAddr 은 패킷의 터널 부분에 적용되는 SA에 대해서만 지정됩니다. SrcTunnelAddr 은 패킷의 전송 부분에 적용되는 SA에 대해 0으로 설정됩니다.

DstTunnelAddr

터널의 대상 엔드포인트(예: 커넥터)의 IP 주소입니다. 미니포트 드라이버는 SA에서 보낸 패킷의 터널 IP 헤더에 대한 대상 주소로 DestTunnelAddr 를 사용합니다. DestTunnelAddr 은 패킷의 터널 부분에 적용되는 SA에 대해서만 지정됩니다. DestTunnelAddr 은 패킷의 전송 부분에 적용되는 SA에 대해 0으로 설정됩니다.

Flags

추가되는 SA가 다음과 같이 인바운드 또는 아웃바운드 SA인지 여부를 나타내는 비트 마스크입니다.

OFFLOAD_INBOUND_SA

인바운드 SA를 지정합니다.

OFFLOAD_OUTBOUND_SA

아웃바운드 SA를 지정합니다.

NumSAs

SecAssoc 배열의 요소 수입니다. 배열의 각 요소는 입니다. OFFLOAD_SECURITY_ASSOCIATION 구조체입니다.

SecAssoc[OFFLOAD_MAX_SAS]

SA에 대한 IPsec(인터넷 프로토콜 보안) 작업(AH 또는 ESP)에 대한 정보를 포함하는 가변 길이 배열입니다. 각 IPsec 작업에 대한 정보는 OFFLOAD_SECURITY_ASSOCIATION 구조로 형식이 지정됩니다.

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

OffloadHandle

새로 만든 SA에 대한 핸들입니다. 미니포트 드라이버는 다음을 완료하기 전에 이 핸들을 제공합니다.
OID_TCP_TASK_IPSEC_ADD_SA 요청. TCP/IP 전송은 미니포트 드라이버에 송신 패킷을 전달하기 전에 NDIS_IPSEC_PACKET_INFO 구조에서 이 핸들을 지정해야 합니다. 또한 TCP/IP 전송은 를 사용하여 SA를 삭제할 때 이 핸들을 지정해야 합니다. OID_TCP_TASK_IPSEC_DELETE_SA 요청.

EncapTypeEntry

파서 항목의 UDP-ESP 캡슐화 형식 및 대상 포트입니다. 이 정보는 형식으로 지정됩니다. OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY 구조체입니다.

EncapTypeEntryOffldHandle

Flags= OFFLOAD_INBOUND_SAEncapTypeEntryOffldHandleNULL인 경우 미니포트 드라이버는 EncapTypeEntry로 지정된 파서 항목이 NIC의 파서 항목 목록에 있는지 여부를 검사 합니다. 그렇지 않은 경우 미니포트 드라이버는 EncapTypeEntry에 지정된 캡슐화 형식 및 대상 포트를 사용하여 파서 항목을 만들고 파서 항목 목록에 파서 항목을 추가하고 지정된 SA를 오프로드해야 합니다. 미니포트 드라이버는 새로 만든 파서 항목을 식별하는 EncapTypeEntryOffldHandle 에서 핸들을 반환해야 합니다. 지정된 파서 항목이 이미 파서 항목 목록에 있는 경우 미니포트는 기존 파서 항목에 대한 EncapTypeEntryOffldHandle 의 핸들을 반환해야 합니다.

Flags= OFFLOAD_INBOUND_SAEncapTypeEntryOffldHandleNULL이 아닌 경우 EncapTypeEntryOffldHandle은 NIC의 파서 항목 목록에 이미 있는 파서 항목에 대한 핸들을 포함합니다. 이 경우 미니포트 드라이버는 지정된 SAS를 오프로드하기만 하면 됩니다.

플래그= 가 OFFLOAD_OUTBOUND_SA 미니포트 드라이버는 EncapTypeEntryOffldHandle 매개 변수를 무시해야 합니다.

KeyLen

KeyMat에서 버퍼의 길이(바이트)입니다.

KeyMat[1]

SecAssoc에 지정된 SAS에 대한 키를 포함하는 가변 길이 배열입니다. 기밀성(암호화/암호 해독) 알고리즘과 무결성(인증) 알고리즘이 모두 의 ConfAlgoIntegrityAlgo 에 의해 지정된 경우 OFFLOAD_SECURITY_ASSOCIATION 구조에 따라 KeyMat 의 버퍼에는 먼저 확인 알고리즘에 대한 키 정보가 포함되고, 그 다음에는 무결성 알고리즘에 대한 키 정보가 즉시 포함됩니다.

KeyMat의 버퍼에 있는 각 키의 길이는 기밀성 또는 무결성 알고리즘을 지정하는 OFFLOAD_ALGO_INFO 구조의 algoKeyLen에 의해 지정됩니다. (OFFLOAD_ALGO_INFO 구조체는 OFFLOAD_SECURITY_ASSOCIATION 구조체의 멤버입니다.)

설명

OFFLOAD_IPSEC_ADD_UDPESP_SA 구조체는 와 함께 사용됩니다. OID_TCP_TASK_IPSEC_ADD_UDPESP_SA Oid.

OFFLOAD_IPSEC_ADD_UDPESP_SA 구조체는 OID_TCP_TASK_IPSEC_ADD_SA 요청에 사용되는OFFLOAD_IPSEC_ADD_SA 구조와 거의 동일합니다. 유일한 차이점은 OFFLOAD_IPSEC_ADD_UDPESP_SA 구조체에 EncapTypeEntryEncapTypeEntryOffldHandle 멤버가 포함되어 있다는 것입니다.

요구 사항

요구 사항
헤더 ntddndis.h(Ndis.h 포함)

추가 정보

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