O que o host faz: descoberta, validação, inicialização
As especificações descrevem o lado do módulo: pinos, memória, estados. Esta página descreve o lado do host: a sequência que um switch, roteador ou NIC executa desde o momento em que um módulo é inserido até o tráfego fluir, com os pinos, bytes e tempos que cada etapa usa. Conhecê-la transforma “a porta diz unsupported” em “o host parou na etapa 4”, e explica por que um módulo perfeito na bancada ainda pode falhar em uma porta.
Sinais de baixa velocidade por fator de forma
| Fator de forma | Presença | Reset / energia | Interrupção / falha | Outro |
|---|---|---|---|---|
| SFP / SFP+ / SFP28 | MOD_ABS (baixo = presente) | — (TX_DISABLE controla o laser) | TX_FAULT, RX_LOS | RS0, RS1 seleção de taxa |
| XFP | Mod_ABS | P_Down/RST | Interrupt, Mod_NR (não pronto), RX_LOS | TX_DIS, Mod_DeSel |
| QSFP+ / QSFP28 | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| QSFP-DD | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| OSFP | PRSn | RSTn, LPWn | INT | — (sem pino de seleção, um barramento por porta) |
| SFP-DD | módulo ausente como no SFP | solicitação de baixa potência | interrupção | seleção de taxa como no SFP |
Funções de pino e pinagens por família: Hardware SFP, Hardware QSFP, XFP.
A sequência
| # | Etapa | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS | Como a falha aparece |
|---|---|---|---|---|---|
| 1 | Detectar | MOD_ABS vai para baixo; debounce | ModPrsL baixo | ModPrsL / PRSn baixo | a porta permanece vazia; módulo “não detectado” |
| 2 | Energizar e esperar | 3,3 V sempre ativo; esperar t_init 300 ms | energizar com LPMode alto (somente classe 1); esperar t_init 2 s ou sondar Data_Not_Ready | igual; esperar o estado do módulo sair de MgmtInit (≤ 2 s) | as leituras retornam FFh / 00h; identidade em branco |
| 3 | Identificar | ler A0h 0–95; byte 0 = 03h seleciona o parser do SFF-8472 | ler 0–127 e a página superior 00h; byte 0 = 0Dh/11h, byte 1 revisão | ler a página inferior e a página superior 00h; byte 0 = 18h/19h…, byte 1 versão do CMIS | unknown module type |
| 4 | Validar | CC_BASE, CC_EXT; coerência entre identificador/conector/codificação | CC_BASE, CC_EXT | soma de verificação da página 00h | invalid EEPROM, checksum error — Somas de verificação |
| 5 | Decodificar o tipo | bytes de conformidade 3–10, 36; byte de taxa 12/66; comprimentos; comprimento de onda | bytes 131–138, 192; 140/222 | tipo de mídia 85, descritores de aplicação | speed and type not supported — Códigos de conformidade |
| 6 | Política | nome/PN do fabricante (e possivelmente assinatura) comparados com a tabela de compatibilidade | igual | igual | unsupported transceiver, errdisable — Bloqueio do fabricante |
| 7 | Classe de potência | bits de nível do byte 64 vs. orçamento da porta | classe do byte 129; gravar o byte 93 para liberar a baixa potência / habilitar as classes 5–8 | classe do byte 200 vs. porta; desativar o LPMode ou limpar LowPwrRequestSW → módulo PwrUp → Ready | retido em baixa potência, power exceeds — Energia e térmica |
| 8 | Configurar | seleção de taxa RS0/RS1 ou por software; velocidade, FEC, SGMII/1000BASE-X do lado do host | CDR ligado/desligado (98), seleção de taxa (87–88), lanes de breakout no host | escolher AppSel/DataPathID no conjunto de controle em estágios → ApplyDPInit → caminho de dados Init → Initialized | LOL, incompatibilidade de FEC, breakout recusado — Velocidade e taxa |
| 9 | Habilitar o Tx | pino TX_DISABLE baixo ou bit por software limpo (A2h 110.6) | byte 86 = 00h | página 10h, byte 130 = 00h → DPTxTurnOn → DPActivated | a extremidade remota vê −40 dBm — Checklist de falta de link |
| 10 | Link | o PHY/MAC vê sinal; AN/treinamento de enlace em DAC | igual por lane | igual por caminho de dados | link inativo com níveis bons |
| 11 | Monitorar | sondar os monitores e as flags de A2h a cada poucos segundos; pinos TX_FAULT / RX_LOS | IntL → ler flags 3–21; sondar monitores | IntL → flags do módulo + flags de lane da página 11h; VDM | alarmes, flapping — Níveis de DDM, Flapping de link |
| 12 | Remover | MOD_ABS alto → desmontagem | ModPrsL alto | ModPrsL alto | estado obsoleto se o debounce falhar |
As etapas 3–6 acontecem em baixa potência para módulos QSFP e CMIS: o host valida antes de gastar energia na óptica. É por isso que um módulo bloqueado ou mal codificado nunca acende o laser, e por isso a extremidade remota lê −40 dBm em um módulo que está eletricamente bom.
Tempos que o host espera
| Espera | SFP | QSFP | CMIS |
|---|---|---|---|
| Gestão pronta após a inserção | 300 ms | 2 s | ≤ 2 s (MgmtInit) e depois estado LowPwr |
| Após liberar a baixa potência | — | até Data_Not_Ready ser zerado | até o estado do módulo ser Ready (duração máxima anunciada na página 01h) |
| Inicialização do caminho de dados | — | — | anunciada por etapa (código de nibble: < 1 ms … < 50 min) |
| Do Tx habilitado até emitir luz | t_on ≤ 1 ms | ton_txdis 100 ms / toff 400 ms | duração de DPTxTurnOn anunciada |
| Da flag até a interrupção | — | ton_IntL 200 ms | conforme a especificação de hardware |
Tempos em nível de barramento (t_WR, alongamento de clock): Interface de dois fios.
Pontos de política em que os hosts diferem
- Rigor da lista branca — de “apenas o nome do fabricante” até blocos assinados e específicos do fabricante.
- O que acontece na rejeição — porta desabilitada, laser desligado, ou link permitido com um registro no log (Ópticas de terceiros).
- Profundidade do CMIS — controle completo de aplicação/caminho de dados versus “liberar o LPMode e torcer” (Problemas do CMIS).
- Padrões de FEC e velocidade — derivados dos códigos de conformidade ou configurados de forma estática.
- Sondagem de DDM — intervalo, se os limiares acionam o desligamento da porta, se é aplicada calibração externa (Calibração).
CLI específica de cada fabricante para ver onde o host parou: Verificando ópticas em switches.
Em que um programador se diferencia de um host
Um programador como o CodingBox executa as etapas 1–5 e 11, mas sem política: ele lê tudo o que o módulo expõe, incluindo áreas do fabricante e bytes de senha, mantém os módulos CMIS em baixa potência a menos que seja instruído de outra forma, e nunca habilita o laser por conta própria. É por isso que um módulo pode parecer saudável na bancada e ainda assim falhar em uma porta — a bancada não tem a etapa 6.
No CodingBox
O Check transceiver mostra o resultado das etapas 3–5 como um host as veria — tipo, taxa, somas de verificação, classe de potência — e sinaliza inconsistências antes de o módulo chegar a uma porta; o DDM cobre a etapa 11 com monitores e flags em tempo real.
O hardware por trás da etapa 6 (política) e os limites de grupo de portas por trás da etapa 8: Por dentro de um switch, Como cada NOS valida um módulo.