Allocazione di risorse per una funzione virtuale
Una scheda di rete che supporta la virtualizzazione I/O radice singola (SR-IOV) deve essere in grado di supportare i componenti hardware seguenti:
Una funzione fisica PCI Express (PCIe) (PF). Il pf esiste sempre nella scheda di rete e viene collegato alla partizione padre Hyper-V.
Per altre informazioni su questo componente hardware, vedere FUNZIONE fisica SR-IOV (PF).
Una o più funzioni virtuali PCIe (VF). Ogni VF deve essere inizializzato e collegato a una partizione figlio Hyper-V prima che i componenti di rete del sistema operativo guest possano inviare o ricevere pacchetti tramite VF.
Per altre informazioni su questo componente hardware, vedere Funzioni virtuali SR-IOV (VFs).
Il driver miniport PF, che viene eseguito nel sistema operativo di gestione della partizione padre Hyper-V, alloca le risorse per pf e ogni VF nella scheda di rete SR-IOV. Questo driver alloca le risorse per il pf come per qualsiasi scheda di rete. Tuttavia, il driver alloca le risorse per ogni VF nel modo seguente:
Il driver miniport PF alloca le risorse hardware per ogni VF quando il driver crea la scheda di interfaccia di rete (NIC) nella scheda di rete. Il driver completa l'allocazione delle risorse hardware per le macchine virtuali chiamando NdisMEnableVirtualization. Per altre informazioni su questo processo, vedere Creazione di un commutatore di interfaccia di rete.
Il driver miniport PF alloca le risorse software per un VF quando il driver gestisce una richiesta di metodo OID (Object Identifier) di OID_NIC_SWITCH_ALLOCATE_VF. Anche se le risorse hardware sono state allocate per un VF, viene considerato non funzionante fino al completamento del driver miniport PF OID_NIC_SWITCH_ALLOCATE_VF.
Il driver overlying può richiedere l'allocazione delle risorse software per un VF inviando una richiesta di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF. Il membro InformationBuffer della struttura NDIS_OID_REQUEST per la richiesta OID contiene un puntatore a una struttura NDIS_NIC_SWITCH_VF_PARAMETERS .
Dopo aver restituito correttamente la richiesta OID, il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_NIC_SWITCH_VF_PARAMETERS . Questa struttura dispone di un identificatore VF univoco della scheda e dell'identificatore del richiedente PCI (RID). Questi identificatori vengono usati nei modi seguenti:
Il driver overlying usa l'identificatore VF nelle azioni correlate alla VF, ad esempio quanto segue:
Ottenere i parametri VF correnti tramite una richiesta di metodo OID di OID_NIC_SWITCH_VF_PARAMETERS.
Liberare le risorse assegnate in precedenza per il VF tramite una richiesta OID set di OID_NIC_SWITCH_FREE_VF.
Rilascio di una reimpostazione PCI al VF tramite una richiesta del set OID di OID_SRIOV_RESET_VF.
Rid viene usato dallo stack di virtualizzazione per eseguire il mapping di DMA e interrompe gli interruzioni tra PF e VF. Rid consente anche all'unità di gestione della memoria di input/output hardware di convertire gli indirizzi fisici guest in indirizzi fisici host.
Per altre informazioni sul modo in cui il driver overlying genera richieste di metodi OID_NIC_SWITCH_ALLOCATE_VF , vedere Emissione di richieste di OID_NIC_SWITCH_ALLOCATE_VF.
Per altre informazioni sul modo in cui il driver miniport PF gestisce le richieste di metodi OID_NIC_SWITCH_ALLOCATE_VF , vedere Gestione delle richieste di OID_NIC_SWITCH_ALLOCATE_VF.
Nota Dopo l'allocazione delle risorse per un VF tramite una richiesta di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF, i parametri di risorsa per il VF non possono essere modificati dinamicamente.