Partilhar via


Portas virtuais (VPorts)

Uma porta virtual (VPort) é um objeto de dados que representa uma porta interna no comutador NIC de um adaptador de rede que suporta virtualização de E/S de raiz única (SR-IOV). Cada switch NIC tem as seguintes portas para conectividade de rede:

  • Uma porta física externa para conectividade com a rede física externa.

  • Um ou mais VPorts internos que estão conectados à função física (PF) ou às funções virtuais (VFs) do PCI Express.

    • O PF é anexado à partição pai Hyper-V e é exposto como um adaptador de rede virtual no sistema operacional de gestão que executa nessa partição.
    • Um VF é anexado à partição secundária Hyper-V e é exposto como um adaptador de rede virtual no sistema operativo convidado que é executado nessa partição.

O switch NIC encaminha o tráfego de rede da porta física para um ou mais VPorts. Isso fornece acesso virtualizado à interface de rede física subjacente.

Cada VPort tem um identificador exclusivo (VPortId) que é exclusivo para o comutador NIC no adaptador de rede. Um VPort padrão sempre existe no switch NIC padrão e nunca pode ser excluído. O VPort padrão tem o VPortId de NDIS_DEFAULT_VPORT_ID.

Quando o driver de miniporta PF lida com uma solicitação de método de identificador de objeto (OID) de OID_NIC_SWITCH_CREATE_SWITCH, ele cria o switch NIC e o VPort padrão para esse switch. O VPort padrão está sempre ligado ao PF e está sempre em um estado operacional.

VPorts (portas virtuais) não padrão são criados por meio de solicitações de método OID de OID_NIC_SWITCH_CREATE_VPORT. Apenas um VPort não padrão pode ser anexado a um VF. Uma vez anexado, a configuração padrão está em funcionamento. Um ou mais VPorts não padrão também podem ser criados e anexados ao PF. Esses VPorts não são operacionais quando criados e podem tornar-se operacionais por meio de um pedido de definição OID de OID_NIC_SWITCH_VPORT_PARAMETERS.

Observação

Depois que um VPort se torna operacional, ele só pode se tornar não operacional quando é excluído por meio de uma solicitação OID de OID_NIC_SWITCH_DELETE_VPORT.

Cada VPort tem um ou mais pares de filas de hardware associados a ele para receber e transmitir pacotes. O par de filas de espera padrão no adaptador de rede é reservado para uso pelo VPort padrão. Os pares de fila para VPorts não padrão são alocados e atribuídos quando o VPort é criado por meio da solicitação OID_NIC_SWITCH_CREATE_VPORT.

VPorts não predefinidos são criados e configurados através de solicitações de método OID de OID_NIC_SWITCH_CREATE_VPORT. O VPort padrão e os VPorts não padrão são reconfigurados por meio de solicitações de definição do OID de OID_NIC_SWITCH_VPORT_PARAMETERS. Cada solicitação OID contém uma estrutura NDIS_NIC_SWITCH_VPORT_PARAMETERS que especifica os seguintes parâmetros de configuração:

  • A função PCIe à qual o VPort está ligado.

    Cada VPort pode ser ligado ao PF ou a um VF a qualquer momento. Depois que o VPort é criado e conectado a uma função PCIe, o anexo não pode ser alterado dinamicamente para outra função PCIe.

    Observação

    O VPort padrão é sempre conectado ao PF no adaptador de rede.

    A partir do NDIS 6.30 no Windows Server 2012, apenas um VPort não padrão pode ser anexado a um VF. No entanto, vários VPorts não padrão juntamente com o VPort padrão podem ser anexados ao PF.

  • O número de pares de filas de hardware atribuídos a um VPort.

    Cada VPort tem um conjunto de pares de filas de hardware disponíveis para si. Cada par de filas consiste em uma fila de transmissão e recebimento separada no adaptador de rede.

    Os pares de filas são recursos limitados no adaptador de rede. O número total de pares de filas de espera reservados para uso pelos VPorts predefinidos e não predefinidos é especificado quando o switch NIC é criado. Isso permite que o número de pares de filas atribuídos ao VPort padrão seja diferente dos VPorts não padrão.

    Cada VPort não padrão pode ser configurado para ter um número diferente de pares de filas. Isso é conhecido como alocação assimétrica de pares de filas. Se a NIC não permitir essa alocação assimétrica, cada VPort não padrão será configurado para ter o mesmo número de pares de filas. Isso é conhecido como de alocação simétrica de pares de filas. Para obter mais informações, consulte Atribuição simétrica e assimétrica de pares de filas.

    Observação

    O driver PF miniport informa se suporta a alocação assimétrica de pares de filas durante MiniportInitializeEx. Para obter mais informações, consulte Inicialização de um controlador de miniporta PF.

    O número de pares de filas atribuídos a cada VPort não é alterado dinamicamente. O número de pares de filas atribuídos a um VPort não pode ser alterado após a criação do VPort.

    Observação

    Um ou mais pares de filas atribuídos aos VPorts não padrão podem ser usados para a escalação do lado de recepção (RSS) pelo driver de miniporta VF, executado no sistema operativo convidado.

  • Parâmetros de moderação de interrupções para o VPort.

    Diferentes tipos de moderação de interrupção podem ser especificados para diferentes VPorts. Isso permite que a pilha de virtualização controle o número de interrupções geradas por um VPort específico.

Além dos parâmetros de configuração, os drivers sobrepostos podem configurar filtros de recebimento para cada VPort emitindo solicitações de método OID de OID_RECEIVE_FILTER_SET_FILTER. O switch NIC executa a filtragem de recebimento especificada em uma base VPort.

Os parâmetros de filtro de recebimento para VPorts incluem condições de filtragem de pacotes, como uma lista de endereços MAC (controle de acesso à mídia) e identificadores de LAN virtual (VLAN). Os filtros para endereços MAC e identificadores de VLAN são sempre especificados conjuntamente no NDIS_RECEIVE_FILTER_PARAMETERS associado à solicitação OID_RECEIVE_FILTER_SET_FILTER. O comutador NIC deve filtrar os pacotes recebidos para o switch cujo endereço MAC de destino e identificador VLAN correspondam a qualquer condição de filtro de recebimento definida no VPort. O switch NIC filtra pacotes recebidos de outro VPort ou da porta física externa. Se o pacote corresponder a um filtro, o comutador NIC tem que encaminhá-lo para o VPort.

Vários pares de endereços MAC e identificadores de VLAN podem ser definidos no VPort. Se apenas um endereço MAC estiver definido, o filtro de recebimento especifica que o VPort deve receber pacotes que correspondam às seguintes condições:

  • O endereço MAC de destino do pacote corresponde ao endereço MAC do filtro.

  • O pacote tem uma tag VLAN ou (se uma tag VLAN estiver presente) um identificador VLAN de zero.

VPorts não padrão são apagados através de pedidos de definição OID de OID_NIC_SWITCH_DELETE_VPORT. O VPort padrão só é excluído quando o switch NIC é excluído por meio de uma solicitação de conjunto de OID de OID_NIC_SWITCH_DELETE_SWITCH.