Hyper-V flag di invio e ricezione del commutatore estendibile
Nota Questa pagina presuppone che si abbia familiarità con le informazioni e i diagrammi in Panoramica del commutatore estendibile Hyper-V e inoltro ibrido.
Il traffico di pacchetti che si sposta sul percorso dati del commutatore estendibile Hyper-V viene ottenuto dalle estensioni nel modo seguente:
Un'estensione ottiene un pacchetto dal percorso dati in ingresso quando la funzione FilterSendNetBufferLists viene chiamata. L'estensione inoltra il pacchetto alle estensioni sottostanti nel percorso dati in ingresso chiamando NdisFSendNetBufferLists. Le estensioni di filtro e inoltro possono anche eliminare il pacchetto dal percorso dei dati in ingresso chiamando NdisFSendNetBufferListsComplete.
Un'estensione ottiene un pacchetto dal percorso dati in uscita quando viene chiamata la funzione FilterReceiveNetBufferLists. L'estensione inoltra il pacchetto alle estensioni sovrastanti nel percorso di trasmissione dei dati in uscita chiamando NdisFIndicateReceiveNetBufferLists. Le estensioni di filtraggio e inoltro possono anche rimuovere il pacchetto dal percorso dei dati in uscita chiamando NdisFReturnNetBufferLists.
I flag seguenti possono essere impostati nel parametro SendFlags di FilterSendNetBufferLists o NdisFSendNetBufferLists:
NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST provengono dalla stessa porta di origine del commutatore estendibile Hyper-V.
Quando NDIS chiama FilterSendNetBufferLists, questo flag verrà impostato se l'interfaccia estendibile del commutatore estendibile ha raggruppato più pacchetti dalla stessa porta di origine. Per ottenere prestazioni ottimali, le estensioni devono mantenere in atto tale raggruppamento e impostare questo flag quando chiamano NdisFSendNetBufferLists. L'estensione può anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture di NET_BUFFER_LIST se l'estensione usa la stessa porta di origine degli altri pacchetti nell'elenco.
Nota Se ogni pacchetto nell'elenco collegato di strutture di NET_BUFFER_LIST utilizza la stessa porta di origine, l'estensione deve impostare il flag NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE nel SendCompleteFlags parametro di NdisFSendNetBufferListsComplete al termine della richiesta di invio.
NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST devono essere inoltrati alla stessa porta di destinazione del commutatore estendibile.
Un'estensione di reindirizzamento può utilizzare questo flag per una lista collegata di strutture NET_BUFFER_LIST inoltrate sul flusso dei dati in ingresso dopo aver determinato le porte di destinazione di ogni pacchetto. Questo flag viene utilizzato e rimosso dal livello miniport sottostante dell'interruttore estendibile prima che inoltri i pacchetti lungo il percorso dati in uscita.
Le estensioni di acquisizione e filtraggio non possono usare questo flag.
Nota L'estensione di inoltro determina solo le porte di destinazione del pacchetto per i pacchetti non NVGRE. Se il pacchetto è un pacchetto NVGRE, il componente Hyper-V Network Virtualization (HNV) determina le porte di destinazione del pacchetto e inoltra il pacchetto. Per ulteriori informazioni, vedere Inoltro Ibrido.
Per ottenere prestazioni ottimali, le estensioni di inoltro devono impostare questo flag se tutti i pacchetti nell'elenco collegato devono essere inoltrati alla stessa porta di destinazione. Impostando questo flag, l'estensione riconosce che tutti i pacchetti nell'elenco collegato hanno gli stessi elementi della porta di destinazione nel contesto di inoltro del commutatore estendibile.
Nota L'estensione di inoltro non deve impostare questo flag per un elenco collegato di pacchetti con più porte di destinazione.
I seguenti flag possono essere impostati nel parametro ReceiveFlags di FilterReceiveNetBufferLists o NdisFIndicateReceiveNetBufferLists:
NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST provengono dalla stessa porta di origine del commutatore estendibile Hyper-V.
Quando NDIS chiama FilterReceiveNetBufferLists, questo flag verrà impostato se il commutatore estendibile ha raggruppato più pacchetti dalla stessa porta di origine. Per ottenere prestazioni ottimali, le estensioni devono mantenere questo raggruppamento in essere e impostare questo flag quando chiamano NdisMIndicateReceiveNetBufferLists. Le estensioni devono anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture di NET_BUFFER_LIST se il pacchetto ha la stessa porta di origine degli altri pacchetti nell'elenco.
Nota Se ogni pacchetto nell'elenco collegato di strutture di NET_BUFFER_LIST utilizza la stessa porta di origine, l'estensione deve impostare il flag di NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE nel parametro ReturnFlags di FilterReturnNetBufferLists quando la richiesta di ricezione è completata. L'estensione deve impostare questo flag nel parametro ReturnFlags se chiama NdisFReturnNetBufferLists per restituire i pacchetti che non ha originato o clonato.
NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST devono essere inoltrati alla stessa porta di destinazione del commutatore estendibile.
Quando NDIS chiama FilterReceiveNetBufferLists, questo flag verrà impostato se il commutatore estendibile ha raggruppato più pacchetti con le stesse porte di destinazione. Per ottenere prestazioni ottimali, le estensioni devono mantenere questo raggruppamento in atto e impostare questo flag quando chiamano NdisMIndicateReceiveNetBufferLists. Le estensioni devono anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture di NET_BUFFER_LIST se il pacchetto ha le stesse porte di destinazione degli altri pacchetti nell'elenco.
Nota Quando un'estensione chiama NdisFIndicateReceiveNetBufferLists, non deve impostare il flag NDIS_RECEIVE_FLAGS_RESOURCES nel parametro ReceiveFlags. L'interfaccia switch estendibile ignora questo flag e completerà l'indicazione di ricezione chiamando FilterReturnNetBufferLists.