Lettura del DDM con strumenti: CLI, ethtool, SNMP, OpenConfig · Diagnostica DDM/DOM · Ricetrasmettitori ottici e cavi · Documentazione · CodingBox
CodingBox Documentazione

Lettura del DDM con strumenti: CLI, ethtool, SNMP, OpenConfig

Gli stessi byte A2h ti raggiungono attraverso molte vie: la CLI di uno switch, una NIC Linux, un poller SNMP, una pipeline di telemetria in streaming o un dump esadecimale grezzo generato da un programmatore. Questa pagina è il ricettario — i comandi, gli OID e i percorsi, e come decodificare un dump grezzo a mano quando lo strumento che hai davanti non lo fa.

CLI di switch e router

PiattaformaComando DDMNote
Cisco IOS / IOS-XEshow interfaces transceiver detailsoglie mostrate insieme ai valori; show idprom interface per l’identità
Cisco NX-OSshow interface ethernet1/1 transceiver detailsper lane, per i QSFP
Cisco IOS-XRshow controllers optics 0/0/0/0include allarmi e tabella delle lane
Juniper Junosshow interfaces diagnostics optics xe-0/0/0soglie e stato degli allarmi inclusi
Arista EOSshow interfaces ethernet 1 transceiver dom… transceiver detail aggiunge le soglie
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 per i dettagli del modulo
SONiCshow interfaces transceiver eeprom -d Ethernet0sfputil show eeprom -d; … presence, … lpmode

Equivalenti orientati all’identità e cosa cercare: Verifica delle ottiche sugli switch.

Linux: ethtool

ethtool -m eth0                 # decoded identity + DDM (when the driver supports module EEPROM)
ethtool -m eth0 raw on hex on   # raw dump: A0h at 0x0000–0x00ff, A2h at 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128   # A2h lower page only
ethtool --show-fec eth0         # FEC mode
ethtool -S eth0 | grep -i fec   # fec_corrected_blocks / fec_uncorrectable_blocks

Per i moduli QSFP/CMIS il dump segue la struttura a pagine esposta dal driver (pagina inferiore, pagina superiore 00h, poi le pagine 01h/02h/03h/10h/11h dove supportate). ethtool decodifica completamente SFF-8472 e SFF-8636, e parzialmente CMIS, a seconda della versione del kernel.

Decodificare a mano un dump grezzo di A2h

La pagina inferiore di A2h si trova all’offset 0x0100 in un dump ethtool -m … raw on hex on. I monitor in tempo reale iniziano al byte 96 di A2h → offset 0x0160 nel dump:

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

Queste conversioni presuppongono la calibrazione interna (A0h byte 92 bit 5); con calibrazione esterna applica prima le costanti di A2h 56–91 (Calibrazione). Le soglie si trovano in A2h 0–39 negli stessi formati; stato/controllo e flag in 110–117 (Soglie e allarmi). QSFP: monitor del modulo ai byte 22–27, monitor di lane a 34–57 della pagina inferiore; CMIS: pagina inferiore 14–25 e pagina 11h 154–201 (Diagnostica per lane).

SNMP

Standard: ENTITY-SENSOR-MIB (RFC 3433)

La maggior parte delle piattaforme espone ogni valore DDM come sensore fisico:

OggettoOIDSignificato
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 = units, 7 = milli, 6 = micro…
entPhySensorPrecision1.3.6.1.2.1.99.1.1.1.3cifre decimali nel valore
entPhySensorValue1.3.6.1.2.1.99.1.1.1.4la lettura
entPhySensorOperStatus1.3.6.1.2.1.99.1.1.1.51 ok, 2 unavailable, 3 nonoperational

L’indice del sensore si associa a una porta tramite ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn). Un valore di tipo 14 (dBm), scala 8, precisione 2 e valore −1234 significa −12,34 dBm.

MIB dei produttori

ProduttoreMIB / oggetto di esempio
CiscoCISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), soglie in entSensorThresholdTable
JuniperJUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0,01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8)
Arista, Dell, molti altrisolo ENTITY-SENSOR-MIB
Huaweioggetti ottici di HUAWEI-ENTITY-EXTENT-MIB (potenza Rx/Tx, bias, temperatura)
MikroTikMIKROTIK-MIB mtxrOpticalTable (potenza Rx/Tx, temperatura, tensione, bias)

Gli NMS open source (LibreNMS, template Zabbix, Observium) li individuano automaticamente e li rappresentano in grafici; Prometheus usa snmp_exporter con gli stessi OID.

Telemetria in streaming (gNMI / OpenConfig)

openconfig-platform-transceiver modella un modulo come componente con canali fisici:

/components/component[name=Ethernet1/1]/transceiver/state/…            vendor, part, serial, form-factor
/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

Ogni leaf porta instant, avg, min, max sull’intervallo di campionamento. Sottoscrivi in modalità SAMPLE a 10–60 s; gnmic → Prometheus/InfluxDB → Grafana è la pipeline comune. I modelli nativi dei produttori (Cisco, Juniper, Arista) espongono gli stessi dati sotto i propri percorsi e di solito aggiungono contatori FEC e stato degli allarmi.

Windows e altri host

Su Windows non esiste uno strumento DDM nativo; le utility dei produttori di NIC (adattatori server) a volte mostrano i dati del modulo. FreeBSD mostra l’identità SFP e il DDM con ifconfig <if> -v sui driver supportati. Su un host che non riesce a leggere il modulo, il banco è il ripiego.

Frequenza di polling e buone pratiche

  • I monitor del modulo si aggiornano alcune volte al secondo; un polling ogni 1–5 minuti basta per l’andamento nel tempo ed è delicato sul bus a due fili.
  • Alcune piattaforme serializzano tutte le letture dei moduli attraverso un’unica CPU di gestione — SNMP walk aggressivi su centinaia di porte possono rallentare o andare in timeout.
  • Non eseguire mai un secondo master (clip del programmatore, strumento in banda) su un bus che l’host sta interrogando (Interfaccia a due fili).

Confrontare le fonti

CLI, SNMP e telemetria leggono tutti gli stessi byte; le differenze di qualche decimo di dB tra loro sono dovute ai tempi di lettura, non a errori. Una differenza tra la lettura dell’host e la lettura sul banco dello stesso modulo merita di essere capita: temperatura, Vcc e gestione della calibrazione cambiano i numeri (Precisione e limiti).

In CodingBox

CodingBox è la porta d’accesso al banco: DDM mostra i monitor e i flag decodificati, con i byte grezzi a un clic di distanza nell’EEPROM editor, e l’esportazione CSV alimenta gli stessi dashboard che consumano SNMP o telemetria — così un modulo ha un’unica storia dall’ispezione in ingresso alla dismissione (Monitoraggio).


Se trovi un’imprecisione o un errore in questo articolo, seleziona il passaggio corrispondente e premi Ctrl+Enter per .