Sdílet prostřednictvím


Určení možností přepínače síťových adaptérů

Toto téma popisuje, jak NDIS a nadřazené ovladače určují možnosti přepínače síťového adaptéru, který podporuje virtualizaci jednoho kořenového V/V (SR-IOV). Toto téma obsahuje následující informace:

hlášení schopností přepínání síťových adaptérů během MiniportInitializeEx

Dotazování funkcionalit přepínače síťového adaptéru vrchními ovladači

Poznámka Pouze ovladač miniportu pro fyzickou funkci PCI Express (PCIe) fyzické funkce (PF) SR-IOV síťového adaptéru může hlásit možnosti přepínače síťové karty. Ovladače miniportu pro virtuální funkce PCIe nesmí hlásit schopnosti přepínače síťového adaptéru SR-IOV.

Další informace o přepínačích síťových adaptérů naleznete v tématu přepínačů síťových adaptérů.

Možnosti síťových adaptérů při přepínání hlášeny během MiniportInitializeEx

Když NDIS volá funkci miniport ovladače MiniportInitializeEx, ovladač poskytuje následující schopnosti přepínání síťových adaptérů.

  • Kompletní sada hardwarových funkcí pro přepínač síťové karty, který může síťový adaptér podporovat.

    Poznámka Od verze NDIS 6.30 je na síťovém adaptéru vytvořen pouze jeden NIC přepínač. Tento přepínač se označuje jako výchozí přepínač síťové karty .

  • Schopnosti přepínání NIC, které jsou aktuálně povoleny na síťovém adaptéru.

Ovladač miniportu hlásí hardwarové schopnosti přepínače NIC podkladového síťového adaptéru prostřednictvím struktury NDIS_NIC_SWITCH_CAPABILITIES, která je inicializována následujícím způsobem:

  1. Ovladač miniportu inicializuje člena záhlaví. Ovladač nastaví typ člen záhlaví na NDIS_OBJECT_TYPE_DEFAULT.

    Počínaje verzí NDIS 6.30 nastaví ovladač miniportu člena Revision v členovi Header na NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 a člena Velikost na NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2.

  2. Ovladač miniportu nastaví příslušné příznaky v NicSwitchCapabilities členu struktury NDIS_NIC_SWITCH_CAPABILITIES na možnosti přepínače síťového adaptéru SR-IOV. Například ovladač miniportu nastaví příznak NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED, pokud přepínač síťové karty podporuje moderování přerušení na každém virtuálním portu (VPort), vytvořeném na tomto přepínači.

  3. Ovladač miniportu nastaví ostatní členy struktury NDIS_NIC_SWITCH_CAPABILITIES na rozsah hodnot možností přepínače NIC síťového adaptéru SR-IOV. Například ovladač miniportu nastaví členy MaxNumVFs a MaxNumVPorts na maximální počet VFs a VPorts, které může adaptér podporovat.

    Poznámka V závislosti na dostupných hardwarových prostředcích síťového adaptéru může ovladač miniportu nastavit hodnotu členu MaxNumVFs na nižší než je hodnota jeho klíčového slova *NumVFs. Další informace o tomto klíčovém slově naleznete v tématu Standardizované INF klíčová slova pro SR-IOV.

