Поделиться через


Указание изменений в операционных параметрах качества обслуживания NDIS

Минипорт-драйвер, поддерживающий качество обслуживания NDIS (QoS), выдает NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE состояние, указывающее, когда операционные параметры качества обслуживания драйвера NDIS разрешаются в первый раз или при их изменении позже. Минипорт-драйвер настраивает сетевой адаптер с этими операционными параметрами для передачи пакетов QoS.

Драйвер минипорта должен следовать этим рекомендациям для выдачи указания состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE :

  • Минипорт-драйвер должен выдать указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE после того, как он разрешил свои операционные параметры качества качества обслуживания NDIS и настроил сетевой адаптер с ними.

    Обратите внимание, что если драйвер минипорта подготавливается с собственными параметрами качества обслуживания NDIS в реестре, драйвер должен выдавать указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE во время или сразу после вызова MiniportInitializeEx. В этом случае драйвер инициализирует структуру NDIS_QOS_PARAMETERS с собственными параметрами NDIS QoS.

    Дополнительные сведения о том, как драйвер разрешает свои операционные параметры NDIS QoS, см. в разделе "Разрешение параметров QoS в операционной среде NDIS".

  • После этого начального состояния драйвер минипорта должен выдавать индикатор состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE при изменении параметров качества обслуживания NDIS. Например, операционные параметры качества качества обслуживания NDIS могут изменяться в следующих условиях:

    • Операционные параметры качества качества обслуживания NDIS изменяются из-за изменений в локальных параметрах качества обслуживания NDIS. Эти параметры могут изменяться с помощью запроса метода OID OID_QOS_PARAMETERS или через приложение управления, разработанное независимым поставщиком оборудования (IHV).

    • Операционные параметры качества качества обслуживания NDIS изменяются из-за конфликтов с параметрами качества обслуживания из удаленного однорангового узла.

      Минипортовый драйвер использует протокол IEEE 802.1Qaz Data Center Bridging Exchange (DCBX) для обнаружения параметров качества обслуживания для удаленного однорангового узла. Если включено состояние DCBX Willing, драйвер должен устранить различия между параметрами качества обслуживания и параметрами QoS удаленного однорангового узла, выполнив процедуры, определенные для подсистемы состояния DCBX. Дополнительные сведения об этом обработчике состояний см. в проекте IEEE 802.1Qaz.

      Дополнительные сведения о локальном состоянии DCBX Willing см. в разделе "Управление локальным состоянием dcbX", "Готовое состояние".

    Обратите внимание, что когда драйвер минипорта получает локальные или удаленные параметры качества качества обслуживания NDIS, он не должен выдавать NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE указание состояния, если не было изменений в операционных параметрах качества качества обслуживания NDIS. Если драйвер делает это ненужное указание состояния, NDIS может не передать указание на переопределяющие драйверы.

  • Минипорт-драйвер должен выдавать указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE , когда необходимо переопределить локальные параметры качества качества обслуживания NDIS, которые использовались для устранения операционных параметров качества обслуживания NDIS.

    Минипорт-драйвер уведомляет NDIS и драйвер, переопределяющий локальные параметры NDIS QoS, выдавая указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE . Для этого типа указания драйвер должен задать соответствующие флаги NDIS_QOS_PARAMETERS_Xxx_CHANGED в члене флагов структуры NDIS_QOS_PARAMETERS, чтобы указать причину переопределения локальных параметров качества качества обслуживания NDIS.

    Дополнительные сведения о том, как драйвер минипорта управляет локальными параметрами качества обслуживания, см. в разделе "Настройка локальных NDIS QoS" параметров.

    Дополнительные сведения о том, как драйвер минипорта разрешает свои операционные параметры качества обслуживания, см. в разделе "Разрешение параметров QoS для операционных NDIS".

Обратите внимание, что драйвер минипорта должен выдавать NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE сведения о состоянии, если его возможности QoS NDIS в настоящее время включены через *QOS ключевое слово стандартизованные INF ключевое слово. Дополнительные сведения см. в разделе Стандартные ключевые слова INF для NDIS QoS.

Рекомендации по выдаче указания состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

