CMIS — wspólny interfejs zarządzania · Specyfikacje i normy · Transceivery optyczne i kable · Dokumentacja · CodingBox
CodingBox Dokumentacja

CMIS — wspólny interfejs zarządzania

CMIS, czyli Common Management Interface Specification, to model zarządzania dla każdego nowego, szybkiego formatu obudowy: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD i SFP112 (jako SFP+ z CMIS), DSFP, COBO oraz QSFP z obsługą CMIS. Zaczął się w MSA QSFP-DD (CMIS 3.0, 2018), został przyjęty przez grupy OSFP i COBO, a od wersji 5.0 (2021) jest utrzymywany w OIF. W porównaniu z SFF-8636 to nie większa mapa pamięci, tylko inny model: banki stron dla maksymalnie 32 linii, jawne maszyny stanów dla modułu i każdej ścieżki danych, aplikacje zamiast pól bitowych zgodności, wszechstronna diagnostyka (VDM) i kanał poleceń (CDB) dla firmware i funkcji rozszerzonych. Bajt wersji i historia: Wersje specyfikacji.

Model pamięci

RegionAdresowanieZawartość
Strona dolna (bajty 0–127)zawsze widocznaidentyfikator, rewizja, stan modułu, flagi, monitory modułu, sterowanie globalne, typ medium, deskryptory aplikacji 1–8, hasło, wybór banku 126, wybór strony 127
Strona górna 00h (128–255)strona 127 = 00hblok producenta, klasa mocy, złącze, długości kabla, technologia medium, suma kontrolna
01hzgłaszanie możliwościrewizje firmware/sprzętu, długości łącza, długość fali, obsługiwane strony i banki, czasy trwania, sterowanie integralnością sygnału, deskryptory 9–15
02hprogiprogi alarmów/ostrzeżeń modułu i linii
04hmożliwości laserasiatki i zakresy lasera przestrajalnego (linia SFF-TA-1004)
10h (bankowana)sterowanie liniądeinicjalizacja ścieżki danych, wyłączenie Tx, polaryzacja, squelch, ekwalizacja, staged control sets
11h (bankowana)stan liniistany ścieżki danych, flagi dla poszczególnych linii, monitory linii, stan konfiguracji, active control set
12h (bankowana)sterowanie laserem przestrajalnymkanał/długość fali na linię
13h–14h (bankowana)diagnostykapętle zwrotne, generatory i testery PRBS
20h–2Fh (bankowana)VDMdeskryptory, próbki, progi, flagi
9FhCDBblok poleceń: identyfikator polecenia, długości, suma kontrolna, payload lokalny
A0h–AFhCDB EPLpayload rozszerzony dla dużych transferów (obrazy firmware)
80h–FFh (inne)producentstrony niestandardowe

Bank adresuje 8 linii: bank 0 — linie 1–8, bank 1 — linie 9–16 i tak dalej; ile banków jest zaimplementowanych, zgłasza strona 01h. Moduły mające tylko stronę 00h ustawiają bit pamięci płaskiej (bajt 2, bit 7). Magistrala: pojedynczy adres A0h, do 400 kHz, ModSelL na gniazdo — interfejs dwuprzewodowy.

Strona dolna — bajty, którymi żyje host

BajtyPoleUwagi
0Identyfikator18h QSFP-DD, 19h OSFP, 1Eh QSFP z CMIS… (SFF-8024)
1Rewizja CMISpółbajty major.minor: 50h = 5.0, 40h = 4.0, 30h = 3.0
2Charakterystyki pamięcibit 7 — pamięć płaska, plus bit stepped-config-only i inne bity możliwości
3Stan modułubity 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; bit 0 — przerwanie dezaktywowane
8–11Flagi modułuzmiana stanu, alarmy temperatury/Vcc, alarmy pomocnicze, custom; zatrzaskiwane, kasowane przy odczycie
14–25Monitory modułutemperatura, Vcc, Aux1–Aux3 (prąd TEC, temperatura lasera, dodatkowe zasilanie), custom
26Sterowanie globalne5.x: bit 6 LowPwrAllowRequestHW, bit 5 — metoda squelch, bit 4 LowPwrRequestSW, bit 3 — reset programowy (4.x: bit 6 LowPwr, bit 4 ForceLowPwr)
37–38Stan CDBbusy / success / fail dla bloków poleceń 1 i 2
39–40Aktywny firmwaremajor.minor działającego obrazu
85Typ medium01h MMF, 02h SMF, 03h miedź pasywna, 04h kabel aktywny, 05h BASE-T
86–117Deskryptory aplikacji 1–8po 4 bajty: identyfikator interfejsu hosta, identyfikator interfejsu medium, liczby linii hosta/medium, opcje przypisania linii hosta
118–121Zmiana hasładefiniowane przez producenta
122–125Wprowadzanie hasładefiniowane przez producenta — tu trafiają hasła zabezpieczenia przed zapisem
126Wybór banku—
127Wybór strony—

Maszyna stanów modułu

Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
                            ▲                              │
                            └──────── ModulePwrDn ◄────────┘
                       (ModuleFault z dowolnego stanu przy błędzie krytycznym)
  • MgmtInit — moduł uruchamia swój kontroler; dane identyfikacyjne nie są jeszcze czytelne (do 2 s według specyfikacji sprzętowych).
  • ModuleLowPwr — dane identyfikacyjne, zgłoszone możliwości i progi są czytelne; moc ograniczona do klasy 1; tu host weryfikuje moduł.
  • ModulePwrUp → ModuleReady — host dezaktywuje pin LPMode (albo czyści LowPwrRequestSW), a moduł włącza zasilanie optyki; ścieżki danych można już inicjalizować.
  • ModulePwrDn — odwrotność, przy aktywacji LPMode.

