Conformiteitscodes: bytes 3–10, 36 en uitgebreide tabellen
Een host weet niet wat een module is aan de hand van de fabrikantnaam, maar aan de conformiteitscodes: bitvelden die zeggen ‘ik ben 10GBASE-LR’ of ‘ik ben een 1000BASE-T-koperen SFP’, plus één uitgebreide code voor alles wat is uitgevonden nadat de bitvelden geen ruimte meer hadden. Hosts gebruiken ze om het moduletype te benoemen, te bepalen welke snelheden zij aanbieden, FEC en breakout te kiezen en, op strikte platforms, een module te weigeren waarvan de codes niet bij de poort passen. Deze correct instellen is het belangrijkste onderdeel van het coderen van een module.
Twee coderingsgeneraties
| Mechanisme | Waar | Werking |
|---|---|---|
| Klassieke bitvelden | SFF-8472 bytes 3–10; SFF-8636 bytes 131–138 en 164 | één bit per standaard; er kunnen meerdere zijn ingesteld (dual-rate, multi-protocol) |
| Uitgebreide specificatieconformiteit | SFF-8472 byte 36; SFF-8636 byte 192 | één waarde uit SFF-8024 Table 4-4: 25G, 100G, 200G, 400G, MSA PMDs |
| Toepassingen | CMIS-descriptors | hostinterface-ID + mediainterface-ID + laneaantallen, meerdere per module — zie CMIS |
Een 25G- of 100G-module laat de meeste klassieke bits vrij en zet zijn identiteit in byte 36 of 192; een 10G/1G-module doet het omgekeerde. Dual-rate 10G/25G-modules gebruiken beide.
SFF-8472 bytes 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 koper actief | IB 1X koper passief |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 laser | OC-192 kort bereik | SONET-bereik bit 1 | SONET-bereik bit 2 | OC-48 lang | OC-48 middellang | OC-48 kort |
| 5 — SONET | gereserveerd | OC-12 SM lang | OC-12 SM middellang | OC-12 kort | gereserveerd | OC-3 SM lang | OC-3 SM middellang | OC-3 kort |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — FC-linklengte / technologie | zeer lang (V) | kort (S) | middellang (I) | lang (L) | gemiddeld (M) | gereserveerd | korte-golflengtelaser, lineaire Rx (SA) | lange-golflengtelaser (LC) |
| 8 — FC-technologie / kabel | elektrisch tussen behuizingen (EL) | korte-golflengtelaser zonder OFC (SN) | korte-golflengtelaser met OFC (SL) | lange-golflengtelaser (LL) | actieve kabel | passieve kabel | gereserveerd | gereserveerd |
| 9 — FC-medium | twinaxiaal (TW) | getwist paar (TP) | miniatuurcoax (MI) | videocoax (TV) | multimode 62,5 µm (M6) | multimode 50 µm (M5/M5E) | gereserveerd | singlemode (SM) |
| 10 — FC-snelheid | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | zie byte 62 | 100 MB/s |
Byte 62 (Fibre Channel speed 2) zet de snelheidslijst voort voor 64GFC en hoger. Byte 36 bevat de uitgebreide code. Byte 12 geeft de nominale rate in ×100 Mb/s (FFh → byte 66 in ×250 Mb/s), byte 11 de codering en byte 13 de rate-ID voor rateselectie.
Gebruikelijke SFP-coderingen
| Module | Byte 3 | Byte 6 | Byte 8 | Byte 36 | Byte 12 | Byte 11 | Golflengte |
|---|---|---|---|---|---|---|---|
| 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 koper | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (n.v.t.) |
| 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 passieve DAC | 00h | 00h | 04h | 00h | 67h | 06h | 0, byte 60 = kabelconformiteit |
| 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 passieve 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 |
De lengtebytes 14–19 moeten overeenkomen: een SR-module geeft het OM3/OM4-bereik op, een LR-module kilometers en een DAC meters in byte 18.
SFF-8636 bytes 131–138, 164 (QSFP-familie)
| Byte | Inhoud |
|---|---|
| 131 — 10/40G Ethernet | bit 7 uitgebreid (gebruik byte 192), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 40G actieve kabel (XLPPI) |
| 132 — SONET | OC-48 lang / middellang / kort bereik, 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-linklengte & technologie | dezelfde bitbetekenissen als SFP byte 7 |
| 136 — FC-zendertechnologie | EL, SN, SL, LL-bits als SFP byte 8 |
| 137 — FC-medium | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — FC-snelheid | 100 … 3200 MB/s, uitgebreide vlag |
| 164 — Uitgebreide module | InfiniBand-rates: SDR, DDR, QDR, FDR, EDR |
| 192 — Uitgebreide conformiteit | Table 4-4-waarde |
Gebruikelijk: 40GBASE-SR4 → byte 131 = 04h, byte 192 = 00h; 100GBASE-SR4 → byte 131 = 80h (uitgebreid), byte 192 = 02h; 100G CWDM4 → 80h / 06h; 100GBASE-CR4 DAC → 80h / 0Bh met connector 23h.
CMIS — toepassingen in plaats van bits
Een CMIS-module somt maximaal 15 toepassingen op. Elke toepassing koppelt een elektrische hostinterface aan een mediainterface (beide SFF-8024-codes) en vermeldt de laneaantallen. Een 400G DR4-module kan 400GAUI-8 ↔ 400GBASE-DR4 (8:4) en 100GAUI-2 ↔ 100GBASE-DR (2:1, voor 4×100G breakout) adverteren. De host selecteert er één per datapad; wat niet wordt geadverteerd, kan niet worden geconfigureerd. Details en de selectiestroom: CMIS.
Hoe hosts de codes gebruiken
- Naamgeving — de typestring op de CLI (
10GBASE-LR,QSFP-100G-SR4) wordt uit deze bytes afgeleid, vaak uit het eerste ingestelde bit in een vaste volgorde. - Snelheidsaanbod — een host geeft alleen rates weer waarvan de code aanwezig is; een 25G-module met byte 36 = 02h maar zonder bit in byte 3 biedt geen 10G aan (Snelheid en rate).
- FEC-selectie — uitgebreide codes bevatten de FEC-aanname (CA-25G-L/S/N; CAUI-4 met of zonder RS-FEC) en sommige hosts leiden daaruit FEC af (FEC en linktraining).
- Koper versus optisch — byte 8 bits 2–3, connector 23h en byte 147 kopertechnologieën laten de host overschakelen op DAC-afhandeling (autonegotiatie, linktraining).
- Beleid — strikte platforms vergelijken de codes met de poortmodus en met hun compatibiliteitsdatabase; een afwijking geeft niet ondersteund of speed and type not supported, ook als het fabrikantblok is geaccepteerd (Fabrikantvergrendeling).
Coderingsregels
- Stel alleen bits in waaraan de hardware werkelijk voldoet; 10GBASE-LR op een SR-module declareren verandert ‘geen link’ in ‘link met fouten’.
- Houd de gehele identiteit consistent: conformiteit ↔ golflengte ↔ lengtes ↔ codering ↔ nominale rate ↔ connector ↔ zendertechnologie.
- Vul voor 25G+ byte 36 / 192 in en stel byte 12 / 140 in op FFh, met de ×250 Mb/s-rate in byte 66 / 222.
- Codeer bij DAC de kabeltechnologiebits, de lengte in meters, connector 23h en de dempings-/conformiteitsbytes in plaats van een golflengte.
- Bereken de checksums daarna opnieuw (Checksums).
In CodingBox
Het scherm Check transceiver decodeert elk bovenstaand bit tot gewone namen en somt CMIS-toepassingen op; de EEPROM editor bewerkt de codebytes veld voor veld, toont de resulterende typestring en corrigeert CC_BASE en CC_EXT bij het schrijven.
De volledige bittabellen in hun bytecontext: SFF-8472 A0h-kaart (bytes 3–10, 36, 62), SFF-8636-bovenste-paginakaart (131–138, 164, 192), XFP-kaart (131–138).