CodingBox Documentation

Per-lane diagnostics: QSFP & CMIS

A four- or eight-lane module has one temperature and one supply — but four or eight lasers and receivers, each with its own bias, Tx power and Rx power. Diagnostics for QSFP-class and CMIS modules are therefore organised per lane, and the classic hidden fault is a single lane degrading while the module total looks fine.

SFF-8636 (QSFP+, QSFP28)

Everything sits at one two-wire address with paged memory (SFF-8636). Units are the same as SFF-8472.

Lower page — live values and flags

BytesContents
3Tx LOS (bits 7–4) / Rx LOS (bits 3–0) per lane
4Tx adaptive-EQ fault / Tx fault per lane
5Tx LOL / Rx LOL per lane — see CDR
6–7temperature and Vcc alarm/warning flags
9–14per-lane Rx power, Tx bias and Tx power alarm/warning flags
22–23module temperature
26–27module Vcc
34–41Rx power, lanes 1–4 (2 bytes each)
42–49Tx bias, lanes 1–4
50–57Tx power, lanes 1–4

Upper page 03h — thresholds: module (temperature, Vcc) at bytes 128–175, channel (Rx power, Tx bias, Tx power) at 176–223. Whether Tx power monitoring is implemented at all is advertised in upper page 00h byte 220 — many 40G modules report Rx only.

CMIS (QSFP-DD, OSFP, QSFP112, SFP-DD)

CMIS separates module-level and lane-level data and scales to eight lanes (banks for more):

LocationContents
Lower page bytes 8–13module-level flags
Lower page bytes 14–25module monitors: temperature (14–15), Vcc (16–17), aux 1–3
Page 02hmodule and lane thresholds
Page 11h bytes 134–153lane flags (LOS, LOL, Tx fault, power/bias alarms)
Page 11h bytes 154–169Tx power, lanes 1–8
Page 11h bytes 170–185Tx bias, lanes 1–8 (with a scaling factor advertised on page 01h)
Page 11h bytes 186–201Rx power, lanes 1–8

Which monitors exist is advertised on page 01h (byte 160 for Tx bias/power/Rx power, temperature and Vcc), so a host — or CodingBox — knows which fields to trust.

Versatile Diagnostics Monitoring (VDM)

CMIS adds an optional layer beyond analogue monitors: VDM on pages 20h–2Fh (descriptors on 20h–27h, samples on 28h–2Fh). Observables are advertised per module and can include:

  • pre-FEC bit error ratio and FEC error count per lane, host and media side;
  • SNR of the electrical (host) and optical (media) interfaces;
  • laser temperature and other module-specific values;
  • flags with their own thresholds.

Pre-FEC BER is the earliest warning on a PAM4 link: it climbs long before FEC stops correcting, while Rx power may still look normal. On 400G/800G fabrics it is the metric to trend (AI clusters).

Reading multi-lane data correctly

  • Compare lanes with each other. One lane 3 dB below its siblings is a fault, even if all four are "in range".
  • Check bias per lane — one laser ageing faster than the others shows up here first.
  • Mind breakout. A 4×25G module broken out into four links: a bad lane means one of the four links is bad, not "the module is 25% worse".
  • LOL/LOS are per lane too; a single-lane LOL on a multi-lane link is a CDR or input-signal problem on that lane.

In CodingBox

The DDM screen shows Rx power, Tx power and bias per lane with per-lane thresholds, and logs them over time — the view that catches the single-lane failure LACP hides (Failures). For CMIS modules the EEPROM editor exposes page 11h and the module state alongside.