Condividi tramite


NDIS_STATUS_SWITCH_PORT_REMOVE_VF

L'indicazione dello stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF viene generata da un'estensione di inoltro del commutatore estendibile Hyper-V per rimuovere l'associazione tra una scheda di rete della macchina virtuale (VM) e una funzione virtuale PCI Express (PCIe). La funzione VF è esposta e supportata da una scheda di rete fisica sottostante che supporta la singola interfaccia di virtualizzazione I/O radice (SR-IOV).

Per emettere l'indicazione dello stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF , l'estensione di inoltro deve incapsulare l'indicazione in una struttura NDIS_SWITCH_NIC_STATUS_INDICATION e rilasciare un'indicazione dello stato NDIS_STATUS_SWITCH_NIC_STATUS.

Per altre informazioni su questo processo, vedere Linee guida per l'emissione di un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Commenti

Un pcie VF viene creato e allocato da una scheda fisica sottostante che supporta l'interfaccia SR-IOV. Dopo la creazione, lo stack di virtualizzazione si collega o assegna la funzione VF a una partizione figlio Hyper-V. Il sistema operativo guest in esecuzione in questa partizione espone una scheda di rete macchina virtuale (VM) associata alla VF della scheda fisica SR-IOV sottostante.

Dopo l'assegnazione delle schede di rete virtuali e fisiche, i pacchetti vengono instradati direttamente tra la scheda di rete VF e la scheda di rete della macchina virtuale. Tuttavia, poiché l'opzione estendibile non è coinvolta nel recapito dei pacchetti, i criteri di porta switch estendibili non vengono applicati a questi pacchetti. Sono inclusi i criteri di porta per gli elenchi di controllo di accesso (ACL) e la qualità del servizio (QoS).

Un'estensione di inoltro del commutatore estendibile può rimuovere l'assegnazione della funzione VF alla partizione figlio inviando un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Questa indicazione fa sì che i pacchetti vengano recapitati tramite una porta commutatore estendibile anziché direttamente tra la scheda di rete vm e il VF della scheda fisica SR-IOV sottostante. In questo modo è possibile applicare i criteri di porta del commutatore estendibile ai pacchetti ricevuti o inviati sulla porta del commutatore estendibile.

Quando l'estensione di inoltro indica lo stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF , specifica la porta del commutatore estendibile a cui è connessa la scheda di rete della macchina virtuale.

Per altre informazioni sulle estensioni di inoltro dei commutatori estendibili, vedere Estensioni di inoltro.

Linee guida per l'emissione di un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Per emettere l'indicazione dello stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF, l'estensione di inoltro deve seguire questa procedura:

  1. L'estensione di inoltro inizializza una struttura NDIS_STATUS_INDICATION per l'indicazione NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Per questa indicazione, le estensioni di inoltro impostano i membri seguenti della struttura NDIS_STATUS_INDICATION :

    • Il membro StatusCode deve essere impostato su NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

    • Il membro StatusBuffer deve essere impostato su NULL.

    • StatusBufferSize deve essere impostato su zero.

  2. L'estensione di inoltro inizializza una struttura NDIS_SWITCH_NIC_STATUS_INDICATION . Per rimuovere un'assegnazione VF, l'estensione di inoltro deve impostare i membri nel modo seguente:

    • Il membro DestinationPortId deve essere impostato sull'identificatore di una porta del commutatore estendibile a cui è connessa la scheda di rete della macchina virtuale.

    • Il membro DestinationNicIndex deve essere impostato sul valore di indice della scheda di rete della macchina virtuale connessa alla porta specificata.

    • Il membro SourcePortId deve essere impostato su NDIS_SWITCH_DEFAULT_PORT_ID.

    • Il membro SourceNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX.

    • Il membro StatusIndication deve essere impostato sull'indirizzo della struttura NDIS_STATUS_INDICATION per l'indicazione NDIS_STATUS_SWITCH_PORT_REMOVE_VF .

  3. L'estensione di inoltro inizializza una struttura di NDIS_STATUS_INDICATION per l'indicazione del NDIS_SWITCH_NIC_STATUS_INDICATION . Per questa indicazione, l'estensione di inoltro imposta i membri seguenti della struttura NDIS_STATUS_INDICATION :

  4. L'estensione di inoltro deve chiamare ReferenceSwitchNic per incrementare un contatore di riferimento per la scheda di rete della macchina virtuale. Se ReferenceSwitchNic non viene completato con NDIS_STATUS_SUCCESS, l'estensione di inoltro non deve inoltrare l'indicazione di stato.

    Nota Se l'estensione di inoltro ha ricevuto una richiesta di OID_SWITCH_NIC_DISCONNECT set per la scheda VM, non deve chiamare ReferenceSwitchNic né inoltrare l'indicazione dello stato.

  5. L'estensione di inoltro chiama NdisFIndicateStatus per inoltrare il NDIS_STATUS_INDICATION alle estensioni overlying nello stack di driver del commutatore estendibile. Quando l'estensione di inoltro chiama questa funzione, imposta il parametro StatusIndication su un puntatore alla struttura NDIS_STATUS_INDICATION per l'indicazione NDIS_STATUS_SWITCH_NIC_STATUS .

  6. Dopo la restituzione di NdisFIndicateStatus , l'estensione di inoltro deve chiamare DereferenceSwitchNic per decrementare il contatore di riferimento per la scheda di rete della macchina virtuale.

