Hantera Hyper-V utökningsbar switch vidarebefordringskontext

Obs Den här sidan förutsätter att du är bekant med informationen och diagrammen i Översikt över Hyper-V Extensible Switch och Hybrid Forwarding.

Den NET_BUFFER_LIST-strukturen för varje paket som passerar den extensibla Hyper-V-växelns dataväg innehåller out-of-band (OOB) data. Dessa data anger källporten från där paketet kommer, samt en eller flera målportar för paketleverans. Dessa OOB-data kallas utökningsbar växlingskontext.

Obs Den utökningsbara vidarekopplingskontexten skiljer sig från den NET_BUFFER_LIST_CONTEXT strukturen. Detta gör att tillägg kan allokera sina egna kontextstrukturer utan att påverka vidarebefordringskontexten.

Den utökningsbara vidarekopplingskontexten allokeras och frigörs på följande sätt:

  • När ett paket kommer till den utökningsbara växeln från ett nätverkskort allokerar det utökningsbara växelgränssnittet vidarebefordringskontexten och associerar det med paketets NET_BUFFER_LIST struktur.

    När paketet levereras till målportarna frigör gränssnittet vidarebefordringskontexten från paketets NET_BUFFER_LIST struktur.

  • Om ett utökningsbart växeltillägg matar in ett nytt eller klonat paket i den utökningsbara växeldatasökvägen måste det allokera vidarebefordringskontexten innan den anropar NdisFSendNetBufferLists.

    När tillägget har allokerat en NET_BUFFER_LIST struktur för ett nytt eller klonat paket måste det anropa funktionen AllocateNetBufferListForwardingContext för att allokera vidarebefordringskontexten för paketet. När begäran om att skicka paket har slutförts måste tillägget anropa FreeNetBufferListForwardingContext innan det frigör eller återanvänder den NET_BUFFER_LIST strukturen.

    Obs När tillägget anropar AllocateNetBufferListForwardingContextanges källporten för paketet till NDIS_SWITCH_DEFAULT_PORT_ID. Detta anger att paketet kommer från ett tillägg i stället för att komma till en utökningsbar växelport. Under vissa förhållanden kanske tillägget vill ändra källporten för paketet. Mer information finns i Ändra ett pakets utökningsbara växelportdata.

    Mer information finns i Hyper-V Extensible Switch Send and Receive Operations.

Alla utökningsbara växeltillägg kan anropa följande utökningsbara växelhanterarfunktioner för att komma åt data i paketets vidarebefordringskontext:

AllocateNetBufferListForwardingContext
Allokerar den utökningsbara switchens vidarebefordringskontext och förbereder en NET_BUFFER_LIST struktur för sändnings- eller mottagningsåtgärder inom den utökningsbara växeln.

CopyNetBufferListInfo
Kopierar vidarebefordringskontexten från ett källpakets NET_BUFFER_LIST struktur till målpaketets NET_BUFFER_LIST struktur. Denna data innehåller utökbar växelport och nätverksadapterinformation. Den utökningsbara växelns målportinformation kan också kopieras till målpaketet.

FreeNetBufferListForwardingContext
Frigör resurserna i den utökningsbara vidarekopplingskontexten för en NET_BUFFER_LIST struktur. Dessa data användes för att skicka eller ta emot åtgärder i en Hyper-V utökningsbar växel och allokerades tidigare genom att anropa funktionen AllocateNetBufferListForwardingContext.

GetNetBufferListDestinations
Returnerar målportarna från vidarebefordringskontexten för ett pakets NET_BUFFER_LIST struktur.

Ett vidarebefordrantillägg ansvarar för att lägga till målportar för ett paket, såvida inte paketet är ett NVGRE-paket. (Mer information finns i hybridvidarebefordring.) Tillägget anropar följande utökningsbara växelhanterarfunktioner för att lägga till eller uppdatera målportarna i paketets vidarebefordringskontext:

AddNetBufferListDestination
Lägger till ett enda mål i det utbyggbara växelframkopplingsområdet för ett paket som specificeras av en NET_BUFFER_LIST-struktur.

Obs Det här anropet bekräftar ändringen i området för vidarebefordran av sammanhang. I det här fallet behöver vidarebefordringstillägget inte anropa UpdateNetBufferListDestinations.

GrowNetBufferListDestinations
Ökar storleken på målportmatrisen i området för vidarebefordran av ett pakets NET_BUFFER_LIST struktur.

UpdateNetBufferListDestinations
Genomför ändringar som tillägget har gjort till en eller flera utökningsbara switchmålportar för ett paket. Den här funktionen uppdaterar vidarebefordringskontexten för ett pakets NET_BUFFER_LIST struktur med dessa ändringar.

Obs När vidarebefordringsutvidgningen har genomfört ändringarna för destinationportar i vidarebefordringens kontext kan destinationportar inte tas bort och endast IsExcluded medlem i en destinationports NDIS_SWITCH_PORT_DESTINATION struktur kan ändras. Mer information finns i Uteslutning av paketleverans till extensibla switchens destinationsportar.

Hyper-V Utökbar Switch-vidarebefordringskontext

Hyper-V Utökbara switch-framåtkopplingskontext-datatyper