NDIS_STATUS_SWITCH_PORT_REMOVE_VF

La indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF la emite una extensión de reenvío extensible de conmutador de Hyper-V para quitar el enlace entre un adaptador de red de máquina virtual (VM) y una función virtual PCI Express (PCIe) (VF). El VF se expone y admite un adaptador de red físico subyacente que admite la interfaz de virtualización de E/S raíz única (SR-IOV).

Para emitir la indicación de estado NDIS_STATUS_SWITCH_PORT_REMOVE_VF , la extensión de reenvío debe encapsular la indicación en una estructura de NDIS_SWITCH_NIC_STATUS_INDICATION y emitir una indicación de estado de NDIS_STATUS_SWITCH_NIC_STATUS .

Para obtener más información sobre este proceso, vea Directrices para emitir una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Observaciones

Un pcIe VF se crea y asigna mediante un adaptador físico subyacente que admite la interfaz SR-IOV. Una vez creada, la pila de virtualización se asocia o asigna, la VF a una partición secundaria de Hyper-V. El sistema operativo invitado que se ejecuta en esta partición expone un adaptador de red de máquina virtual (VM) enlazado al VF del adaptador físico SR-IOV subyacente.

Una vez asignados los adaptadores de red virtuales y físicos, los paquetes se enrutan directamente entre el VF y el adaptador de red de la máquina virtual. Sin embargo, dado que el conmutador extensible no está implicado en la entrega de paquetes, las directivas de puerto de conmutador extensible no se aplican a estos paquetes. Esto incluye directivas de puerto para listas de control de acceso (ACL) y calidad de servicio (QoS).

Una extensión de reenvío de conmutador extensible puede quitar la asignación de la VF a la partición secundaria mediante la emisión de una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Esta indicación hace que los paquetes se entreguen a través de un puerto de conmutador extensible en lugar de directamente entre el adaptador de red de la máquina virtual y el VF del adaptador físico SR-IOV subyacente. Esto permite aplicar las directivas de puerto de conmutador extensible a los paquetes que se reciben o envían a través del puerto de conmutador extensible.

Cuando la extensión de reenvío realiza la indicación de estado NDIS_STATUS_SWITCH_PORT_REMOVE_VF , especifica el puerto de conmutador extensible al que está conectado el adaptador de red de la máquina virtual.

Para obtener más información sobre las extensiones de reenvío de conmutadores extensibles, vea Extensiones de reenvío.

Directrices para emitir una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Para emitir la indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF , la extensión de reenvío debe seguir estos pasos:

  1. La extensión de reenvío inicializa una estructura de NDIS_STATUS_INDICATION para la indicación de NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Para esta indicación, las extensiones de reenvío establecen los siguientes miembros de la estructura NDIS_STATUS_INDICATION :

    • El miembro StatusCode debe establecerse en NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

    • El miembro StatusBuffer debe establecerse en NULL.

    • StatusBufferSize debe establecerse en cero.

  2. La extensión de reenvío inicializa una estructura de NDIS_SWITCH_NIC_STATUS_INDICATION . Para quitar una asignación de VF, la extensión de reenvío debe establecer los miembros de la siguiente manera:

    • El miembro DestinationPortId debe establecerse en el identificador de un puerto de conmutador extensible al que está conectado el adaptador de red de la máquina virtual.

    • El miembro DestinationNicIndex debe establecerse en el valor de índice del adaptador de red de la máquina virtual que está conectado al puerto especificado.

    • El miembro SourcePortId debe establecerse en NDIS_SWITCH_DEFAULT_PORT_ID.

    • El miembro SourceNicIndex debe establecerse en NDIS_SWITCH_DEFAULT_NIC_INDEX.

    • El miembro StatusIndication debe establecerse en la dirección de la estructura de NDIS_STATUS_INDICATION para la indicación de NDIS_STATUS_SWITCH_PORT_REMOVE_VF .

  3. La extensión de reenvío inicializa una estructura de NDIS_STATUS_INDICATION para la indicación de NDIS_SWITCH_NIC_STATUS_INDICATION . Para esta indicación, la extensión de reenvío establece los siguientes miembros de la estructura NDIS_STATUS_INDICATION :

  4. La extensión de reenvío debe llamar a ReferenceSwitchNic para incrementar un contador de referencia para el adaptador de red de la máquina virtual. Si ReferenceSwitchNic no se completa con NDIS_STATUS_SUCCESS, la extensión de reenvío no debe reenviar la indicación de estado.

    Nota Si la extensión de reenvío ha recibido una solicitud de conjunto de OID_SWITCH_NIC_DISCONNECT para el adaptador de máquina virtual, no debe llamar a ReferenceSwitchNic ni reenviar la indicación de estado.

  5. La extensión de reenvío llama a NdisFIndicateStatus para reenviar el NDIS_STATUS_INDICATION a extensiones excesivas en la pila de controladores de conmutador extensible. Cuando la extensión de reenvío llama a esta función, establece el parámetro StatusIndication en un puntero a la estructura de NDIS_STATUS_INDICATION para la indicación de NDIS_STATUS_SWITCH_NIC_STATUS .

  6. Después de que NdisFIndicateStatus devuelva, la extensión de reenvío debe llamar a DereferenceSwitchNic para disminuir el contador de referencia del adaptador de red de la máquina virtual.