Moduł, który nigdy nie opuszcza LowPwr, to klasyczne zgłoszenie CMIS: Problemy z CMIS, Zasilanie i temperatura.

Aplikacje i ścieżka danych

Zamiast bitów zgodności moduł CMIS zgłasza aplikacje — pary interfejsu elektrycznego hosta i interfejsu medium, z liczbami linii:

DeskryptorInterfejs hostaInterfejs mediumLinie hosta / linie mediumPrzykład
App 112h 400GAUI-8 C2M1Ch 400GBASE-DR48 / 4jedno łącze 400G
App 20Eh 100GAUI-2 C2M14h 100GBASE-DR2 / 1breakout 4 × 100G

Host wybiera aplikację dla każdej linii, zapisując AppSel (bity 7–4), DataPathID (bity 3–1) i bit explicit-control do Staged Control Set 0 (strona 10h, bajty 145–152), a następnie aktywuje ApplyDPInit (strona 10h, bajt 143). Moduł odpowiada w ConfigStatus (strona 11h, bajty 202–205: accepted, rejected, invalid AppSel, invalid lane combination…) i kopiuje przyjęte wartości do Active Control Set (strona 11h, 206–221). Każda ścieżka danych przechodzi wtedy przez własną maszynę stanów:

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

Stany są raportowane dla każdej linii na stronie 11h, bajty 128–131 (jeden półbajt na linię), a maksymalne czasy trwania każdego kroku zgłasza strona 01h, dzięki czemu host wie, jak długo czekać. Wyłączenie Tx dla poszczególnych linii znajduje się na stronie 10h, bajt 130. Breakout, którego moduł nie wymienia jako aplikacji, po prostu nie jest dostępny — Prędkość i przepływność.

Monitorowanie: flagi, monitory, VDM

  • Monitory modułu (strona dolna, 14–25) i monitory linii (strona 11h: moc Tx 154–169, prąd polaryzacji Tx 170–185, moc Rx 186–201, po 2 bajty na linię) używają tych samych formatów 16-bitowych co SFP/QSFP (jednostki).
  • Progi są na stronie 02h; flagi są zatrzaskiwane i kasowane przy odczycie, z maskami dla każdej flagi; IntL sygnalizuje każdą niezamaskowaną flagę.
  • VDM (strony 20h–2Fh) dodaje wielkości mierzone, których stare specyfikacje nigdy nie miały: BER przed FEC, nieskorygowane ramki FEC, SNR na linię, temperaturę i wiek lasera, eSNR, parametry przejścia poziomów PAM4 — każda z własnym deskryptorem, progami i flagami. Tak 400G moduł raportuje jakość łącza, zanim błędy dotrą do hosta (Monitorowanie).

CDB — Command Data Block

Strona 9Fh to mailbox: host zapisuje identyfikator polecenia (bajty 128–129), długości payloadu (130–132), sumę kontrolną (133) i do 120 bajtów payloadu lokalnego (136–255), opcjonalnie więcej na stronach EPL A0h–AFh; moduł wykonuje polecenie i raportuje w bajtach stanu 37–38 oraz payloadzie odpowiedzi. Standardowe polecenia obejmują:

PolecenieCel
0000hodpytanie o stan
0040h / 0041hfunkcje modułu / funkcje zarządzania firmware
0100hpobranie informacji o firmware (obraz działający i nieaktywny)
0101hrozpoczęcie pobierania firmware
0103h / 0104hzapis bloku firmware przez LPL / EPL
0107hzakończenie pobierania
0109h / 010Ahuruchomienie obrazu / zatwierdzenie obrazu
0102hprzerwanie

CDB to sposób, w jaki narzędzia producenta aktualizują firmware modułu w terenie, i w jaki niektórzy producenci realizują funkcje konfiguracji i odblokowania. Obsługa i funkcje są zgłaszane na stronie 01h.

Sumy kontrolne i hasła

Bajt 222 strony 00h sumuje bajty 128–221; strony 01h, 02h i 04h niosą sumę kontrolną strony w bajcie 255 (Sumy kontrolne). Hasła (122–125) i schematy odblokowania producenta są poza specyfikacją — Przekodowanie EEPROM.

Obsługa przez hosta

Sieciowe systemy operacyjne implementują CMIS 4.0 i 5.x w różnym stopniu: niektóre prowadzą pełny przepływ aplikacja/ścieżka danych, inne zwalniają LPMode i oczekują, że moduł uruchomi się sam. Ta różnica stoi za większością zgłoszeń typu „rozpoznany, ale nigdy nie gotowy” — Problemy z CMIS, Co robi host.

W CodingBox

CodingBox wykrywa CMIS po bajcie identyfikatora i rewizji, odczytuje pamięć dolną, strony 00h, 01h, 02h oraz bankowane strony linii, dekoduje deskryptory aplikacji względem SFF-8024, pokazuje stany modułu i ścieżki danych oraz monitory dla poszczególnych linii na ekranie DDM, i edytuje dane identyfikacyjne z przeliczeniem sum kontrolnych stron w EEPROM editor. Operacje na firmware przez CDB są specyficzne dla producenta i wykraczają poza zakres edytora.

Tabele na poziomie rejestrów: Mapa strony dolnej, Mapa górnych stron 00h/01h/02h, Mapa stron linii 10h/11h, VDM, CDB.


Jeśli znajdziesz nieścisłość lub błąd w tym materiale, zaznacz odpowiedni fragment i naciśnij Ctrl+Enter, aby .