共用方式為


虛擬埠 (VPorts)

虛擬埠 (VPort) 是一個資料物件,代表網路介面卡之 NIC 交換器上的內部埠,其支援單一根目錄 I/O 虛擬化 (SR-IOV) 。 每個 NIC 交換器都有下列網路連線埠:

  • 一個外部實體埠,可連線到外部實體網路。

  • 一或多個連線到 PCI Express 實體函式的內部 VPort (PF) 或虛擬函式, (VFs) 。

    PF 會附加至 Hyper-V 父分割區,並公開為在該資料分割中執行之管理作業系統中的虛擬網路介面卡。

    VF 會附加至 Hyper-V 子分割區,並公開為在該分割區中執行之客體作業系統中的虛擬網路介面卡。

NIC 交換器會將網路流量從實體埠橋接至一或多個 VPorts。 這可提供基礎實體網路介面的虛擬化存取。

每個 VPort 都有一個唯一識別碼 (VPortId) ,該識別碼對於網路介面卡上的 NIC 交換器而言是唯一的。 預設 VPort 一律存在於預設 NIC 交換器上,且永遠不會刪除。 預設 VPort 具有 NDIS_DEFAULT_VPORT_ID 的 VPortId。

當 PF 迷你埠驅動程式處理 (OID) 方法要求OID_NIC_SWITCH_CREATE_SWITCH的物件識別碼 時,它會為該參數建立 NIC 參數和預設 VPort。 預設 VPort 一律附加至 PF,且一律處於操作狀態。

非預設 VPorts 是透過 OID_NIC_SWITCH_CREATE_VPORT的 OID 方法要求所建立。 只有一個非預設 VPort 可以附加至 VF。 附加之後,預設值會處於操作狀態。 您也可以建立一或多個非預設 VPorts 並附加至 PF。 這些 VPort 在建立時是非操作的,而且可以透過 OID_NIC_SWITCH_VPORT_PARAMETERS的 OID 集合要求來運作。

注意

VPort 變成可運作之後,只有在透過 OID_NIC_SWITCH_DELETE_VPORT的 OID 要求刪除時,它才會變成非操作。

每個 VPort 都有一或多個與其相關聯的硬體佇列組,用於接收和傳輸封包。 網路介面卡上的預設佇列組會保留供預設 VPort 使用。 透過 OID_NIC_SWITCH_CREATE_VPORT 要求建立 VPort 時,會配置並指派非預設 VPort 的佇列配對。

非預設 VPorts 是透過 OID_NIC_SWITCH_CREATE_VPORT的 OID 方法要求來建立和設定。 預設 VPort 和非預設 VPorts 會透過 OID_NIC_SWITCH_VPORT_PARAMETERS的 OID 集合要求重新設定。 每個 OID 要求都包含 NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構,指定下列組態參數:

  • VPort 所連結的 PCIe 函式。

    每個 VPort 隨時都可以附加至 PF 或 VF。 建立 VPort 並附加至 PCIe 函式之後,附件就無法動態變更為另一個 PCIe 函式。

    注意

    預設 VPort 一律會連結至網路介面卡上的 PF。

從 Windows Server 2012 中的 NDIS 6.30 開始,只有一個非預設 VPort 可以連結至 VF。 不過,可以將多個非預設 VPort 以及預設 VPort 連結至 PF。

  • 指派給 VPort 的硬體佇列配對數目。

    每個 VPort 都有一組可用的硬體佇列組。 每個佇列組都包含網路介面卡上的個別傳輸和接收佇列。

    佇列配對在網路介面卡上是有限的資源。 建立 NIC 交換器時,會指定預設和非預設 VPorts 保留供使用的佇列組總數。 這可讓指派給預設 VPort 的佇列組數目與非預設 VPort 不同。

    每個非預設 VPort 都可以設定為具有不同數目的佇列組。 這稱為佇列配對 的非對稱配置 。 如果 NIC 不允許這類非對稱配置,則每個非預設 VPort 都會設定為具有相同數目的佇列組。 這稱為佇列配對的 對稱配置 。 如需詳細資訊,請參閱 佇列配對的對稱和非對稱指派

    注意

    PF 迷你埠驅動程式會報告它是否支援 MiniportInitializeEx期間佇列配對的非對稱配置。 如需詳細資訊,請參閱 初始化 PF Miniport 驅動程式

指派給每個 VPort 的佇列組數目不會動態變更。 建立 VPort 之後,無法變更指派給 VPort 的佇列組數目。

注意

指派給非預設 VPorts 的一或多個佇列組,可用於客體作業系統中執行的 VF 迷你埠驅動程式 (RSS) 接收端調整。

  • 中斷 VPort 的仲裁參數。

    可以針對不同的 VPort 指定不同的中斷仲裁類型。 這可讓虛擬化堆疊控制特定 VPort 所產生的中斷數目。

除了設定參數之外,過度配置驅動程式還可以發出 OID_RECEIVE_FILTER_SET_FILTER的 OID 方法要求,來設定每個 VPort 的接收篩選。 NIC 參數會根據 VPort 執行指定的接收篩選。

VPorts 的接收篩選參數包括封包篩選準則,例如媒體存取控制清單 (MAC) 位址和虛擬 LAN (VLAN) 識別碼。 MAC 位址和 VLAN 識別碼的篩選一律會一起指定于與OID_RECEIVE_FILTER_SET_FILTER要求相關聯的NDIS_RECEIVE_FILTER_PARAMETERS。 NIC 交換器必須篩選傳入封包至目的地 MAC 位址和 VLAN 識別碼符合 VPort 上設定的任何接收篩選準則的交換器。 NIC 交換器會篩選從另一個 VPort 或外部實體埠接收的封包。 如果封包符合篩選準則,NIC 參數必須將它轉送至 VPort。

可以在 VPort 上設定多個 MAC 位址和 VLAN 識別碼組。 如果只設定 MAC 位址,接收篩選會指定 VPort 應該接收符合下列條件的封包:

  • 封包的目的地 MAC 位址符合篩選準則的 MAC 位址。

  • 如果 VLAN 標籤) VLAN 識別碼為零,封包就會有 VLAN 標籤或 (。

非預設 VPorts 會透過 OID_NIC_SWITCH_DELETE_VPORT的 OID 集合要求來刪除。 只有在透過 OID_NIC_SWITCH_DELETE_SWITCH的 OID 集合要求刪除 NIC 參數時,才會刪除預設 VPort。