Compartir a través de


Flujo de paquetes a través de un puerto virtual

El conmutador NIC predeterminado es un componente de un adaptador de red que admite la interfaz de virtualización de E/S raíz única (SR-IOV). El conmutador siempre conecta el puerto virtual predeterminado (VPort) a la función física PCI Express (PCIe) (PF). El modificador puede conectar uno o varios VPort no predeterminados al PF. Para obtener más información, consulte Creación de un puerto virtual.

Los siguientes puntos se aplican a los paquetes que se envían o reciben en un VPort que está asociado al PF:

  • Los paquetes enviados o recibidos a través del VPort predeterminado se especifican con un valor de identificador VPort de DEFAULT_VPORT_ID.

    Los paquetes enviados o recibidos a través de VPort no predeterminados se especifican con el identificador VPort que se devolvió cuando se creó VPort a través de una solicitud de método OID de OID_NIC_SWITCH_CREATE_VPORT. Cuando el controlador controla esta solicitud de OID, obtiene el identificador VPort del miembro VPortId de la estructura NDIS_NIC_SWITCH_VPORT_PARAMETERS asociada a la solicitud OID.

    Nota Cuando se elimina un VPort, es posible que el controlador de minipuerto reciba un NBL que contenga un valor VPortId no válido. Si esto sucede, el miniport debe omitir el identificador de VPort no válido y usar DEFAULT_VPORT_ID en su lugar. El VPortId se encuentra en la parte NetBufferListFilteringInfo de los datos OOB de NBL y se recupera mediante la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

  • El controlador de minipuerto PF llama a NdisMIndicateReceiveNetBufferLists para indicar los paquetes recibidos de un VPort. Antes de que el controlador de miniporte PF llame a NdisMIndicateReceiveNetBufferLists, debe establecer el identificador VPort en los datos fuera de banda (OOB) de la estructura NET_BUFFER_LIST para el paquete. El controlador lo hace mediante la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

  • La pila de virtualización llama a NdisSendNetBufferLists para transmitir paquetes a un VPort. Antes de que la pila de virtualización llame a NdisSendNetBufferLists, establece el identificador VPort en los datos OOB de la estructura NET_BUFFER_LIST del paquete.

    El controlador de minipuerto obtiene el identificador VPort mediante la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

    El controlador de minipuerto debe poner en cola el paquete de transmisión en la cola de transmisión de hardware del VPort especificado.

Nota El controlador de minipuerto de la función virtual PCIe (VF) no establece ni consulta el identificador VPort en los datos OOB de la estructura de NET_BUFFER_LIST para un paquete. Cuando el controlador de minipuerto VF envía un paquete, pone en cola el paquete en la cola de transmisión de hardware para el VPort único no predeterminado que está conectado al VF.