Share via


Impostazione dei parametri di una porta virtuale

Un driver overlying può modificare i parametri per una porta virtuale (VPort) in un commutatore di interfaccia di rete in una scheda di rete che supporta la virtualizzazione I/O radice singola (SR-IOV). Il driver genera una richiesta di set OID (Object Identifier) di OID_NIC_SWITCH_VPORT_PARAMETERS per modificare questi parametri.

Prima che il driver overlying problemi questa richiesta del set OID, deve inizializzare una struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS con i parametri da modificare nel VPort. Il driver inizializza quindi una struttura NDIS_OID_REQUEST per la richiesta OID e imposta il membro InformationBuffer su un puntatore alla struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS .

È possibile modificare solo un subset limitato di parametri di configurazione per un VPort. Il driver overlying specifica il parametro da modificare impostando i membri seguenti della struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS :

  • Il membro SwitchId deve essere impostato sull'identificatore dell'opzione di interfaccia di interfaccia di rete per i quali devono essere restituiti i parametri.

    Nota A partire da Windows Server 2012, l'interfaccia SR-IOV supporta un solo commutatore della scheda di rete nella scheda di rete. Questo commutatore è noto come commutatore di interfaccia di interfaccia di rete predefinito. Il membro SwitchId deve essere impostato su NDIS_DEFAULT_SWITCH_ID.

  • Il membro VPortId deve essere impostato sull'identificatore associato a VPort. Il driver overlying ottiene l'identificatore VPort tramite uno dei modi seguenti:

  • I flag NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx appropriati_CHANGED devono essere impostati nel membro Flags . I membri della struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS possono essere modificati solo se un flag NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx corrispondente_CHANGED è definito in Ntddndis.h.

  • I membri della struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS , che corrispondono ai flag NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED impostati nel membro Flags , vengono impostati con i parametri di configurazione VPort da modificare.

A partire da Windows Server 2012, è possibile modificare solo i membri seguenti della struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS tramite una richiesta OID set di OID_NIC_SWITCH_VPORT_PARAMETERS:

PortName
Questo membro contiene una descrizione descrittiva del VPort.

InterruptModeration
Questo membro specifica l'impostazione di moderazione dell'interruzione del VPort.

ProcessorAffinity
Questo membro specifica il numero di gruppo e una bitmap delle CPU a cui può essere associato questo VPort.

Il driver overlying deve seguire queste linee guida per modificare il membro ProcessorAffinity per un VPort:

  • Questo membro è valido solo per i VPort collegati al pf. Questo campo non è valido per le VPort nondefault associate a un VF.

  • Per le VPort nondefault associate al pf, è necessario specificare almeno un processore quando viene creato il VPort. L'affinità del processore associata alla VPort non definita può essere modificata dopo la creazione di VPort.

    Nota I VPort non definiti vengono creati tramite richieste di metodo OID di OID_NIC_SWITCH_CREATE_VPORT.

VPortState
Questo membro specifica lo stato corrente del VPort.

Il driver overlying deve seguire queste linee guida per modificare il membro VPortState per un VPort :

  • Per un VPort non definito collegato a un VF, il membro VPortState deve essere sempre impostato su NdisNicSwitchVPortStateActivated.

  • Per un VPort non definito collegato al pf, il membro VPortState deve essere impostato su NdisNicSwitchVPortStateDeactivated quando viene creato il VPort. Il VPort PF viene attivato solo dopo che viene rilasciata una richiesta OID set di OID_NIC_SWITCH_VPORT_PARAMETERS dai driver overlying per modificare VPortState in uno stato attivato.

    Quando il VPort non definito viene attivato, il driver miniport PF può allocare risorse per il VPort, ad esempio la memoria condivisa allocata tramite NdisAllocateSharedMemory. Il driver miniport PF può allocare risorse per VPort in qualsiasi momento dopo l'attivazione fino a quando il driver elimina il VPort tramite una richiesta di set OID di OID_NIC_SWITCH_DELETE_VPORT.

  • Il VPort predefinito è sempre in uno stato attivato. Il valore del membro VPortState deve essere sempre impostato su NdisNicSwitchVPortStateActivated per il VPort predefinito.

  • Quando un VPort è in uno stato attivato, non può essere disattivato. Un driver miniport PF può ricevere e trasmettere pacchetti da una VPort solo se è in uno stato attivato e i filtri MAC corrispondenti sono impostati sul VPort. Tuttavia, dopo l'eliminazione di VPort tramite una richiesta OID set di OID_NIC_SWITCH_DELETE_VPORT, il driver deve liberare le risorse allocate per VPort. Il driver deve anche annullare tutte le operazioni di trasmissione o ricezione in sospeso per i pacchetti nel VPort.

Dopo che il driver miniport PF riceve la richiesta del set OID di OID_NIC_SWITCH_VPORT_PARAMETERS, il driver configura l'hardware con i parametri di configurazione. Il driver può modificare solo i parametri di configurazione identificati da NDIS_NIC_SWITCH_VPORT_PARAMETERS_Xxx_CHANGED flag nel membro Flagdella struttura NDIS_NIC_SWITCH_VPORT_PARAMETERS.