Condividi tramite


Porte virtuali (VPorts)

Una porta virtuale (VPort) è un oggetto dati che rappresenta una porta interna nel commutatore di interfaccia di rete di una scheda di rete che supporta la virtualizzazione I/O radice singola (SR-IOV). Ogni commutatore della scheda di interfaccia di rete ha le porte seguenti per la connettività di rete:

  • Una porta fisica esterna per la connettività alla rete fisica esterna.

  • Uno o più VPort interni connessi alla funzione fisica PCI Express (PF) o alle funzioni virtuali (VFS).

    Il pf è collegato alla partizione padre Hyper-V ed è esposto come scheda di rete virtuale nel sistema operativo di gestione in esecuzione in tale partizione.

    Un VF viene collegato alla partizione figlio Hyper-V ed è esposto come scheda di rete virtuale nel sistema operativo guest in esecuzione in tale partizione.

Il commutatore di interfaccia di rete collega il traffico di rete dalla porta fisica a uno o più VPort. In questo modo viene fornito l'accesso virtualizzato all'interfaccia di rete fisica sottostante.

Ogni VPort ha un identificatore univoco (VPortId) univoco per l'opzione di interfaccia di rete nella scheda di rete. Un VPort predefinito esiste sempre nell'opzione NIC predefinita e non può mai essere eliminato. Il VPort predefinito ha VPortId di NDIS_DEFAULT_VPORT_ID.

Quando il driver miniport PF gestisce una richiesta di metodo OID (Object Identifier) di OID_NIC_SWITCH_CREATE_SWITCH, crea l'opzione NIC e il VPort predefinito per tale commutatore. Il VPort predefinito è sempre collegato al pf ed è sempre in uno stato operativo.

I VPort non definiti vengono creati tramite richieste di metodo OID di OID_NIC_SWITCH_CREATE_VPORT. È possibile collegare un solo VPort non definito a un VF. Una volta collegato, il valore predefinito è in uno stato operativo. È anche possibile creare e collegare uno o più VPort non predefiniti al pf. Questi VPort non sono operativi quando creati e possono diventare operativi tramite una richiesta OID set di OID_NIC_SWITCH_VPORT_PARAMETERS.

Nota

Dopo che un VPort diventa operativo, può diventare non operativo solo quando viene eliminato tramite una richiesta OID di OID_NIC_SWITCH_DELETE_VPORT.

Ogni VPort include una o più coppie di code hardware associate a essa per la ricezione e la trasmissione di pacchetti. La coppia di code predefinita nella scheda di rete è riservata per l'uso da parte del VPort predefinito. Le coppie di code per VPort nondefault vengono allocate e assegnate quando viene creato il VPort tramite la richiesta di OID_NIC_SWITCH_CREATE_VPORT .

I VPort non definiti vengono creati e configurati tramite richieste di metodo OID di OID_NIC_SWITCH_CREATE_VPORT. Le VPort predefinite e le VPort non definite vengono riconfigurate tramite richieste di set OID di OID_NIC_SWITCH_VPORT_PARAMETERS. Ogni richiesta OID contiene una struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS che specifica i parametri di configurazione seguenti:

  • Funzione PCIe a cui è collegato il VPort.

    Ogni VPort può essere collegato al pf o con un VF in qualsiasi momento. Dopo aver creato e collegato a una funzione PCIe, l'allegato non può essere modificato dinamicamente in un'altra funzione PCIe.

    Nota

    Il VPort predefinito è sempre collegato al pf nella scheda di rete.

A partire da NDIS 6.30 in Windows Server 2012, è possibile collegare un solo VPort non definito a un VF. Tuttavia, è possibile collegare più VPort non predefiniti insieme al VPort predefinito.

  • Numero di coppie di code hardware assegnate a un VPort.

    Ogni VPort ha un set di coppie di code hardware disponibili. Ogni coppia di code è costituita da una coda di trasmissione e ricezione separata nella scheda di rete.

    Le coppie di code sono risorse limitate nella scheda di rete. Il numero totale di coppie di code riservate per l'uso per impostazione predefinita e nondefault VPorts viene specificato al momento della creazione dell'opzione di interfaccia di interfaccia di rete. Ciò consente al numero di coppie di code assegnate al VPort predefinito di differire dalle VPort non predefinite.

    Ogni VPort non definito può essere configurato per avere un numero diverso di coppie di code. Questa operazione è nota come allocazione asimmetrica delle coppie di code. Se la scheda di interfaccia di rete non consente l'allocazione asimmetrica, ogni VPort non definito è configurato per avere un numero uguale di coppie di code. Questa operazione è nota come allocazione simmetrica delle coppie di coda. Per altre informazioni, vedere Assegnazione simmetrica e asimmetrica di coppie di code.

    Nota

    Il driver miniport PF segnala se supporta l'allocazione asimmetrica delle coppie di coda durante MiniportInitializeEx. Per altre informazioni, vedere Inizializzazione di un driver miniport PF.

Il numero di coppie di code assegnate a ogni VPort non viene modificato in modo dinamico. Il numero di coppie di code assegnate a un VPort non può essere modificato dopo la creazione di VPort.

Nota

Una o più coppie di code assegnate alle VPort nondefault possono essere usate per ricevere il ridimensionamento lato (RSS) dal driver miniport VF eseguito nel sistema operativo guest.

  • Interrompere i parametri di moderazione per VPort.

    È possibile specificare tipi di moderazione di interruzioni diversi per diversi VPort. Ciò consente allo stack di virtualizzazione di controllare il numero di interruzioni generate da un determinato VPort.

Oltre ai parametri di configurazione, i driver overlying possono configurare filtri di ricezione per ogni VPort emettendo richieste di metodo OID di OID_RECEIVE_FILTER_SET_FILTER. L'opzione della scheda di interfaccia di rete esegue il filtro di ricezione specificato su base VPort.

I parametri dei filtri di ricezione per VPort includono condizioni di filtro dei pacchetti, ad esempio un elenco di indirizzi MAC (Media Access Control) e gli identificatori VLAN (Virtual LAN). I filtri per gli indirizzi MAC e gli identificatori VLAN vengono sempre specificati insieme nella NDIS_RECEIVE_FILTER_PARAMETERS associata alla richiesta di OID_RECEIVE_FILTER_SET_FILTER . Il commutatore della scheda di interfaccia di rete deve filtrare i pacchetti in ingresso al commutatore il cui indirizzo MAC di destinazione e l'identificatore VLAN corrispondono a qualsiasi condizione di filtro di ricezione impostata sul VPort. Il commutatore di interfaccia di rete filtra i pacchetti ricevuti da un altro VPort o dalla porta fisica esterna. Se il pacchetto corrisponde a un filtro, l'opzione della scheda di interfaccia di rete deve inoltrarla alla VPort.

È possibile impostare più coppie di identificatori MAC e VLAN nel VPort. Se viene impostato solo un indirizzo MAC, il filtro di ricezione specifica che il VPort deve ricevere pacchetti che corrispondono alla condizione seguente:

  • L'indirizzo MAC di destinazione del pacchetto corrisponde all'indirizzo MAC del filtro.

  • Il pacchetto ha un tag VLAN o ,se è presente un tag VLAN, un identificatore VLAN pari a zero.

I VPort non definiti vengono eliminati tramite richieste di set OID di OID_NIC_SWITCH_DELETE_VPORT. Il VPort predefinito viene eliminato solo quando l'opzione di interfaccia di interfaccia di rete viene eliminata tramite una richiesta di set OID di OID_NIC_SWITCH_DELETE_SWITCH.