CodingBox Documentação

Limiares, alarmes e flags

Um módulo não apenas informa valores — ele também carrega os limites contra os quais esses valores são avaliados e levanta flags quando um limite é ultrapassado. O switch lê tudo isso da memória do módulo; ele não inventa nada. É por isso que dois módulos aparentemente idênticos podem se comportar de maneira diferente no mesmo enlace.

Quatro limiares por parâmetro

Todo parâmetro de DDM tem quatro limites programados de fábrica:

LimiarSignificado
Alarme altovalor acima deste → o módulo pode estar falhando ou o enlace pode estar inutilizável
Aviso altoaproximando-se do limite alto
Aviso baixoaproximando-se do limite baixo
Alarme baixovalor abaixo deste → por exemplo, Rx abaixo da sensibilidade do receptor

Eles definem três zonas: normal (entre os avisos), aviso (entre um aviso e o alarme correspondente) e alarme (além de um alarme). Um módulo saudável de 10 km pode vir com limiares de Rx de aproximadamente +0,5 / −2 / −18 / −22 dBm (HA / HW / LW / LA) — mas cada fabricante define os seus.

Onde ficam armazenados — SFF-8472

Bytes 0–39 de A2h, dois bytes por limiar, nas mesmas unidades dos monitores (Parâmetros e unidades):

BytesParâmetro (HA, LA, HW, LW)
0–7Temperatura
8–15Vcc
16–23Polarização de Tx
24–31Potência de Tx
32–39Potência de Rx
40–55limiares estendidos opcionais (temperatura do laser, TEC)

A ordem dentro de cada grupo é alarme alto, alarme baixo, aviso alto, aviso baixo.

Flags — sobre o que o host realmente age

Bytes de A2hConteúdo
110status/controle: estado de TX_DISABLE, estado de RS0/RS1, TX_FAULT, RX_LOS, data-ready
112–113flags de alarme — um bit por parâmetro, alto e baixo
116–117flags de aviso — um bit por parâmetro, alto e baixo

O módulo define uma flag quando um valor ultrapassa seu limiar e a limpa quando o valor retorna. Um host que mostra “alarme baixo de potência de Rx” está apenas lendo o bit 1 do byte 113 — nada mais. Se as flags são implementadas ou não é declarado no bit 7 do byte 93 de A0h.

QSFP e CMIS

O mesmo modelo se aplica, com flags por lane:

  • SFF-8636 — limiares do módulo na página superior 03h, bytes 128–175 (temperatura, Vcc), limiares de canal nos bytes 176–223 (potência de Rx, polarização de Tx, potência de Tx); flags na página inferior, bytes 3–14 (LOS/fault/LOL em 3–5, alarmes de temperatura e Vcc em 6–7, alarmes de potência e polarização por lane em 9–14).
  • CMIS — limiares do módulo na página 02h, limiares de lane mais adiante na mesma página; flags do módulo nos bytes inferiores 8–13, flags de lane na página 11h, bytes 134–153.

Veja Diagnóstico por lane.

Por que “sem alarme” não é “saudável”

Os limiares são a opinião do fabricante do módulo sobre os próprios limites, não os do enlace. Consequências comuns:

  • Limiares generosos — um módulo cujo alarme de Rx baixa fica em −24 dBm permanecerá silencioso em um receptor que já apresenta erros em −20 dBm.
  • Tx fictícia — um valor de Tx constante nunca pode ultrapassar um limiar.
  • O orçamento de potência é sobre margem, não sobre limites: um enlace em −17 dBm com um aviso em −18 dBm tem 1 dB de margem e falhará no primeiro conector sujo.

Os alertas operacionais devem, portanto, usar suas próprias linhas de base e deltas (Monitoramento), com as flags do módulo como um recurso de reserva.

Editando limiares

Como os limiares vivem na memória do módulo, eles podem ser lidos e regravados. Usos legítimos: restaurar limites sensatos em um módulo codificado com zeros, alinhar uma frota, ou definir um aviso mais apertado para obter um alerta mais cedo. A área protegida de A2h normalmente exige a senha do módulo.

No CodingBox

A tela DDM desenha os limiares de alarme e aviso do módulo diretamente nos gráficos e colore os valores por zona. Os bytes de limiar 0–39 e as flags 112–117 são visíveis e editáveis no EEPROM editor, com a soma de verificação CC_DMI (byte 95) recalculada na gravação.

Posições exatas de bytes de cada limiar, flag e máscara: Mapa A2h do SFF-8472, página inferior do SFF-8636 e página 03h, página 02h do CMIS e página 11h.


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