CMIS – gemeinsames Management · Spezifikationen und Standards · Optische Transceiver und Kabel · Dokumentation · CodingBox
CodingBox Dokumentation

CMIS – gemeinsames Management

CMIS, die Common Management Interface Specification, ist das Verwaltungsmodell für jeden neuen High-Speed-Formfaktor: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD und SFP112 (als SFP+ mit CMIS), DSFP, COBO und CMIS-fähige QSFP. Es begann in der QSFP-DD-MSA (CMIS 3.0, 2018), wurde von den OSFP- und COBO-Gruppen übernommen und wird seit Version 5.0 (2021) beim OIF gepflegt. Im Vergleich zu SFF-8636 ist es keine größere Speicherkarte, sondern ein anderes Modell: gebankte Seiten für bis zu 32 Lanes, explizite Zustandsautomaten für das Modul und jeden Datenpfad, Anwendungen statt Compliance-Bitfeldern, vielseitige Diagnostik (VDM) und ein Befehlskanal (CDB) für Firmware und erweiterte Funktionen. Versions-Byte und Historie: Spezifikationsrevisionen.

Speichermodell

BereichAdressierungInhalt
Untere Seite (Byte 0–127)immer sichtbarIdentifier, Revision, Modulzustand, Flags, Modul-Monitore, globale Steuerungen, Medientyp, Anwendungsdeskriptoren 1–8, Passwort, Bank-Auswahl 126, Seitenauswahl 127
Obere Seite 00h (128–255)Seite 127 = 00hHerstellerblock, Leistungsklasse, Steckverbinder, Kabellängen, Medientechnologie, Prüfsumme
01hFähigkeitenFirmware-/Hardware-Revisionen, Linklängen, Wellenlänge, unterstützte Seiten und Bänke, Dauern, Signalintegritäts-Steuerungen, Deskriptoren 9–15
02hSchwellwerteAlarm-/Warnschwellwerte für Modul und Lane
04hLaserfähigkeitenRaster und Bereiche durchstimmbarer Laser (SFF-TA-1004-Abstammung)
10h (gebankt)Lane-SteuerungDatenpfad-Deinit, Tx-Deaktivierung, Polarität, Squelch, Equalisierung, gestufte Steuerungssätze
11h (gebankt)Lane-StatusDatenpfad-Zustände, Flags pro Lane, Lane-Monitore, Konfigurationsstatus, aktiver Steuerungssatz
12h (gebankt)Steuerung durchstimmbarer LaserKanal/Wellenlänge pro Lane
13h–14h (gebankt)DiagnostikLoopbacks, PRBS-Generatoren und -Prüfer
20h–2Fh (gebankt)VDMDeskriptoren, Messwerte, Schwellwerte, Flags
9FhCDBBefehlsblock: Befehls-ID, Längen, Prüfsumme, lokale Nutzdaten
A0h–AFhCDB EPLerweiterte Nutzdaten für große Übertragungen (Firmware-Images)
80h–FFh (sonstige)Herstellerbenutzerdefinierte Seiten

Eine Bank adressiert 8 Lanes: Bank 0 Lanes 1–8, Bank 1 Lanes 9–16 und so weiter; wie viele implementiert sind, wird auf Seite 01h angekündigt. Module mit nur Seite 00h setzen das Flat-Memory-Bit (Byte 2 Bit 7). Bus: eine Adresse A0h, bis zu 400 kHz, ModSelL pro Steckplatz — Zweidraht-Schnittstelle.

Untere Seite — die Bytes, mit denen der Host arbeitet

ByteFeldHinweise
0Identifier18h QSFP-DD, 19h OSFP, 1Eh QSFP mit CMIS … (SFF-8024)
1CMIS-RevisionMajor.Minor-Nibbles: 50h = 5.0, 40h = 4.0, 30h = 3.0
2SpeichereigenschaftenBit 7 Flat Memory, plus Stepped-Config-Only und weitere Fähigkeits-Bits
3ModulzustandBit 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; Bit 0 Interrupt deaktiviert
8–11Modul-FlagsZustand geändert, Temperatur-/Vcc-Alarme, Aux-Alarme, benutzerdefiniert; gelatcht, beim Lesen gelöscht
14–25Modul-MonitoreTemperatur, Vcc, Aux1–Aux3 (TEC-Strom, Lasertemperatur, zusätzliche Versorgung), benutzerdefiniert
26Globale Steuerungen5.x: Bit 6 LowPwrAllowRequestHW, Bit 5 Squelch-Methode, Bit 4 LowPwrRequestSW, Bit 3 Software-Reset (4.x: Bit 6 LowPwr, Bit 4 ForceLowPwr)
37–38CDB-Statusbusy/success/fail für Befehlsblöcke 1 und 2
39–40Aktive FirmwareMajor.Minor des laufenden Images
85Medientyp01h MMF, 02h SMF, 03h passives Kupfer, 04h aktives Kabel, 05h BASE-T
86–117Anwendungsdeskriptoren 1–8je 4 Byte: Host-Schnittstellen-ID, Medien-Schnittstellen-ID, Host-/Medien-Lane-Anzahl, Optionen der Host-Lane-Zuordnung
118–121Passwortänderungherstellerdefiniert
122–125Passworteingabeherstellerdefiniert — hier stehen die Schreibschutz-Passwörter
126Bank-Auswahl—
127Seitenauswahl—

Modul-Zustandsautomat

Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
                            ▲                              │
                            └──────── ModulePwrDn ◄────────┘
                       (ModuleFault from any state on a fatal error)
  • MgmtInit — das Modul startet seinen Controller; die Identität ist noch nicht lesbar (bis zu 2 s gemäß den Hardwarespezifikationen).
  • ModuleLowPwr — Identität, Fähigkeiten und Schwellwerte sind lesbar; die Leistung ist auf Klasse 1 begrenzt; hier validiert der Host das Modul.
  • ModulePwrUp → ModuleReady — der Host deaktiviert den LPMode-Pin (oder löscht LowPwrRequestSW), und das Modul schaltet seine Optik ein; Datenpfade können jetzt initialisiert werden.
  • ModulePwrDn — die Umkehrung bei einer LPMode-Aktivierung.

Ein Modul, das LowPwr nie verlässt, ist das klassische CMIS-Ticket: CMIS-Probleme, Leistung und Thermik.

Anwendungen und der Datenpfad

Statt Compliance-Bits kündigt ein CMIS-Modul Anwendungen an — Paare aus elektrischer Host-Schnittstelle und Medienschnittstelle, mit Lane-Anzahlen:

DeskriptorHost-SchnittstelleMedienschnittstelleHost-Lanes / Medien-LanesBeispiel
App 112h 400GAUI-8 C2M1Ch 400GBASE-DR48 / 4ein 400G-Link
App 20Eh 100GAUI-2 C2M14h 100GBASE-DR2 / 14 × 100G-Breakout

Der Host wählt eine Anwendung pro Lane, indem er AppSel (Bit 7–4), eine DataPathID (Bit 3–1) und das Explicit-Control-Bit in den Staged Control Set 0 (Seite 10h Byte 145–152) schreibt und dann ApplyDPInit (Seite 10h Byte 143) setzt. Das Modul antwortet in ConfigStatus (Seite 11h Byte 202–205: accepted, rejected, invalid AppSel, invalid lane combination …) und kopiert die akzeptierten Werte in den Active Control Set (Seite 11h 206–221). Jeder Datenpfad durchläuft dann seinen eigenen Zustandsautomaten:

DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
       ▲                                                          │
       └────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘

Die Zustände werden pro Lane auf Seite 11h Byte 128–131 gemeldet (ein Nibble pro Lane), und die maximalen Dauern jedes Schritts werden auf Seite 01h angekündigt, damit der Host weiß, wie lange er warten muss. Die Tx-Deaktivierung pro Lane liegt auf Seite 10h Byte 130. Ein Breakout, das das Modul nicht als Anwendung listet, ist schlicht nicht verfügbar — Geschwindigkeit und Rate.

Überwachung: Flags, Monitore, VDM

  • Modul-Monitore (untere Seite 14–25) und Lane-Monitore (Seite 11h: Tx-Leistung 154–169, Tx-Bias 170–185, Rx-Leistung 186–201, 2 Byte pro Lane) verwenden dieselben 16-Bit-Formate wie SFP/QSFP (Einheiten).
  • Schwellwerte liegen auf Seite 02h; Flags werden gelatcht und beim Lesen gelöscht, mit Masken pro Flag; IntL signalisiert jedes nicht maskierte Flag.
  • VDM (Seiten 20h–2Fh) fügt Messgrößen hinzu, die es in den alten Spezifikationen nie gab: Pre-FEC-BER, unkorrigierbare FEC-Frames, SNR pro Lane, Lasertemperatur und -alter, eSNR, PAM4-Pegelübergangsparameter — jede mit eigenem Deskriptor, Schwellwerten und Flags. So meldet ein 400G-Modul die Linkqualität, bevor Fehler den Host erreichen (Überwachung).

CDB — Command Data Block

Seite 9Fh ist eine Mailbox: Der Host schreibt eine Befehls-ID (Byte 128–129), Nutzdatenlängen (130–132), eine Prüfsumme (133) und bis zu 120 Byte lokale Nutzdaten (136–255), optional mehr in den EPL-Seiten A0h–AFh; das Modul führt aus und meldet in den Statusbytes 37–38 sowie einer Antwort-Nutzlast. Zu den Standardbefehlen gehören:

BefehlZweck
0000hStatus abfragen
0040h / 0041hModulfunktionen / Firmware-Verwaltungsfunktionen
0100hFirmware-Informationen abrufen (laufendes und inaktives Image)
0101hFirmware-Download starten
0103h / 0104hFirmware-Block über LPL/EPL schreiben
0107hDownload abschließen
0109h / 010AhImage ausführen / Image übernehmen
0102hAbbrechen

Über CDB aktualisieren Herstellertools die Modul-Firmware im Feld, und manche Hersteller implementieren darüber Konfigurations- und Entsperrfunktionen. Unterstützung und Funktionen werden auf Seite 01h angekündigt.

Prüfsummen und Passwörter

Seite 00h Byte 222 bildet die Prüfsumme über Byte 128–221; die Seiten 01h, 02h und 04h tragen eine Seitenprüfsumme in Byte 255 (Prüfsummen). Passwörter (122–125) und herstellerspezifische Entsperrschemata liegen außerhalb der Spezifikation — EEPROM-Umkodierung.

Host-Unterstützung

Netzwerkbetriebssysteme implementieren CMIS 4.0 und 5.x unterschiedlich tief: manche steuern den vollständigen Anwendungs-/Datenpfad-Ablauf, andere geben LPMode frei und erwarten, dass sich das Modul selbst hochfährt. Dieser Unterschied steckt hinter den meisten Tickets nach dem Muster „erkannt, aber nie bereit“ — CMIS-Probleme, Was der Host tut.

In CodingBox

CodingBox erkennt CMIS anhand von Identifier und Revisions-Byte, liest den unteren Speicher, die Seiten 00h, 01h, 02h und die gebankten Lane-Seiten, dekodiert die Anwendungsdeskriptoren anhand von SFF-8024, zeigt Modul- und Datenpfad-Zustände sowie Monitore pro Lane in DDM an und bearbeitet die Identität mit neu berechneten Seitenprüfsummen im EEPROM-Editor. Firmware-Operationen über CDB sind herstellerspezifisch und liegen außerhalb des Funktionsumfangs des Editors.

Tabellen auf Registerebene: Karte der unteren Seite, Karte der oberen Seiten 00h/01h/02h, Karte der Lane-Seiten 10h/11h, VDM, CDB.


Wenn Sie in diesem Artikel eine Ungenauigkeit oder einen Fehler finden, markieren Sie die betreffende Stelle und drücken Sie Ctrl+Enter, um .