Virtuelle Ports (VPorts)

Ein virtueller Port (VPort) ist ein Datenobjekt, das einen internen Port auf dem NIC-Switch eines Netzwerkadapters darstellt, der die Single Root-E/A-Virtualisierung (SR-IOV) unterstützt. Jeder NIC-Switch verfügt über die folgenden Ports für die Netzwerkkonnektivität:

  • Ein externer physischer Port für die Konnektivität mit dem externen physischen Netzwerk.

  • Mindestens ein interner VPort, der mit der PCI Express Physical Function (PF) oder virtuellen Funktionen (VFs) verbunden ist.

    Die PF ist an die übergeordnete Hyper-V-Partition angefügt und wird als virtueller Netzwerkadapter im Verwaltungsbetriebssystem verfügbar gemacht, das in dieser Partition ausgeführt wird.

    Ein VF wird an die untergeordnete Hyper-V-Partition angefügt und als virtueller Netzwerkadapter im Gastbetriebssystem verfügbar gemacht, das in dieser Partition ausgeführt wird.

Der NIC-Switch überbrückt den Netzwerkdatenverkehr vom physischen Port zu einem oder mehreren VPorts. Dadurch wird virtualisierter Zugriff auf die zugrunde liegende physische Netzwerkschnittstelle bereitgestellt.

Jeder VPort verfügt über einen eindeutigen Bezeichner (VPortId), der für den NIC-Switch auf dem Netzwerkadapter eindeutig ist. Ein Standard-VPort ist immer auf dem Standard-NIC-Switch vorhanden und kann nie gelöscht werden. Der Standard-VPort weist die VPortId von NDIS_DEFAULT_VPORT_ID auf.

Wenn der PF-Miniporttreiber eine OID-Methodenanforderung (Object Identifier) von OID_NIC_SWITCH_CREATE_SWITCH verarbeitet, erstellt er den NIC-Switch und den Standard-VPort für diesen Switch. Der Standard-VPort ist immer an die PF angefügt und befindet sich immer in einem betriebsbereiten Zustand.

Nicht standardmäßige VPorts werden über OID-Methodenanforderungen von OID_NIC_SWITCH_CREATE_VPORT erstellt. An einen VF kann nur ein nicht standardmäßiger VPort angefügt werden. Nach dem Anfügen befindet sich der Standardwert in einem betriebsbereiten Zustand. Ein oder mehrere nicht standardmäßige VPorts können auch erstellt und an die PF angefügt werden. Diese VPorts sind bei der Erstellung nicht betriebsbereit und können über eine OID-Set-Anforderung von OID_NIC_SWITCH_VPORT_PARAMETERS betriebsbereit werden.

Hinweis

Nachdem ein VPort betriebsbereit ist, kann er nur dann nicht mehr betriebsbereit sein, wenn er über eine OID-Anforderung von OID_NIC_SWITCH_DELETE_VPORT gelöscht wird.

Jedem VPort sind mindestens ein Hardwarewarteschlangenpaar zum Empfangen und Übertragen von Paketen zugeordnet. Das Standardwarteschlangenpaar auf dem Netzwerkadapter ist für die Verwendung durch den Standard-VPort reserviert. Warteschlangenpaare für nicht standardmäßige VPorts werden zugeordnet und zugewiesen, wenn der VPort über die OID_NIC_SWITCH_CREATE_VPORT-Anforderung erstellt wird.

Nicht standardmäßige VPorts werden über OID-Methodenanforderungen von OID_NIC_SWITCH_CREATE_VPORT erstellt und konfiguriert. Die Standard-VPorts und nicht standardmäßige VPorts werden durch OID-Set-Anforderungen von OID_NIC_SWITCH_VPORT_PARAMETERS neu konfiguriert. Jede OID-Anforderung enthält eine NDIS_NIC_SWITCH_VPORT_PARAMETERS-Struktur , die die folgenden Konfigurationsparameter angibt:

  • Die PCIe-Funktion, an die der VPort angefügt ist.

    Jeder VPort kann jederzeit an die PF oder mit einem VF angefügt werden. Nachdem der VPort erstellt und an eine PCIe-Funktion angefügt wurde, kann die Anlage nicht dynamisch in eine andere PCIe-Funktion geändert werden.

    Hinweis

    Der Standard-VPort ist immer an die PF auf dem Netzwerkadapter angefügt.

