Udostępnij przez


Wirtualne Funkcje (SR-IOV VFs)

Funkcja wirtualna PCI Express (PCIe) (VF) to uproszczona funkcja PCIe na karcie sieciowej, która obsługuje wirtualizację we/wy z jednym elementem głównym (SR-IOV).

VF jest powiązany z fizyczną funkcją PCIe (PF) na karcie sieciowej i stanowi jej zwirtualizowaną instancję. Każda platforma VF ma własną przestrzeń konfiguracji PCI. Każda VF współdzieli również co najmniej jeden zasób fizyczny na karcie sieciowej, taki jak zewnętrzny port sieciowy, z PF i innymi VF.

VF nie jest pełnowartościowym urządzeniem PCIe. Zapewnia jednak podstawowy mechanizm bezpośredniego przesyłania danych między partycją podrzędną Hyper-V a podstawową kartą sieciową SR-IOV. Zasoby oprogramowania związane z transferem danych są bezpośrednio dostępne dla VF i są odizolowane od użycia przez inne VF lub PF. Jednak konfiguracja większości tych zasobów jest wykonywana przez sterownik miniport PF uruchomiony w systemie operacyjnym zarządzania partycji nadrzędnej Hyper-V.

VF jest przedstawiany jako wirtualna karta sieciowa (karta sieciowa VF) w systemie operacyjnym gościa, który działa w partycji podrzędnej Hyper-V. Po skojarzeniu VF z portem wirtualnym (VPort) na przełączniku karty sieciowej SR-IOV, sterownik wirtualnego PCI (VPCI), działający na maszynie wirtualnej, uwidacznia adapter sieciowy VF. Po ujawnieniu menedżer PnP w systemie operacyjnym gościa ładuje sterownik miniportu VF.

Uwaga / Notatka

Partycja podrzędna Hyper-V jest również nazywana maszyną wirtualną.

Sterownik miniportu VF to sterownik miniportu NDIS, który jest zainstalowany na maszynie wirtualnej do zarządzania VF. Każda operacja wykonywana przez sterownik miniportu VF nie może mieć wpływu na żaden inny VF ani PF na tej samej karcie sieciowej.

Sterownik miniportu VF może działać jak każdy sterownik urządzenia PCI. Może odczytywać i zapisywać dane w przestrzeni konfiguracji PCI interfejsu VF. Jednak dostęp do wirtualnego urządzenia PCI jest operacją uprzywilejowaną i jest zarządzany przez sterownik miniport PF w następujący sposób:

  • Gdy sterownik miniportu VF wywołuje NdisMGetBusData w celu odczytu danych z przestrzeni konfiguracji PCI karty sieciowej VF, stos wirtualizacji jest powiadamiany. Ten stos działa w systemie operacyjnym zarządzania zasobami partycji nadrzędnej Hyper-V. Kiedy stos zostaje powiadomiony o żądaniu odczytu, wysyła żądanie metody identyfikatora obiektu (OID) OID_SRIOV_READ_VF_CONFIG_SPACE do sterownika miniportu PF. Dane do odczytu są określane w strukturze NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS zawartej w żądaniu OID.

    Sterownik odczytuje żądane dane z przestrzeni konfiguracji PCI VF i zwraca dane, wypełniając żądanie OID. Te dane są następnie zwracane do sterownika miniportu VF po zakończeniu wywołania polecenia NdisMGetBusData .

  • Gdy sterownik miniportu VF wywołuje NdisMSetBusData do zapisywania danych w przestrzeni konfiguracji PCI karty sieciowej VF, stos wirtualizacji jest powiadamiany o żądaniu zapisu. Przesyła żądanie metody OID o wartości OID_SRIOV_WRITE_VF_CONFIG_SPACE do sterownika miniportu PF. Dane do zapisania są określone w strukturze NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS zawartej w żądaniu OID.

    Sterownik zapisuje dane w przestrzeni konfiguracji PCI VF i zwraca stan żądania po zakończeniu żądania OID. Ten stan jest zwracany do sterownika miniportu VF po zakończeniu wywołania NdisMSetBusData.

Sterownik miniportu VF może również komunikować się ze sterownikiem miniportu PF. Ta ścieżka komunikacji odbywa się za pośrednictwem interfejsu backchannel. Aby uzyskać więcej informacji, zobacz SR-IOV PF/VF Backchannel Communication.

Uwaga Sterownik miniportu VF musi być świadomy, że działa w środowisku zwirtualizowanym, aby móc komunikować się ze sterownikiem miniportu PF w przypadku niektórych operacji. Aby uzyskać więcej informacji na temat działania tego sterownika, zobacz Inicjowanie sterownika miniportu VF.