Indicación de los cambios en los parámetros de QoS de NDIS operativos
El controlador de minipuerto que admite la calidad de servicio (QoS) de NDIS emite una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE cuando los parámetros de QoS de NDIS operativos del controlador se resuelven por primera vez o cuando cambian más adelante. El controlador de minipuerto configura el adaptador de red con estos parámetros operativos para realizar la transmisión de paquetes QoS.
El controlador de minipuerto debe seguir estas directrices para emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE:
El controlador de minipuerto debe emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE después de resolver sus parámetros de QoS de NDIS operativos y configurar el adaptador de red con ellos.
Nota Si el controlador de minipuerto se aprovisiona con parámetros QoS de NDIS locales propietarios en el registro, el controlador debe emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE durante o inmediatamente después de la llamada a MiniportInitializeEx. En este caso, el controlador inicializa una estructura NDIS_QOS_PARAMETERS con su configuración de parámetroS QoS de NDIS locales propietarios.
Para obtener más información sobre cómo resuelve el controlador su configuración de parámetros QoS de NDIS operativos, consulte Resolución de parámetros QoS de NDIS operativos.
Después de esta indicación de estado inicial, el controlador de minipuerto debe emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE cuando se cambian sus parámetros de QoS de NDIS operativos. Por ejemplo, los parámetros de QoS de NDIS operativos podrían cambiar en las condiciones siguientes:
Los parámetros de QoS de NDIS operativos cambian debido a cambios en los parámetros de QoS de NDIS locales. Estos parámetros podrían cambiar a través de una solicitud de método de OID OID_QOS_PARAMETERS o a través de una aplicación de administración desarrollada por el proveedor de hardware independiente (IHV).
Los parámetros de QoS de NDIS operativos cambian debido a conflictos con la configuración de QoS del mismo nivel remoto.
El controlador de minipuerto usa el protocolo IEEE 802.1Qaz Data Center Bridging Exchange (DCBX) para detectar los parámetros de QoS para un par remoto. Si el estado de aceptación de DCBX está habilitado, el controlador debe resolver las diferencias entre sus parámetros de QoS y los parámetros de QoS del mismo nivel remoto siguiendo los procedimientos definidos para el motor de estado DCBX. Para obtener más información sobre este motor de estado, consulte el borrador estándar IEEE 802.1Qaz.
Para obtener más información sobre el estado de aceptación de DCBX local, consulte Gestión del estado de aceptación de DCBX local.
Nota Cuando el controlador de minipuerto recibe parámetros de QoS de NDIS locales o remotos, no debe emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE si no se han producido cambios en los parámetros de QoS de NDIS operativos. Si el controlador hace esta indicación de estado innecesaria, es posible que NDIS no pase la indicación a controladores demasiado excesivos.
El controlador de minipuerto debe emitir una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE cuando necesite invalidar los parámetros de QoS de NDIS locales que se usaron para resolver los parámetros de QoS de NDIS operativos.
El controlador de minipuerto notifica a NDIS y al controlador superpuesto que ha reemplazado los parámetros de QoS de NDIS locales mediante la emisión de una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE. Para este tipo de indicación, el controlador debe establecer las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED adecuadas en el miembro Flags de la estructura NDIS_QOS_PARAMETERS para especificar el motivo para invalidar los parámetros de QoS de NDIS locales.
Para obtener más información sobre cómo gestiona el controlador de minipuerto los parámetros de QoS locales, consulte Establecimiento de parámetros de QoS de NDIS locales.
Para obtener más información sobre cómo resuelve el controlador de minipuerto sus parámetros de QoS operativos, consulte Resolución de parámetros de QoS de NDIS operativos.
Nota El controlador de minipuerto debe emitir indicaciones de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE si sus funcionalidades de QoS de NDIS están habilitadas actualmente a través de la palabra clave INF estandarizada *QOS. Para obtener más información, consulte Palabras clave INF estandarizadas para QoS de NDIS.
Directrices para emitir la indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE
El controlador de minipuerto sigue estos pasos cuando emite la indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE:
El controlador de minipuerto asigna un búfer lo suficientemente grande como para contener lo siguiente:
Una estructura NDIS_QOS_PARAMETERS que contiene las opciones de configuración de QoS de NDIS, así como parámetros operativos globales para las clases de tráfico de QoS de NDIS.
Una matriz de estructuras NDIS_QOS_CLASSIFICATION_ELEMENT. Cada una de estas estructuras especifica una clasificación de tráfico definida por un patrón de datos de paquetes (condición) y el nivel de prioridad de 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.
El minipuerto inicializa la estructura NDIS_QOS_PARAMETERS con los parámetros de QoS de NDIS operativos. El controlador debe proporcionar el conjunto completo de parámetros operativos, incluidos los parámetros que pueden no configurarse en el adaptador de red.
Cuando el controlador de minipuerto 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 en el miembro Flags si los miembros correspondientes contienen datos que han cambiado desde que el controlador de minipuerto emitió una indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.
Nota Establecer las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED es opcional. NDIS siempre supone que los miembros de NDIS_QOS_PARAMETERS son actuales incluso si no han cambiado de la indicación de estado NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE anterior.
Para obtener más información sobre cómo establecer el miembro Flags, consulte Directrices para establecer el miembro Flags.
El controlador de minipuerto inicializa una estructura NDIS_QOS_CLASSIFICATION_ELEMENT para cada clasificación de tráfico de los parámetros de QoS de NDIS operativos. El controlador agrega estos elementos al final de la estructura 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 con el número de elementos de clasificación de la matriz. El controlador establece el miembro FirstClassificationElementOffset con el desplazamiento de bytes del primer elemento desde el inicio del búfer. El controlador también establece el miembro ClassificationElementSize con 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 con
sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT
).El controlador de minipuerto inicializa una estructura NDIS_STATUS_INDICATION para la indicación de estado de la siguiente manera:
El miembro StatusCode debe establecerse en NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.
El miembro StatusBuffer debe establecerse en el puntero al búfer que contiene los parámetros de QoS de NDIS operativos.
El miembro StatusBufferSize debe establecerse con la longitud del búfer expresada en bytes.
El controlador de minipuerto 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 NDIS_QOS_PARAMETERS para especificar qué parámetros de QoS de NDIS operativos se han configurado o cambiado en el adaptador de red:
NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Si se establece esta marca, significa que el controlador de minipuerto ha configurado el adaptador de red con los parámetros ETS incluidos 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, la configuración de esta marca especifica solo si los parámetros de ETS están configurados en el adaptador de red.
NDIS_QOS_PARAMETERS_ETS_CHANGED
Si se establece esta marca, significa que uno o varios parámetros de ETS han cambiado en los miembros siguientes:
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Si se establece esta marca, significa que el controlador de minipuerto ha configurado el adaptador de red con las opciones de PFC incluidas 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 de PFC están habilitados en el adaptador de red.
NDIS_QOS_PARAMETERS_PFC_CHANGED
Si se establece esta marca, significa que una o varias configuraciones de PFC han cambiado en el miembro PfcEnable.
NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Si se establece esta marca, significa que 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, significa que 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 NDIS_QOS_PARAMETERS contiene la configuración del parámetro de QoS de NDIS. El controlador de minipuerto debe establecer estas marcas independientemente de si la configuración ha cambiado. Sin embargo, el controlador debe establecer las marcas NDIS_QOS_PARAMETERS_Xxx_CHANGED solo para las configuraciones que han cambiado.