Assegnazione simmetrica e asimmetrica di coppie di code
Una coppia di code è costituita da una coda di trasmissione e ricezione separata nella scheda di rete. Le coppie di code vengono configurate su una porta virtuale (VPort) quando viene creato il VPort. Le coppie di code associate al VPort predefinito vengono configurate al momento della creazione del commutatore tramite una richiesta di metodo OID di OID_NIC_SWITCH_CREATE_SWITCH. Una o più coppie di code vengono configurate in un VPort non predefinito tramite una richiesta di metodo OID di OID_NIC_SWITCH_CREATE_VPORT.
Ogni VPort non predefinito può essere configurato per avere un numero diverso di coppie di code. Questa operazione è nota come allocazione asimmetrica delle coppie di code. Se il driver miniport non supporta le allocazioni asimmetriche, ogni VPort non predefinito è configurato per avere un numero uguale di coppie di code. Questa operazione è nota come allocazione simmetrica delle coppie di code.
Il driver miniport annuncia le funzionalità di coppia VPort e coda durante MiniportInitializeEx usando una struttura NDIS_NIC_SWITCH_CAPABILITIES . Il driver annuncia il supporto per l'allocazione asimmetrica delle coppie di code impostando il flag NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED nel membro NicSwitchCapabilities di questa struttura.
Se il driver miniport supporta l'allocazione di coppie di code asimmetriche, lo stack di virtualizzazione configura ogni VPort non predefinito con un numero diverso di coppie di code. Se il driver miniport supporta l'allocazione di coppie di code simmetriche, lo stack di virtualizzazione configura ogni VPort con lo stesso numero di coppie di code.
Nota Un driver miniport che supporta l'allocazione di coppie di code simmetriche o asimmetriche in VPort non predefiniti deve supportare un numero diverso di coppie di code da allocare nel VPort predefinito. Il VPort predefinito è sempre collegato al file PF della scheda di rete.
La configurazione della coppia di code viene specificata quando il VPort non predefinito viene creato o aggiornato tramite richieste OID di OID_NIC_SWITCH_CREATE_VPORT e OID_NIC_SWITCH_VPORT_PARAMETERS. I parametri di configurazione vengono specificati in una struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS associata a entrambe le richieste OID.
Si supponga, ad esempio, che il driver miniport pubblicizzi la configurazione per vPort e coppie di code sull'opzione di interfaccia di rete impostando i membri seguenti della struttura NDIS_NIC_SWITCH_CAPABILITIES :
MaxNumQueuePairs è impostato su 128.
MaxNumVPorts è impostato su 64.
MaxNumQueuePairsPerNonDefaultPort è impostato su 4.
Se il driver miniport non supporta la configurazione asimmetrica delle coppie di code in VPort non predefiniti, lo stack di virtualizzazione può specificare la configurazione della coppia di code seguente al momento della creazione di VPort:
- 63 VPort VF non predefiniti con due coppie di code, insieme al VPort PF predefinito con una coppia di code.
- 31 VPort VF non predefiniti con quattro coppie di code, insieme al VPort PF predefinito con una coppia di code.
Nota A partire da Windows Server 2012, è supportato un solo VPort predefinito ed è sempre collegato al file PF della scheda di rete.