CodingBox Documentação

CMIS — gestão comum

CMIS, a Common Management Interface Specification, é o modelo de gestão de todos os novos fatores de forma de alta velocidade: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD e SFP112 (como SFP+ com CMIS), DSFP, COBO e QSFP compatível com CMIS. Começou no MSA do QSFP-DD (CMIS 3.0, 2018), foi adotado pelos grupos OSFP e COBO e, desde a versão 5.0 (2021), é mantido pela OIF. Comparado ao SFF-8636, não é um mapa de memória maior, e sim um modelo diferente: páginas em bancos para até 32 lanes, máquinas de estado explícitas para o módulo e para cada caminho de dados, aplicações em vez de campos de bits de conformidade, diagnósticos versáteis (VDM) e um canal de comandos (CDB) para firmware e funções estendidas. Byte de versão e histórico: Revisões da especificação.

Modelo de memória

RegiãoEndereçamentoConteúdo
Página inferior (bytes 0–127)sempre visívelidentificador, revisão, estado do módulo, flags, monitores do módulo, controles globais, tipo de mídia, descritores de aplicação 1–8, senha, seleção de banco 126, seleção de página 127
Página superior 00h (128–255)página 127 = 00hbloco do fabricante, classe de potência, conector, comprimentos de cabo, tecnologia de mídia, soma de verificação
01hanúnciorevisões de firmware/hardware, comprimentos de enlace, comprimento de onda, páginas e bancos suportados, durações, controles de integridade de sinal, descritores 9–15
02hlimiareslimiares de alarme/aviso do módulo e das lanes
04hcapacidades do lasergrades e faixas do laser sintonizável (linhagem do SFF-TA-1004)
10h (em bancos)controle de lanedesinicialização do caminho de dados, desabilitação do Tx, polaridade, squelch, equalização, conjuntos de controle em estágios
11h (em bancos)status de laneestados do caminho de dados, flags por lane, monitores de lane, status de configuração, conjunto de controle ativo
12h (em bancos)controle do laser sintonizávelcanal/comprimento de onda por lane
13h–14h (em bancos)diagnósticosloopbacks, geradores e verificadores PRBS
20h–2Fh (em bancos)VDMdescritores, amostras, limiares, flags
9FhCDBbloco de comando: ID do comando, comprimentos, soma de verificação, payload local
A0h–AFhCDB EPLpayload estendido para transferências grandes (imagens de firmware)
80h–FFh (outras)fabricantepáginas personalizadas

Um banco endereça 8 lanes: o banco 0 cobre as lanes 1–8, o banco 1 as lanes 9–16 e assim por diante; quantos estão implementados é informado na página 01h. Módulos com apenas a página 00h ativam o bit de memória plana (byte 2, bit 7). Barramento: endereço único A0h, até 400 kHz, ModSelL por slot — interface de dois fios.

Página inferior — os bytes com os quais o host trabalha

BytesCampoNotas
0Identificador18h QSFP-DD, 19h OSFP, 1Eh QSFP com CMIS… (SFF-8024)
1Revisão do CMISnibbles maior.menor: 50h = 5.0, 40h = 4.0, 30h = 3.0
2Características de memóriabit 7 memória plana, além de somente configuração por etapas e outros bits de capacidade
3Estado do módulobits 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; bit 0 interrupção desativada
8–11Flags do módulomudança de estado, alarmes de temperatura/Vcc, alarmes auxiliares, personalizados; retidas, limpas na leitura
14–25Monitores do módulotemperatura, Vcc, Aux1–Aux3 (corrente do TEC, temperatura do laser, alimentação adicional), personalizado
26Controles globais5.x: bit 6 LowPwrAllowRequestHW, bit 5 método de squelch, bit 4 LowPwrRequestSW, bit 3 reinicialização por software (4.x: bit 6 LowPwr, bit 4 ForceLowPwr)
37–38Status do CDBocupado / êxito / falha para os blocos de comando 1 e 2
39–40Firmware ativomaior.menor da imagem em execução
85Tipo de mídia01h MMF, 02h SMF, 03h cobre passivo, 04h cabo ativo, 05h BASE-T
86–117Descritores de aplicação 1–84 bytes cada: ID da interface de host, ID da interface de mídia, número de lanes de host/mídia, opções de atribuição de lane de host
118–121Alteração de senhadefinido pelo fabricante
122–125Entrada de senhadefinido pelo fabricante — onde ficam as senhas de proteção contra gravação
126Seleção de banco
127Seleção de página

Máquina de estados do módulo

Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
                            ▲                              │
                            └──────── ModulePwrDn ◄────────┘
                       (ModuleFault from any state on a fatal error)
  • MgmtInit — o módulo inicializa seu controlador; a identidade ainda não pode ser lida (até 2 s conforme as especificações de hardware).
  • ModuleLowPwr — identidade, anúncio e limiares ficam legíveis; a potência é limitada à classe 1; é aqui que o host valida o módulo.
  • ModulePwrUp → ModuleReady — o host desativa o pino LPMode (ou limpa LowPwrRequestSW) e o módulo energiza sua óptica; os caminhos de dados já podem ser inicializados.
  • ModulePwrDn — o inverso, ao ativar o LPMode.

