Запрос информации и изменение состояния разгрузки задачи NVGRE

В этом разделе описывается, как запросить или изменить текущее состояние виртуализации сети с помощью разгрузки задач "Инкапсуляция универсальной маршрутизации" (NVGRE) минипорт-драйвера, поддерживающего NVGRE. Разгрузка задачи NVGRE может быть включена по умолчанию, но по умолчанию она не должна быть активной. Сетевой адаптер не должен начинать выполнение разгрузки задач в инкапсулированных пакетах, пока эта функция не включена явным образом протоколом NDIS или драйвером фильтра.

Запрос состояния разгрузки задачи NVGRE

Чтобы запросить текущее состояние разгрузки задачи NVGRE у драйвера мини-порта, протокол NDIS или драйвер фильтра использует запрос OID OID_TCP_OFFLOAD_CURRENT_CONFIG. Это вернет структуру NDIS_OFFLOAD, структура EncapsulatedPacketTaskOffloadGre является NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD и содержит NDIS_OFFLOAD_SUPPORTED, если эта разгрузка в настоящее время включена для инкапсулированных пакетов GRE, и NDIS_OFFLOAD_NOT_SUPPORTED в противном случае. NDIS обрабатывает этот OID и не передает его в мини-порт.

Примечание: Чтобы определить, поддерживает ли минипорт-драйвер разгрузку задач NVGRE, используйте запрос OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID, как описано в определении возможностей разгрузки задач NVGRE сетевого адаптера.

Изменение состояния разгрузки задачи NVGRE

Протокол NDIS или драйвер фильтра может включать или отключать разгрузку задачи NVGRE, выдавая OID-запрос OID_TCP_OFFLOAD_PARAMETERS. Этот OID использует структуру NDIS_OFFLOAD_PARAMETERS. В этой структуре элемент EncapsulatedPacketTaskOffload может иметь следующие значения:

Срок Описание

NDIS_OFFLOAD_SET_NO_CHANGE

Состояние разгрузки задачи NVGRE не изменяется.

NDIS_OFFLOAD_SET_ON

Укажите этот флаг, чтобы включить разгрузку задачи NVGRE.

Отключение выгрузки NDIS

Укажите этот флаг, чтобы отключить разгрузку задач NVGRE.

После обработки запроса OID_TCP_OFFLOAD_PARAMETERS OID драйвер минипорта должен выдать указание состояния NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG с обновленным состоянием разгрузки.

Когда драйвер минипорта получает запрос OID_TCP_OFFLOAD_PARAMETERS OID, в котором указан флаг NDIS_OFFLOAD_SET_OFF, драйвер должен индицировать все существующие инкапсулированные пакеты, которые частично обрабатываются для разгрузки задач по стеку перед завершением запроса OID.

Разгрузка базовых задач для обычных пакетов осуществляется с использованием существующих OID, таких как OID_OFFLOAD_ENCAPSULATION и OID_RECEIVE_FILTER_ALLOCATE_QUEUE. Параметр EncapsulatedPacketTaskOffload дополняет эти идентификаторы OID и указывает сетевому адаптеру также выполнять эти разгрузки для инкапсулированных пакетов.