Kody zgodności: bajty 3–10, 36 i tabele rozszerzone
Host nie wie, czym jest moduł, po nazwie producenta — wie to z kodów zgodności: pól bitowych, które mówią „Jestem 10GBASE-LR” albo „Jestem miedzianym SFP 1000BASE-T”, oraz z pojedynczego kodu rozszerzonego dla wszystkiego, co wymyślono po tym, jak zabrakło miejsca w polach bitowych. Hosty używają ich, aby nazwać typ modułu, zdecydować, jakie prędkości oferować, wybrać FEC i breakout, a na restrykcyjnych platformach — odrzucić moduł, którego kody nie pasują do portu. Poprawne ich ustawienie to najważniejszy element kodowania modułu.
Dwie generacje kodowania
| Mechanizm | Gdzie | Jak działa |
|---|---|---|
| Klasyczne pola bitowe | SFF-8472, bajty 3–10; SFF-8636, bajty 131–138 i 164 | jeden bit na standard; może być ustawionych kilka (dwuprędkościowe, wieloprotokołowe) |
| Rozszerzona zgodność specyfikacji | SFF-8472, bajt 36; SFF-8636, bajt 192 | jedna wartość z SFF-8024, tabela 4-4: 25G, 100G, 200G, 400G, MSA PMD |
| Aplikacje | deskryptory CMIS | identyfikator interfejsu hosta + identyfikator interfejsu medium + liczby linii, kilka na moduł — zobacz CMIS |
Moduł 25G albo 100G pozostawia większość klasycznych bitów wyczyszczonych i umieszcza swoją tożsamość w bajcie 36 albo 192; moduł 10G/1G robi odwrotnie. Moduły dwuprędkościowe (dual-rate) 10G/25G używają obu.
SFF-8472, bajty 3–10 (rodzina SFP)
| Bajt | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — Ethernet 10G / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X kabel miedziany aktywny | IB 1X kabel miedziany pasywny |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 laser | OC-192 krótki zasięg | bit zasięgu SONET 1 | bit zasięgu SONET 2 | OC-48 daleki | OC-48 pośredni | OC-48 krótki |
| 5 — SONET | zarezerwowane | OC-12 SM daleki | OC-12 SM pośredni | OC-12 krótki | zarezerwowane | OC-3 SM daleki | OC-3 SM pośredni | OC-3 krótki |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — Długość łącza FC / technologia | bardzo daleki (V) | krótki (S) | pośredni (I) | daleki (L) | średni (M) | zarezerwowane | laser krótkofalowy, liniowy Rx (SA) | laser długofalowy (LC) |
| 8 — Technologia FC / kabel | elektryczne międzyobudowowe (EL) | laser krótkofalowy bez OFC (SN) | laser krótkofalowy z OFC (SL) | laser długofalowy (LL) | kabel aktywny | kabel pasywny | zarezerwowane | zarezerwowane |
| 9 — Medium FC | dwuosiowy (TW) | skrętka (TP) | miniaturowy koncentryczny (MI) | wideo koncentryczny (TV) | wielomodowy 62,5 µm (M6) | wielomodowy 50 µm (M5/M5E) | zarezerwowane | jednomodowy (SM) |
| 10 — Prędkość FC | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | zobacz bajt 62 | 100 MB/s |
Bajt 62 (Fibre Channel, prędkość 2) kontynuuje listę prędkości dla 64GFC i wyżej. Bajt 36 zawiera kod rozszerzony. Bajt 12 podaje prędkość nominalną w jednostkach ×100 Mb/s (FFh → bajt 66 w jednostkach ×250 Mb/s), bajt 11 — kodowanie, bajt 13 — identyfikator prędkości dla wyboru prędkości.
Typowe kodowania SFP
| Moduł | Bajt 3 | Bajt 6 | Bajt 8 | Bajt 36 | Bajt 12 | Bajt 11 | Długość fali |
|---|---|---|---|---|---|---|---|
| 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 miedziany | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (n/d) |
| 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 DAC pasywny | 00h | 00h | 04h | 00h | 67h | 06h | 0, bajt 60 = zgodność kabla |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh (bajt 66 = 67h → 25,75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| 25G DAC pasywny CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| 10G/25G SR dwuprędkościowy (dual-rate) | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
Bajty długości 14–19 muszą się zgadzać: moduł SR deklaruje zasięg OM3/OM4, moduł LR — kilometry, DAC — metry w bajcie 18.
SFF-8636, bajty 131–138, 164 (rodzina QSFP)
| Bajt | Zawartość |
|---|---|
| 131 — Ethernet 10/40G | bit 7 rozszerzony (użyj bajtu 192), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 kabel aktywny 40G (XLPPI) |
| 132 — SONET | zasięg OC-48 daleki / pośredni / krótki, 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 — Długość łącza FC i technologia | te same znaczenia bitów co bajt 7 SFP |
| 136 — Technologia nadajnika FC | bity EL, SN, SL, LL jak bajt 8 SFP |
| 137 — Medium FC | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — Prędkość FC | 100 … 3200 MB/s, flaga rozszerzenia |
| 164 — Moduł rozszerzony | prędkości InfiniBand: SDR, DDR, QDR, FDR, EDR |
| 192 — Zgodność rozszerzona | wartość z tabeli 4-4 |
Typowo: 40GBASE-SR4 → bajt 131 = 04h, bajt 192 = 00h; 100GBASE-SR4 → bajt 131 = 80h (rozszerzony), bajt 192 = 02h; 100G CWDM4 → 80h / 06h; 100GBASE-CR4 DAC → 80h / 0Bh ze złączem 23h.
CMIS — aplikacje zamiast bitów
Moduł CMIS wymienia do 15 aplikacji, z których każda łączy interfejs elektryczny hosta z interfejsem medium (oba jako kody SFF-8024) i podaje liczby linii. Moduł 400G DR4 może zgłaszać 400GAUI-8 ↔ 400GBASE-DR4 (8:4) oraz 100GAUI-2 ↔ 100GBASE-DR (2:1, dla breakout 4×100G). Host wybiera jedną aplikację na ścieżkę danych; to, co nie jest zgłoszone, nie może zostać skonfigurowane. Szczegóły i przebieg wyboru: CMIS.
Jak hosty używają kodów
- Nazewnictwo — łańcuch typu w CLI (
10GBASE-LR,QSFP-100G-SR4) jest wyprowadzany z tych bajtów, często jako pierwszy ustawiony bit znaleziony w ustalonej kolejności. - Oferowanie prędkości — host wymienia tylko te prędkości, których kod jest obecny; moduł 25G z bajtem 36 = 02h, ale bez bitu w bajcie 3, nie dostanie oferty 10G (Prędkość i przepływność).
- Wybór FEC — kody rozszerzone niosą założenie dotyczące FEC (CA-25G-L/S/N; CAUI-4 z RS-FEC albo bez) i niektóre hosty ustawiają FEC na ich podstawie (FEC i link training).
- Miedź czy optyka — bity 2–3 bajtu 8, złącze 23h i technologie miedziane bajtu 147 przełączają hosta na obsługę DAC (autonegocjacja, link training).
- Polityka — restrykcyjne platformy porównują kody z trybem portu i z własną bazą kompatybilności; niezgodność daje unsupported albo speed and type not supported, nawet gdy blok producenta jest zaakceptowany (Blokada producenta).
Zasady kodowania
- Ustawiaj tylko bity, które sprzęt faktycznie spełnia; zadeklarowanie 10GBASE-LR na module SR zamienia „brak łącza” w „łącze z błędami”.
- Zachowaj spójność całych danych identyfikacyjnych: zgodność ↔ długość fali ↔ długości ↔ kodowanie ↔ prędkość nominalna ↔ złącze ↔ technologia nadajnika.
- Dla 25G+ wypełnij bajt 36 / 192 i ustaw bajt 12 / 140 na FFh, z prędkością ×250 Mb/s w bajcie 66 / 222.
- Dla DAC zakoduj bity technologii kabla, długość w metrach, złącze 23h oraz bajty tłumienia/zgodności zamiast długości fali.
- Na koniec przelicz sumy kontrolne (Sumy kontrolne).
W CodingBox
Ekran Check transceiver dekoduje każdy z powyższych bitów na czytelne nazwy i wymienia aplikacje CMIS; EEPROM editor edytuje bajty kodu pole po polu, pokazuje wynikowy łańcuch typu i poprawia CC_BASE oraz CC_EXT przy zapisie.
Pełne tabele bitów w kontekście bajtów: mapa SFF-8472 A0h (bajty 3–10, 36, 62), mapa górnej strony SFF-8636 (131–138, 164, 192), mapa XFP (131–138).