Indica los cambios en los parámetros de QoS de NDIS remotos
El controlador de miniporte que admite la calidad de servicio (QoS) de NDIS emite una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE cuando sus parámetros de QoS de NDIS remotos se reciben de un par por primera vez o cambian más adelante. El controlador miniporte recibe estos parámetros de QoS de un par remoto a través del protocolo IEEE 802.1Qaz Data Center Bridging Exchange (DCBX).
El controlador de minipuerto debe seguir estas directrices para emitir una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :
Si el controlador de minipuerto no ha recibido un marco DCBX de un par remoto, no debe emitir una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE .
El controlador de minipuerto debe emitir una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE una vez que haya recibido por primera vez la configuración de QoS de un par remoto.
Nota El controlador de minipuerto debe emitir esta indicación de estado si el adaptador de red recibe la configuración remota del parámetro QoS de un mismo nivel antes de establecer los parámetros de QoS locales del controlador. Para obtener más información, vea Establecer parámetros de QoS de NDIS locales.
Después de esta indicación de estado inicial, el controlador de minipuerto solo debe emitir una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE cuando determina un cambio en la configuración de QoS en el par remoto.
Nota Los controladores miniport no deben emitir una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE si no se han producido cambios en los parámetros de QoS de NDIS remotos. Si el controlador hace este tipo de indicación de estado, es posible que NDIS no pase la indicación a los controladores de exceso.
Nota El controlador de minipuerto debe emitir indicaciones de estado NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE si sus funcionalidades de QoS de NDIS están habilitadas actualmente. A partir de Windows Server 2012, estas indicaciones permiten a los administradores del sistema ver la configuración de puente de centro de datos y QoS de NDIS (DCB), independientemente de si está instalada la característica de servidor DCB de Microsoft.
Directrices para emitir la indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE
El controlador de minipuerto sigue estos pasos cuando emite la indicación de estado del NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :
El controlador de minipuerto asigna un búfer lo suficientemente grande como para contener lo siguiente:
Estructura NDIS_QOS_PARAMETERS que contiene los valores de configuración de QoS de NDIS, así como parámetros operativos globales para las clases de tráfico de QoS de NDIS.
Matriz de estructuras de NDIS_QOS_CLASSIFICATION_ELEMENT . Cada una de estas estructuras especifica una clasificación de tráfico definida por un patrón de datos de paquete (condición) y el nivel de prioridad IEEE 802.1p asociado (acción). Si el adaptador de red encuentra un patrón en la transmisión o salida, el paquete que coincide con una condición, asigna el nivel de prioridad asociado al paquete. El adaptador también aplica las demás directivas QoS de NDIS al paquete en función del nivel de prioridad.
La minipuerto inicializa la estructura NDIS_QOS_PARAMETERS con los parámetros de QoS de NDIS remotos. El controlador debe proporcionar el conjunto completo de parámetros remotos recibidos del marco DCBX enviado por el mismo nivel remoto.
Cuando el controlador de miniporte inicializa el miembro Header , establece el miembro Type de Header en NDIS_OBJECT_TYPE_QOS_PARAMETERS. El controlador de minipuerto establece el miembro Revision de Header en NDIS_QOS_PARAMETERS_REVISION_1 y el miembro Size en NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
El controlador de minipuerto establece las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED adecuadas si los miembros correspondientes contienen datos que han cambiado desde que el controlador de miniporte emitió anteriormente una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE .
Nota Establecer estas marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED es opcional. NDIS siempre supone que los miembros del NDIS_QOS_PARAMETERS se especifican incluso si no han cambiado de la indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE anterior.
El controlador de minipuerto establece el miembro Flags para especificar la información de estado de los datos contenidos en los miembros de la estructura NDIS_QOS_PARAMETERS .
Por ejemplo, el controlador de minipuerto establece las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED adecuadas en el miembro Flags para los miembros que contienen datos que han cambiado desde que el controlador de miniporte emitió anteriormente una indicación de estado de NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE .
Para obtener más información sobre cómo establecer el miembro Flags , vea Guidelines for Setting the Flags Member.
El controlador de minipuerto inicializa una estructura de NDIS_QOS_CLASSIFICATION_ELEMENT para cada clasificación de tráfico de los parámetros de QoS de NDIS remotos. El controlador agrega estos elementos después del final de la estructura de NDIS_QOS_PARAMETERS en el búfer.
Nota El controlador de minipuerto no debe establecer la marca NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT en el miembro Flags de ninguna estructura NDIS_QOS_CLASSIFICATION_ELEMENT .
El controlador establece el miembro NumClassificationElements de la estructura NDIS_QOS_PARAMETERS en el número de elementos de clasificación de la matriz. El controlador establece el miembro FirstClassificationElementOffset en el desplazamiento de bytes del primer elemento desde el inicio del búfer. El controlador también establece el miembro ClassificationElementSize en la longitud, en bytes, de cada elemento de la matriz.
Nota A partir de NDIS 6.30, el controlador de minipuerto debe establecer el miembro ClassificationElementSize en
sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT
).El controlador de minipuerto inicializa una estructura de NDIS_STATUS_INDICATION para la indicación de estado de la siguiente manera:
El miembro StatusCode debe establecerse en NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
El miembro StatusBuffer debe establecerse en el puntero al búfer que contiene los parámetros de QoS de NDIS remotos.
El miembro StatusBufferSize debe establecerse en la longitud, en bytes, del búfer.
El controlador de miniporte emite la indicación de estado llamando a NdisMIndicateStatusEx. El controlador debe pasar un puntero a la estructura NDIS_STATUS_INDICATION al parámetro StatusIndication .
Directrices para establecer el miembro flags
El controlador de minipuerto establece las marcas siguientes en el miembro Flags de la estructura de NDIS_QOS_PARAMETERS para especificar qué parámetros operativos de QoS QoS de NDIS se han configurado o cambiado en el adaptador de red:
NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Si se establece esta marca, el controlador de minipuerto ha configurado el adaptador de red con los parámetros ETS contenidos en los miembros siguientes:
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
Nota El controlador de minipuerto debe admitir ETS para admitir QoS de NDIS para DCB. Sin embargo, la configuración de esta marca no especifica si el adaptador de red admite ETS. En su lugar, el valor de esta marca especifica solo si los parámetros ETS están configurados en el adaptador de red.
NDIS_QOS_PARAMETERS_ETS_CHANGED
Si se establece esta marca, uno o varios parámetros ETS han cambiado en los miembros siguientes:
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Si se establece esta marca, el controlador de minipuerto ha configurado el adaptador de red con la configuración de PFC contenida en el miembro PfcEnable .
Nota El controlador de minipuerto debe admitir PFC para admitir QoS de NDIS para DCB. La configuración de esta marca no especifica si el adaptador de red admite PFC. En su lugar, la configuración de esta marca especifica solo si los parámetros PFC están habilitados en el adaptador de red.
NDIS_QOS_PARAMETERS_PFC_CHANGED
Si se establece esta marca, una o varias configuraciones de PFC han cambiado en el miembro PfcEnable .
NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Si se establece esta marca, el controlador de minipuerto ha configurado el adaptador de red con los parámetros de clasificación de tráfico de QoS especificados en los miembros siguientes:
NumClassificationElements
ClassificationElementSize
FirstClassificationElementOffset
NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
Si se establece esta marca, uno o varios parámetros de clasificación de tráfico de QoS han cambiado en los miembros siguientes:
NumClassificationElements
ClassificationElementSize
FirstClassificationElementOffset
Nota Las marcas NDIS_QOS_PARAMETERS_Xxx_CONFIGURED deben establecerse si la estructura de NDIS_QOS_PARAMETERS contiene la configuración del parámetro QoS de NDIS. El controlador de minipuerto debe establecer estas marcas independientemente de si la configuración ha cambiado. Sin embargo, el controlador solo debe establecer las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED para las configuraciones que han cambiado.
Directrices para indicar parámetros de QoS de NDIS remoto no válidos
El controlador de minipuerto debe invalidar sus parámetros de QoS remotos si se cumplen las condiciones siguientes:
El valor de período de vida (TTL) expira para los parámetros de QoS remotos.
Nota DCBX se transfiere a través del protocolo De detección de capas de vínculo (LLDP), tal como se especifica en el estándar IEEE 802.1AB-2005. Los marcos LLDP siempre contienen un campo TTL.
Otro elemento del mismo nivel de vínculo de datos envía un marco DCBX antes de que expire el valor TTL. Este escenario se conoce como una condición de varios pares . DCBX requiere que el controlador de miniporte mantenga solo un conjunto de parámetros de QoS remotos recibidos de un único par de vínculo de datos.
Cuando se produce una condición de varios pares, el controlador de minipuerto debe invalidar todos los parámetros de QoS remotos hasta que el valor TTL expire para todos los fotogramas DCBX recibidos.
Cuando el controlador de miniporte invalida sus parámetros de QoS de NDIS remotos, debe seguir estos pasos cuando emite la indicación de estado NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :
Dado que el controlador de miniporte no notifica ningún parámetro de QoS QoS NDIS válido, primero debe rellenar una estructura de NDIS_QOS_PARAMETERS con ceros.
Cuando el controlador de miniporte inicializa el miembro Header de esta estructura, establece el miembro Type de Header en NDIS_OBJECT_TYPE_QOS_PARAMETERS. El controlador de minipuerto establece el miembro Revision de Header en NDIS_QOS_PARAMETERS_REVISION_1 y el miembro Size en NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
El controlador de minipuerto establece las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED adecuadas en el miembro Flags .
El controlador de minipuerto inicializa una estructura de NDIS_STATUS_INDICATION para la indicación de estado de la siguiente manera:
El miembro StatusCode debe establecerse en NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
El miembro StatusBuffer debe establecerse en la dirección de la estructura NDIS_QOS_PARAMETERS .
El miembro StatusBufferSize debe establecerse en
sizeof(NDIS_QOS_PARAMETERS)
.
El controlador de miniporte emite la indicación de estado llamando a NdisMIndicateStatusEx. El controlador debe pasar un puntero a la estructura NDIS_STATUS_INDICATION al parámetro StatusIndication .