Ab NDIS 6.30 in Windows Server 2012 kann nur ein nicht standardmäßiger VPort an eine VF angefügt werden. Es können jedoch mehrere nicht standardmäßige VPorts zusammen mit dem Standard-VPort an die PF angefügt werden.

  • Die Anzahl der Hardwarewarteschlangenpaare, die einem VPort zugewiesen sind.

    Jeder VPort verfügt über eine Reihe von Hardwarewarteschlangenpaaren, die für ihn verfügbar sind. Jedes Warteschlangenpaar besteht aus einer separaten Übertragungs- und Empfangswarteschlange auf dem Netzwerkadapter.

    Warteschlangenpaare sind begrenzte Ressourcen auf dem Netzwerkadapter. Die Gesamtanzahl von Warteschlangenpaaren, die für die Verwendung durch die Standard-VPorts reserviert sind, und nicht standardmäßigen VPorts wird angegeben, wenn der NIC-Switch erstellt wird. Dadurch kann die Anzahl der Warteschlangenpaare, die dem Standard-VPort zugewiesen sind, von den nicht standardmäßigen VPorts abweichen.

    Jeder nicht standardmäßige VPort kann so konfiguriert werden, dass er eine andere Anzahl von Warteschlangenpaaren aufweist. Dies wird als asymmetrische Zuordnung von Warteschlangenpaaren bezeichnet. Wenn die NIC eine solche asymmetrische Zuordnung nicht zulässt, wird jeder nicht standardmäßige VPort so konfiguriert, dass er die gleiche Anzahl von Warteschlangenpaaren aufweist. Dies wird als symmetrische Zuordnung von Warteschlangenpaaren bezeichnet. Weitere Informationen finden Sie unter Symmetrische und asymmetrische Zuweisung von Warteschlangenpaaren.

    Hinweis

    Der PF-Miniporttreiber meldet, ob er die asymmetrische Zuordnung von Warteschlangenpaaren während MiniportInitializeEx unterstützt. Weitere Informationen finden Sie unter Initialisieren eines PF-Miniporttreibers.

Die Anzahl der Warteschlangenpaare, die jedem VPort zugewiesen sind, wird nicht dynamisch geändert. Die Anzahl der Warteschlangenpaare, die einem VPort zugewiesen sind, kann nach der Erstellung des VPorts nicht mehr geändert werden.

Hinweis

Ein oder mehrere Warteschlangenpaare, die den nicht standardmäßigen VPorts zugewiesen sind, können vom VF-Miniporttreiber, der im Gastbetriebssystem ausgeführt wird, für die empfangsseitige Skalierung (RSS) verwendet werden.

  • Unterbrechungsmoderationsparameter für den VPort.

    Für verschiedene VPorts können verschiedene Interruptmoderationstypen angegeben werden. Dadurch kann der Virtualisierungsstapel die Anzahl von Interrupts steuern, die von einem bestimmten VPort generiert werden.

Zusätzlich zu den Konfigurationsparametern können überlastende Treiber Empfangsfilter für jeden VPort konfigurieren, indem OID-Methodenanforderungen von OID_RECEIVE_FILTER_SET_FILTER ausgegeben werden. Der NIC-Switch führt die angegebene Empfangsfilterung auf VPort-Basis aus.

Empfangsfilterparameter für VPorts umfassen Paketfilterbedingungen, z. B. eine Liste von MAC-Adressen (Media Access Control) und die VLAN-Bezeichner (Virtual LAN). Filter für MAC-Adressen und VLAN-IDs werden immer zusammen in der NDIS_RECEIVE_FILTER_PARAMETERS angegeben, die der OID_RECEIVE_FILTER_SET_FILTER-Anforderung zugeordnet ist. Der NIC-Switch muss eingehende Pakete an den Switch filtern, dessen MAC-Zieladresse und VLAN-Id mit jeder Empfangsfilterbedingung übereinstimmen, die auf dem VPort festgelegt wurde. Der NIC-Switch filtert Pakete, die entweder von einem anderen VPort oder vom externen physischen Port empfangen werden. Wenn das Paket mit einem Filter übereinstimmt, muss der NIC-Switch es an den VPort weiterleiten.

Mehrere MAC-Adress- und VLAN-Bezeichnerpaare können für den VPort festgelegt werden. Wenn nur eine MAC-Adresse festgelegt ist, gibt der Empfangsfilter an, dass der VPort Pakete empfangen soll, die der folgenden Bedingung entsprechen:

  • Die MAC-Zieladresse des Pakets stimmt mit der MAC-Adresse des Filters überein.

  • Das Paket weist ein VLAN-Tag oder (wenn ein VLAN-Tag vorhanden ist) einen VLAN-Bezeichner von 0 (null) auf.

Nicht standardmäßige VPorts werden durch OID-Set-Anforderungen von OID_NIC_SWITCH_DELETE_VPORT gelöscht. Der Standard-VPort wird nur gelöscht, wenn der NIC-Switch über eine OID-Set-Anforderung von OID_NIC_SWITCH_DELETE_SWITCH gelöscht wird.