структура IPSEC_OFFLOAD_V2_ADD_SA (ndis.h)
[Функция разгрузки задач IPsec является устаревшей и не должна использоваться.]
Структура IPSEC_OFFLOAD_V2_ADD_SA определяет сведения об ассоциации безопасности (SA), которую драйвер мини-порта должен добавить в сетевой адаптер.
Синтаксис
typedef struct _IPSEC_OFFLOAD_V2_ADD_SA {
NDIS_OBJECT_HEADER Header;
PIPSEC_OFFLOAD_V2_ADD_SA Next;
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;
UCHAR KeyData[1];
} IPSEC_OFFLOAD_V2_ADD_SA, *PIPSEC_OFFLOAD_V2_ADD_SA;
Члены
Header
Структура NDIS_OBJECT_HEADER для структуры IPSEC_OFFLOAD_V2_ADD_SA. Задайте для элемента Type структуры, указанной в заголовке , значение NDIS_OBJECT_TYPE_DEFAULT, для элемента Revision — значение NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1, а для элемента Size — значение NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1.
Next
Указатель на структуру IPSEC_OFFLOAD_V2_ADD_SA, которая является следующей структурой в связанном списке. Если указатель имеет значение NULL, текущая структура является последней структурой в списке.
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 запроса. Транспорт 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
Пакет, инкапсулированный в транспортном режиме, инкапсулируется по протоколу 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
Длина буфера в байтах в KeyData .
KeyData[1]
Массив переменной длины, содержащий ключи для SAS, указанные в SecAssoc . Если алгоритм шифрования и алгоритм проверки подлинности указаны членами EncryptionAlgorithm и AuthenticationAlgorithm IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структуре буфер в KeyData содержит сведения о ключах для одного, за которым следует другой. Начало и длина ключа задаются элементами KeyOffsetBytes и KeyLength соответственно.
Комментарии
Эта структура устарела, используйте вместо нее IPSEC_OFFLOAD_V2_ADD_SA_EX .
Структура IPSEC_OFFLOAD_V2_ADD_SA указывает безопасности SA, который следует добавить, и указатель на следующую структуру IPSEC_OFFLOAD_V2_ADD_SA в связанном списке. Структура IPSEC_OFFLOAD_V2_ADD_SA используется с OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID.
Структура IPSEC_OFFLOAD_V2_ADD_SA указывает источник и назначение, а также протоколы IP, к которым применяются службы SAs. Этот фильтр относится к подключению в транспортном режиме, т. е. к сквозной связи между двумя узлами. Если указанное соединение осуществляется через туннель, указываются исходный и конечный адреса туннеля.
Если элемент имеет нулевое значение, этот параметр не используется для фильтрации пакетов для указанных SAS. Например, если для SrcAddr задано нулевое значение, указанные SAS могут применяться к пакету, который содержит любой исходный адрес. Если все параметры фильтра равны нулю, указанные SAS применяются к любому исходному узлу, который отправляет пакеты любого типа на любой конечный узел.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.1 и 6.20. Для NDIS 6.30 и более поздних версий используйте IPSEC_OFFLOAD_V2_ADD_SA_EX. |
Верхняя часть | ndis.h (включая Ndis.h) |