Partager via


Indication des modifications apportées aux paramètres QoS NDIS opérationnels

Le pilote de miniport qui prend en charge la qualité de service (QoS) dans NDIS émet une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE lorsque les paramètres QoS NDIS opérationnels du pilote sont résolus pour la première fois ou lorsqu’ils changent ultérieurement. Le pilote de miniport configure la carte réseau avec ces paramètres opérationnels pour effectuer la transmission du paquet QoS.

Le pilote de miniport doit suivre ces instructions pour émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE :

  • Le pilote de miniport doit émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE après avoir résolu ses paramètres QoS NDIS opérationnels et configuré la carte réseau avec eux.

    Remarque Si le pilote de miniport est approvisionné avec des paramètres QoS NDIS locaux propriétaires dans le registre, il doit émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE pendant ou immédiatement après l’appel à MiniportInitializeEx. Dans ce cas, le pilote initialise une structure NDIS_QOS_PARAMETERS avec ses paramètre QoS NDIS propriétaires locaux.

    Pour en savoir plus sur la façon dont le pilote résout ses paramètres QoS NDIS opérationnels, consultez Résolution des paramètres QoS NDIS opérationnels.

  • Après cette indication d’état initiale, le pilote de miniport doit émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE lorsque ses paramètres QoS NDIS opérationnels sont modifiés. Par exemple, les paramètres QoS NDIS opérationnels peuvent changer dans les conditions suivantes :

    • Les paramètres QoS NDIS opérationnels changent en raison des modifications apportées aux paramètres QoS NDIS locaux. Ces paramètres peuvent changer au moyen d’une demande de méthode OID de OID_QOS_PARAMETERS ou d’une application de gestion développée par le fournisseur de matériel indépendant (IHV).

    • Les paramètres QoS NDIS opérationnels changent en raison de conflits avec les paramètres QoS de l’homologue distant.

      Le pilote de miniport utilise le protocole IEEE 802.1Qaz Data Center Bridging Exchange (DCBX) pour découvrir les paramètres QoS d’un homologue distant. Si l’état DCBX Willing est activé, le pilote doit résoudre les différences entre ses paramètres QoS et ceux de l’homologue distant selon les procédures définies pour le moteur d’état DCBX. Pour en savoir plus sur ce moteur d’état, reportez-vous au projet de norme IEEE 802.1Qaz.

      Pour en savoir plus sur l’état DCBX Willing local, consultez Gestion de l’état DCBX Willing local.

    Remarque Lorsque le pilote de miniport reçoit des paramètres QoS NDIS locaux ou distants, il ne doit pas émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE en l’absence de modification des paramètres QoS NDIS opérationnels. Si le pilote réalise cette indication d’état inutile, NDIS risque de ne pas transmettre l’indication aux pilotes supérieurs.

  • Le pilote de miniport doit émettre une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE lorsqu’il doit remplacer les paramètres QoS NDIS locaux utilisés pour résoudre les paramètres QoS NDIS opérationnels.

    Le pilote de miniport avertit NDIS et le pilote supérieur qu’il a remplacé les paramètres QoS NDIS locaux en émettant une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE. Pour ce type d’indication, le pilote doit définir les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriés dans le membre Flags de la structure NDIS_QOS_PARAMETERS pour spécifier la raison pour laquelle il faut remplacer les paramètres QoS NDIS locaux

    Pour en savoir plus sur la façon dont le pilote de miniport gère les paramètres QoS locaux, consultez Définition des paramètres QoS NDIS locaux.

    Pour en savoir plus sur la façon dont le pilote de miniport résout ses paramètres QoS opérationnels, consultez Résolution des paramètres QoS NDIS opérationnels.

Remarque Le pilote de miniport doit émettre des indications d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE si ses fonctionnalités QoS NDIS sont actuellement activées via le mot-clé INF standardisé *QOS. Pour en savoir plus, consultez Mots-clés INF standardisés pour QoS NDIS.

Instructions relatives à l’émission de l’indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

