Compliance-Codes: Bytes 3–10, 36 und erweiterte Tabellen
Ein Host erkennt nicht am Herstellernamen, was ein Modul ist — er erkennt es an den Compliance-Codes: Bitfeldern, die sagen „Ich bin 10GBASE-LR“ oder „Ich bin ein 1000BASE-T-Kupfer-SFP", plus einem einzelnen erweiterten Code für alles, was erfunden wurde, nachdem die Bitfelder ausgingen. Hosts nutzen sie, um den Modultyp zu benennen, zu entscheiden, welche Geschwindigkeiten sie anbieten, FEC und Breakout zu wählen, und — auf strikten Plattformen — ein Modul abzulehnen, dessen Codes nicht zum Port passen. Sie korrekt zu setzen ist der wichtigste Teil beim Kodieren eines Moduls.
Zwei Generationen der Kodierung
| Mechanismus | Wo | Funktionsweise |
|---|---|---|
| Klassische Bitfelder | SFF-8472 Byte 3–10; SFF-8636 Byte 131–138 und 164 | ein Bit pro Standard; mehrere können gesetzt sein (Dual-Rate, Multi-Protokoll) |
| Extended Specification Compliance | SFF-8472 Byte 36; SFF-8636 Byte 192 | ein Wert aus SFF-8024 Tabelle 4-4: 25G, 100G, 200G, 400G, MSA-PMDs |
| Anwendungen | CMIS-Deskriptoren | Host-Schnittstellen-ID + Medien-Schnittstellen-ID + Lane-Anzahlen, mehrere pro Modul — siehe CMIS |
Ein 25G- oder 100G-Modul lässt die meisten klassischen Bits leer und legt seine Identität in Byte 36 oder 192 ab; ein 10G/1G-Modul macht es umgekehrt. Dual-Rate-Module für 10G/25G nutzen beides.
SFF-8472 Byte 3–10 (SFP-Familie)
| Byte | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G Ethernet / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X Kupfer aktiv | IB 1X Kupfer passiv |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 Laser | OC-192 Short Reach | SONET-Reichweite Bit 1 | SONET-Reichweite Bit 2 | OC-48 lang | OC-48 mittel | OC-48 kurz |
| 5 — SONET | reserviert | OC-12 SM lang | OC-12 SM mittel | OC-12 kurz | reserviert | OC-3 SM lang | OC-3 SM mittel | OC-3 kurz |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — FC-Linklänge / -Technologie | sehr lang (V) | kurz (S) | Zwischenreichweite (I) | lang (L) | mittel (M) | reserviert | Kurzwellenlaser, linearer Rx (SA) | Langwellenlaser (LC) |
| 8 — FC-Technologie / -Kabel | elektrisch, Inter-Enclosure (EL) | Kurzwellenlaser ohne OFC (SN) | Kurzwellenlaser mit OFC (SL) | Langwellenlaser (LL) | aktives Kabel | passives Kabel | reserviert | reserviert |
| 9 — FC-Medium | Twinax (TW) | Twisted Pair (TP) | Miniatur-Koax (MI) | Video-Koax (TV) | Multimode 62,5 µm (M6) | Multimode 50 µm (M5/M5E) | reserviert | Singlemode (SM) |
| 10 — FC-Geschwindigkeit | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | siehe Byte 62 | 100 MB/s |
Byte 62 (Fibre Channel Speed 2) setzt die Geschwindigkeitsliste für 64GFC und höher fort. Byte 36 enthält den erweiterten Code. Byte 12 gibt die Nominalrate in ×100 Mb/s an (FFh → Byte 66 in ×250 Mb/s), Byte 11 die Kodierung, Byte 13 den Ratenkennwert für Ratenauswahl.
Typische SFP-Kodierungen
| Modul | Byte 3 | Byte 6 | Byte 8 | Byte 36 | Byte 12 | Byte 11 | Wellenlänge |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh (1,3 Gb/s) | 01h 8B/10B | 850 nm |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 nm |
| 1000BASE-T Kupfer | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (entfällt) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h (10,3 Gb/s) | 06h 64B/66B | 850 nm |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 nm |
| 10G passives DAC | 00h | 00h | 04h | 00h | 67h | 06h | 0, Byte 60 = Kabel-Compliance |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh (Byte 66 = 67h → 25,75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| 25G passives DAC CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| 10G/25G Dual-Rate-SR | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
Die Längenbytes 14–19 müssen übereinstimmen: Ein SR-Modul gibt die OM3/OM4-Reichweite an, ein LR-Modul Kilometer, ein DAC Meter in Byte 18.
SFF-8636 Byte 131–138, 164 (QSFP-Familie)
| Byte | Inhalt |
|---|---|
| 131 — 10/40G Ethernet | Bit 7 erweitert (Byte 192 verwenden), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 40G aktives Kabel (XLPPI) |
| 132 — SONET | OC-48 lange/mittlere/kurze Reichweite, 40G OTN |
| 133 — SAS/SATA | SAS 6 / 12 / 24 Gb/s |
| 134 — Gigabit Ethernet | Bit 3 1000BASE-T, 2 1000BASE-CX, 1 1000BASE-LX, 0 1000BASE-SX |
| 135 — FC-Linklänge und -Technologie | gleiche Bitbedeutungen wie SFP-Byte 7 |
| 136 — FC-Sendertechnologie | Bits EL, SN, SL, LL wie SFP-Byte 8 |
| 137 — FC-Medium | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — FC-Geschwindigkeit | 100 … 3200 MB/s, Extended-Flag |
| 164 — Erweitertes Modul | InfiniBand-Raten: SDR, DDR, QDR, FDR, EDR |
| 192 — Extended Compliance | Wert aus Tabelle 4-4 |
Typisch: 40GBASE-SR4 → Byte 131 = 04h, Byte 192 = 00h; 100GBASE-SR4 → Byte 131 = 80h (erweitert), Byte 192 = 02h; 100G CWDM4 → 80h/06h; 100GBASE-CR4 DAC → 80h/0Bh mit Steckverbinder 23h.
CMIS — Anwendungen statt Bits
Ein CMIS-Modul listet bis zu 15 Anwendungen auf, jede paart eine elektrische Host-Schnittstelle mit einer Medienschnittstelle (beides SFF-8024-Codes) und gibt Lane-Anzahlen an. Ein 400G-DR4-Modul könnte 400GAUI-8 ↔ 400GBASE-DR4 (8:4) und 100GAUI-2 ↔ 100GBASE-DR (2:1, für 4×100G-Breakout) ankündigen. Der Host wählt eine pro Datenpfad; was nicht angekündigt ist, kann nicht konfiguriert werden. Details und der Auswahlablauf: CMIS.
Wie Hosts die Codes verwenden
- Benennung — die Typbezeichnung in der CLI (
10GBASE-LR,QSFP-100G-SR4) wird aus diesen Bytes abgeleitet, oft das erste gesetzte Bit in einer festen Reihenfolge. - Geschwindigkeitsangebot — ein Host listet nur Raten, deren Code vorhanden ist; einem 25G-Modul mit Byte 36 = 02h, aber ohne Byte-3-Bit, wird kein 10G angeboten (Geschwindigkeit und Rate).
- FEC-Auswahl — erweiterte Codes tragen die FEC-Annahme (CA-25G-L/S/N; CAUI-4 mit oder ohne RS-FEC), und manche Hosts setzen FEC danach (FEC und Link-Training).
- Kupfer vs. optisch — Byte 8 Bit 2–3, Steckverbinder 23h und die Kupfertechnologien in Byte 147 schalten den Host auf DAC-Behandlung (Autonegotiation, Link-Training) um.
- Policy — strikte Plattformen vergleichen die Codes mit dem Modus des Ports und mit ihrer Kompatibilitätsdatenbank; eine Abweichung ergibt unsupported oder speed and type not supported, selbst wenn der Herstellerblock akzeptiert wird (Herstellersperre).
Kodierregeln
- Setzen Sie nur Bits, die die Hardware tatsächlich erfüllt; wird 10GBASE-LR auf einem SR-Modul deklariert, wird aus „kein Link“ ein „Link mit Fehlern“.
- Halten Sie die gesamte Identität konsistent: Compliance ↔ Wellenlänge ↔ Längen ↔ Kodierung ↔ Nominalrate ↔ Steckverbinder ↔ Sendertechnologie.
- Füllen Sie für 25G+ Byte 36/192 und setzen Sie Byte 12/140 auf FFh mit der ×250-Mb/s-Rate in Byte 66/222.
- Kodieren Sie bei DAC die Kabeltechnologie-Bits, die Länge in Metern, den Steckverbinder 23h und die Dämpfungs-/Compliance-Bytes anstelle einer Wellenlänge.
- Berechnen Sie danach die Prüfsummen neu (Prüfsummen).
In CodingBox
Der Bildschirm Check transceiver dekodiert jedes der obigen Bits in Klartextnamen und listet CMIS-Anwendungen auf; der EEPROM-Editor bearbeitet die Code-Bytes feldweise, zeigt die resultierende Typbezeichnung und korrigiert CC_BASE und CC_EXT beim Schreiben.
Die vollständigen Bit-Tabellen in ihrem Byte-Kontext: SFF-8472-A0h-Karte (Byte 3–10, 36, 62), SFF-8636-Karte der oberen Seite (131–138, 164, 192), XFP-Karte (131–138).