Поделиться через


структура OFFLOAD_IPSEC_ADD_SA (ntddndis.h)

Структура OFFLOAD_IPSEC_ADD_SA содержит сведения для каждой связи безопасности (SA), которую драйвер мини-порта добавляет в сетевой адаптер.

Синтаксис

typedef struct _OFFLOAD_IPSEC_ADD_SA {
  IPAddr                       SrcAddr;
  IPMask                       SrcMask;
  IPAddr                       DestAddr;
  IPMask                       DestMask;
  ULONG                        Protocol;
  USHORT                       SrcPort;
  USHORT                       DestPort;
  IPAddr                       SrcTunnelAddr;
  IPAddr                       DestTunnelAddr;
  USHORT                       Flags;
  SHORT                        NumSAs;
  OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
  HANDLE                       OffloadHandle;
  ULONG                        KeyLen;
  UCHAR                        KeyMat[1];
} OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;

Члены

SrcAddr

IP-адрес исходного узла (узла, отправляющего пакеты).

SrcMask

Маска подсети для исходного IP-адреса.

DestAddr

IP-адрес конечного узла (узла, получающего пакеты).

DestMask

Маска подсети для IP-адреса назначения.

Protocol

Протокол IP. Можно указать любое сочетание типов протоколов IP (например, TCP, UDP или ICMP). Кодировка протокола идентична кодировке поля Протокол в ip-заголовке. Если параметр Protocol равен нулю, sa применяется к любому IP-протоколу.

SrcPort

Исходный ПОРТ TCP или UDP. Если значение SrcPort равно нулю, sa применяется к любому исходному порту TCP/UDP.

DestPort

Порт TCP или UDP назначения. Если значение DestPort равно нулю, sa применяется к любому исходному порту TCP/UDP.

SrcTunnelAddr

IP-адрес исходной конечной точки, например соединителя, туннеля. Драйвер мини-порта использует
SrcTunnelAddr — исходный адрес IP-заголовка туннеля пакетов, отправляемых в sa. SrcTunnelAddr указывается только для sa, который применяется к части туннеля пакета. SrcTunnelAddr имеет значение 0 для SA, применяемого к транспортной части пакета.

DestTunnelAddr

IP-адрес конечной точки назначения, например соединителя, туннеля. Драйвер мини-порта использует DestTunnelAddr в качестве адреса назначения для IP-заголовка туннеля пакетов, отправленных в sa. DestTunnelAddr указывается только для sa, который применяется к части туннеля пакета. DestTunnelAddr имеет значение 0 для sa, применяемого к транспортной части пакета.

Flags

Битовая маска, указывающая, является ли добавляемый sa входящим или исходящим, как показано ниже.

OFFLOAD_INBOUND_SA

Указывает входящие sa.

OFFLOAD_OUTBOUND_SA

Указывает исходящий sa.

NumSAs

Количество элементов в массиве SecAssoc . Каждый элемент в массиве является OFFLOAD_SECURITY_ASSOCIATION структура.

SecAssoc[OFFLOAD_MAX_SAS]

Массив переменной длины, содержащий сведения об операциях безопасности протокола IPsec (AH или ESP) для sa. Сведения для каждой операции IPsec форматируются в виде OFFLOAD_SECURITY_ASSOCIATION структуры.

Транспорт TCP/IP указывает одну или две OFFLOAD_SECURITY_ASSOCIATION структуры в буфере в SecAssoc . Каждая структура 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 запрос.

KeyLen

Длина (в байтах) буфера в KeyMat .

KeyMat[1]

Массив переменной длины, содержащий ключи для SAs, указанных в SecAssoc . Если оба алгоритма конфиденциальности (шифрования и расшифровки) и алгоритм целостности (проверки подлинности) указаны членами ConfAlgo и IntegrityAlgo OFFLOAD_SECURITY_ASSOCIATION структуре буфер в KeyMat сначала содержит ключевые сведения для алгоритма подтверждения, а затем сразу же ключевые сведения для алгоритма целостности.

Длина каждого ключа в буфере в KeyMat определяется с помощью algoKeylen в структуре OFFLOAD_ALGO_INFO , которая определяет алгоритм конфиденциальности или целостности. (Структура OFFLOAD_ALGO_INFO является членом OFFLOAD_SECURITY_ASSOCIATION структуры.)

Комментарии

Структура OFFLOAD_IPSEC_ADD_SA используется в OID_TCP_TASK_IPSEC_ADD_SA OID.

Требования

Требование Значение
Заголовок ntddndis.h (включая Ndis.h)

См. также раздел

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA