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


NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Указание состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF создается расширением переадресации расширяемого коммутатора Hyper-V для удаления привязки между сетевым адаптером виртуальной машины и виртуальной функцией PCI Express (PCIe). VF предоставляется и поддерживается базовым физическим сетевым адаптером, поддерживающим интерфейс виртуализации одно корневых операций ввода-вывода (SR-IOV).

Для выдачи указания состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF расширение переадресации должно инкапсулировать его в структуру NDIS_SWITCH_NIC_STATUS_INDICATION и выдать указание о состоянии NDIS_STATUS_SWITCH_NIC_STATUS .

Дополнительные сведения об этом процессе см. в разделе Рекомендации по выдаче указания состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Комментарии

VF PCIe создается и выделяется базовым физическим адаптером, поддерживающим интерфейс SR-IOV. После создания стек виртуализации присоединяет или назначает VF дочернему разделу Hyper-V. Гостевая операционная система, работающая в этом разделе, предоставляет сетевой адаптер виртуальной машины, привязанный к виртуальной машине базового физического адаптера SR-IOV.

После назначения виртуальных и физических сетевых адаптеров пакеты направляются непосредственно между виртуальным и сетевым адаптером виртуальной машины. Однако, поскольку расширяемый коммутатор не участвует в доставке пакетов, политики портов расширяемого коммутатора не применяются к этим пакетам. Сюда входят политики портов для списков управления доступом (ACL) и качества обслуживания (QoS).

Расширение переадресации расширяемого коммутатора может удалить назначение VF дочернему разделу, выдавая NDIS_STATUS_SWITCH_PORT_REMOVE_VF состояние. Это указывает, что пакеты доставляются через расширяемый порт коммутатора, а не непосредственно между сетевым адаптером виртуальной машины и VF базового физического адаптера SR-IOV. Это позволяет применять политики портов расширяемого коммутатора к пакетам, которые принимаются или отправляются через порт расширяемого коммутатора.

Когда расширение переадресации указывает состояние NDIS_STATUS_SWITCH_PORT_REMOVE_VF , оно указывает расширяемый порт коммутатора, к которому подключен сетевой адаптер виртуальной машины.

Дополнительные сведения о расширениях переадресации коммутаторов см. в разделе Расширения переадресации.

Рекомендации по выдаче указания состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Для выдачи указания состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF расширение переадресации должно выполнить следующие действия:

  1. Расширение пересылки инициализирует структуру NDIS_STATUS_INDICATION для указания NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Для этого расширения переадресации задают следующие элементы структуры NDIS_STATUS_INDICATION :

    • Элемент StatusCode должен иметь значение NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

    • Элемент StatusBuffer должен иметь значение NULL.

    • Параметру StatusBufferSize необходимо задать нулевое значение.

  2. Расширение пересылки инициализирует структуру NDIS_SWITCH_NIC_STATUS_INDICATION . Чтобы удалить назначение VF, расширение переадресации должно задать члены следующим образом:

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

    • Член DestinationNicIndex должен иметь значение индекса сетевого адаптера виртуальной машины, подключенного к указанному порту.

    • Для элемента SourcePortId необходимо задать значение NDIS_SWITCH_DEFAULT_PORT_ID.

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

    • Для элемента StatusIndication необходимо задать адрес структуры NDIS_STATUS_INDICATION для указания NDIS_STATUS_SWITCH_PORT_REMOVE_VF .

  3. Расширение переадресации инициализирует структуру NDIS_STATUS_INDICATION для указания NDIS_SWITCH_NIC_STATUS_INDICATION . Для этого расширения переадресации задаются следующие элементы структуры NDIS_STATUS_INDICATION :

  4. Расширение переадресации должно вызывать ReferenceSwitchNic , чтобы увеличить счетчик ссылок для сетевого адаптера виртуальной машины. Если ReferenceSwitchNic не завершает работу с NDIS_STATUS_SUCCESS, расширение переадресации не должно пересылать указание состояния.

    Примечание Если расширение переадресации получило запрос на настройку OID_SWITCH_NIC_DISCONNECT для адаптера виртуальной машины, оно не должно вызывать ReferenceSwitchNic и пересылать указание состояния.

  5. Расширение переадресации вызывает NdisFIndicateStatus для переадресации NDIS_STATUS_INDICATION в сверхрасширяемые расширения в стеке драйверов расширяемого коммутатора. Когда расширение переадресации вызывает эту функцию, оно задает для параметра StatusIndication указатель на структуру NDIS_STATUS_INDICATION для указания NDIS_STATUS_SWITCH_NIC_STATUS .

  6. После возврата NdisFIndicateStatus расширение переадресации должно вызвать DereferenceSwitchNic для уменьшения счетчика ссылок для сетевого адаптера виртуальной машины.

Примечание Расширение переадресации должно выполнять предыдущие шаги для каждого назначения VF, удаляемого расширением пересылки.

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

Рекомендации по определению назначений VF

Расширение переадресации может перечислить текущие назначения VF для виртуальных сетевых адаптеров, отправляя запрос OID OID_SWITCH_NIC_ARRAY. Этот запрос возвращает структуру NDIS_SWITCH_NIC_ARRAY , содержащую массив NDIS_SWITCH_NIC_PARAMETERS структур. Каждая структура NDIS_SWITCH_NIC_PARAMETERS определяет параметры сетевого адаптера, доступного в одной из следующих сред:

  • Операционная система управления, которая выполняется в родительском разделе Hyper-V.

    Сетевые адаптеры, предоставляемые в этой операционной системе, указываются со значением перечисления NDIS_SWITCH_NIC_TYPENdisSwitchNicTypeExternal или NdisSwitchNicTypeInternal.

  • Гостевая операционная система, работающая в дочернем разделе Hyper-V.

    Сетевые адаптеры, предоставляемые в этой операционной системе, указываются с помощью NDIS_SWITCH_NIC_TYPE значения перечисления NdisSwitchNicTypeSynthetic или NdisSwitchNicTypeEmulated.

Если запрос OID OID_SWITCH_NIC_ARRAY завершается с состоянием NDIS_STATUS_SUCCESS, расширение переадресации может определить назначения VF путем проверки каждой структуры NDIS_SWITCH_NIC_PARAMETERS в возвращаемом массиве. Если элемент VFAssigned структуры NDIS_SWITCH_NIC_PARAMETERS имеет значение TRUE, сетевой адаптер, соответствующий структуре NDIS_SWITCH_NIC_PARAMETERS , назначается VF.

Расширение переадресации может удалить назначение, выдав NDIS_STATUS_SWITCH_PORT_REMOVE_VF указание состояния. В этом случае расширение переадресации должно задать для элемента DestinationPortIdNDIS_SWITCH_NIC_STATUS_INDICATION значение элемента PortId структуры NDIS_SWITCH_NIC_PARAMETERS .

Дополнительные сведения о том, как выдавать указание состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF, см. в разделе Рекомендации по выдаче указания состояния NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Требования

Версия

Поддерживается в NDIS 6.30 и более поздних версиях.

Заголовок

Ndis.h (включая Ndis.h)

См. также раздел


NdisFIndicateStatus

NDIS_STATUS_INDICATION

NDIS_STATUS_SWITCH_NIC_STATUS

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY