Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een virtuele poort (VPort) is een gegevensobject dat een interne poort van de NIC-switch bij een netwerkadapter vertegenwoordigt die ondersteuning biedt voor single root I/O-virtualisatie (SR-IOV). Elke NIC-switch heeft de volgende poorten voor netwerkconnectiviteit:
Eén externe fysieke poort voor connectiviteit met het externe fysieke netwerk.
Een of meer interne VPorts die zijn verbonden met de PCI Express-fysieke functie (PF) of virtuele functies (VFs).
De PF is gekoppeld aan de bovenliggende partitie Hyper-V en wordt weergegeven als een virtuele netwerkadapter in het beheerbesturingssysteem dat in die partitie wordt uitgevoerd.
Een VF is gekoppeld aan de Hyper-V subpartitie en wordt weergegeven als een virtuele netwerkadapter in het gastbesturingssysteem die in die partitie draait.
Er zijn twee typen VPorts:
Standaard-VPort
De standaard-VPort biedt netwerkconnectiviteit met de netwerkonderdelen die worden uitgevoerd in het beheerbesturingssysteem. De standaard-VPort heeft een id van NDIS_DEFAULT_VPORT_ID.
Wanneer het PF-minipoortstuurprogramma de standaard-NIC-switch maakt en configureert, maakt het stuurprogramma impliciet de standaard-VPort en koppelt het aan de PF. De standaard-VPort kan niet worden gekoppeld aan een VF.
De standaard-VPort heeft altijd een geactiveerde status en kan niet expliciet worden verwijderd. Het PF-minipoortstuurprogramma verwijdert impliciet de standaard-VPort alleen wanneer de standaard-NIC-switch wordt verwijderd.
Zie Een NIC-switch makenvoor meer informatie over het maken van een NIC-switch en de standaard-VPort op de switch.
Niet-standaard-VPort
Niet-standaard VPorts worden niet automatisch aangemaakt wanneer de NIC-switch wordt aangemaakt. Een overliggend stuurprogramma, zoals de virtualisatiestack, maakt deze poorten expliciet door OID-methodeaanvragen van OID_NIC_SWITCH_CREATE_VPORTuit te geven. Niet-standaard VPorts kunnen worden gekoppeld aan de PF of aan een VF en kunnen pas worden gemaakt nadat de NIC-switch is aangemaakt.
Een niet-standaard-VPort die is gekoppeld aan een VF biedt netwerkconnectiviteit met de netwerkonderdelen die worden uitgevoerd in het gastbesturingssysteem. Nadat deze is gemaakt en gekoppeld aan de VF, heeft de niet-standaard-VPort een geactiveerde status.
Een niet-standaard VPort die aan de PF is gekoppeld, biedt extra netwerk-offloadmogelijkheden voor de netwerkcomponenten die worden uitgevoerd in de beheeromgeving. Niet-standaard-VPorts op de PF kunnen bijvoorbeeld worden gebruikt om offloadmogelijkheden te bieden die vergelijkbaar zijn met de VMQ-interface (Virtual Machine Queue).
Opmerking Niet-standaard-VPorts kunnen alleen worden gemaakt nadat de NIC-switch is gemaakt.
Een bovenliggende stuurprogramma geeft een OID-methodeaanvraag (Object Identifier) van OID_NIC_SWITCH_CREATE_VPORT af om een niet-standaard VPort te maken op een opgegeven NIC-switch. Deze OID-aanvraag koppelt ook de gemaakte VPort aan de PF van de netwerkadapter of een eerder toegewezen VF.
De InformationBuffer lid van de NDIS_OID_REQUEST structuur bevat een aanwijzer naar deNDIS_NIC_SWITCH_VPORT_PARAMETERS structuur. Nadat de OID_NIC_SWITCH_CREATE_VPORT-aanvraag succesvol is verlopen, verkrijgt het VPortId-lid van de NDIS_NIC_SWITCH_VPORT_PARAMETERS-structuur een VPort-id die uniek is voor de VPorts op de NIC-switch.
Het overliggende stuurprogramma initialiseert de NDIS_NIC_SWITCH_VPORT_PARAMETERS structuur met de configuratiegegevens over de niet-standaard-VPort die moet worden gemaakt. De configuratie-informatie bevat de PCIe-functie waaraan de niet-standaard-VPort is gekoppeld en het aantal wachtrijparen voor de niet-standaard-VPort.
Wanneer de NDIS_NIC_SWITCH_VPORT_PARAMETERS structuur wordt geïnitialiseerd, moet het bovenliggende stuurprogramma het volgende doen:
Het SwitchId-element moet worden ingesteld op de identifier van een NIC-switch die eerder op de netwerkadapter is gemaakt via een OID-aanvraag van OID_NIC_SWITCH_CREATE_SWITCH.
Opmerking Vanaf Windows Server 2012 ondersteunt de SR-IOV-interface slechts één NIC-switch op de netwerkadapter. Deze switch staat bekend als de standaard NIC-switch. Wanneer u een niet-standaard VPort maakt, moet het overliggende stuurprogramma het SwitchId--lid instellen op de identifier voor NDIS_DEFAULT_SWITCH_ID.
Het VPortId--lid moet zijn ingesteld op NDIS_DEFAULT_VPORT_ID.
De AttachedFunctionId lid moet worden ingesteld op de id van de VF of PF waarop de niet-standaard-VPort moet worden gekoppeld.
Een waarde van NDIS_PF_FUNCTION_ID geeft de PF aan. Anders moet de waarde worden ingesteld op de identifier van een VF waarvan de resources eerder zijn toegewezen via een OID-methodeaanvraag van OID_NIC_SWITCH_ALLOCATE_VF.
Opmerking De koppeling van een niet-standaard VPort aan een VF of PF kan niet worden gewijzigd nadat de niet-standaard VPort is gemaakt.
Het overliggende stuurprogramma kan ook het aantal wachtrijparen opgeven dat is toegewezen aan de VPort. Een wachtrijpaar is een wachtrij voor verzenden en ontvangen op de netwerkadapter die is toegewezen aan de VPort. Als de netwerkadapter asymmetrische wachtrijparen ondersteunt voor niet-standaard-VPorts, kan het overliggende stuurprogramma een ander aantal wachtrijparen opgeven voor elke VPort die door het stuurprogramma wordt gemaakt. Zie Symmetrische en Asymmetrische toewijzing van wachtrijparenvoor meer informatie.
Het overliggende stuurprogramma roept NdisOidRequest aan om de OID_NIC_SWITCH_CREATE_VPORT aanvraag uit te geven aan het onderliggende PF-minipoortstuurprogramma. Voordat NDIS de aanvraag van de OID-methode doorstuurt naar het minipoortstuurprogramma, doet dit het volgende:
NDIS valideert de parameters binnen de NDIS_NIC_SWITCH_VPORT_PARAMETERS structuur. Als de parameters fout zijn, mislukt NDIS de OID-methodeaanvraag en geeft de aanvraag niet door aan het PF-minipoortstuurprogramma.
NDIS wijst een id toe voor de niet-standaard-VPort binnen het bereik van één tot (NumVPorts– 1), waarbij NumVPorts het aantal VPorts is dat het minipoortstuurprogramma op de netwerkadapter heeft geconfigureerd. Het stuurprogramma specificeert dit nummer in het NumVPorts-lid van de NDIS_NIC_SWITCH_INFO-structuur. Het stuurprogramma retourneert deze structuur via een OID-queryaanvraag van OID_NIC_SWITCH_ENUM_SWITCHES.
Opmerking A VPort-id van NDIS_DEFAULT_VPORT_ID is gereserveerd voor de standaard-VPort die is gekoppeld aan de PF op de standaard-NIC-switch.
De toegewezen VPort-id identificeert de niet-standaard-VPort op de NIC-switch van de netwerkadapter.
- NDIS stelt het lid VPortId van de NDIS_NIC_SWITCH_VPORT_PARAMETERS-structuur met de toegewezen VPort-id in.
Wanneer het PF-minipoortstuurprogramma de OID-aanvraag heeft uitgegeven, wijst het stuurprogramma de hardware- en softwarebronnen toe die zijn gekoppeld aan de opgegeven niet-standaard-VPort. Nadat alle resources succesvol zijn toegewezen, voltooit het PF-minipoortstuurprogramma de OID met succes door NDIS_STATUS_SUCCESS te retourneren van MiniportOidRequest.
Als het OID_NIC_SWITCH_CREATE_VPORT verzoek succesvol is voltooid, moeten het PF-minipoortstuurprogramma en het overliggende stuurprogramma de waarde VPortId van de niet-standaard VPort behouden voor opeenvolgende bewerkingen. De VPortId--waarde wordt gebruikt tijdens deze bewerkingen:
NDIS en de bovenliggende stuurprogramma's gebruiken de VPortId waarde om de niet-standaard-VPort te identificeren in opeenvolgende OID-aanvragen die betrekking hebben op deze VPort, zoals OID_NIC_SWITCH_VPORT_PARAMETERS en OID_NIC_SWITCH_DELETE_VPORT.
Tijdens verzendbewerkingen geeft NDIS de VPortId waarde op om de VPort te identificeren waaruit een pakket is verzonden. Deze waarde wordt opgegeven in de out-of-band (OOB) NDIS_NET_BUFFER_LIST_FILTERING_INFO gegevens van de NET_BUFFER_LIST structuur.
Tijdens ontvangstbewerkingen geeft het PF-minipoortstuurprogramma de VPortId waarde op waarnaar een pakket moet worden doorgestuurd. Deze waarde wordt ook opgegeven in de OOB-NDIS_NET_BUFFER_LIST_FILTERING_INFO gegevens van de NET_BUFFER_LIST-structuur.
De volgende punten zijn van toepassing op het maken van niet-standaard-VPorts:
Ontvangstfilters voor Media Access Control (MAC) en VLAN-identificaties (virtueel LAN) worden geconfigureerd op de VPort nadat het is aangemaakt. De bovenliggende stuurprogramma's stellen deze ontvangstfilters dynamisch in door OID-methodeaanvragen van OID_RECEIVE_FILTER_SET_FILTERuit te voeren. Ontvangstfilters kunnen ook van de ene VPort naar de andere worden verplaatst via OID-setaanvragen van OID_RECEIVE_FILTER_MOVE_FILTER.
Een VPort anders dan standaard die aan de VF is gekoppeld, bevindt zich in een geactiveerde status wanneer deze wordt gemaakt. De VPort kan niet worden gedeactiveerd als deze is gekoppeld aan de VF.
Een niet-standaard-VPort die aan de PF is gekoppeld, heeft een gedeactiveerde status wanneer deze wordt gemaakt. Een hoger stuurprogramma, zoals de Hyper-V uitbreidbare switchmodule, activeert expliciet de niet-standaard VPort die aan de PF is gekoppeld nadat de VPort succesvol is aangemaakt. Dit wordt gedaan door een OID-methodeaanvraag van OID_NIC_SWITCH_VPORT_PARAMETERS aan het PF-minipoortstuurprogramma uit te geven.
Wanneer het overliggende stuurprogramma deze OID-aanvraag doorgeeft, wordt een NDIS_NIC_SWITCH_VPORT_PARAMETERS structuur meegegeven, waarbij het lid VPortState is ingesteld op NdisNicSwitchVPortStateActivated.
Nadat een niet-standaard-VPort is geactiveerd, kan het PF-minipoortstuurprogramma gedeeld geheugen toewijzen voor de VPort door NdisAllocateSharedMemory-aan te roepen. Het stuurprogramma moet het VPortId- lid in de NDIS_SHARED_MEMORY_PARAMETERS structuur instellen op de id-waarde van de VPort.
Opmerking Wanneer een niet-standaard-VPort een geactiveerde status heeft, is deze alleen ingesteld op een gedeactiveerde status wanneer deze wordt verwijderd via een OID-setaanvraag van OID_NIC_SWITCH_DELETE_VPORT.