Asignar recursos para una función virtual
Un adaptador de red que admita la virtualización de E/S raíz única (SR-IOV) debe ser capaz de admitir los siguientes componentes de hardware:
Función física de PCI Express (PCIe) (PF). El PF siempre existe en el adaptador de red y está conectado a la partición primaria de Hyper-V.
Para obtener más información sobre este componente de hardware, vea SR-IOV Physical Function (PF).
Una o varias funciones virtuales de PCIe (VF). Cada VF debe inicializarse y adjuntarse a una partición secundaria de Hyper-V antes de que los componentes de red del sistema operativo invitado puedan enviar o recibir paquetes a través del VF.
Para obtener más información sobre este componente de hardware, consulte SR-IOV Virtual Functions (VFs).
El controlador de minipuerto PF, que se ejecuta en el sistema operativo de administración de la partición primaria de Hyper-V, asigna recursos para el PF y cada VF en el adaptador de red SR-IOV. Este controlador asigna recursos para el PF como lo haría para cualquier adaptador de red. Sin embargo, el controlador asigna recursos para cada VF de la siguiente manera:
El controlador de minipuerto PF asigna recursos de hardware para cada VF cuando el controlador crea la tarjeta de interfaz de red (NIC) en el adaptador de red. El controlador completa la asignación de recursos de hardware para las máquinas virtuales mediante una llamada a NdisMEnableVirtualization. Para obtener más información sobre este proceso, consulte Creación de un conmutador NIC.
El controlador de minipuerto PF asigna recursos de software para un VF cuando el controlador controla una solicitud de método de identificador de objeto (OID) de OID_NIC_SWITCH_ALLOCATE_VF. Aunque los recursos de hardware se han asignado para un VF, se considera no operativo hasta que el controlador de miniporte PF complete correctamente el OID_NIC_SWITCH_ALLOCATE_VF.
El controlador de sobreslización puede solicitar la asignación de recursos de software para un VF mediante la emisión de una solicitud de método OID de OID_NIC_SWITCH_ALLOCATE_VF. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST de la solicitud OID contiene un puntero a una estructura de NDIS_NIC_SWITCH_VF_PARAMETERS .
Después de una devolución correcta de la solicitud OID, el miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura de NDIS_NIC_SWITCH_VF_PARAMETERS . Esta estructura tiene un identificador VF único del adaptador y un identificador de solicitante de PCI (RID). Estos identificadores se usan de las siguientes maneras:
El controlador de sobreaprovisionamiento usa el identificador de VF en acciones relacionadas con la VF, como la siguiente:
Obtener los parámetros de VF actuales a través de una solicitud de método OID de OID_NIC_SWITCH_VF_PARAMETERS.
Liberar recursos asignados previamente para el VF a través de una solicitud de conjunto de OID de OID_NIC_SWITCH_FREE_VF.
Emitir un restablecimiento pci al VF a través de una solicitud de conjunto de OID de OID_SRIOV_RESET_VF.
La pila de virtualización usa el RID para reasignar DMA e interrupciones entre pf y VF. El RID también permite que la unidad de administración de memoria de entrada y salida de hardware (IOMMU) convierta las direcciones físicas invitadas en direcciones físicas de host.
Para obtener más información sobre cómo los problemas de controladores excesivos OID_NIC_SWITCH_ALLOCATE_VF solicitudes de método, consulte Emisión de solicitudes de OID_NIC_SWITCH_ALLOCATE_VF.
Para obtener más información sobre cómo controla el controlador de miniporte PF OID_NIC_SWITCH_ALLOCATE_VF solicitudes de método, consulte Control de solicitudes de OID_NIC_SWITCH_ALLOCATE_VF.
Nota Una vez que se han asignado recursos para una VF a través de una solicitud de método OID de OID_NIC_SWITCH_ALLOCATE_VF, los parámetros de recurso para el VF no se pueden cambiar dinámicamente.