Nota La extensión de reenvío debe seguir los pasos anteriores para cada asignación de VF que la extensión de reenvío está quitando.

Para obtener más información sobre cómo una extensión de reenvío reenvía las indicaciones de estado, consulte Filter Module Status Indications.

Directrices para determinar asignaciones de VF

La extensión de reenvío puede enumerar las asignaciones de VF actuales para los adaptadores de red virtual mediante la emisión de una solicitud de consulta OID de OID_SWITCH_NIC_ARRAY. Esta solicitud devuelve una estructura NDIS_SWITCH_NIC_ARRAY que contiene una matriz de estructuras de NDIS_SWITCH_NIC_PARAMETERS . Cada estructura NDIS_SWITCH_NIC_PARAMETERS especifica los parámetros de un adaptador de red que se expone en uno de los siguientes entornos:

  • Sistema operativo de administración que se ejecuta en la partición primaria de Hyper-V.

    Los adaptadores de red expuestos en este sistema operativo se especifican con un valor de enumeración NDIS_SWITCH_NIC_TYPE de NdisSwitchNicTypeExternal o NdisSwitchNicTypeInternal.

  • Sistema operativo invitado que se ejecuta en una partición secundaria de Hyper-V.

    Los adaptadores de red que se exponen en este sistema operativo se especifican con un valor de enumeración NDIS_SWITCH_NIC_TYPE de NdisSwitchNicTypeSynthetic o NdisSwitchNicTypeEmulated.

Si la solicitud de consulta OID de OID_SWITCH_NIC_ARRAY se completa con un estado de NDIS_STATUS_SUCCESS, la extensión de reenvío puede determinar las asignaciones de VF inspeccionando cada estructura de NDIS_SWITCH_NIC_PARAMETERS de la matriz devuelta. Si el miembro VFAssigned de la estructura NDIS_SWITCH_NIC_PARAMETERS se establece en TRUE, el adaptador de red que corresponde a la estructura de NDIS_SWITCH_NIC_PARAMETERS se asigna a un VF.

La extensión de reenvío puede quitar la asignación emitiendo una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF . En este caso, la extensión de reenvío debe establecer el miembro DestinationPortId del NDIS_SWITCH_NIC_STATUS_INDICATION en el valor del miembro PortId de la estructura NDIS_SWITCH_NIC_PARAMETERS .

Para obtener más información sobre cómo emitir una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF, vea Directrices para emitir una indicación de estado de NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Requisitos

Versión

Compatible con NDIS 6.30 y versiones posteriores.

Encabezado

Ndis.h (incluya Ndis.h)

Consulte también


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