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


Управление запросами OID на разгрузку оборудования для физических сетевых адаптеров

В этом разделе рассматривается, как расширение переадресации расширяемого коммутатора Hyper-V управляет запросами идентификаторов объектов (OID) для технологий аппаратной разгрузки на базовых физических адаптерах по пути управления расширяемым коммутатором.

Например, внешний сетевой адаптер можно привязать к границе виртуального мини-порта промежуточного драйвера мультиплексера NDIS (MUX). Драйвер MUX привязан к команде одной или нескольких физических сетей на узле. Эта конфигурация называется командой расширяемого коммутатора.

В этой конфигурации расширение расширяемого коммутатора предоставляется каждому сетевому адаптеру в команде. Это позволяет расширению управлять конфигурацией и использованием отдельных сетевых адаптеров в команде. Например, расширение переадресации может обеспечить поддержку решения отработки отказа балансировки нагрузки (LBFO) в команде, переадресовав исходящие пакеты отдельным адаптерам. Расширение переадресации, которое управляет расширяемой командой переключения, называется поставщиком команд. Дополнительные сведения о поставщиках группирования см. в разделе Расширения поставщиков для совместной работы.

На следующем рисунке показан пример команды расширяемых коммутаторов для NDIS 6.40 (Windows Server 2012 R2) и более поздних версий.

Схема, показывающая расширяемую команду коммутаторов для NDIS 6.40.

На следующем рисунке показан пример команды расширяемых коммутаторов для NDIS 6.30 (Windows Server 2012).

Схема, иллюстрирующая расширяемую команду коммутаторов для NDIS 6.30.

Примечание В интерфейсе расширяемого коммутатора драйверы фильтров NDIS называются расширениями расширяемых коммутаторов , а стек драйверов называется стеком драйверов расширяемого коммутатора.

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

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

Расширяемый интерфейс коммутатора инкапсулирует идентификаторы OID для следующих технологий аппаратной разгрузки:

Разгрузка по протоколу IPsec (версия 2)
Инкапсулируются следующие запросы OID IPsec:

Расширение переадресации не должно завершаться сбоем или нападать вето на эти запросы OID.

Дополнительные сведения о версии 2 технологии аппаратной разгрузки IPsec см. в разделе Разгрузка IPsec версии 2.

Виртуализация однокорневого ввода-вывода (SR-IOV)
Инкапсулируются следующие запросы SR-IOV OID:

Расширение переадресации может наказать вето на запросы OID OID_NIC_SWITCH_ALLOCATE_VF и OID_NIC_SWITCH_CREATE_VPORT , выполнив запрос с кодом состояния, отличным от NDIS_STATUS_SUCCESS. Однако продление не должно наказать вето на другие запросы SR-IOV OID.

Дополнительные сведения о технологии разгрузки оборудования SR-IOV см. в статье Виртуализация однокорневого ввода-вывода (SR-IOV).

Очередь виртуальных машин (VMQ)
Инкапсулируются следующие запросы OID VMQ:

Расширение переадресации может наказать вето на запросы OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE и OID_RECEIVE_FILTER_SET_FILTER , выполнив запрос с кодом состояния, отличным от NDIS_STATUS_SUCCESS. Однако расширение не должно наказать вето на другие запросы OID VMQ.

Дополнительные сведения о технологии разгрузки оборудования VMQ см. в разделе Очередь виртуальных машин (VMQ).

Расширение переадресации должно соответствовать следующим рекомендациям по обработке запросов OID аппаратной разгрузки:

  • Платформа обмена мгновенными сообщениями Майкрософт объявляет только общие возможности разгрузки для всей команды. Однако расширение может создавать запросы OID для запроса возможностей каждого адаптера в команде.

    После определения аппаратных возможностей физических адаптеров в команде расширение может перенаправить запросы на настройку OID для разгрузки оборудования адаптеру, который лучше всего подходит для разгрузки.

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

    Расширение перенаправит инкапсулированный запрос OID базовому физическому сетевому адаптеру через запрос набора OID OID_SWITCH_NIC_REQUEST. Дополнительные сведения об этой процедуре см. в разделе Переадресация запросов OID к физическим сетевым адаптерам.

  • Расширение не должно изменять или завершать запросы OID аппаратной разгрузки для очистки, освобождения или завершения выделения ресурсов разгрузки. Например, расширение не должно завершаться сбоем запросов OID OID_RECEIVE_FILTER_CLEAR_FILTER или OID_NIC_SWITCH_DELETE_VPORT. Интерфейс расширяемого коммутатора должен обрабатывать эти запросы OID для очистки сведений о состоянии этих ресурсов.

    Расширение может изменять или завершать запросы OID аппаратной разгрузки для выделения, перемещения или настройки разгрузки ресурсов. Например, расширение может завершиться ошибкой или изменить запросы OID OID_NIC_SWITCH_ALLOCATE_VF или OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA.

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

    Например, расширение не должно быть источником запроса OID аппаратной разгрузки OID_RECEIVE_FILTER_FREE_QUEUE если оно не было создано OID_RECEIVE_FILTER_ALLOCATE_QUEUE запрос для той же очереди.

    Примечание Расширение может создавать собственные инкапсулированные аппаратные запросы на разгрузку OID, только если оно фильтрует тот же запрос OID, который был выдан с помощью слишком lylying драйверов. В этом случае расширение не должно пересылать исходный запрос OID. Вместо этого расширение должно вызвать NdisFOidRequestComplete , чтобы завершить этот запрос, когда NDIS вызывает его FilterOidRequestComplete для завершения исходного запроса OID.

  • Если расширение перенаправит запрос аппаратной разгрузки OID к базовому физическому сетевому адаптеру, член DestinationNicIndex структуры NDIS_SWITCH_NIC_OID_REQUEST должен иметь ненулевое значение индекса адаптера. Дополнительные сведения об этих значениях индекса см. в разделе Значения индекса сетевого адаптера.

    Кроме того, член DestinationPortId должен иметь идентификатор порта расширяемого коммутатора, к которому подключен внешний сетевой адаптер.

  • Если расширение создает запрос OID аппаратной разгрузки для выделения ресурсов для дочернего раздела Hyper-V, член SourcePortId структуры NDIS_SWITCH_NIC_OID_REQUEST должен иметь идентификатор порта расширяемого коммутатора, к которому подключен раздел.

    Элемент SourceNicIndex должен иметь значение NDIS_SWITCH_DEFAULT_NIC_INDEX.

  • Когда расширение вызывает NdisFOidRequest для пересылки запроса OID, оно должно задать для параметра OidRequest указатель на структуру NDIS_OID_REQUEST для запроса OID OID_SWITCH_NIC_REQUEST .

Дополнительные сведения о том, как расширение фильтрует запросы OID, см. в разделе Фильтрация запросов OID в драйвере фильтра NDIS.

Дополнительные сведения о драйверах MUX см. в разделе NDIS MUX Intermediate Drivers.