CMIS — gestión común · Especificaciones y normas · Transceptores y cables ópticos · Documentación · CodingBox
CodingBox Documentación

CMIS — gestión común

CMIS, la Common Management Interface Specification, es el modelo de gestión de todos los nuevos factores de forma de alta velocidad: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD y SFP112 (como SFP+ con CMIS), DSFP, COBO y QSFP compatible con CMIS. Comenzó en el MSA de QSFP-DD (CMIS 3.0, 2018), fue adoptado por los grupos OSFP y COBO, y desde la versión 5.0 (2021) lo mantiene el OIF. Comparado con SFF-8636, no es un mapa de memoria más grande, sino un modelo diferente: páginas por bancos para hasta 32 carriles, máquinas de estado explícitas para el módulo y cada ruta de datos, aplicaciones en lugar de campos de bits de conformidad, diagnósticos versátiles (VDM) y un canal de comandos (CDB) para firmware y funciones extendidas. Byte de versión e historial: Revisiones de la especificación.

Modelo de memoria

RegiónDireccionamientoContenido
Página inferior (bytes 0–127)siempre visibleidentificador, revisión, estado del módulo, indicadores, monitores del módulo, controles globales, tipo de medio, descriptores de aplicación 1–8, contraseña, selección de banco 126, selección de página 127
Página superior 00h (128–255)página 127 = 00hbloque del fabricante, clase de potencia, conector, longitudes de cable, tecnología de medio, suma de comprobación
01hanunciorevisiones de firmware/hardware, longitudes de enlace, longitud de onda, páginas y bancos admitidos, duraciones, controles de integridad de señal, descriptores 9–15
02humbralesumbrales de alarma/advertencia del módulo y de carril
04hcapacidades del láserrejillas y rangos de láser sintonizable (linaje SFF-TA-1004)
10h (por bancos)control de carrildesinicialización de la ruta de datos, deshabilitación de Tx, polaridad, silenciamiento, ecualización, conjuntos de control por etapas
11h (por bancos)estado de carrilestados de la ruta de datos, indicadores por carril, monitores de carril, estado de configuración, conjunto de control activo
12h (por bancos)control del láser sintonizablecanal/longitud de onda por carril
13h–14h (por bancos)diagnósticosbucles de retorno, generadores y verificadores PRBS
20h–2Fh (por bancos)VDMdescriptores, muestras, umbrales, indicadores
9FhCDBbloque de comandos: ID de comando, longitudes, suma de comprobación, carga útil local
A0h–AFhCDB EPLcarga útil extendida para transferencias grandes (imágenes de firmware)
80h–FFh (otras)fabricantepáginas personalizadas

Un banco direcciona 8 carriles: el banco 0 los carriles 1–8, el banco 1 los carriles 9–16 y así sucesivamente; cuántos están implementados se anuncia en la página 01h. Los módulos con solo la página 00h activan el bit de memoria plana (byte 2, bit 7). Bus: dirección única A0h, hasta 400 kHz, ModSelL por ranura — interfaz de dos hilos.

Página inferior — los bytes con los que trabaja el host

BytesCampoNotas
0Identificador18h QSFP-DD, 19h OSFP, 1Eh QSFP con CMIS… (SFF-8024)
1Revisión CMISnibbles mayor.menor: 50h = 5.0, 40h = 4.0, 30h = 3.0
2Características de memoriabit 7 memoria plana, además de solo configuración por etapas y otros bits de capacidad
3Estado del módulobits 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; bit 0 interrupción desactivada
8–11Indicadores del módulocambio de estado, alarmas de temperatura/Vcc, alarmas auxiliares, personalizados; enclavados, se borran al leer
14–25Monitores del módulotemperatura, Vcc, Aux1–Aux3 (corriente TEC, temperatura del láser, alimentación adicional), personalizado
26Controles globales5.x: bit 6 LowPwrAllowRequestHW, bit 5 método de silenciamiento, bit 4 LowPwrRequestSW, bit 3 reinicio por software (4.x: bit 6 LowPwr, bit 4 ForceLowPwr)
37–38Estado de CDBocupado / éxito / fallo para los bloques de comando 1 y 2
39–40Firmware activomayor.menor de la imagen en ejecución
85Tipo de medio01h MMF, 02h SMF, 03h cobre pasivo, 04h cable activo, 05h BASE-T
86–117Descriptores de aplicación 1–84 bytes cada uno: ID de interfaz de host, ID de interfaz de medio, número de carriles de host/medio, opciones de asignación de carriles de host
118–121Cambio de contraseñadefinido por el fabricante
122–125Entrada de contraseñadefinido por el fabricante — donde van las contraseñas de protección contra escritura
126Selección de banco—
127Selección de página—

Máquina de estados del módulo

Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
                            ▲                              │
                            └──────── ModulePwrDn ◄────────┘
                       (ModuleFault from any state on a fatal error)
  • MgmtInit — el módulo arranca su controlador; la identidad aún no se puede leer (hasta 2 s según las especificaciones de hardware).
  • ModuleLowPwr — se pueden leer la identidad, el anuncio y los umbrales; la potencia se limita a la clase 1; aquí el host valida el módulo.
  • ModulePwrUp → ModuleReady — el host desactiva el pin LPMode (o borra LowPwrRequestSW) y el módulo alimenta su óptica; las rutas de datos ya pueden inicializarse.
  • ModulePwrDn — lo inverso al activar LPMode.

