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


Получение запросов 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 Расширяемые порты коммутаторов.

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

    Например, драйвер протокола выдает команду 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, чтобы уведомить базовые расширения о необходимости сохранить временные данные для указанного порта на расширяемом коммутаторе. Эти OIDs выдаются при сохранении или переносе состояния Hyper-V на другой сервер. Аналогичным образом драйвер протокола выдает OID_SWITCH_NIC_RESTORE, чтобы уведомить расширения о восстановлении данных порта в рабочем состоянии на расширяемом коммутаторе.

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

Драйвер мини-порта расширения расширяемого коммутатора отвечает за выполнение этих запросов 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) в команде, перенаправляя исходящие пакеты на отдельные адаптеры. Такое расширение называется поставщиком командных решений. Дополнительные сведения о провайдерах объединения см. в разделе Расширения провайдера объединений.

    Обрабатывая запрос 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.