Indication des modifications apportées aux paramètres de qoS NDIS distants
Le pilote miniport qui prend en charge la qualité de service (QoS) NDIS émet une NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status indication lorsque ses paramètres de qualité de service NDIS distants sont reçus d’un homologue pour la première fois ou changent ultérieurement. Le pilote miniport reçoit ces paramètres QoS d’un homologue distant via le protocole IEEE 802.1Qaz Data Center Bridging Exchange (DCBX).
Le pilote miniport doit suivre les instructions suivantes pour émettre une NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status indication :
Si le pilote miniport n’a pas reçu d’image DCBX d’un homologue distant, il ne doit pas émettre d’indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status.
Le pilote miniport doit émettre une indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status une fois qu’il a reçu les paramètres QoS d’un homologue distant.
Note Le pilote miniport doit émettre cette status’indication si la carte réseau reçoit les paramètres qoS distants d’un homologue avant que les paramètres qoS locaux du pilote ne soient définis. Pour plus d’informations, consultez Définition des paramètres de qoS NDIS locaux.
Après cette indication de status initiale, le pilote miniport ne doit émettre qu’une indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status lorsqu’il détermine une modification des paramètres QoS sur l’homologue distant.
Note Les pilotes miniport ne doivent pas émettre de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status’indication s’il n’y a pas eu de modifications apportées aux paramètres qoS NDIS distants. Si le pilote effectue ce type d’indication status, NDIS peut ne pas transmettre l’indication aux pilotes qui se superposent.
Note Le pilote miniport doit émettre NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status des indications si ses fonctionnalités de QoS NDIS sont actuellement activées. À compter de Windows Server 2012, ces indications permettent aux administrateurs système d’afficher les paramètres de qoS et de pontage du centre de données (DCB) NDIS, que la fonctionnalité de serveur Microsoft DCB soit installée ou non.
Instructions pour l’émission de l’indication d’état NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE
Le pilote miniport effectue ces étapes lorsqu’il émet l’indication status NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :
Le pilote 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 de 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 telle que définie par un modèle de données de paquets (condition) et un niveau de priorité IEEE 802.1p associé (action). Si la carte réseau trouve un modèle dans le paquet de transmission ou de sortie qui correspond à une condition, elle affecte le niveau de priorité associé au paquet. L’adaptateur applique également les autres stratégies qoS NDIS au paquet en fonction du niveau de priorité.
Le miniport initialise la structure NDIS_QOS_PARAMETERS avec les paramètres qoS NDIS distants. Le pilote doit fournir l’ensemble complet des paramètres distants qui ont été reçus à partir de l’image DCBX envoyée par l’homologue distant.
Lorsque le pilote miniport initialise le membre d’en-tête , il définit le membre Type de l’en-tête sur NDIS_OBJECT_TYPE_QOS_PARAMETERS. Le pilote miniport définit le membre Révision de l’en-tête sur NDIS_QOS_PARAMETERS_REVISION_1 et le membre Size sur NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Le pilote miniport définit les indicateurs de NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriés si les membres correspondants contiennent des données qui ont changé depuis que le pilote miniport a précédemment émis une indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status.
Note La définition de ces indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED est facultative. NDIS suppose toujours que les membres du NDIS_QOS_PARAMETERS sont spécifiés même s’ils n’ont pas changé par rapport à l’indication précédente NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status.
Le pilote miniport définit le membre Flags pour spécifier status informations pour les données contenues dans les membres de la structure NDIS_QOS_PARAMETERS.
Par exemple, le pilote miniport définit les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriés dans le membre Indicateurs pour les membres qui contiennent des données qui ont changé depuis que le pilote miniport a précédemment émis une indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status.
Pour plus d’informations sur la définition du membre Flags, consultez Instructions pour définir le membre Flags.
Le pilote miniport initialise une structure NDIS_QOS_CLASSIFICATION_ELEMENT pour chaque classification de trafic à partir des paramètres qoS NDIS distants. Le pilote ajoute ces éléments après la fin de la structure NDIS_QOS_PARAMETERS dans la mémoire tampon.
Note Le pilote miniport ne doit pas définir l’indicateur NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT dans le membre Indicateurs des structures NDIS_QOS_CLASSIFICATION_ELEMENT .
Le pilote définit le membre NumClassificationElements de la structure NDIS_QOS_PARAMETERS sur le nombre d’éléments de classification dans le tableau. Le pilote définit le membre FirstClassificationElementOffset sur le décalage d’octet du premier élément à partir du début de la mémoire tampon. Le pilote définit également le membre ClassificationElementSize sur la longueur, en octets, de chaque élément du tableau.
Note À compter de NDIS 6.30, le pilote miniport doit définir le membre ClassificationElementSize sur
sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT
).Le pilote miniport initialise une structure NDIS_STATUS_INDICATION pour l’indication status de la manière suivante :
Le membre StatusCode doit être défini sur NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
Le membre StatusBuffer doit être défini sur le pointeur vers la mémoire tampon qui contient les paramètres qoS NDIS distants.
Le membre StatusBufferSize doit être défini sur la longueur, en octets, de la mémoire tampon.
Le pilote miniport émet l’indication status en appelant NdisMIndicateStatusEx. Le pilote doit passer un pointeur vers la structure NDIS_STATUS_INDICATION vers le paramètre StatusIndication .
Instructions relatives à la définition du membre Flags
Le pilote miniport définit les indicateurs suivants dans le membre Flags de la structure NDIS_QOS_PARAMETERS pour spécifier les paramètres de 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 miniport a configuré la carte réseau avec les paramètres ETS contenus dans les membres suivants :
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
Note Le pilote miniport doit prendre en charge ETS afin de prendre en charge la 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, le paramètre de 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 miniport a configuré la carte réseau avec les paramètres PFC contenus dans le membre PfcEnable .
Note Le pilote miniport doit prendre en charge PFC afin de prendre en charge la qualité de service 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, le paramètre de 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 miniport a configuré la carte réseau avec les paramètres de classification de 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
Note Les indicateurs NDIS_QOS_PARAMETERS_Xxx_CONFIGURED doivent être définis si la structure NDIS_QOS_PARAMETERS contient des paramètres de qoS NDIS. Le pilote miniport doit définir ces indicateurs, que les paramètres aient changé ou non. Toutefois, le pilote doit uniquement définir les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED pour les paramètres qui ont changé.
Instructions pour l’indication de paramètres de qoS NDIS distants non valides
Le pilote miniport doit invalider ses paramètres qoS distants si les conditions suivantes sont remplies :
La valeur de durée de vie (TTL) expire pour les paramètres QoS distants.
Note DCBX est transféré sur le protocole LLDP (Link Layer Discovery Protocol) comme spécifié dans la norme IEEE 802.1AB-2005. Les trames LLDP contiennent toujours un champ TTL.
Un autre homologue de liaison de données envoie une trame DCBX avant l’expiration de la valeur TTL. Ce scénario est connu sous le nom de condition multipaire . DCBX exige que le pilote miniport ne conserve qu’un seul ensemble de paramètres qoS distants qui ont été reçus d’un seul homologue de liaison de données.
Lorsqu’une condition multi-homologue se produit, le pilote miniport doit invalider tous les paramètres QoS distants jusqu’à ce que la valeur TTL expire pour toutes les trames DCBX reçues.
Lorsque le pilote miniport invalide ses paramètres de qoS NDIS distants, il doit suivre ces étapes lorsqu’il émet l’indication NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE status :
Étant donné que le pilote miniport ne signale aucun paramètre de qoS NDIS distant valide, il doit d’abord remplir une structure de NDIS_QOS_PARAMETERS avec des zéros.
Lorsque le pilote miniport initialise le membre d’en-tête de cette structure, il définit le membre Type de l’en-tête sur NDIS_OBJECT_TYPE_QOS_PARAMETERS. Le pilote miniport définit le membre Révision de l’en-tête sur NDIS_QOS_PARAMETERS_REVISION_1 et le membre Size sur NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Le pilote miniport définit les indicateurs NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriés dans le membre Flags .
Le pilote miniport initialise une structure NDIS_STATUS_INDICATION pour l’indication status de la manière suivante :
Le membre StatusCode doit être défini sur NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
Le membre StatusBuffer doit être défini sur l’adresse de la structure NDIS_QOS_PARAMETERS .
Le membre StatusBufferSize doit avoir la valeur
sizeof(NDIS_QOS_PARAMETERS)
.
Le pilote miniport émet l’indication status en appelant NdisMIndicateStatusEx. Le pilote doit passer un pointeur vers la structure NDIS_STATUS_INDICATION vers le paramètre StatusIndication .