Spezifikationsrevisionen und Versionsbytes
Spezifikationen sind lebendige Dokumente. Ein Modul deklariert, welcher Revision seine Speicherkarte folgt, und ein Host liest die Karte nach der Revision, die er kennt. Meist stimmen beide gut genug überein; wenn nicht, wird ein Byte als etwas gelesen, was es nicht ist. Diese Seite listet die Versionsbytes, wie man sie dekodiert, und — grob — was jede Generation ergänzt hat, damit Sie erkennen können, ob ein Feld, das Sie sich ansehen, für das vorliegende Modul überhaupt existiert.
Wo die Version deklariert ist
| Familie | Byte | Kodierung |
|---|---|---|
| SFF-8472 (SFP) | A0h Byte 94 | aufgezählter Code (Tabelle unten) |
| SFF-8636 (QSFP) | Byte 1 | aufgezählter Code (Tabelle unten) |
| CMIS | Byte 1 | Major-Nibble.Minor-Nibble (50h = 5.0) |
| MIS (SFP-DD) | Byte 1 | wie CMIS |
| INF-8077i (XFP) | keins | der Identifier 06h impliziert INF-8077i rev 4.x |
SFF-8472 — Byte 94
| Wert | Revision | Nennenswerte Ergänzungen, grob |
|---|---|---|
| 00h | nicht spezifiziert | Module vor der Diagnosefunktion; nur Identität |
| 01h | 9.3 | erste digitale Diagnose: A2h-Schwellwerte, Monitore, Flags |
| 02h | 9.5 | Klarstellungen, optionale Laser-Temperatur-/TEC-Monitore |
| 03h | 10.2 | SFP+-Ära: Rate Select, Option lineares Empfängerdesign, erweiterte Optionen in Byte 93 |
| 04h | 10.4 | Soft Rate Select nach SFF-8431, Leistungsstufe 2, Application Select nach SFF-8079 |
| 05h | 11.0 | 10G-Kupfer(DAC)-Kodierung — Kabeltechnologie-Bits, Dämpfung in 60–61 |
| 06h | 11.3 | erweiterte Optionen, Option durchstimmbarer Sender, 16GFC-Geschwindigkeitscodes |
| 07h | 11.4 | seitenweiser A2h-Speicher (Byte 64 Bit 4), SFF-8690 Tunable-Seite 02h |
| 08h | 12.0 | Byte 36 erweiterte Spezifikationskonformität über SFF-8024; Codes der 25G/100G-Ära |
| 09h | 12.4 | Leistungsstufe 3 (2,0 W), FC-Geschwindigkeit 2 in Byte 62, PAM4-Kodierungscode, Abgleich mit SFF-8024 |
Faustregel: Ein Modul, das 08h oder 09h deklariert, muss Byte 36 sinnvoll gefüllt (oder null) haben sowie die Rate ×250 Mb/s in Byte 66, wenn Byte 12 = FFh; ein Modul, das 03h oder niedriger deklariert, hat gar keine Byte-36-Semantik — Hosts ignorieren es.
SFF-8636 — Byte 1
| Wert | Karte folgt | Nennenswerte Ergänzungen |
|---|---|---|
| 00h | nicht spezifiziert (SFF-8436 rev 4.8 oder früher) | ursprüngliche QSFP+-Karte |
| 01h | SFF-8436 rev 4.8 oder früher | — |
| 02h | SFF-8436 rev 4.8 mit Byte 186–189 nach SFF-8636 | Wellenlängen- und Toleranzfelder |
| 03h | SFF-8636 rev 1.3 oder früher | erstes SFF-8636 |
| 04h | rev 1.4 | — |
| 05h | rev 1.5 | — |
| 06h | rev 2.0 | QSFP28/100G: Byte 192 erweiterte Konformität, Leistungsklassen 5–7, CDR-Steuerung und LOL-Flags |
| 07h | rev 2.5, 2.6, 2.7 | Seiten 20h–21h, Tx-Disable-Fast-Mode, weitere Codes der Tabelle 4-4 |
| 08h | rev 2.8, 2.9, 2.10 | Leistungsklasse 8 und Byte 107 maximale Leistung, 200G(QSFP56)-Codes, PAM4-Kodierung |
Hosts, die älter als rev 2.0 sind, lesen Byte 192 nicht — ein 100G-Modul in einem Switch der 40G-Ära ist allein deshalb „unbekannt“, unabhängig davon, was der Herstellerblock sagt.
CMIS — Byte 1
| Wert | Version | Nennenswerte Änderungen |
|---|---|---|
| 30h | 3.0 (2018, QSFP-DD MSA) | erstes gemeinsames Modell: untere/obere Seiten, Applikationen, Modul- und Datenpfad-Zustandsautomaten, CDB |
| 40h | 4.0 (2019) | gestaffelte Control Sets, VDM-Seiten 20h–2Fh, erweiterte Application Descriptors, klarere Zeitdauern |
| 41h | 4.1 | Korrekturen und Klarstellungen |
| 50h | 5.0 (2021, OIF) | Banks mit bis zu 32 Lanes, verfeinertes Datenpfad- und Lane-Flag-Modell, erweiterte VDM-Observables, Diagnoseseiten 13h–14h |
| 51h–53h | 5.1, 5.2, 5.3 | inkrementell: zusätzliche VDM-Typen, Überwachungs-Hooks für kohärent (ZR), Verfeinerungen der Firmware-Verwaltung |
Ein CMIS-5.x-Modul in einem Host, der 4.0 implementiert, funktioniert meist für den Grundablauf (Zustandsautomat, Application Select), aber der Host liest die neueren VDM-Seiten nicht; ein reiner 3.0-Host bringt ein 5.x-Modul unter Umständen gar nicht erst hoch — CMIS-Probleme. MIS-Versionen folgen CMIS: MIS.
Kompatibilitätsregeln
- Neueres Modul, älterer Host — unbekannte Codes werden als unbekannt dekodiert; ein höherer Wert in Byte 94/Byte 1 wird normalerweise toleriert. Probleme entstehen, wenn der Host ein Feld braucht, das erst in der neuen Revision existiert (Byte 192, Applikationen).
- Älteres Modul, neuerer Host — unproblematisch; Hosts behalten das rückwärtskompatible Parsing bei.
- Deklarierte Revision widerspricht dem Inhalt — die eigentliche Falle. Eine Deklaration von 12.x mit leerem Byte 66 bei Byte 12 = FFh liefert dem Host „0 Gb/s“; eine Deklaration von rev 2.0+ mit unsinnigem Inhalt in Byte 192 liefert unbekannter Typ. Beim Codieren das Revisionsbyte passend zu den tatsächlich genutzten Feldern setzen.
- SFF-8024 hat kein Versionsbyte im Modul; die Tabellenrevision des Hosts entscheidet, welche Codes er benennen kann.
Weitere Dokumente und ihr Rhythmus
| Dokument | Aktuelle Generation | Anmerkungen |
|---|---|---|
| SFF-8024 | rev 4.x, mehrmals jährlich überarbeitet | neue Identifier, Steckverbinder und Interface-IDs erscheinen hier zuerst |
| INF-8077i | rev 4.5 (2005) | XFP; stabil, keine weiteren Revisionen erwartet — XFP |
| SFF-8690/SFF-TA-1004 | 1.x | Tunable-Karten — Tunable-Karten |
| SFF-8079/SFF-8089 | 1.x | Rate-/Application-Select — Rate Select |
| Hardware-Spezifikationen (SFF-8431, SFF-8679, QSFP-DD HW, OSFP) | siehe Katalog | Hardware-Familien SFP, QSFP |
Dokumentnummern und Titel: MSA-Spezifikationskatalog.
In CodingBox
CodingBox liest zuerst das Revisionsbyte und wendet die passenden Feldbeschreibungen an, sodass Felder, die für die deklarierte Revision nicht existieren, als reserviert angezeigt werden statt falsch beschriftet zu sein. Der EEPROM editor lässt Sie das Revisionsbyte zusammen mit den davon abhängigen Feldern setzen.