Delen via


Mogelijkheden van NIC-switch bepalen

In dit onderwerp wordt beschreven hoe NDIS en overliggende stuurprogramma's de mogelijkheden van de NIC-switch bepalen van een netwerkadapter die ondersteuning biedt voor één enkele root I/O-virtualisatie (SR-IOV). Dit onderwerp bevat de volgende informatie:

Rapporteren van NIC-schakelcapaciteiten tijdens MiniportInitializeEx

Het uitvoeren van queries op NIC-switchmogelijkheden door bovenliggende stuurprogramma's

Opmerking Alleen het minipoortstuurprogramma voor de fysieke functie van PCI Express (PCIe) van een SR-IOV netwerkadapter kan NIC-switch-mogelijkheden rapporteren. Miniportstuurprogramma's voor PCIe Virtual Functions (VFs) mogen de NIC-switchmogelijkheden van de SR-IOV-adapter niet rapporteren.

Zie NIC-switchesvoor meer informatie over NIC-switches.

NIC-switchmogelijkheden rapporteren tijdens MiniportInitializeEx

Wanneer NDIS de MiniportInitializeEx functie aanroept, levert het stuurprogramma de NIC-switchmogelijkheden als volgt:

  • De volledige set hardwaremogelijkheden voor een NIC-switch die door de netwerkadapter kan worden ondersteund.

    Opmerking Vanaf NDIS 6.30 wordt er slechts één NIC-switch gemaakt op de netwerkadapter. Deze switch staat bekend als de standaard NIC-switch.

  • De mogelijkheden van de NIC-switch die momenteel zijn ingeschakeld op de netwerkadapter.

Het minipoortstuurprogramma rapporteert de hardwaremogelijkheden van de NIC-switch van de onderliggende netwerkadapter via een NDIS_NIC_SWITCH_CAPABILITIES structuur die op de volgende manier wordt geïnitialiseerd:

  1. Het minipoortstuurprogramma initialiseert het koptitel element. Het stuurprogramma zet het Type-element van Header in als NDIS_OBJECT_TYPE_DEFAULT.

    Vanaf NDIS 6.30 stelt het minipoortstuurprogramma de Revision member van Header in op NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 en de Size member op NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2.

  2. Het minipoortstuurprogramma stelt de juiste vlaggen in de NicSwitchCapabilities van lid van de NDIS_NIC_SWITCH_CAPABILITIES structuur in overeenstemming met de NIC-switchmogelijkheden van de SR-IOV netwerkadapter. Het minipoortstuurprogramma stelt bijvoorbeeld de NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED vlag in als de NIC-switch ondersteuning biedt voor onderbrekingsbeheer op elke virtuele poort (VPort) die op de switch is gemaakt.

  3. Het minipoortstuurprogramma stelt de andere leden van de NDIS_NIC_SWITCH_CAPABILITIES-structuur in op het bereik van waarden voor de NIC-switchmogelijkheden van de SR-IOV netwerkadapter. Het minipoortstuurprogramma stelt bijvoorbeeld de MaxNumVFs en MaxNumVPorts leden in op het maximum aantal VFs en VPorts dat de adapter kan ondersteunen.

    nl-NL: Opmerking Afhankelijk van de beschikbare hardwarebronnen op de netwerkadapter, kan het minipoortstuurprogramma het MaxNumVFs element instellen op een waarde die kleiner is dan het *NumVFs sleutelwoord. Zie Gestandaardiseerde INF-trefwoorden voor SR-IOV-voor meer informatie over dit trefwoord.

Wanneer NDIS de MiniportInitializeEx functie aanroept, registreert het stuurprogramma de NIC-switchmogelijkheden van de netwerkadapter door de volgende stappen uit te voeren:

  1. Het minipoortstuurprogramma initialiseert een NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES structuur.

    Het minipoortstuurprogramma stelt het HardwareNicSwitchCapabilities-element in op een wijzer naar een eerder geïnitialiseerde NDIS_NIC_SWITCH_CAPABILITIES-structuur.

    Als de registerinstelling voor de *SRIOV INF-trefwoord een waarde heeft, is de netwerkadapter momenteel ingeschakeld voor het maken en configureren van de NIC-switch. Het minipoortstuurprogramma stelt de CurrentNicSwitchCapabilities leden in op een aanwijzer naar dezelfde NDIS_NIC_SWITCH_CAPABILITIES structuur.

    Als de registerinstelling voor de *SRIOV INF-trefwoord een waarde van nul heeft, is de netwerkadapter momenteel niet ingeschakeld voor het maken en configureren van de NIC-switch. Het minipoortstuurprogramma moet de CurrentNicSwitchCapabilities-lid instellen op NULL.

    Zie voor meer informatie over het trefwoord *SRIOV INF Gestandaardiseerde INF-trefwoorden voor SR-IOV-.

  2. Het stuurprogramma roept NdisMSetMiniportAttributes aan en stelt de parameter MiniportAttributes in op een aanwijzer naar de NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-structuur.