Nota L'estensione di inoltro deve seguire i passaggi precedenti per ogni assegnazione VF che l'estensione di inoltro sta rimuovendo.

Per altre informazioni su come un'estensione di inoltro inoltra le indicazioni sullo stato, vedere Indicazioni sullo stato del modulo di filtro.

Linee guida per la determinazione delle assegnazioni VF

L'estensione di inoltro può enumerare le assegnazioni VF correnti per le schede di rete virtuali inviando una richiesta di query OID di OID_SWITCH_NIC_ARRAY. Questa richiesta restituisce una struttura NDIS_SWITCH_NIC_ARRAY che contiene una matrice di strutture NDIS_SWITCH_NIC_PARAMETERS . Ogni struttura NDIS_SWITCH_NIC_PARAMETERS specifica i parametri di una scheda di rete esposta in uno degli ambienti seguenti:

  • Sistema operativo di gestione eseguito nella partizione padre Hyper-V.

    Le schede di rete esposte in questo sistema operativo vengono specificate con un valore di enumerazione NDIS_SWITCH_NIC_TYPE di NdisSwitchNicTypeExternal o NdisSwitchNicTypeInternal.

  • Sistema operativo guest in esecuzione in una partizione figlio Hyper-V.

    Le schede di rete esposte in questo sistema operativo vengono specificate con un valore di enumerazione NDIS_SWITCH_NIC_TYPE di NdisSwitchNicTypeSynthetic o NdisSwitchNicTypeEmulated.

Se la richiesta di query OID di OID_SWITCH_NIC_ARRAY viene completata con lo stato NDIS_STATUS_SUCCESS, l'estensione di inoltro può determinare le assegnazioni VF esaminando ogni struttura NDIS_SWITCH_NIC_PARAMETERS nella matrice restituita. Se il membro VFAssigned della struttura NDIS_SWITCH_NIC_PARAMETERS è impostato su TRUE, la scheda di rete corrispondente alla struttura NDIS_SWITCH_NIC_PARAMETERS viene assegnata a un VF.

L'estensione di inoltro può rimuovere l'assegnazione inviando un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF . In questo caso, l'estensione di inoltro deve impostare il membro DestinationPortId del NDIS_SWITCH_NIC_STATUS_INDICATION sul valore del membro PortId della struttura NDIS_SWITCH_NIC_PARAMETERS .

Per altre informazioni su come emettere un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF, vedere Linee guida per l'emissione di un'indicazione di stato NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Requisiti

Versione

Supportato in NDIS 6.30 e versioni successive.

Intestazione

Ndis.h (include Ndis.h)

Vedi anche


NdisFIndicateStatus

NDIS_STATUS_INDICATION

NDIS_STATUS_SWITCH_NIC_STATUS

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY