Condividi tramite


Inoltrare pacchetti ad adattatori di rete fisici

Nota Questa pagina presuppone che si abbia familiarità con le informazioni e i diagrammi nelle pagine seguenti:

Questa pagina descrive in che modo le estensioni di inoltro del commutatore Hyper-V possono inoltrare richieste di invio di pacchetti verso adattatori fisici sottostanti. Una o più schede di rete fisiche possono essere associate alla scheda di rete esterna del commutatore estendibile.

Ad esempio, la scheda di rete esterna dello switch estensibile può essere associata al bordo miniport virtuale di un driver intermedio del multiplexer (MUX) NDIS. Il driver intermedio MUX può essere associato a un team di una o più reti fisiche nell'host. Questa configurazione è nota come gruppo di switch estensibile . Per altre informazioni sui team dei commutatori estendibili, vedere Tipi di configurazioni delle schede di rete fisiche.

In questa configurazione, le estensioni dello switch estensibile vengono esposte a ogni adattatore di rete nel team dello switch estensibile. Ciò consente a un'estensione di inoltro nello stack di driver del commutatore estensibile di gestire la configurazione e l'uso di schede di rete individuali nel team. Ad esempio, l'estensione può fornire supporto per una soluzione di failover del bilanciamento del carico (LBFO) all'interno del team inoltrando pacchetti in uscita a singole schede di rete. Una tale estensione è nota come provider di raggruppamento . Per ulteriori informazioni sui fornitori di collaborazione, vedere Estensioni del fornitore di collaborazione.

Se un'estensione di inoltro viene installata e abilitata nello stack di driver del commutatore estendibile, è responsabile di prendere decisioni di inoltro per ogni pacchetto ottenuto nel percorso dati in ingresso del commutatore estendibile, a meno che il pacchetto non sia un pacchetto NVGRE. Per ulteriori informazioni sui pacchetti NVGRE, vedere inoltro ibrido. In base a queste decisioni di inoltro, l'estensione può aggiungere le porte di destinazione ai dati fuori banda (OOB) nella struttura NET_BUFFER_LIST del pacchetto. Dopo che il pacchetto ha completato l'attraversamento del percorso dati del commutatore estendibile, l'interfaccia del commutatore estendibile recapita il pacchetto alle porte di destinazione specificate.

Nota Se un'estensione di inoltro non è installata o abilitata, l'opzione estendibile prende le decisioni di inoltro per i pacchetti che ottiene dal percorso dati in ingresso. Il commutatore aggiunge le porte di destinazione ai dati OOB della struttura di NET_BUFFER_LIST del pacchetto prima di inoltrare il pacchetto lungo il percorso di uscita dati del commutatore estendibile.

Quando la funzione FilterSendNetBufferLists dell'estensione di inoltro viene chiamata, il parametro NetBufferList contiene un puntatore a una lista collegata di strutture NET_BUFFER_LIST. Ognuna di queste strutture specifica un pacchetto ottenuto dal percorso dati in ingresso. All'interno dei dati OOB della struttura di NET_BUFFER_LIST di ogni pacchetto, i dati per le porte di destinazione sono contenuti in una struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. L'estensione ottiene la struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY e i relativi elementi chiamando GetNetBufferListDestinations.

Nota Per migliorare le prestazioni, un'estensione di inoltro può chiamare la funzioneGrowNetBufferListDestinations anziché GetNetBufferListDestinations per ottenere un puntatore alla struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. L'estensione esegue questa operazione se determina che richiede elementi di matrice aggiuntivi nei dati OOB del pacchetto per le porte di destinazione. Per maggiori informazioni, vedere Aggiungere dati di porta di destinazione del commutatore estensibile a un pacchetto.

Ogni elemento nella matrice di NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY definisce una porta di destinazione e viene formattato come struttura NDIS_SWITCH_PORT_DESTINATION. Questa struttura contiene i membri seguenti:

  • Il membro portId contiene un valore che specifica la porta di destinazione sul commutatore estendibile.

  • Il membro NicIndex specifica l'indice della scheda di rete connessa alla porta dell'interruttore estensibile specificata dal membro PortId.

    Per altre informazioni su questi valori di indice, vedere valori di indice della scheda di rete.

Se l'estensione di inoltro aggiunge una porta di destinazione connessa alla scheda di rete esterna, l'estensione può specificare l'indice di una scheda di rete fisica sottostante. Ad esempio, l'estensione potrebbe operare come provider di team per il supporto LBFO su un team di switch estendibile. Ciò consente all'estensione di bilanciare il sovraccarico del traffico inoltrando le richieste di invio a diversi adattatori del team.

L'estensione di inoltro deve seguire queste linee guida quando aggiunge o modifica una struttura NDIS_SWITCH_PORT_DESTINATION per inoltrare le richieste a una scheda di rete fisica sottostante:

  • Se il membro PortId specifica la porta del commutatore estendibile a cui è connessa la scheda di rete esterna, l'estensione deve impostare il membro NicIndex su uno dei valori di indice seguenti:

    • Se alla scheda di rete esterna è associata una sola scheda di rete fisica, l'estensione deve impostare il membro NicIndex su NDIS_SWITCH_DEFAULT_NIC_INDEX o uno.

    • Se più adattatori di rete fisici sono collegati all'adattatore di rete esterno, l'estensione deve impostare il membro NicIndex sul valore di indice diverso da zero dell'adattatore di rete di destinazione nell'insieme del commutatore estensibile.

    Nota Se il membro portId non specifica la porta del commutatore estendibile a cui è connessa la scheda di rete esterna, l'estensione deve impostare il membro NicIndex su NDIS_SWITCH_DEFAULT_NIC_INDEX.

  • Dopo che l'estensione ha aggiunto tutte le porte di destinazione per il pacchetto, deve chiamare NdisFSendNetBufferLists per inoltrare il pacchetto nel percorso dati in ingresso.

Per altre informazioni su come aggiungere porte di destinazione a un pacchetto, vedere Forwarding Packets to Hyper-V Extensible Switch Ports.

Per altre informazioni sul percorso dati in uscita, vedere Hyper-V percorso dati dello switch estensibile.