Condividi tramite


Gestione delle richieste OID di offload hardware alle schede di rete fisiche

Questo argomento illustra come un'estensione di inoltro del commutatore estendibile Hyper-V gestisce le richieste OID (Object Identifier) per le tecnologie di offload hardware sulle schede fisiche sottostanti sul percorso di controllo del commutatore estendibile.

Ad esempio, la scheda di rete esterna può essere associata al bordo 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 commutatori estendibili.

In questa configurazione, un'estensione del commutatore estendibile viene esposta a ogni scheda di rete del team. In questo modo l'estensione può 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) sul team inoltrando pacchetti in uscita a singole schede. Un'estensione di inoltro che gestisce un team di switch estendibile è nota come provider di raggruppamento. Per altre informazioni sui provider di teaming, vedere Teaming Provider Extensions.For more information about teaming providers providers extensions, see Teaming Provider Extensions.

La figura seguente illustra un esempio di team di commutatore estendibile per NDIS 6.40 (Windows Server 2012 R2) e versioni successive.

Diagramma che mostra un team di switch estendibile per NDIS 6.40.

La figura seguente illustra un esempio di un team di switch estendibile per NDIS 6.30 (Windows Server 2012).

Diagramma che illustra un team di switch estendibile per NDIS 6.30.

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

Gestendo la richiesta OID di OID_SWITCH_NIC_REQUEST, un'estensione di inoltro può partecipare alla configurazione del team del commutatore estendibile per gli offload hardware. Ad esempio, se l'estensione gestisce le schede di rete fisiche di un team di commutatori estendibili, può inoltrare la richiesta di OID_SWITCH_NIC_REQUEST a una scheda fisica che supporta l'offload hardware.

NDIS e driver di filtro overlying possono inviare richieste OID per le tecnologie di offload hardware alla scheda di rete fisica sottostante. Quando queste richieste OID arrivano all'interfaccia del commutatore estendibile, incapsula la richiesta OID all'interno di un NDIS_SWITCH_NIC_OID_REQUEST. Il bordo del protocollo del commutatore estendibile invia quindi una richiesta OID di OID_SWITCH_NIC_REQUEST che contiene questa struttura.

L'interfaccia del commutatore estendibile incapsula gli OID per le tecnologie di offload hardware seguenti:

Offload IPsec (Internet Protocol Security) (versione 2)
Le richieste OID IPsec seguenti sono incapsulate:

L'estensione di inoltro non deve avere esito negativo o veto, queste richieste OID.

Per altre informazioni sulla versione 2 della tecnologia di offload hardware IPsec, vedere Offload IPsec versione 2.

Virtualizzazione I/O radice singola (SR-IOV)
Le richieste OID SR-IOV seguenti sono incapsulate:

L'estensione di inoltro può modificare le richieste OID di OID_NIC_SWITCH_ALLOCATE_VF e OID_NIC_SWITCH_CREATE_VPORT completando la richiesta con un codice di stato diverso da NDIS_STATUS_SUCCESS. Tuttavia, l'estensione non deve veto alle altre richieste OID SR-IOV.

Per altre informazioni sulla tecnologia di offload hardware SR-IOV, vedere Single Root I/O Virtualization (SR-IOV).

Coda di macchine virtualizzate (VMQ)
Le richieste OID VMQ seguenti sono incapsulate:

L'estensione di inoltro può modificare le richieste OID di OID_RECEIVE_FILTER_ALLOCATE_QUEUE e OID_RECEIVE_FILTER_SET_FILTER completando la richiesta con un codice di stato diverso da NDIS_STATUS_SUCCESS. Tuttavia, l'estensione non deve veto alle altre richieste OID VMQ.

Per altre informazioni sulla tecnologia di offload hardware VMQ, vedere Virtual Machine Queue (VMQ).For more information about the VMQ hardware offload technology, see Virtual Machine Queue (VMQ).

