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


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

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

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

  • Если драйвер мини-порта не получил кадр DCBX от удаленного однорангового узла, он не должен выдавать NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE состояние.

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

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

  • После этого начального указания состояния драйвер мини-порта должен выдавать NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE индикатор состояния только при определении изменения параметров качества обслуживания на удаленном одноранговом узле.

    Примечание Драйверы мини-портов не должны выдавать NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE индикатор состояния, если в параметрах удаленного обслуживания NDIS не было изменений. Если драйвер делает этот тип указания состояния, NDIS не может передавать его в драйверы с превышением.

Примечание Драйвер мини-порта должен выдавать NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE индикаторы состояния, если его возможности качества обслуживания NDIS в настоящее время включены. Начиная с Windows Server 2012, эти признаки позволяют системным администраторам просматривать параметры NDIS QoS и data Center Bridging (DCB) независимо от того, установлен ли компонент сервера MICROSOFT DCB.

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

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

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

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

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

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

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

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

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

    Драйвер мини-порта задает элемент Flags , чтобы указать сведения о состоянии для данных, содержащихся в элементах структуры NDIS_QOS_PARAMETERS .

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

    Дополнительные сведения о том, как задать элемент Flags, см. в статье Руководство по настройке элемента 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 драйвер мини-порта должен задать для члена ClassificationElementSize значение sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT).

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

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

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

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

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

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

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

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
Если этот флаг установлен, в элементе PfcEnable изменились один или несколько параметров PFC.

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 только для измененных параметров.

Рекомендации по указанию недопустимых параметров качества обслуживания удаленного NDIS

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

  • Срок жизни истекает для параметров удаленного качества обслуживания.

    Примечание DCBX переносится по протоколу LLDP, как указано в стандарте IEEE 802.1AB-2005. Кадры LLDP всегда содержат поле срока жизни.

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

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

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

  1. Так как драйвер мини-порта не сообщает о допустимых параметрах удаленного качества обслуживания NDIS, он должен сначала заполнить структуру NDIS_QOS_PARAMETERS нулями.

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

    Драйвер мини-порта устанавливает соответствующие флаги NDIS_QOS_PARAMETERS_Xxx_CHANGED в элементе Flags .

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

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

    • Для элемента StatusBuffer необходимо задать адрес структуры NDIS_QOS_PARAMETERS .

    • Элемент StatusBufferSize должен иметь значение sizeof(NDIS_QOS_PARAMETERS).

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