Když NDIS volá funkci miniport ovladače MiniportInitializeEx, ovladač zaregistruje funkce přepínače síťového adaptéru pomocí následujícího postupu:

  1. Ovladač miniportu inicializuje strukturu NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

    Ovladač miniportu nastaví člena HardwareNicSwitchCapabilities na ukazatel směrující k dříve inicializované struktuře NDIS_NIC_SWITCH_CAPABILITIES.

    Pokud nastavení registru pro klíčové slovo *SRIOV INF má hodnotu 1, síťový adaptér je aktuálně povoleno pro vytvoření a konfiguraci přepínače NIC. Ovladač miniportu nastaví prvky CurrentNicSwitchCapabilities na ukazatel na tu stejnou strukturu NDIS_NIC_SWITCH_CAPABILITIES.

    Pokud má nastavení registru pro *SRIOV klíčové slovo INF hodnotu nula, síťový adaptér není aktuálně povolený pro vytvoření a konfiguraci přepínače síťové karty. Ovladač miniportu musí nastavit hodnotu člena CurrentNicSwitchCapabilities na NULL.

    Další informace o klíčovém slova *SRIOV INF naleznete v tématu Standardizovaná klíčová slova INF pro SR-IOV.

  2. Ovladač volá NdisMSetMiniportAttributes a nastaví parametr MiniportAttributes na ukazatel, který odkazuje na strukturu NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

Další informace o procesu inicializace adaptéru naleznete v tématu Inicializace adaptéru miniport.

Vytvoření přepínače síťové karty bez SR-IOV

Ovladače miniportů v NDIS 6.60 a novějších musí dodržovat následující požadavky pro koexistenci přepínače NIC a funkcí VMQ, pokud není povolena SR-IOV. Pokud je povolen SR-IOV, měl by ovladač miniportu splňovat stávající požadavky v předchozí části.

  • Ovladač miniportu podporuje jak přepínač síťových adaptérů, tak možnosti VMQ.
  • Síťová karta může přepínat mezi přepínačem síťové karty a režimem VMQ bez restartování síťové karty.
    • Když se síťová karta spustí zpočátku, je připravená být buď v režimu (vytvoření přepínače síťové karty nebo vytváření front VMQ).
      • Pokud se vytvoří přepínač síťové karty, miniport selže při následných zpětných voláních fronty VMQ pro přidělení.
      • Pokud se fronta VMQ vytvoří jako první, ovladači miniportu se podaří přidělení fronty VMQ, ale selhávají všechny pokusy o přidělení přepínače síťové karty.
    • Po odstranění přepínače síťové karty nebo odstranění všech front VMQ se ovladač miniportu vrátí do počátečního stavu a je připravený znovu přejít do některého z těchto režimů.

Aby bylo indikováno, že síťový přepínač lze vytvořit bez použití SR-IOV, miniport ovladač nastaví příznak NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED v členu NicSwitchCapabilities struktury NDIS_NIC_SWITCH_CAPABILITIES.

Dotazování schopností přepínače síťových adaptérů prostřednictvím nadřazených ovladačů

Rozhraní NDIS předává aktuálně povolené možnosti přepínače síťového adaptéru nadřazeným ovladačům, které se vážou na síťový adaptér následujícím způsobem:

  • Když NDIS volá překrývající filtr ovladače FilterAttach funkce, NDIS předává funkce přepínače síťového adaptéru prostřednictvím parametru AttachParameters. Tento parametr obsahuje ukazatel na strukturu NDIS_FILTER_ATTACH_PARAMETERS. NicSwitchCapabilities člen této struktury obsahuje ukazatel na NDIS_NIC_SWITCH_CAPABILITIES strukturu.

  • Když NDIS volá funkci ovladače nadřazeného protokolu ProtocolBindAdapterEx, rozhraní NDIS předává schopnosti přepínání síťového adaptéru prostřednictvím parametru BindParameters. Tento parametr obsahuje ukazatel na strukturu NDIS_FILTER_ATTACH_PARAMETERS. Člen NicSwitchCapabilities této struktury obsahuje ukazatel na strukturu NDIS_NIC_SWITCH_CAPABILITIES.

NDIS také vrátí strukturu NDIS_NIC_SWITCH_CAPABILITIES, když zpracovává požadavky na dotazy identifikátoru objektu (OID) OID_NIC_SWITCH_HARDWARE_CAPABILITIES a OID_NIC_SWITCH_CURRENT_CAPABILITIES, které jsou vystaveny nadřazenými protokoly nebo ovladači filtrů.