Compartir a través de


Mover un filtro de recepción a un puerto virtual

El controlador de exceso emite una solicitud de conjunto de identificador de objeto (OID) de OID_RECEIVE_FILTER_MOVE_FILTER para mover un filtro de recepción de un puerto virtual (VPort) a otro VPort en el conmutador NIC. Normalmente, el controlador de exceso, como la pila de virtualización, emite esta solicitud de OID si se cumple alguna de las condiciones siguientes:

  • La pila de virtualización establece un filtro de recepción en el VPort predeterminado. Este filtro contiene la dirección del control de acceso multimedia (MAC) y los parámetros de LAN virtual (VLAN) para el adaptador de red de la máquina virtual (VM) que se expone en la partición secundaria de Hyper-V. Esto permite reenviar paquetes entre el adaptador de red de la máquina virtual y el adaptador de red subyacente a través de la ruta de acceso de datos sintéticos basada en software.

    Una vez asignados los recursos de una función virtual de PCI Express (PCIe) (VF) y la VF se adjunta a una partición secundaria, la pila de virtualización crea una VPort no predeterminada en el VF. A continuación, la pila de virtualización mueve el filtro de recepción para el adaptador de red de la máquina virtual de la VPort predeterminada a la VPort no predeterminada conectada al VF. Esto permite reenviar paquetes entre el adaptador de red de la máquina virtual y el adaptador de red subyacente a través de la ruta de acceso de datos de VF basada en hardware.

    Para obtener más información sobre estas rutas de acceso de datos, consulte RUTAS de acceso de datos SR-IOV.

  • Se ha desasociado una VF de una partición secundaria de Hyper-V en la que el sistema operativo invitado todavía se está ejecutando. En este caso, el controlador sobreaplicado emite la solicitud de conjunto de OID para mover el filtro de recepción para el adaptador de red de la máquina virtual de la VPort no predeterminada a la VPort predeterminada conectada al PF. Cuando esto sucede, el tráfico de paquetes se revierte a la ruta de acceso de datos sintéticas.

Para mover un filtro de recepción de una VPort a otra VPort, un controlador que sobrevía emite una solicitud de conjunto de OID de OID_RECEIVE_FILTER_MOVE_FILTER. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura de NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS .

Antes de que el controlador sobrealice la solicitud de OID_RECEIVE_FILTER_MOVE_FILTER , debe inicializar una estructura de NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS de la siguiente manera:

  • El controlador establece el miembro FilterId en el identificador del identificador del filtro de recepción asignado anteriormente.

    Nota El controlador de sobreslización obtuvo el identificador de filtro de una solicitud de método OID anterior de OID_RECEIVE_FILTER_SET_FILTER o OID_RECEIVE_FILTER_ENUM_FILTERS.

  • El controlador establece el miembro SourceQueueId en NDIS_DEFAULT_RECEIVE_QUEUE_ID.

  • El controlador establece el miembro SourceVPortId en el identificador de VPort en el que se estableció anteriormente este filtro.

  • El controlador establece el miembro DestQueueId en NDIS_DEFAULT_RECEIVE_QUEUE_ID.

  • El controlador establece el miembro DestVPortId en el identificador de VPort en el que se va a mover este filtro.

NDIS valida los miembros del NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS antes de reenviar la solicitud establecida de OID al controlador de minipuerto PF.

Cuando el controlador de miniporte PF controla esta solicitud de conjunto de OID, debe mover el filtro de recepción en una operación atómica. El controlador debe poder configurar el adaptador de red para quitar simultáneamente el filtro de una cola de recepción y VPort y establecerlo en otra cola de recepción y VPort.