Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I driver Miniport registrano la funzionalità delle code multiple di macchine virtuali (VMMQ) di una scheda di interfaccia di rete durante l'inizializzazione dell'adattatore miniport.
Nota
Se la scheda di interfaccia di rete supporta VMMQ, il VPort predefinito e almeno un VPort non predefinito deve supportare VMMQ.
Durante l'inizializzazione, il driver miniport deve esaminare la parola chiave INF *RssOnHostVPorts per determinare se deve abilitare la funzionalità VMMQ nella NIC. Per altre informazioni sulla gestione delle parole chiave RSS per VMMQ, vedere parole chiave INF standardizzate per VMMQ.
Inoltre, lo stack può attivare VMMQ solo sulla NIC se l'adattatore miniport supporta la creazione di un commutatore NIC. NDIS può creare un commutatore NIC sull'adattatore miniport quando la parola chiave *SriovPreferred INF è impostata su uno o *SriovPreferred è impostata su zero e *RssOrVmqPreference è impostata su uno. Per altre informazioni, vedere parole chiave INF standardizzate per SR-IOV e parole chiave INF standardizzate per VMQ.
Quando il driver miniport configura i parametri per l'opzione NIC, deve impostare i campi della struttura NDIS_NIC_SWITCH_PARAMETERS come indicato di seguito:
Imposta il membro Revision dell'intestazione Header su NDIS_NIC_SWITCH_PARAMETERS_REVISION_2.
Impostare NumQueuePairsForDefaultVPort sul numero di coppie di code assegnate a un VPort predefinito.
I driver Miniport dichiarano la capacità VMMQ della scheda di interfaccia di rete (NIC) tramite la struttura NDIS_NIC_SWITCH_CAPABILITIES. Il driver miniport deve inizializzare NDIS_NIC_SWITCH_CAPABILITIES come indicato di seguito:
Impostare il membro Revision di Header su NDIS_NIC_SWITCH_CAPABILITIES_REVISION_3.
Impostare i flag NicSwitchCapabilities come indicato di seguito:
Impostare NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL su e per indicare che è possibile creare VPorts non predefiniti sul PF. Questo flag deve essere impostato.
Impostare NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED per indicare che NDIS può allocare un numero qualsiasi di code VMMQ in ogni VPort. In caso contrario, tutti i VPort non predefiniti dispongono dello stesso numero massimo di code VMMQ, come definisce il campo MaxNumQueuePairsPerNonDefaultVPort.
Impostare NDIS_NIC_SWITCH_CAPS_RSS_ON_PF_VPORTS_SUPPORTED su a per indicare che la scheda di rete supporta VMMQ per le VPort PF.
Nota
Se uno dei quattro flag PF VPort seguenti non è impostato, i driver di livello superiore useranno i valori specificati quando vengono impostati i parametri RSS dei VPort PF (incluso il VPort predefinito). Per altre informazioni, vedere Abilitazione, disabilitazione e aggiornamento di VMMQ in unVPort.
- Impostare NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SUPPORTED su e per indicare che il NIC è in grado di supportare le tabelle di indiretto di per PF VPort. Questo flag deve essere attivato.
Nota
I tre flag seguenti NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED, NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_TYPE_SUPPORTED e NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED devono essere tutti impostati su zero o tutti devono essere impostati su un. Se sono tutti impostati su zero, il software calcolerà nuovamente l'hash.
Impostare NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED su o se la scheda di interfaccia di rete supporta l'impostazione di una funzione hash diversa per PF VPort.
Impostare NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_TYPE_SUPPORTED su a se la scheda di interfaccia di rete supporta l'uso di un tipo di hash diverso per ciascun VPort PF.
Impostare NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED a e se la scheda di interfaccia di rete supporta l'impostazione di una chiave segreta hash diversa per ogni VPort PF.
Impostare NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SIZE_RESTRICTED su o se la scheda di interfaccia di rete presenta una limitazione sulle dimensioni della tabella di indirezione per PF VPorts. Questo flag forza l'autorità di certificazione di un OID RSS a usare una dimensione di tabella indiretta VPort per PF uguale al numero di code VPort arrotondate fino alla potenza successiva di due. Questo flag può essere combinato con il flag NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED (i diversi VPort PF possono avere un numero variabile di code). Questo indicatore impedisce agli utenti di VMMQ di eseguire l'indirizzamento della coda con granularità fine.
Impostare MaxNumVPorts per specificare il numero massimo di VPort.
Impostare MaxNumQueuePairs per specificare il numero massimo di coppie di code che possono essere assegnate a tutti i VPort. Ciò include il VPort predefinito collegato al PF. Questo numero deve riflettere le funzionalità hardware effettive.
Impostare MaxNumQueuePairsPerNonDefaultVPort per specificare il numero massimo di coppie di code che possono essere assegnate a un VPort non predefinito.
Impostare MaxNumRssCapableNonDefaultPFVPorts per specificare il numero massimo di VPort PF non predefiniti che possono supportare VMMQ.
Impostare NumberOfIndirectionTableEntriesForDefaultVPort per specificare il numero di voci della tabella di indirezione per il VPort predefinito.
Impostare NumberOfIndirectionTableEntriesPerNonDefaultPFVPort per specificare il numero di voci della tabella di indirizzamento indiretto per ogni VPort PF non standard. La dimensione della tabella di indirezione deve essere uguale per tutti i VPort PF non di default.
Impostare MaxNumQueuePairsForDefaultVPort per specificare il numero massimo di coppie di code che possono essere assegnate a un VPort predefinito durante la creazione del NIC Switch.
Dopo aver annunciato le funzionalità VMMQ, NDIS è responsabile della gestione dell'OID OID_GEN_RECEIVE_SCALE_CAPABILITIES quando viene chiamato sul VPort predefinito o su un VPort non predefinito. Quando il driver miniport restituisce le funzionalità RSS nella struttura NDIS_RECEIVE_SCALE_CAPABILITIES, non deve vincolare i campi NumberOfInterruptMessages da una delle parole chiave RSS standard ,ad esempio *MaxRssProcessors). Il driver di livello superiore incorporerà questo numero nell'algoritmo di allocazione della CPU host.