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


NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Для удаления привязки между сетевым адаптер Hyper-V ом виртуальной машины (VM) и виртуальной функцией PCI Express (PCIe) выдается расширение переадресации NDIS_STATUS_SWITCH_PORT_REMOVE_VF. 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. Гостевая операционная система, которая выполняется в этом разделе, предоставляет сетевой адаптер виртуальной машины, привязанный к VF базового SR-IOV физического адаптера.

После назначения виртуальных и физических сетевых адаптеров пакеты направляются непосредственно между VF и сетевым адаптером виртуальной машины. Однако, поскольку расширяемый коммутатор не участвует в доставке пакетов, к этим пакетам не применяются политики расширяемого коммутатора. К ним относятся политики портов для списков управления доступом (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_TYPENdisSwitchNicTypeSynthetic или 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. В этом случае расширение пересылки должно задать элемент DestinationPortId элемента NDIS_SWITCH_NIC_STATUS_INDICATIONNDIS_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 (include 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