Condividi tramite


Gestione del contesto di inoltro dell'interruttore estendibile Hyper-V

Nota Questa pagina presuppone che si abbia familiarità con le informazioni e i diagrammi in Panoramica di Hyper-V Extensible Switch e Inoltro Ibrido.

La struttura NET_BUFFER_LIST per ogni pacchetto che attraversa il percorso dati del commutatore estendibile Hyper-V contiene dati fuori banda (OOB). Questi dati specificano la porta di origine da cui ha avuto origine il pacchetto, nonché una o più porte di destinazione per il recapito dei pacchetti. Questi dati OOB sono noti come il contesto di inoltro estensibile.

Nota Il contesto di inoltro dello switch estendibile è diverso dalla struttura NET_BUFFER_LIST_CONTEXT. Ciò consente alle estensioni di allocare le proprie strutture di contesto senza influire sul contesto di inoltro.

Il contesto di inoltro dello switch estendibile viene allocato e liberato nel modo seguente:

Tutte le estensioni dello switch estendibile possono invocare le seguenti funzioni del gestore dello switch per accedere ai dati nel contesto di inoltro del pacchetto:

AllocateNetBufferListForwardingContext
Alloca il contesto di inoltro del commutatore estendibile e prepara una struttura NET_BUFFER_LIST per le operazioni di invio o ricezione all'interno del commutatore estendibile.

CopyNetBufferListInfo
Copia il contesto di inoltro dalla struttura di NET_BUFFER_LIST di un pacchetto di origine alla struttura di NET_BUFFER_LIST di un pacchetto di destinazione. Questi dati includono le informazioni sulla porta di origine del commutatore estendibile e sulla scheda di rete. Le informazioni sulla porta di destinazione del commutatore estendibile possono anche essere copiate nel pacchetto di destinazione.

FreeNetBufferListForwardingContext
Libera le risorse nel contesto di inoltro estendibile di una struttura di NET_BUFFER_LIST. Questi dati sono stati usati per operazioni di invio o ricezione in un commutatore estendibile Hyper-V ed è stato allocato in precedenza chiamando la funzione AllocateNetBufferListForwardingContext.

GetNetBufferListDestinations
Restituisce le porte di destinazione dal contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto.

Un'estensione di inoltro è responsabile dell'aggiunta di porte di destinazione per un pacchetto, a meno che il pacchetto non sia un pacchetto NVGRE. Per ulteriori informazioni, vedere Inoltro Ibrido. L'estensione chiama le seguenti funzioni del gestore switch estensibile per aggiungere o aggiornare le porte di destinazione all'interno del contesto di inoltro del pacchetto:

AggiungiDestinazioneAlNetBufferList
Aggiunge una singola destinazione all'area del contesto di inoltro del commutatore estendibile per un pacchetto specificato da una struttura NET_BUFFER_LIST.

Nota Questa chiamata conferma la modifica nell'area del contesto di inoltro. In questo caso, l'estensione di inoltro non deve chiamare UpdateNetBufferListDestinations.

GrowNetBufferListDestinations
Aumenta le dimensioni della matrice di porte di destinazione nell'area del contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto.

UpdateNetBufferListDestinations
Esegue il commit delle modifiche apportate dall'estensione a una o più porte di destinazione di commutatori estensibili di un pacchetto. Questa funzione aggiorna il contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto con queste modifiche.

Nota Dopo che l'estensione di inoltro ha eseguito il commit delle modifiche alle porte di destinazione nel contesto di inoltro, le porte di destinazione non possono essere rimosse e solo il membro IsExcluded della struttura NDIS_SWITCH_PORT_DESTINATION di una porta di destinazione può essere modificato. Per altre informazioni, vedere Esclusione del recapito di pacchetti alle porte di destinazione dello Switch estendibile.

Hyper-V contesto di inoltro del commutatore estendibile

Hyper-V Tipi di dati per il contesto di inoltro estensibile