Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um adaptador de rede que dá suporte à virtualização de E/S raiz única (SR-IOV) deve ser capaz de dar suporte aos seguintes componentes de hardware:
Uma função física PCI Express (PCIe) (PF). O PF sempre existe no adaptador de rede e é anexado à partição pai Hyper-V.
Para obter mais informações sobre esse componente de hardware, consulte SR-IOV PF (Função Física).
Uma ou mais VF (PcIe Virtual Functions). Cada VF deve ser inicializada e anexada a uma partição filho Hyper-V antes que os componentes de rede do sistema operacional convidado possam enviar ou receber pacotes pela VF.
Para obter mais informações sobre esse componente de hardware, consulte SR-IOV VFs (Funções Virtuais).
O driver de miniporto PF, que é executado no sistema operacional de gerenciamento da partição pai Hyper-V, inicializa e aloca recursos para um VF no adaptador de rede SR-IOV. Depois que o NDIS chama a função MiniportInitializeEx do driver de miniporto PF, o NDIS e a pilha de virtualização podem emitir solicitações de identificador de objeto (OID) para o driver de miniporto para fazer o seguinte:
Crie um comutador NIC no adaptador de rede. O switch NIC faz a ponte do tráfego de rede entre as VFs, o PF e a porta física da rede.
Para saber mais, confira Comutadores NIC.
Nota A partir do Windows Server 2012, a interface SR-IOV dá suporte a apenas uma opção NIC no adaptador de rede. Essa opção é conhecida como a opção NIC padrão e é referenciada pelo identificador de NDIS_DEFAULT_SWITCH_ID.
Solicite ao driver de miniporto PF para inicializar e alocar recursos para uma VF no adaptador de rede.
Para obter mais informações, consulte SR-IOV VFs (Funções Virtuais).
Crie uma porta virtual (VPort) no comutador NIC e anexe-a ao VF.
Para obter mais informações, consulte Portas Virtuais (VPorts).
O diagrama a seguir mostra as etapas envolvidas na inicialização do VF.
O NDIS, a pilha de virtualização e o driver de miniporto PF seguem estas etapas durante a sequência de inicialização do VF:
O NDIS lê a configuração padrão do switch do registro e emite uma solicitação de método OID de OID_NIC_SWITCH_CREATE_SWITCH para provisionar o switch no adaptador de rede. Os parâmetros que são passados nesta solicitação OID incluem informações sobre como configurar recursos de hardware importantes, como VFs e VPorts. Ele também inclui informações sobre como distribuir os recursos entre os VPorts não-default e o VPort padrão que estão anexados ao PF.
Depois que o OID tiver sido concluído com êxito pelo driver de miniporto PF, o comutador NIC estará pronto para ser usado para criar VPorts e alocar VFs nele.
Para obter mais informações sobre como criar um comutador NIC, consulte Criando um comutador NIC.
Uma VF é tratada como um mecanismo de descarregamento para o adaptador de rede da VM (máquina virtual). Esse adaptador é exposto no sistema operacional convidado que roda na partição filha Hyper-V. Por padrão, os componentes de rede no sistema operacional convidado enviam e recebem pacotes pelo caminho de dados sintéticos baseado em software. No entanto, se uma partição filha estiver habilitada para o descarregamento de VF, a pilha de virtualização emitirá solicitações de OID para o driver de miniport PF para a alocação de recursos e a inicialização de um VF. Depois que o VF é anexado à partição filho e a um VPort no comutador NIC, os componentes de rede enviam e recebem pacotes pelo caminho de dados do VF. Para obter mais informações sobre esses caminhos de dados, consulte SR-IOV Caminhos de Dados.
Se uma partição filha Hyper-V estiver habilitada para descarregamento de VF, a pilha de virtualização emite uma solicitação de método OID denominada OID_NIC_SWITCH_ALLOCATE_VF para o driver de miniporto PF. Os parâmetros que são passados nesta solicitação OID incluem o identificador do comutador NIC no qual o VF é alocado. Outros parâmetros incluem identificadores para a partição secundária à qual a VF será anexada.
O driver de miniporta PF aloca os recursos necessários de hardware e software para a VF. O driver de miniport PF também determina o RID (Identificador do Solicitante PCIe) para o VF chamando NdisMGetVirtualFunctionLocation. O RID é usado para DMA e o remapeamento de interrupções quando as solicitações de DMA e interrupções são geradas pelo VF.
O RID, juntamente com o identificador VF, são retornados pelo driver de miniporto PF quando ele conclui com êxito a solicitação OID_NIC_SWITCH_ALLOCATE_VF.
Para obter mais informações sobre a alocação de recursos para um VF, consulte Alocando recursos para uma função virtual.
A pilha de virtualização cria um VPort no comutador NIC emitindo uma solicitação de método OID de OID_NIC_SWITCH_CREATE_VPORT para o driver de miniporto PF. Os parâmetros que são passados nesta solicitação de OID incluem o identificador do switch NIC no qual o VPort será criado. Outros parâmetros incluem o identificador do VF ao qual o VPort será anexado.
Nota O VPort padrão no switch NIC sempre existe e é anexado ao PF. Somente um único VPort não padrão pode ser criado e anexado a uma VF.
Antes que o NDIS encaminhe a solicitação OID para o driver de miniporto PF, ele aloca um identificador VPort válido exclusivo no adaptador de rede.
Quando o driver de miniporto PF manipula a solicitação OID, ele aloca os recursos de hardware necessários para o VPort e retém o identificador para o VPort. Esse identificador é usado em solicitações OID posteriores e em chamadas de função SR-IOV.
Para obter mais informações sobre como criar um VPort, consulte Criando uma porta virtual.
A partição filho Hyper-V pode ser iniciada muito antes de um VF e VPort serem alocados. Durante esse tempo, os componentes de rede no sistema operacional convidado enviam e recebem pacotes pelo caminho de dados sintéticos. Isso envolve o tráfego de pacotes pelo VPort padrão anexado ao PF. Para fazer a ponte do tráfego para a partição filha, a pilha de virtualização configura o VPort padrão com os filtros de controle de acesso de mídia (MAC) e LAN virtual (VLAN) para o adaptador de rede da VM da partição filha.
Depois que os recursos para VF e VPort são alocados, a pilha de virtualização emite uma solicitação de método de OID de OID_RECEIVE_FILTER_MOVE_FILTER para o driver de miniporto PF. Essa solicitação OID move os filtros MAC e VLAN para o adaptador de rede da VM do VPort padrão para o VPort anexado à VF. Isso faz com que os pacotes que correspondem a esses filtros sejam encaminhados para o VF VPort pelo caminho de dados VF.
Nota Os filtros de recebimento existentes podem ser movidos do VPort padrão para o VPort VF usando OID_RECEIVE_FILTER_MOVE_FILTER. Além disso, novos filtros podem ser definidos no VPort VF usando OID_RECEIVE_FILTER_SET_FILTER.
Depois que o VF e o VPort forem criados com êxito e os filtros MAC tiverem sido definidos no VPort, a pilha de virtualização notificará o provedor de serviços virtuais (VSP) de PCI Virtual (VPCI). Esse VSP é executado no sistema operacional de gerenciamento da partição pai Hyper-V. A notificação informa ao VPCI VSP que o VF foi alocado e anexado com sucesso a uma partição filha. O VSP VPCI envia mensagens pelo VMBus (barramento de máquina virtual) para o VSC VPCI (cliente de serviço virtual) que é executado no sistema operacional convidado da partição filha. O VPCI VSC é um driver de bus que expõe um dispositivo PCI para o adaptador de rede VF.
Depois que o adaptador de rede VF é exposto, o subsistema PnP executado no sistema operacional convidado detecta o adaptador e carrega o driver de miniporto VF. Esse driver registra-se com o NDIS. Depois que o driver de miniporto VF tiver sido inicializado e os filtros de pacote apropriados forem configurados no adaptador de rede VF, o caminho de dados VF estará totalmente operacional. Como resultado, o tráfego de pacotes no sistema operacional convidado foi transferido do caminho de dados sintético para este caminho de dados.