Zie Initialiseren van een minipoortadaptervoor meer informatie over het initialisatieproces van de adapter.

Een NIC-switch maken zonder SR-IOV

Miniportstuurprogramma's in NDIS 6.60 en hoger moeten voldoen aan de volgende vereisten voor de co-existentie van een NIC-switch en VMQ-mogelijkheden wanneer SR-IOV niet is ingeschakeld. Wanneer SR-IOV is ingeschakeld, moet het minipoortstuurprogramma voldoen aan de bestaande vereisten in de vorige sectie.

  • Het minipoortstuurprogramma maakt zowel de mogelijkheden van de NIC-switch als de VMQ-functionaliteiten bekend.
  • De NIC kan schakelen tussen de NIC-switch en de VMQ-modus zonder opnieuw opstarten van de NIC.
    • Wanneer de NIC in eerste instantie wordt gestart, kan deze zich in een van beide modi bevinden (ofwel een NIC-switch maken of VMQ-wachtrijen maken).
      • Als er een NIC-switch wordt gemaakt, faalt de minipoort bij eventuele latere callbacks voor VMQ-wachtrijtoewijzing.
      • Als er eerst een VMQ-wachtrij wordt gemaakt, slaagt het minipoortstuurprogramma in de toewijzing van de VMQ-wachtrij en mislukken de aanroepen voor NIC-switchtoewijzing.
    • Wanneer de NIC-switch wordt verwijderd of alle VMQ-wachtrijen worden verwijderd, keert het minipoortstuurprogramma terug naar de oorspronkelijke status en is het gereed om opnieuw naar een van deze modi te gaan.

Om aan te geven dat een NIC-switch kan worden gemaakt zonder het gebruik van SR-IOV, stelt het minipoortstuurprogramma de NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED vlag in in de NicSwitchCapabilities lidmaatschap van de NDIS_NIC_SWITCH_CAPABILITIES structuur.

Het opvragen van NIC-switchmogelijkheden door overstijgende stuurprogramma's

NDIS geeft de momenteel ingeschakelde NIC-switchmogelijkheden van de netwerkadapter door aan stuurprogramma's die op de volgende manier verbinding maken met de netwerkadapter:

  • Wanneer NDIS de filterattach functie aanroept van een overliggend filterstuurprogramma, geeft NDIS de NIC-switchmogelijkheden van de netwerkadapter door via de parameter AttachParameters. Deze parameter bevat een aanwijzer naar een NDIS_FILTER_ATTACH_PARAMETERS structuur. De NicSwitchCapabilities onderdeel van deze structuur bevat een aanwijzer naar een NDIS_NIC_SWITCH_CAPABILITIES structuur.

  • Wanneer NDIS de ProtocolBindAdapterEx--functie van het bovenliggende protocolstuurprogramma aanroept, geeft NDIS de NIC-schakelmogelijkheden van de netwerkadapter door via de parameter BindParameters. Deze parameter bevat een aanwijzer naar een NDIS_FILTER_ATTACH_PARAMETERS structuur. De NicSwitchCapabilities onderdeel van deze structuur bevat een aanwijzer naar een NDIS_NIC_SWITCH_CAPABILITIES structuur.

NDIS retourneert ook de NDIS_NIC_SWITCH_CAPABILITIES structuur wanneer deze object-id-queryaanvragen (OID) verwerkt van OID_NIC_SWITCH_HARDWARE_CAPABILITIES en OID_NIC_SWITCH_CURRENT_CAPABILITIES die worden uitgegeven door overliggende protocol- of filterstuurprogramma's.