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


Получение запросов OID об изменениях конфигурации расширяемого коммутатора Hyper-V

Интерфейс расширяемого коммутатора уведомляет базовые расширения об изменениях конфигурации и параметров политики компонента расширяемого коммутатора, выдавая запросы на набор OID. Эти запросы выдаются краем протокола расширяемого коммутатора для уведомления базовых расширений об изменениях конфигурации и параметров политики компонента расширяемого коммутатора. Эти запросы OID перемещаются через стек драйвера расширяемого коммутатора к базовому краю мини-порта расширяемого коммутатора.

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

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

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

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

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

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

  • Изменения в конфигурации порта на расширяемом коммутаторе.

    Например, драйвер протокола выдает OID_SWITCH_PORT_CREATE уведомлять базовые расширения о создании порта на расширяемом коммутаторе. Аналогичным образом драйвер протокола выдает OID_SWITCH_PORT_DELETE уведомлять расширения об удалении порта.

    Дополнительные сведения об этом типе уведомлений OID см. в статье Hyper-V Extensible Switch Ports.

  • Изменения подключения сетевого адаптера к порту расширяемого коммутатора.

    Например, драйвер протокола выдает OID_SWITCH_NIC_CONNECT уведомлять базовые расширения о подключении сетевого адаптера к порту на расширяемом коммутаторе. Аналогичным образом драйвер протокола выдает OID_SWITCH_NIC_DISCONNECT уведомлять расширения о том, что сетевой адаптер отключен от порта.

    Дополнительные сведения об этом типе уведомлений OID см. в статье Расширяемые сетевые адаптеры Hyper-V.

  • Изменения в расширяемых портах коммутатора или политиках коммутатора.

    Например, драйвер протокола выдает OID_SWITCH_PROPERTY_ADD уведомлять базовые расширения о добавлении расширяемого свойства коммутатора. Аналогичным образом драйвер протокола выдает OID_SWITCH_PORT_PROPERTY_DELETE уведомлять расширения об удалении свойства порта.

    Дополнительные сведения об этом типе уведомлений OID см. в статье Управление политиками расширяемого коммутатора Hyper-V.

    Примечание Расширение не получает уведомления об изменениях в политиках порта или коммутатора по умолчанию, которые управляются базовым краем мини-порта расширяемого коммутатора.

  • Сохранение или восстановление данных порта во время выполнения.

    Например, драйвер протокола выдает OID_SWITCH_NIC_SAVE уведомлять базовые расширения о сохранении данных времени выполнения для указанного порта на расширяемом коммутаторе. Эти идентификаторы OID выдаются при сохранении или переносе состояния Hyper-V на другой узел. Аналогичным образом драйвер протокола выдает OID_SWITCH_NIC_RESTORE для уведомления расширений о том, что данные порта времени выполнения восстанавливаются на расширяемом коммутаторе.

    Дополнительные сведения об этом типе уведомлений OID см. в статье Управление данными расширенного коммутатора Hyper-V Run-Time.

Драйвер минипорта расширения расширяемого коммутатора отвечает за выполнение этих запросов OID. Однако при наличии некоторых расширяемых запросов OID коммутатора базовое расширение может завершить запрос OID на вето на уведомление. Например, когда драйвер протокола расширяемого коммутатора уведомляет драйверы фильтров о новом порте, который будет создан на расширяемом коммутаторе, он отправляет запрос на набор OID OID_SWITCH_PORT_CREATE. Базовое расширение фильтрации или пересылки может наказать вето на создание порта, выполнив запрос OID с STATUS_DATA_NOT_ACCEPTED.

Расширение расширяемого коммутатора должно следовать этим рекомендациям при вызове его функции FilterOidRequest для запроса OID расширяемого коммутатора:

  • Расширение не должно изменять данные, на которые указывает параметр OidRequest .

  • Для некоторых расширяемых запросов OID коммутатора расширение может завершить запрос OID с STATUS_DATA_NOT_ACCEPTED. Это налодит вето на операцию с расширяемым компонентом коммутатора, для которого был выдан запрос OID.

    Например, расширение может завершить запрос OID_SWITCH_NIC_CREATE с помощью STATUS_DATA_NOT_ACCEPTED. Это может потребоваться драйверу, если он не может удовлетворить настроенные политики на указанном порту, к которому создается сетевое подключение.

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

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

    Примечание Прежде чем драйвер вызовет NdisFOidRequest, драйвер должен вызвать NdisAllocateCloneOidRequest , чтобы выделить структуру NDIS_OID_REQUEST и передать сведения о запросе в новую структуру.

    Расширение должно отслеживать результат завершения запроса OID при вызове его функции FilterOidRequestComplete . Это позволяет расширению определить, была ли операция с расширяемым компонентом коммутатора успешно завершена или была наложена вето базовым расширением.

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

  • NDIS и драйверы чрезмерного протокола и фильтров могут выдавать запросы OID для технологий аппаратной разгрузки в базовый физический сетевой адаптер. Сюда входят запросы OID для технологий разгрузки, таких как очередь виртуальных машин (VMQ), безопасность протокола ИНТЕРНЕТА (IPsec) и виртуализация ввода-вывода с одним корнем (SR-IOV).

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

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

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

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

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

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

Примечание Запросы на перезапуск стека с использованием NdisFRestartFilter не завершаются, пока ожидается запрос OID расширяемого коммутатора. По этой причине расширение, ожидающее перезапуска стека, должно выполнять все текущие запросы OID.

Дополнительные сведения о пути элемента управления для запросов OID расширяемого коммутатора см. в статье Hyper-V Extensible Switch Control Path for OID Requests.