CodingBox Documentação

Leitura de DDM com ferramentas: CLI, ethtool, SNMP, OpenConfig

Os mesmos bytes de A2h chegam até você por muitas portas: a CLI de um switch, uma NIC Linux, um coletor SNMP, um pipeline de telemetria em streaming, ou um dump hexadecimal bruto de um programador. Esta página é o livro de receitas — os comandos, os OIDs e caminhos, e como decodificar manualmente um dump bruto quando a ferramenta à sua frente não faz isso.

CLI de switches e roteadores

PlataformaComando DDMNotas
Cisco IOS / IOS-XEshow interfaces transceiver detaillimiares mostrados junto aos valores; show idprom interface para identidade
Cisco NX-OSshow interface ethernet1/1 transceiver detailspor lane para QSFP
Cisco IOS-XRshow controllers optics 0/0/0/0inclui alarmes e tabela de lanes
Juniper Junosshow interfaces diagnostics optics xe-0/0/0limiares e estado de alarme incluídos
Arista EOSshow interfaces ethernet 1 transceiver dom… transceiver detail adiciona limiares
Huawei VRPdisplay transceiver interface XGigabitEthernet0/0/1 verbose
MikroTik RouterOS/interface ethernet monitor sfp1sfp-temperature, sfp-tx-power, sfp-rx-power, sfp-tx-bias-current
Dell OS10show interface ethernet 1/1/1 transceiver
NVIDIA Cumulus / Onyxl1-show swp1 / show interfaces ethernet 1/1 transceivermlxlink -d <dev> -p <port> -m para detalhes do módulo
SONiCshow interfaces transceiver eeprom -d Ethernet0sfputil show eeprom -d; … presence, … lpmode

Equivalentes voltados à identidade e o que procurar: Verificando ópticas em switches.

Linux: ethtool

ethtool -m eth0                 # identidade decodificada + DDM (quando o driver suporta a EEPROM do módulo)
ethtool -m eth0 raw on hex on   # dump bruto: A0h em 0x0000–0x00ff, A2h em 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128   # apenas a página inferior de A2h
ethtool --show-fec eth0         # modo de FEC
ethtool -S eth0 | grep -i fec   # fec_corrected_blocks / fec_uncorrectable_blocks

Para módulos QSFP/CMIS o dump segue o layout paginado que o driver expõe (página inferior, superior 00h, depois as páginas 01h/02h/03h/10h/11h quando suportadas). ethtool decodifica totalmente SFF-8472 e SFF-8636, e parcialmente CMIS, dependendo da versão do kernel.

Decodificando manualmente um dump bruto de A2h

A página inferior de A2h no offset 0x0100 em um dump ethtool -m … raw on hex on. Os monitores ao vivo começam no byte 96 de A2h → offset 0x0160 do dump:

0x0160:  1a 80 80 e8 1b 58 0f a0 03 e8 ...
         └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
        temp    Vcc   bias   Tx     Rx
BytesBrutoConversãoValor
96–97 temperatura1A 80 = 6784 (com sinal)÷ 25626,5 °C
98–99 Vcc80 E8 = 33000× 100 µV3,300 V
100–101 Tx bias1B 58 = 7000× 2 µA14,0 mA
102–103 Tx power0F A0 = 4000× 0,1 µW = 400 µW; 10·log10(0,400)−3,98 dBm
104–105 Rx power03 E8 = 1000× 0,1 µW = 100 µW−10,0 dBm

Essas conversões assumem calibração interna (A0h byte 92 bit 5); com calibração externa, aplique antes as constantes de A2h 56–91 (Calibração). Os limiares ficam em A2h 0–39 nos mesmos formatos; status/controle e flags em 110–117 (Limiares e alarmes). QSFP: monitores do módulo nos bytes 22–27, monitores de lane em 34–57 da página inferior; CMIS: página inferior 14–25 e página 11h 154–201 (Diagnóstico por lane).

SNMP

Padrão: ENTITY-SENSOR-MIB (RFC 3433)

