структура IPSEC_OFFLOAD_V2_ADD_SA_EX (ndis.h)

[Функция разгрузки задач IPsec является устаревшей и не должна использоваться.]

Структура IPSEC_OFFLOAD_V2_ADD_SA_EX определяет сведения о связи безопасности (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

Структура NDIS_OBJECT_HEADER для структуры IPSEC_OFFLOAD_V2_ADD_SA_EX. Задайте для элемента Type структуры, указанной в заголовке , значение NDIS_OBJECT_TYPE_DEFAULT, для элемента Редакция — 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 входящим или исходящим, как показано ниже.

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]

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

Транспорт TCP/IP указывает одну или две IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структуры в буфере в SecAssoc . Каждая IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структура указывает тип операции —аутентификация или шифрование/расшифровка, для которой будет использоваться sa, указанный в структуре. Порядок структур IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION в массиве указывает порядок, в котором драйвер мини-порта должен выполнять операции для каждого sa. Поддерживается только одна комбинация операций: шифрование и расшифровка (ESP), а затем проверка подлинности (AH).

KeyLength

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

KeyOffset

Смещение (в байтах) от начала IPSEC_OFFLOAD_V2_ADD_SA_EX структуры до начала массива переменной длины, содержащего ключи для SA, указанного в SecAssoc. Если и алгоритм шифрования, и алгоритм проверки подлинности заданы элементами EncryptionAlgorithm и AuthenticationAlgorithm IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структуре буфер в KeyOffset содержит сведения о ключах для одного, за которым следует другой. Начало и длина ключа задаются с помощью IPSEC_OFFLOAD_V2_ALGORITHM_INFO элементы KeyOffsetBytes и KeyLength структуры соответственно.

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 определяет источник и назначение, а также IP-протоколы, к которым применяется sa. Этот фильтр относится к подключению в транспортном режиме, то есть к сквозной связи между двумя узлами. Если указанное подключение осуществляется через туннель, указываются исходный и конечный адреса туннеля.

Если элемент имеет нулевое значение, этот параметр не используется для фильтрации пакетов для указанного sa. Например, если значение SrcAddr равно нулю, указанный sa может применяться к пакету, который содержит любой исходный адрес. Если все параметры фильтра равны нулю, указанный sa применяется к любому исходному узлу, который отправляет пакет любого типа на любой конечный узел.

Эта структура почти идентична предыдущей версии , IPSEC_OFFLOAD_V2_ADD_SA. Элементы Next и KeyData удалены. Добавлены элементы KeyOffset, SourceSwitchPortId и VlanId .

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.30 и более поздних версиях.
Верхняя часть ndis.h (включая Ndis.h)

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

IPSEC_OFFLOAD_V2_ADD_SA

NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO IPSEC_OFFLOAD_V2_ALGORITHM_INFO IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION

NDIS_OBJECT_HEADER

OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX