Inoltro delle indicazioni di stato NDIS dalle schede di rete fisiche

In questo argomento viene illustrato il metodo utilizzato dalle estensioni estendibili di inoltro del commutatore per inoltrare le indicazioni di stato NDIS da un adattatore fisico sottostante. Una o più schede fisiche sottostanti possono essere associate alla scheda di rete esterna del commutatore estendibile Hyper-V.

Ad esempio, la scheda di rete esterna può essere associata all'interfaccia miniport virtuale di un driver intermedio multiplexer (MUX) NDIS. Il driver MUX è associato a un team di una o più reti fisiche nell'host. Questa configurazione è nota come team di switch estendibile .

In questa configurazione, un'estensione del commutatore estensibile è disponibile per ogni scheda di rete del team. Ciò consente all'estensione di gestire la configurazione e l'uso di singole schede di rete nel team. Ad esempio, un'estensione di inoltro può fornire supporto per una soluzione di failover di bilanciamento del carico (LBFO) all'interno del team inoltrando pacchetti in uscita a singoli adattatori. Un'estensione di inoltro che gestisce un team di switch estensibile è conosciuta come un provider di team . Per altre informazioni sui provider di teaming, vedere Teaming Provider Extensions.

La figura seguente illustra il percorso di controllo del commutatore estendibile Hyper-V per le indicazioni di stato NDIS dalle schede di rete fisiche sottostanti per NDIS 6.40 (Windows Server 2012 R2) e versioni successive.

Diagramma che mostra il percorso di controllo del commutatore estendibile Hyper-V per le indicazioni di stato NDIS dalle schede di rete fisiche per NDIS 6.40 e versioni successive.

La figura seguente illustra il percorso di controllo del commutatore estendibile Hyper-V per le indicazioni di stato NDIS dalle schede di rete fisiche sottostanti per NDIS 6.30 (Windows Server 2012).

Diagramma che mostra il percorso di controllo del commutatore estensibile Hyper-V per le notifiche di stato NDIS dalle schede di rete fisiche per NDIS 6.30.

Nota Nell'interfaccia del switch estensibile, i driver di filtro NDIS sono noti come estensioni del switch estensibile e lo stack di driver è noto come stack di driver del switch estensibile.

L'interfaccia del switch estensibile inoltra le indicazioni di stato NDIS generate dagli adattatori fisici sottostanti. Se una scheda di rete esterna è associata a un team di commutatori estendibili, l'indicazione di stato NDIS viene originata dal bordo della scheda virtuale di un driver MUX. In caso contrario, l'indicazione di stato viene originata dalla singola scheda di rete fisica associata alla scheda di rete esterna.

Quando un'indicazione di stato NDIS arriva all'interfaccia del commutatore estendibile, incapsula l'indicazione all'interno di una struttura di NDIS_SWITCH_NIC_STATUS_INDICATION. L'interfaccia miniport dello switch estensibile emette quindi un'indicazione NDIS_STATUS_SWITCH_NIC_STATUS che contiene questa struttura.

Quando l'estensione di inoltro riceve l'indicazione di stato NDIS, può inoltrare i dati di indicazione originali o modificare i dati prima di inoltrare l'indicazione.

Nota Solo le estensioni di inoltro possono modificare i dati prima di inoltrare l'indicazione dello stato. Per altre informazioni su questo tipo di estensione, vedere l'estensione di inoltro .

Un'estensione di inoltro può modificare e inoltrare le indicazioni sullo stato da qualsiasi scheda fisica sottostante associata alla scheda di rete esterna del commutatore estendibile. In genere, l'estensione emette queste indicazioni di stato per modificare le funzionalità di offload hardware annunciate dalla scheda fisica sottostante. Ad esempio, l'estensione può modificare e inoltrare le indicazioni sullo stato per i tipi di offload hardware seguenti:

  • Sicurezza del protocollo Internet (IPsec)

  • Coda di macchine virtualizzate (VMQ)

  • Virtualizzazione a radice singola dell'I/O (SR-IOV)

Se l'estensione di inoltro inoltra un'indicazione di stato NDIS, deve impostare i membri della struttura NDIS_SWITCH_NIC_STATUS_INDICATION nel modo seguente:

  • Il membro SourcePortId deve essere impostato sull'identificatore della porta a cui è connessa la scheda di rete esterna. La scheda di rete esterna è associata a una o più schede fisiche. Per ulteriori informazioni, vedere adattatori di rete esterna.

  • Il membro SourceNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX. In questo modo, l'indicazione di stato può essere interpretata come proveniente dall'intero team del commutatore estendibile associato alla scheda di rete esterna.

  • Il membro DestinationPortId deve essere impostato su NDIS_SWITCH_DEFAULT_PORT_ID.

  • Il membro DestinationNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX.

  • Il membro StatusIndication deve essere impostato a un puntatore alla struttura NDIS_STATUS_INDICATION. Questa struttura contiene i dati per l'indicazione di stato NDIS incapsulata.

Quando un'estensione di inoltro genera l'indicazione di stato NDIS incapsulata, deve seguire questa procedura:

  1. L'estensione chiama ReferenceSwitchNic per incrementare un contatore di riferimento per la scheda di rete esterna. Ciò garantisce che l'interfaccia del commutatore estendibile non elimini la connessione alla scheda di rete mentre il contatore di riferimento è diverso da zero.

    Quando l'estensione chiama ReferenceSwitchNic, imposta il parametro SwitchPortId sul valore specificato per il membro SourcePortId. L'estensione imposta anche il parametro SwitchNicIndex sul valore specificato per il membro SourceNicIndex.

    Nota Se ReferenceSwitchNic non restituisce NDIS_STATUS_SUCCESS, non è possibile emettere l'indicazione di stato NDIS incapsulata.

  2. L'estensione chiama NdisFIndicateStatus per inoltrare la notifica di stato incapsulata.

    Nota Se l'estensione inoltra un'indicazione di stato NDIS incapsulata, deve chiamare NdisFIndicateStatus all'interno del contesto della chiamata alla funzione FilterStatus.

  3. Dopo che NdisFIndicateStatus restituisce, l'estensione chiama DereferenceSwitchNic per azzerare il contatore di riferimento per la connessione alla scheda di rete di origine o di destinazione. L'estensione imposta i parametri SwitchPortId e SwitchNicIndex agli stessi valori che ha utilizzato nella chiamata a ReferenceSwitchNic.

Per ulteriori informazioni sui driver MUX, vedere Driver Intermedi MUX NDIS.