Le pilote de miniport suit ces étapes lorsqu’il émet l’indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE :

  1. Le pilote de miniport alloue une mémoire tampon suffisamment grande pour contenir les éléments suivants :

    • Une structure NDIS_QOS_PARAMETERS qui contient les paramètres de configuration QoS NDIS ainsi que les paramètres opérationnels globaux pour les classes de trafic QoS NDIS.

    • Tableau de structures NDIS_QOS_CLASSIFICATION_ELEMENT. Chacune de ces structures spécifie une classification du trafic définie par un modèle de données de paquet (condition) et un niveau de priorité IEEE 802.1p associé (action). Si la carte réseau trouve un modèle dans la transmission ou de sortie qui correspond à une condition, elle attribue le niveau de priorité associé au paquet. La carte applique également les autres stratégies QoS NDIS au paquet en fonction du niveau de priorité.

  2. Le miniport initialise la structure NDIS_QOS_PARAMETERS avec les paramètres QoS NDIS opérationnels. Le pilote doit fournir la totalité des paramètres opérationnels, y compris ceux qui peuvent ne pas être configurés sur la carte réseau.

    Lorsque le pilote de miniport initialise le membre Header, il définit le membre Type de Header sur NDIS_OBJECT_TYPE_QOS_PARAMETERS. Le pilote de miniport définit le membre Revision de Header sur NDIS_QOS_PARAMETERS_REVISION_1 et le membre Size sur NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.

    Le pilote de miniport définit les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriés dans le membre Flags si les membres correspondants contiennent des données qui ont été modifiées depuis l’émission d’une indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE par le pilote de miniport.

    Remarque La configuration des indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED est facultative. NDIS part toujours du principe que les membres de NDIS_QOS_PARAMETERS sont actuels même s’ils n’ont pas changé depuis l’indication d’état NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE précédente

    Pour en savoir plus sur la configuration du membre Flags, consultez Instructions pour la configuration du membre Flags.

  3. Le pilote de miniport initialise une structure NDIS_QOS_CLASSIFICATION_ELEMENT pour chaque classification du trafic à partir des paramètres QoS NDIS opérationnels. Le pilote ajoute ces éléments à la fin de la structure NDIS_QOS_PARAMETERS dans la mémoire tampon.

    Remarque Le pilote de miniport ne doit pas définir l’indicateur NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT dans le membre Flags des structures NDIS_QOS_CLASSIFICATION_ELEMENT.

    Le pilote définit le membre NumClassificationElements de la structure NDIS_QOS_PARAMETERS selon le nombre d’éléments de classification dans le tableau. Le pilote définit le membre FirstClassificationElementOffset selon le décalage d’octets du premier élément à partir du début de la mémoire tampon. Le pilote définit également le membre ClassificationElementSize selon la longueur, en octets, de chaque élément du tableau.

    Remarque À compter de NDIS 6.30, le pilote de miniport doit définir le membre ClassificationElementSize selon sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT).

  4. Le pilote de miniport initialise une structure NDIS_STATUS_INDICATION pour l’indication d’état de la façon suivante :

    • Le membre StatusCode doit être défini sur NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    • Le membre StatusBuffer doit être défini sur le pointeur vers la mémoire tampon qui contient les paramètres QoS NDIS opérationnels.

    • Le membre StatusBufferSize doit être défini selon la longueur, en octets, de la mémoire tampon.

  5. Le pilote de miniport émet l’indication d’état en appelant NdisMIndicateStatusEx. Le pilote doit transmettre un pointeur à la structure NDIS_STATUS_INDICATION selon le paramètre StatusIndication.

Instructions relatives à la définition du membre Flags

Le pilote de miniport définit les indicateurs suivants dans le membre Flags de la structure NDIS_QOS_PARAMETERS pour spécifier les paramètres QoS NDIS opérationnels qui ont été configurés ou modifiés sur la carte réseau :

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Si cet indicateur est défini, le pilote de miniport a configuré la carte réseau avec les paramètres ETS contenus dans les membres suivants :

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

Remarque Le pilote de miniport doit prendre en charge ETS afin de prendre en charge QoS NDIS pour DCB. Toutefois, le paramètre de cet indicateur ne spécifie pas si la carte réseau prend en charge ETS. Au lieu de cela, cet indicateur spécifie uniquement si les paramètres ETS sont configurés sur la carte réseau.

NDIS_QOS_PARAMETERS_ETS_CHANGED
Si cet indicateur est défini, un ou plusieurs paramètres ETS ont changé dans les membres suivants :

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Si cet indicateur est défini, le pilote de miniport a configuré la carte réseau avec les paramètres PFC contenus dans le membre PfcEnable.

Remarque Le pilote de miniport doit prendre en charge PFC afin de prendre en charge QoS NDIS pour DCB. Le paramètre de cet indicateur ne spécifie pas si la carte réseau prend en charge PFC. Au lieu de cela, cet indicateur spécifie uniquement si les paramètres PFC sont activés sur la carte réseau.

NDIS_QOS_PARAMETERS_PFC_CHANGED
Si cet indicateur est défini, un ou plusieurs paramètres PFC ont changé dans le membre PfcEnable.

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Si cet indicateur est défini, le pilote de miniport a configuré la carte réseau avec les paramètres de classification du trafic QoS spécifiés dans les membres suivants :

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
Si cet indicateur est défini, un ou plusieurs paramètres de classification du trafic QoS ont changé dans les membres suivants :

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

Remarque Les indicateurs NDIS_QOS_PARAMETERS_Xxx_CONFIGURED doivent être définis si la structure NDIS_QOS_PARAMETERS contient les paramètre QoS NDIS. Le pilote de miniport doit définir ces indicateurs, que les paramètres aient changé ou pas. Toutefois, le pilote doit définir les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED uniquement pour les paramètres qui ont changé.