структура 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) |