虛擬埠 (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。