Freigeben über


Sequenz zum Abbau virtueller Funktionen

Ein Netzwerkadapter, der die Einzelstamm-E/A-Virtualisierung (SR-IOV) unterstützt, muss die folgenden Hardwarekomponenten unterstützen können:

  • Eine physische Funktion (PF) von PCI Express (PCIe). Der PF ist immer auf dem Netzwerkadapter vorhanden und an die übergeordnete Hyper-V-Partition angefügt.

    Weitere Informationen zu dieser Hardwarekomponente finden Sie unter SR-IOV Physikalische Funktion (PF).

  • Mindestens eine PCIe Virtual Functions (VF). Jeder VF muss initialisiert und an eine untergeordnete Hyper-V-Partition angefügt werden, bevor die Netzwerkkomponenten des Gastbetriebssystems Pakete über den VF senden oder empfangen können.

    Weitere Informationen zu dieser Hardwarekomponente finden Sie unter SR-IOV Virtual Functions (VFs).

Bevor die VF abgebaut und ihre Ressourcen freigegeben werden, benachrichtigt der Virtualisierungsstapel den virtuellen Dienstanbieter (VSP) von Virtual PCI (VPCI). Dieser VSP wird im Verwaltungsbetriebssystem der übergeordneten Hyper-V-Partition ausgeführt. Die Benachrichtigung informiert den CHILDI VSP, dass der VF abgebaut und von der untergeordneten Partition getrennt wird. Der VPCI VSP sendet Nachrichten über den Bus des virtuellen Computers (VMBus) an den VPCI virtuellen Service-Client (VSC), der im Gastbetriebssystem der untergeordneten Partition ausgeführt wird. Diese Meldungen fordern den VMSC auf, den VF-Netzwerkadapter, der beim Anfügen des VF an die untergeordnete Partition verfügbar gemacht wurde, ordnungsgemäß zu entfernen. Dies bewirkt, dass der NetVSC vom VF Miniport-Treiber und dem Treiber angehalten wird. Zu diesem Zeitpunkt migriert der Paketdatenverkehr in der untergeordneten Partition vom VF-Datenpfad zum softwarebasierten synthetischen Datenpfad. Weitere Informationen zu diesen Datenpfaden finden Sie unter SR-IOV-Datenpfade.

Nachdem das Failover zum synthetischen Datenpfad abgeschlossen ist, wird die VF abgebaut und ihre Ressourcen freigegeben. Das folgende Diagramm zeigt die Schritte, die beim VF-Abschluss erforderlich sind..

Beispiel für eine VF-Abschlusssequenz, die Aufrufe vom Virtualisierungsstapel an NDIS und dann an den PF-Miniport-Treiber zeigt.

NDIS, der Virtualisierungsstapel und der PF-Miniporttreiber führen die folgenden Schritte während der VF-Abschlusssequenz aus:

  1. Der Virtualisierungsstapel verschiebt die Media Access Control- (MAC) und Virtual LAN-Filter (VLAN) für den Netzwerkadapter der virtuellen Maschine (VM) zum standardmäßigen virtuellen Port (VPort), der an die PF angeschlossen ist. Der VM-Netzwerkadapter wird im Gastbetriebssystem der untergeordneten Partition verfügbar gemacht.

    Nachdem die Filter zum Standard-VPort verschoben wurden, ist der synthetische Datenpfad für den Netzwerkverkehr zu und von den Netzwerkkomponenten, die im Gastbetriebssystem ausgeführt werden, voll funktionsfähig. Der PF-Miniport-Treiber gibt empfangene Pakete auf dem standardmäßigen PF-VPort an, der den synthetischen Datenpfad verwendet, um die Pakete auf das Gastbetriebssystem anzugeben. Ebenso werden alle übertragenen Pakete vom Gastbetriebssystem über den synthetischen Datenpfad weitergeleitet und über den STANDARD-PF-VPort übertragen.

  2. Der Virtualisierungsstapel löscht den VPort, der an den VF angefügt ist, indem eine OID-Satzanforderung (Object Identifier) von OID_NIC_SWITCH_DELETE_VPORT an den PF-Miniporttreiber gesendet wird. Der Miniport-Treiber gibt alle Hardware- oder Softwareressourcen frei, die dem VPort zugeordnet sind, und schließt die OID-Anforderung ab.

    Weitere Informationen finden Sie unter Löschen eines virtuellen Ports.

  3. Der Virtualisierungsstapel fordert eine PCIe-Funktionsebenenzurücksetzung (FLR) des VF an, bevor die Ressourcen zugeordnet werden. Der Stapel führt dies durch Ausstellen einer OID-Setanforderung von OID_SRIOV_RESET_VF an den PF-Miniporttreiber aus. Der FLR bringt den VF auf dem SR-IOV-Netzwerkadapter in einen stillen Zustand und löscht alle ausstehenden Interruptereignisse für den VF.

  4. Nachdem die VF zurückgesetzt wurde, fordert der Virtualisierungsstapel eine Freigabe der VF-Ressourcen an, indem er eine OID-Set-Anforderung von OID_NIC_SWITCH_FREE_VF an den PF-Miniport-Treiber sendet. Dies bewirkt, dass der Miniporttreiber die Hardwareressourcen freigibt, die dem VF zugeordnet sind.