Un módulo que nunca sale de LowPwr es el caso clásico de incidencia en CMIS: Problemas de CMIS, Alimentación y térmica.

Aplicaciones y la ruta de datos

En lugar de bits de conformidad, un módulo CMIS anuncia aplicaciones: pares de interfaz eléctrica de host e interfaz de medio, con número de carriles:

DescriptorInterfaz de hostInterfaz de medioCarriles de host / carriles de medioEjemplo
App 112h 400GAUI-8 C2M1Ch 400GBASE-DR48 / 4un enlace de 400G
App 20Eh 100GAUI-2 C2M14h 100GBASE-DR2 / 1breakout 4 × 100G

El host elige una aplicación por carril escribiendo AppSel (bits 7–4), un DataPathID (bits 3–1) y el bit de control explícito en el Staged Control Set 0 (página 10h, bytes 145–152), y a continuación activa ApplyDPInit (página 10h, byte 143). El módulo responde en ConfigStatus (página 11h, bytes 202–205: aceptado, rechazado, AppSel inválido, combinación de carriles inválida…) y copia los valores aceptados en el Active Control Set (página 11h, 206–221). Cada ruta de datos recorre entonces su propia máquina de estados:

DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
       ▲                                                          │
       └────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘

Los estados se reportan por carril en la página 11h, bytes 128–131 (un nibble por carril), y las duraciones máximas de cada paso se anuncian en la página 01h para que el host sepa cuánto esperar. La deshabilitación de Tx por carril está en la página 10h, byte 130. El breakout que el módulo no incluye como aplicación simplemente no está disponible — Velocidad y tasa.

Monitorización: indicadores, monitores, VDM

  • Los monitores del módulo (página inferior 14–25) y los monitores de carril (página 11h: potencia Tx 154–169, polarización Tx 170–185, potencia Rx 186–201, 2 bytes por carril) usan los mismos formatos de 16 bits que SFP/QSFP (unidades).
  • Los umbrales están en la página 02h; los indicadores se enclavan y se borran al leer, con máscaras por indicador; IntL señala cualquier indicador sin enmascarar.
  • VDM (páginas 20h–2Fh) añade observables que las especificaciones antiguas nunca tuvieron: BER pre-FEC, tramas FEC no corregibles, SNR por carril, temperatura y edad del láser, eSNR, parámetros de transición de nivel PAM4 — cada uno con su propio descriptor, umbrales e indicadores. Así es como un módulo de 400G reporta la calidad del enlace antes de que los errores lleguen al host (Monitorización).

CDB — bloque de datos de comando

La página 9Fh es un buzón: el host escribe un ID de comando (bytes 128–129), longitudes de carga útil (130–132), una suma de comprobación (133) y hasta 120 bytes de carga útil local (136–255), opcionalmente más en las páginas EPL A0h–AFh; el módulo ejecuta y reporta en los bytes de estado 37–38 y una carga útil de respuesta. Los comandos estándar incluyen:

ComandoPropósito
0000hconsultar estado
0040h / 0041hcaracterísticas del módulo / características de gestión de firmware
0100hobtener información de firmware (imágenes activa e inactiva)
0101hiniciar descarga de firmware
0103h / 0104hescribir bloque de firmware vía LPL / EPL
0107hcompletar descarga
0109h / 010Ahejecutar imagen / confirmar imagen
0102habortar

CDB es como las herramientas del fabricante actualizan el firmware del módulo en campo y como algunos fabricantes implementan funciones de configuración y desbloqueo. El soporte y las características se anuncian en la página 01h.

Sumas de comprobación y contraseñas

El byte 222 de la página 00h calcula la suma de comprobación de los bytes 128–221; las páginas 01h, 02h y 04h llevan una suma de comprobación de página en el byte 255 (Sumas de comprobación). Las contraseñas (122–125) y los esquemas de desbloqueo del fabricante quedan fuera de la especificación — Recodificación de EEPROM.

Soporte del host

Los sistemas operativos de red implementan CMIS 4.0 y 5.x con distinta profundidad: algunos gestionan todo el flujo de aplicación/ruta de datos, otros liberan LPMode y esperan que el módulo se levante por sí mismo. Esta diferencia está detrás de la mayoría de las incidencias de «reconocido pero nunca listo» — Problemas de CMIS, Qué hace el host.

En CodingBox

CodingBox detecta CMIS por el identificador y el byte de revisión, lee la memoria inferior, las páginas 00h, 01h, 02h y las páginas de carril por bancos, decodifica los descriptores de aplicación frente a SFF-8024, muestra los estados del módulo y de la ruta de datos y los monitores por carril en DDM, y edita la identidad recalculando las sumas de comprobación de página en el EEPROM editor. Las operaciones de firmware mediante CDB son específicas del fabricante y quedan fuera del alcance del editor.

Tablas a nivel de registro: Mapa de la página inferior, Mapa de páginas superiores 00h/01h/02h, Mapa de páginas de carril 10h/11h, VDM, CDB.


Si encuentra una inexactitud o un error en este material, seleccione el fragmento correspondiente y pulse Ctrl+Enter para .