A maioria das plataformas expõe cada valor de DDM como um sensor físico:

ObjetoOIDSignificado
entPhySensorType1.3.6.1.2.1.99.1.1.1.14 voltsDC, 5 amperes, 8 celsius, 14 dBm
entPhySensorScale1.3.6.1.2.1.99.1.1.1.28 = unidades, 7 = mili, 6 = micro…
entPhySensorPrecision1.3.6.1.2.1.99.1.1.1.3casas decimais no valor
entPhySensorValue1.3.6.1.2.1.99.1.1.1.4a leitura
entPhySensorOperStatus1.3.6.1.2.1.99.1.1.1.51 ok, 2 indisponível, 3 não operacional

O índice do sensor mapeia para uma porta através da ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn). Um valor do tipo 14 (dBm), escala 8, precisão 2 e valor −1234 significa −12,34 dBm.

MIBs de fabricantes

FabricanteMIB / objeto de exemplo
CiscoCISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), limiares em entSensorThresholdTable
JuniperJUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0,01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8)
Arista, Dell e muitos outrosapenas ENTITY-SENSOR-MIB
Huaweiobjetos ópticos da HUAWEI-ENTITY-EXTENT-MIB (potência Rx/Tx, bias, temperatura)
MikroTikmtxrOpticalTable da MIKROTIK-MIB (potência Rx/Tx, temperatura, tensão, bias)

NMS de código aberto (LibreNMS, templates do Zabbix, Observium) descobrem esses objetos automaticamente e os representam em gráficos; o Prometheus usa o snmp_exporter com os mesmos OIDs.

Telemetria em streaming (gNMI / OpenConfig)

openconfig-platform-transceiver modela um módulo como um componente com canais físicos:

/components/component[name=Ethernet1/1]/transceiver/state/…            fabricante, número de peça, número de série, fator de forma
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/input-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/output-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/laser-bias-current/instant
/components/component[name=…]/state/temperature/instant

Cada leaf carrega instant, avg, min, max ao longo do intervalo de amostragem. Assine no modo SAMPLE a cada 10–60 s; gnmic → Prometheus/InfluxDB → Grafana é o pipeline mais comum. Os modelos nativos de cada fabricante (Cisco, Juniper, Arista) expõem os mesmos dados sob seus próprios caminhos e costumam acrescentar contadores de FEC e estado de alarme.

Windows e outros hosts

Não existe uma ferramenta de DDM nativa no Windows; utilitários de fabricantes de NIC (adaptadores de servidor) às vezes mostram os dados do módulo. O FreeBSD mostra a identidade e o DDM do SFP com ifconfig <if> -v em drivers compatíveis. Em um host que não consegue ler o módulo, a bancada é o recurso alternativo.

Taxas de sondagem e etiqueta

  • Os monitores do módulo se atualizam algumas vezes por segundo; sondar a cada 1–5 minutos é suficiente para tendências e é gentil com o barramento de dois fios.
  • Algumas plataformas serializam todas as leituras de módulo através de uma única CPU de gerenciamento — varreduras SNMP agressivas de centenas de portas podem ficar lentas ou expirar.
  • Nunca execute um segundo mestre (clipe de programador, ferramenta in-band) em um barramento que o host está sondando (Interface de dois fios).

Comparando fontes

A CLI, o SNMP e a telemetria leem os mesmos bytes; diferenças de alguns décimos de dB entre eles são questão de tempo de leitura, não erro. Uma diferença entre a leitura do host e a leitura na bancada do mesmo módulo vale a pena entender: temperatura, Vcc e o tratamento da calibração mudam os números (Precisão e limites).

No CodingBox

O CodingBox é a porta da bancada: o DDM mostra os monitores e as flags decodificados, com os bytes brutos a um clique de distância no EEPROM editor, e a exportação em CSV alimenta os mesmos painéis que consomem SNMP ou telemetria — assim um módulo tem um único histórico desde a inspeção de entrada até o descomissionamento (Monitoramento).


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