佇列配對的對稱和非對稱指派
佇列配對是由網路介面卡上的個別傳輸和接收佇列所組成。 建立 VPort 時,佇列配對會在虛擬埠上設定 (VPort) 。 與預設 VPort 相關聯的佇列配對會在交換器建立時透過 OID_NIC_SWITCH_CREATE_SWITCH的 OID 方法要求進行設定。 一或多個佇列配對是透過 OID_NIC_SWITCH_CREATE_VPORT的 OID 方法要求,在非預設 VPort 上設定。
每個非預設 VPort 都可以設定為具有不同數目的佇列配對。 這稱為佇列配對 的非對稱配置 。 如果迷你埠驅動程式不支援非對稱配置,則每個非預設 VPort 都會設定為具有相同數目的佇列配對。 這稱為佇列配對的 對稱配置 。
迷你埠驅動程式會使用NDIS_NIC_SWITCH_CAPABILITIES結構,在MiniportInitializeEx期間公告其 VPort 和佇列配對功能。 驅動程式會藉由在此結構的 NicSwitchCapabilities 成員中設定 NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 旗標,來公告對佇列配對的非對稱配置支援。
如果迷你埠驅動程式支援非對稱佇列配對配置,虛擬化堆疊會以不同的佇列配對數目來設定每個非預設 VPort。 如果迷你埠驅動程式支援對稱佇列配對配置,虛擬化堆疊會使用相同數目的佇列配對來設定每個 VPort。
注意 支援非預設 VPort 上對稱或非對稱佇列配對配置的迷你埠驅動程式必須支援不同的佇列配對數目,才能在預設 VPort 上配置。 預設 VPort 一律會連結至網路介面卡的 PF。
當建立或更新非預設 VPort 時,會透過 OID_NIC_SWITCH_CREATE_VPORT 和 OID_NIC_SWITCH_VPORT_PARAMETERS的 OID 要求來指定佇列配對組態。 組態參數是在與這兩個 OID 要求相關聯的 NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構中指定。
例如,假設迷你埠驅動程式會藉由設定 NDIS_NIC_SWITCH_CAPABILITIES 結構的下列成員,在 NIC 交換器上公告 VPorts 和佇列組的組態:
MaxNumQueuePairs 設定為 128。
MaxNumVPorts 設定為 64。
MaxNumQueuePairsPerNonDefaultPort 設定為 4。
如果迷你埠驅動程式不支援非預設 VPorts 上的佇列配對非對稱設定,虛擬化堆疊可以在建立 VPorts 時指定下列佇列配對組態:
- 63 個具有兩個佇列配對的非預設 VF VPort,以及具有一個佇列配對的預設 PF VPort。
- 31 個具有四個佇列配對的非預設 VF VPort,以及具有一個佇列配對的預設 PF VPort。
注意從 Windows Server 2012 開始,僅支援一個預設 VPort,且一律會連結至網路介面卡的 PF。