Um módulo que nunca sai do LowPwr é o chamado clássico do CMIS: Problemas do CMIS, Energia e térmica.

Aplicações e o caminho de dados

Em vez de bits de conformidade, um módulo CMIS anuncia aplicações: pares de interface elétrica de host e interface de mídia, com número de lanes:

DescritorInterface de hostInterface de mídiaLanes de host / lanes de mídiaExemplo
App 112h 400GAUI-8 C2M1Ch 400GBASE-DR48 / 4um enlace de 400G
App 20Eh 100GAUI-2 C2M14h 100GBASE-DR2 / 1breakout 4 × 100G

O host escolhe uma aplicação por lane gravando AppSel (bits 7–4), um DataPathID (bits 3–1) e o bit de controle explícito no Staged Control Set 0 (página 10h, bytes 145–152), e então ativa ApplyDPInit (página 10h, byte 143). O módulo responde em ConfigStatus (página 11h, bytes 202–205: aceito, rejeitado, AppSel inválido, combinação de lanes inválida…) e copia os valores aceitos no Active Control Set (página 11h, 206–221). Cada caminho de dados percorre então sua própria máquina de estados:

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

Os estados são reportados por lane na página 11h, bytes 128–131 (um nibble por lane), e as durações máximas de cada etapa são anunciadas na página 01h para que o host saiba quanto tempo esperar. A desabilitação do Tx por lane está na página 10h, byte 130. Um breakout que o módulo não lista como aplicação simplesmente não está disponível — Velocidade e taxa.

Monitoramento: flags, monitores, VDM

  • Os monitores do módulo (página inferior 14–25) e os monitores de lane (página 11h: potência Tx 154–169, polarização Tx 170–185, potência Rx 186–201, 2 bytes por lane) usam os mesmos formatos de 16 bits que SFP/QSFP (unidades).
  • Os limiares estão na página 02h; as flags ficam retidas e são limpas na leitura, com máscaras por flag; IntL sinaliza qualquer flag não mascarada.
  • VDM (páginas 20h–2Fh) acrescenta observáveis que as especificações antigas nunca tiveram: BER pré-FEC, quadros FEC não corrigíveis, SNR por lane, temperatura e idade do laser, eSNR, parâmetros de transição de nível PAM4 — cada um com seu próprio descritor, limiares e flags. É assim que um módulo de 400G reporta a qualidade do enlace antes de os erros chegarem ao host (Monitoramento).

CDB — bloco de dados de comando

A página 9Fh é uma caixa de mensagens: o host grava um ID de comando (bytes 128–129), comprimentos de payload (130–132), uma soma de verificação (133) e até 120 bytes de payload local (136–255), opcionalmente mais nas páginas EPL A0h–AFh; o módulo executa e reporta nos bytes de status 37–38 e em um payload de resposta. Os comandos padrão incluem:

ComandoFinalidade
0000hconsultar status
0040h / 0041hrecursos do módulo / recursos de gerenciamento de firmware
0100hobter informações de firmware (imagens em execução e inativa)
0101hiniciar download de firmware
0103h / 0104hgravar bloco de firmware via LPL / EPL
0107hconcluir download
0109h / 010Ahexecutar imagem / confirmar imagem
0102habortar

É por meio do CDB que as ferramentas do fabricante atualizam o firmware do módulo em campo e que alguns fabricantes implementam funções de configuração e desbloqueio. O suporte e os recursos são anunciados na página 01h.

Somas de verificação e senhas

O byte 222 da página 00h calcula a soma de verificação dos bytes 128–221; as páginas 01h, 02h e 04h trazem uma soma de verificação de página no byte 255 (Somas de verificação). As senhas (122–125) e os esquemas de desbloqueio do fabricante ficam fora da especificação — Recodificação de EEPROM.

Suporte do host

Os sistemas operacionais de rede implementam o CMIS 4.0 e 5.x com profundidade variável: alguns conduzem todo o fluxo de aplicação/caminho de dados, outros liberam o LPMode e esperam que o módulo suba sozinho. Essa diferença está por trás da maioria dos chamados de “reconhecido, mas nunca pronto” — Problemas do CMIS, O que o host faz.

No CodingBox

O CodingBox detecta o CMIS pelo identificador e pelo byte de revisão, lê a memória inferior, as páginas 00h, 01h, 02h e as páginas de lane em bancos, decodifica os descritores de aplicação em relação ao SFF-8024, mostra os estados do módulo e do caminho de dados e os monitores por lane no DDM, e edita a identidade recalculando as somas de verificação de página no EEPROM editor. As operações de firmware via CDB são específicas do fabricante e ficam fora do escopo do editor.

Tabelas em nível de registro: Mapa da página inferior, Mapa das páginas superiores 00h/01h/02h, Mapa das páginas de lane 10h/11h, VDM, CDB.


Se você encontrar uma imprecisão ou um erro neste artigo, selecione o trecho correspondente e pressione Ctrl+Enter para .