Симметричное и асимметричное назначение пар очередей

Пара очередей состоит из отдельной очереди передачи и получения на сетевом адаптере. Пары очередей настраиваются на виртуальном порту (VPort) при создании VPort. Пары очередей, связанные с VPort по умолчанию, настраиваются во время создания коммутатора с помощью запроса метода OID OID_NIC_SWITCH_CREATE_SWITCH. Одна или несколько пар очередей настраиваются в нестандартном VPort с помощью запроса метода OID OID_NIC_SWITCH_CREATE_VPORT.

Для каждого порта VPort, отличного от определенного типа, можно настроить для разного количества пар очередей. Это называется асимметричным выделением пар очередей. Если драйвер мини-порта не поддерживает асимметричные выделения, для каждого нестандартного VPort настроено равное количество пар очередей. Это называется симметричным выделением пар очередей.

Драйвер минипорта объявляет возможности пар VPort и очередей во время MiniportInitializeEx с помощью структуры NDIS_NIC_SWITCH_CAPABILITIES . Драйвер объявляет о поддержке асимметричного выделения пар очередей, устанавливая флаг NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED в члене NicSwitchCapabilities этой структуры.

Если драйвер мини-порта поддерживает асимметричное выделение пар очередей, стек виртуализации настраивает каждый неразделимый VPort с разным количеством пар очередей. Если драйвер мини-порта поддерживает симметричное выделение пар очередей, стек виртуализации настраивает каждый VPort с одинаковым количеством пар очередей.

Примечание Драйвер мини-порта, поддерживающий симметричное или асимметричное выделение пар очередей в неотделимых портах VPorts, должен поддерживать другое количество пар очередей, выделяемых в VPort по умолчанию. VPort по умолчанию всегда подключен к PF сетевого адаптера.

Конфигурация пары очередей указывается при создании или обновлении неотделяемого VPort с помощью запросов OID OID_NIC_SWITCH_CREATE_VPORT и OID_NIC_SWITCH_VPORT_PARAMETERS. Параметры конфигурации указываются в структуре NDIS_NIC_SWITCH_VPORT_PARAMETERS , связанной с обоими запросами OID.

Например, предположим, что драйвер мини-порта объявляет конфигурацию для пар виртуальных портов и очередей в коммутаторе сетевого адаптера, задавая следующие элементы структуры NDIS_NIC_SWITCH_CAPABILITIES :

  • Параметр MaxNumQueuePairs имеет значение 128.

  • Параметр MaxNumVPorts имеет значение 64.

  • Параметр MaxNumQueuePairsPerNonDefaultPort имеет значение 4.

Если драйвер мини-порта не поддерживает асимметричную конфигурацию пар очередей в неотложных портах, стек виртуализации может указать следующую конфигурацию пары очередей при создании виртуальных портов:

  • 63 виртуальных портов VF с двумя парами очередей, а также VPort по умолчанию PF с одной парой очередей.
  • 31 виртуальный порт VF с четырьмя парами очередей, а также VPort PF по умолчанию с одной парой очередей.

Примечание Начиная с Windows Server 2012 поддерживается только один VPort по умолчанию и всегда подключен к PF сетевого адаптера.