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


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

Структура OFFLOAD_IPSEC_ADD_UDPESP_SA содержит сведения для каждой ассоциации безопасности (SA), которую драйвер мини-порта добавляет для инкапсулированных UDP-пакетов ESP в сетевой интерфейс.

Синтаксис

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. Значение должно быть равно 11 (шестнадцатеричное), указывающее UDP.

SrcPort

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

DstPort

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

SrcTunnelAddr

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

DstTunnelAddr

IP-адрес конечной точки назначения, например соединителя, туннеля. Драйвер мини-порта использует DestTunnelAddr в качестве адреса назначения для IP-заголовка туннеля пакетов, отправленных в SA. DestTunnelAddr указывается только для sa, который применяется к части туннеля пакета. DestTunnelAddr имеет нулевое значение для 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 .

EncapTypeEntry

Тип инкапсуляции UDP-ESP и порт назначения записи средства синтаксического анализа. Эти сведения форматируются как OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY структура.

EncapTypeEntryOffldHandle

Если флаги= OFFLOAD_INBOUND_SA и EncapTypeEntryOffldHandle равны NULL, драйвер мини-порта должен проверка, находится ли запись средства синтаксического анализа, указанная в encapTypeEntry, в списке записей средства синтаксического анализа сетевой карты. Если это не так, драйвер мини-порта должен создать запись средства синтаксического анализа, используя тип инкапсуляции и порт назначения, указанные в EncapTypeEntry, добавить запись средства синтаксического анализа в список записей средства синтаксического анализа и разгрузить указанные SAs. Драйвер мини-порта должен вернуть дескриптор в EncapTypeEntryOffldHandle , который идентифицирует только что созданную запись средства синтаксического анализа. Если указанная запись средства синтаксического анализа уже находится в списке записей средства синтаксического анализа, мини-порт должен просто вернуть дескриптор в EncapTypeEntryOffldHandle для существующей записи средства синтаксического анализа.

Если флаги= OFFLOAD_INBOUND_SA и EncapTypeEntryOffldHandle не равны NULL, EncapTypeEntryOffldHandle содержит дескриптор записи средства синтаксического анализа, которая уже находится в списке записей средства синтаксического анализа сетевой карты. В этом случае драйвер мини-порта должен просто разгрузить указанные SAs.

ПриOFFLOAD_OUTBOUND_SAФлаги= драйвер мини-порта должен игнорировать параметр EncapTypeEntryOffldHandle.

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_UDPESP_SA используется с OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Обратите внимание, что структура OFFLOAD_IPSEC_ADD_UDPESP_SA практически идентична структуре OFFLOAD_IPSEC_ADD_SA , используемой в запросе OID_TCP_TASK_IPSEC_ADD_SA . Единственное отличие заключается в том, что структура OFFLOAD_IPSEC_ADD_UDPESP_SA содержит элементы EncapTypeEntry и EncapTypeEntryOffldHandle .

Требования

Требование Значение
Заголовок 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