Драйвер минипорта выполняет следующие действия, когда он выдает указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE :

  1. Драйвер минипорта выделяет буфер, который достаточно велик, чтобы содержать следующее:

    • Структура NDIS_QOS_PARAMETERS , содержащая параметры конфигурации качества обслуживания NDIS, а также глобальные операционные параметры для классов трафика качества обслуживания NDIS.

    • Массив структур NDIS_QOS_CLASSIFICATION_ELEMENT . Каждая из этих структур определяет классификацию трафика, определяемую шаблоном данных пакета (условие) и соответствующим уровнем приоритета IEEE 802.1p (действие). Если сетевой адаптер находит шаблон в передаче или исходящего трафика, пакет, соответствующий условию, он назначает связанный уровень приоритета пакету. Адаптер также применяет другие политики качества качества обслуживания NDIS к пакету на основе уровня приоритета.

  2. Минипорт инициализирует структуру NDIS_QOS_PARAMETERS с помощью операционных параметров качества обслуживания NDIS. Драйвер должен предоставить полный набор операционных параметров, включая те параметры, которые не могут быть настроены на сетевом адаптере.

    Когда драйвер минипорта инициализирует элемент заголовка, он задает для элемента Type заголовка значение NDIS_OBJECT_TYPE_QOS_PARAMETERS. Драйвер минипорта задает элемент "Редакция" заголовка NDIS_QOS_PARAMETERS_REVISION_1, а элемент "Размер" — NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.

    Драйвер минипорта задает соответствующие флаги NDIS_QOS_PARAMETERS_Xxx_CHANGED в элементе Flags, если соответствующие члены содержат данные, которые изменились с тех пор, как драйвер минипорта выпустил указание состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    Примечание. Параметрфлагов NDIS_QOS_PARAMETERS_Xxx_CHANGED необязателен. NDIS всегда предполагает, что члены NDIS_QOS_PARAMETERS являются текущими, даже если они не изменились с предыдущего указания состояния NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    Дополнительные сведения о настройке элемента Flags см. в руководстве по настройке элемента флагов.

  3. Минипорт-драйвер инициализирует структуру NDIS_QOS_CLASSIFICATION_ELEMENT для каждой классификации трафика из операционных параметров качества качества обслуживания NDIS. Драйвер добавляет эти элементы в конец NDIS_QOS_PARAMETERS структуры в буфере.

    Обратите внимание, что минипорт-драйвер не должен задавать флаг NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT в элементе Flags любых NDIS_QOS_CLASSIFICATION_ELEMENT структур.

    Драйвер задает элемент NumClassificationElements структуры NDIS_QOS_PARAMETERS число элементов классификации в массиве. Драйвер задает элемент FirstClassificationElementOffset для смещения байтов первого элемента с начала буфера. Драйвер также задает элемент ClassificationElementSize длиной в байтах каждого элемента в массиве.

    Примечание. Начиная с версии NDIS 6.30, драйвер мини-порта должен задать для элемента sizeof(NDIS_QOS_CLASSIFICATION_ELEMENTClassificationElementSize значение ).

  4. Минипорт-драйвер инициализирует структуру NDIS_STATUS_INDICATION для указания состояния следующим образом:

    • Элемент StatusCode должен иметь значение NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    • Элемент StatusBuffer должен иметь указатель на буфер, содержащий операционные параметры качества качества обслуживания NDIS.

    • Элемент StatusBufferSize должен иметь длину в байтах буфера.

  5. Минипорт-драйвер выдает указание состояния путем вызова NdisMIndicateStatusEx. Драйвер должен передать указатель на структуру NDIS_STATUS_INDICATION параметру StatusIndication.

Рекомендации по настройке элемента флагов

Минипорт-драйвер задает следующие флаги в элементе Flags структуры NDIS_QOS_PARAMETERS, чтобы указать, какие операционные параметры NDIS QoS были настроены или изменены на сетевом адаптере:

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Если этот флаг задан, минипорт-драйвер настроил сетевой адаптер с параметрами ETS, содержащимися в следующих элементах:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

Обратите внимание , что мини-драйвер должен поддерживать ETS для поддержки NDIS QoS для DCB. Однако параметр этого флага не указывает, поддерживает ли сетевой адаптер ETS. Вместо этого параметр этого флага указывает, настроены ли параметры ETS на сетевом адаптере.

NDIS_QOS_PARAMETERS_ETS_CHANGED
Если этот флаг задан, один или несколько ПАРАМЕТРОВ ETS изменились в следующих элементах:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Если этот флаг задан, мини-драйвер настроил сетевой адаптер с параметрами PFC, содержащимися в элементе PfcEnable .

Обратите внимание , что минипорт-драйвер должен поддерживать PFC для поддержки NDIS QoS для DCB. Параметр этого флага не указывает, поддерживает ли сетевой адаптер PFC. Вместо этого параметр этого флага указывает, включены ли параметры PFC в сетевом адаптере.

NDIS_QOS_PARAMETERS_PFC_CHANGED
Если этот флаг задан, один или несколько параметров PFC изменились в элементе PfcEnable .

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

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

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

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

Обратите внимание, что флаги NDIS_QOS_PARAMETERS_Xxx_CONFIGURED должны быть заданы, если NDIS_QOS_PARAMETERS структура содержит параметры NDIS QoS. Драйвер минипорта должен задать эти флаги независимо от того, изменились ли параметры. Однако драйвер должен задать флаги NDIS_QOS_PARAMETERS_Xxx_CHANGED только для тех параметров, которые изменились.