L'estensione di inoltro deve seguire queste linee guida per la gestione delle richieste OID di offload hardware:

  • La piattaforma di messaggistica istantanea Microsoft annuncia solo le funzionalità di offload comuni per il team generale. Tuttavia, l'estensione può generare richieste OID per eseguire query sulle funzionalità di ogni adattatore nel team.

    Dopo che l'estensione ha determinato le funzionalità hardware delle schede fisiche del team, può inoltrare le richieste di set OID per gli offload hardware a una scheda più adatta per l'offload.

  • Tutte le richieste OID di offload hardware originate dall'overlying dei driver di protocollo o filtro verranno incapsulate all'interno di una struttura di NDIS_SWITCH_NIC_OID_REQUEST . Tutte le richieste OID di offload hardware originate dall'estensione di inoltro devono essere incapsulate anche in una struttura NDIS_SWITCH_NIC_OID_REQUEST .

    L'estensione inoltra la richiesta OID incapsulata a una scheda di rete fisica sottostante tramite una richiesta di set OID di OID_SWITCH_NIC_REQUEST. Per altre informazioni su questa procedura, vedere Inoltro di richieste OID alle schede di rete fisiche.

  • L'estensione non deve modificare o interrompere le richieste OID di offload hardware per cancellare, liberare o completare l'allocazione delle risorse di offload. Ad esempio, l'estensione non deve generare errori nelle richieste OID di OID_RECEIVE_FILTER_CLEAR_FILTER o di OID_NIC_SWITCH_DELETE_VPORT. L'interfaccia del commutatore estendibile deve gestire queste richieste OID per pulire le informazioni sullo stato per queste risorse.

    L'estensione può modificare o interrompere le richieste OID di offload hardware per allocare, spostare o impostare risorse di offload. Ad esempio, l'estensione può non riuscire o modificare le richieste OID di OID_NIC_SWITCH_ALLOCATE_VF o OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA.

  • L'estensione può avere origine qualsiasi OID di offload hardware in una scheda di rete fisica sottostante. Tuttavia, l'estensione non deve avere origine un OID di offload hardware che cancella o libera le risorse di offload non allocate dall'estensione.

    Ad esempio, l'estensione non deve avere origine una richiesta OID di offload hardware di OID_RECEIVE_FILTER_FREE_QUEUE se non ha avuto origine una richiesta di OID_RECEIVE_FILTER_ALLOCATE_QUEUE per la stessa coda.

    Nota L'estensione può avere origine solo la propria richiesta OID di offload hardware incapsulata se filtra la stessa richiesta OID che è stata emessa da driver eccessivamente. In questo caso, l'estensione non deve inoltrare la richiesta OID originale. L'estensione deve invece chiamare NdisFOidRequestComplete per completare questa richiesta quando NDIS chiama filterOidRequestComplete per completare la richiesta OID originata.

  • Se l'estensione inoltra una richiesta OID di offload hardware a una scheda di rete fisica sottostante, il membro DestinationNicIndex della struttura NDIS_SWITCH_NIC_OID_REQUEST deve essere impostato sul valore di indice diverso da zero della scheda. Per altre informazioni su questi valori di indice, vedere Valori di indice della scheda di rete.

    Inoltre, il membro DestinationPortId deve essere impostato sull'identificatore della porta del commutatore estendibile a cui è connessa la scheda di rete esterna.

  • Se l'estensione ha origine una richiesta OID di offload hardware per allocare risorse per una partizione figlio Hyper-V, il membro SourcePortId della struttura NDIS_SWITCH_NIC_OID_REQUEST deve essere impostato sull'identificatore della porta del commutatore estendibile a cui è connessa la partizione.

    Il membro SourceNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX.

  • Quando l'estensione chiama NdisFOidRequest per inoltrare la richiesta OID, deve impostare il parametro OidRequest su un puntatore a una struttura NDIS_OID_REQUEST per una richiesta OID OID_SWITCH_NIC_REQUEST .

Per altre informazioni su come l'estensione filtra le richieste OID, vedere Filtro delle richieste OID in un driver di filtro NDIS.

Per altre informazioni sui driver MUX, vedere Driver intermedi MUX NDIS.