Management plane: console, OOB, APIs, SNMP & telemetry for optics
Everything a switch knows about a transceiver — identity, DDM, alarms, the reason it refused a module — lives in the control plane and reaches you through the management plane: a console cable, an out-of-band port, a CLI or API session, an SNMP poll, a telemetry stream or a syslog line. This page lists the access methods, the automation interfaces, the SNMP objects and telemetry paths that carry transceiver data on the main platforms, the syslog messages worth alerting on, and the operational routines (backups, upgrades, ZTP) that touch optics.
Access methods
| Method | Port / interface | Use | Notes |
|---|
| Console | RJ45 RS-232 (Cisco rollover cable, 9600 8N1) and/or USB-C / mini-USB (virtual COM) | first configuration, recovery, watching boot | 115 200 on many newer boxes; USB console needs a driver on Windows |
| Out-of-band management | dedicated mgmt0 / Management1 / me0 Ethernet, own VRF | day-to-day management, keepalives for MLAG, telemetry | separate physical network; 1G copper, sometimes SFP (Port naming & LEDs) |
| In-band | loopback or SVI over the data network | when OOB is absent | lost when the data plane is |
| BMC / IPMI / Redfish | on white-box and some DC switches | power, sensors, firmware | server-style |
| Bluetooth / USB app | some campus switches | initial setup from a phone | — |
Configuration and automation interfaces
| Interface | Standards | Where | Optics use |
|---|
| CLI (SSH) | — | all | show interfaces transceiver and friends (Verifying optics on a switch) |
| NETCONF / YANG | RFC 6241, OpenConfig and native models | Junos, IOS-XE/XR, NX-OS, Arista, Huawei, SONiC (partial) | openconfig-platform-transceiver reads identity and DDM |
| RESTCONF / REST | RFC 8040, vendor REST (Arista eAPI, AOS-CX REST, NX-API, Dell OS10 REST) | most | JSON of the same show commands |
| gNMI / gRPC | OpenConfig gNMI | Arista, Cisco, Juniper, Nokia, SONiC | streaming telemetry subscriptions |
| SNMP | v2c / v3 | all | polling DDM and status (Monitoring) |
| Ansible / Terraform / Python | over the above | — | fleet-wide transceiver inventory |
| ZTP / PoAP / autoinstall | DHCP options + HTTP/TFTP | provisioning | a new switch pulls image and config; optics policy commands must be in that config |
SNMP objects for transceivers
| Scope | MIB / object | Notes |
|---|
| Interface status and counters (all) | IF-MIB: ifOperStatus, ifHighSpeed, ifInErrors, ifHCInOctets; EtherLike-MIB: dot3StatsFCSErrors | link and CRC |
| Physical inventory (all) | ENTITY-MIB: entPhysicalDescr, entPhysicalModelName (PN), entPhysicalSerialNum (SN), entPhysicalMfgName (vendor), entPhysicalClass = port/module | modules appear as child entities of the port |
| Sensors (standard) | ENTITY-SENSOR-MIB (RFC 3433): entPhySensorType (celsius, volts, amperes, dBm as watts ×10^scale), entPhySensorValue, entPhySensorScale, entPhySensorPrecision | used by Arista, Cisco (some), Dell, SONiC |
| Cisco | CISCO-ENTITY-SENSOR-MIB (entSensorValue, thresholds in CISCO-ENTITY-SENSOR-EXT-MIB), CISCO-ENTITY-FRU-CONTROL-MIB; transceiver DOM indexes under the port's child entities | IOS/IOS-XE/NX-OS |
| Juniper | JUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower, jnxDomCurrentTxLaserOutputPower, jnxDomCurrentTxLaserBiasCurrent, jnxDomCurrentModuleTemperature, jnxDomCurrentModuleVoltage, alarm/warning columns; per-lane table jnxDomCurrentLane* | values in 0.01 dBm / 0.001 mA |
| Huawei | HUAWEI-ENTITY-EXTENT-MIB: hwEntityOpticalRxPower, hwEntityOpticalTxPower, hwEntityOpticalBiasCurrent, hwEntityOpticalTemperature, hwEntityOpticalVendorSn, hwEntityOpticalVendorPn, hwEntityOpticalType; hwEntityOpticalUserEeprom | VRP |
| H3C | HH3C-TRANSCEIVER-INFO-MIB: hh3cTransceiverHardwareType, hh3cTransceiverVendorName, hh3cTransceiverCurRXPower, hh3cTransceiverCurTXPower, hh3cTransceiverTemperature | Comware |
| HPE Aruba | ENTITY-SENSOR-MIB on AOS-CX; hpicfTransceiver MIB on AOS-S | — |
| Dell OS10 | ENTITY-SENSOR-MIB + os10-platform REST | — |
| Extreme | EXTREME-PORT-MIB / extremeOpticalPort on EXOS | — |
| MikroTik | MIKROTIK-MIB: mtxrOpticalTable (mtxrOpticalRxPower, mtxrOpticalTxPower, mtxrOpticalTemperature, mtxrOpticalVoltage, mtxrOpticalTxBias) | RouterOS |
| Ubiquiti | UBNT-… limited; use SSH/ethtool -m | — |
| SONiC | ENTITY-SENSOR-MIB via snmpagent; state in redis TRANSCEIVER_DOM_SENSOR table | — |
| Traps | linkDown/linkUp (IF-MIB), vendor DOM threshold traps (jnxDomAlarm*, hwEntityOpticalTrap, cefcFRU*) | — |
Scaling advice — poll DDM every 60–300 s, not every 10 s; alert on deltas: Monitoring.
Streaming telemetry paths (OpenConfig)
| Path | Data |
|---|
/components/component[name=<port>-transceiver]/transceiver/state/ | vendor, vendor-part, serial-no, form-factor, connector-type, ethernet-pmd, present, date-code |
…/transceiver/physical-channels/channel[index]/state/ | input-power, output-power, laser-bias-current per lane (instant/avg/min/max) |
/components/component/state/temperature/instant | module temperature |
/interfaces/interface[name]/state/counters/ | in-crc-errors, in-fcs-errors, carrier-transitions (flap count) |
/interfaces/interface/ethernet/state/ | negotiated-port-speed, fec-mode (newer models) |
Vendor native (Cisco XR Cisco-IOS-XR-controller-optics-oper, Junos /junos/system/linecard/optics/, Arista /Sysdb/hardware/xcvr/status/) | richer: thresholds, alarms, lane states |
Sample intervals of 30–60 s for DDM and 10 s for counters are typical; telemetry is push-based so hundreds of ports cost the switch little.
Syslog messages worth alerting on
| Class | Examples (wording varies) | Meaning |
|---|
| Module accepted/rejected | %PHY-4-UNSUPPORTED_TRANSCEIVER, Transceiver … unsupported, phony transceiver, Mod_Inv, PIC … optics unsupported | policy (How each NOS validates a module) |
| Module inserted/removed | %SFF8472-…, XCVR inserted/removed, Transceiver present | inventory |
| DOM threshold | Rx power low warning, TEMP_HIGH_ALARM, jnxDomAlarmSet, %SFF8472-5-THRESHOLD_VIOLATION | levels (Thresholds & alarms) |
| Link state | %LINK-3-UPDOWN, %LINEPROTO-5-UPDOWN, SNMP_TRAP_LINK_DOWN | flaps (Link flapping) |
| Errdisable | %PM-4-ERR_DISABLE gbic-invalid, link-flap error detected | port shut by policy |
| FEC | FEC uncorrectable errors, pre-FEC BER threshold | marginal link |
| Power/thermal | power class exceeds, Module … high temperature, fan/PSU alarms | Power & thermal |
| CMIS | Module not ready, DataPath … state, CDB failure | CMIS issues |
Operational routines that touch optics
| Routine | What to do about modules |
|---|
| Configuration backup | includes the optics-policy commands (service unsupported-transceiver, FEC settings, breakout) — losing them on restore takes ports down |
| Software upgrade | read release notes for transceiver items, test on a canary, keep the inventory of coded modules (Compatibility matrices & firmware) |
| Module firmware | some NOSes push module firmware (Cisco, Arista, Juniper for OEM optics) — a new NOS can update modules silently (Controller & firmware) |
| Inventory export | show inventory / ENTITY-MIB / telemetry into the CMDB: vendor, PN, SN, port |
| ZTP | the provisioning config must already contain FEC/speed/policy lines, otherwise a freshly provisioned leaf comes up with dark uplinks |
| Time sync | NTP/PTP so DDM history and syslog line up across devices |
| AAA and logging | record who changed a port's speed/FEC — half of "the optic died" tickets are configuration changes |
In CodingBox
The bench read and the switch's telemetry describe the same bytes: vendor, PN, SN, date code, DDM values and thresholds. Exporting the switch inventory and matching serial numbers against the code database finds modules whose identity was coded, whose thresholds differ from the datasheet, or which moved between ports (Check transceiver, Reading DDM with tools).