Was der Host tut: Erkennung, Prüfung, Inbetriebnahme
Die Spezifikationen beschreiben die Seite des Moduls — Pins, Speicher, Zustände. Diese Seite beschreibt die Seite des Hosts: die Abfolge, die ein Switch, Router oder NIC vom Einstecken eines Moduls bis zum Datenfluss durchläuft, mit den Pins, Bytes und Timings, die jeder Schritt nutzt. Wer sie kennt, macht aus „der Port meldet unsupported“ ein „der Host ist bei Schritt 4 stehen geblieben“, und erklärt, warum ein Modul, das auf der Werkbank perfekt ist, in einem Port trotzdem versagen kann.
Low-Speed-Signale nach Formfaktor
| Formfaktor | Präsenz | Reset/Power | Interrupt/Fault | Sonstiges |
|---|---|---|---|---|
| SFP/SFP+/SFP28 | MOD_ABS (Low = vorhanden) | — (TX_DISABLE schaltet den Laser) | TX_FAULT, RX_LOS | RS0, RS1 Rate Select |
| XFP | Mod_ABS | P_Down/RST | Interrupt, Mod_NR (nicht bereit), RX_LOS | TX_DIS, Mod_DeSel |
| QSFP+/QSFP28 | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| QSFP-DD | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| OSFP | PRSn | RSTn, LPWn | INT | — (kein Select-Pin, ein Bus pro Port) |
| SFP-DD | Modul-Absent wie bei SFP | Low-Power-Anforderung | Interrupt | Rate Select wie bei SFP |
Pin-Funktionen und Pinbelegungen je Familie: SFP-Hardware, QSFP-Hardware, XFP.
Der Ablauf
| # | Schritt | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS | Fehlerbild |
|---|---|---|---|---|---|
| 1 | Erkennen | MOD_ABS geht auf Low; Entprellung | ModPrsL Low | ModPrsL/PRSn Low | Port bleibt leer; Modul „nicht erkannt“ |
| 2 | Power & Warten | 3,3 V liegen immer an; t_init 300 ms abwarten | Einschalten mit LPMode High (nur Klasse 1); t_init 2 s abwarten oder Data_Not_Ready pollen | gleich; abwarten, bis der Modulzustand MgmtInit verlässt (≤ 2 s) | Lesevorgänge liefern FFh/00h; Identität leer |
| 3 | Identifizieren | A0h 0–95 lesen; Byte 0 = 03h wählt den SFF-8472-Parser | 0–127 und obere Seite 00h lesen; Byte 0 = 0Dh/11h, Byte 1 Revision | untere Seite und obere Seite 00h lesen; Byte 0 = 18h/19h…, Byte 1 CMIS-Version | unknown module type |
| 4 | Validieren | CC_BASE, CC_EXT; Konsistenz von Identifier/Steckverbinder/Kodierung | CC_BASE, CC_EXT | Seite-00h-Prüfsumme | invalid EEPROM, checksum error — Prüfsummen |
| 5 | Typ dekodieren | Compliance-Byte 3–10, 36; Rate Byte 12/66; Längen; Wellenlänge | Byte 131–138, 192; 140/222 | Medientyp 85, Anwendungsdeskriptoren | speed and type not supported — Compliance-Codes |
| 6 | Policy | Herstellername/PN (ggf. Signatur) gegen die Kompatibilitätstabelle | gleich | gleich | unsupported transceiver, errdisable — Herstellersperre |
| 7 | Leistungsklasse | Byte-64-Level-Bits vs. Port-Budget | Byte-129-Klasse; Byte 93 schreiben, um Low Power freizugeben/Klassen 5–8 zu aktivieren | Byte-200-Klasse vs. Port; LPMode deaktivieren oder LowPwrRequestSW löschen → Modul PwrUp → Ready | bleibt in Low Power, power exceeds — Leistung und Thermik |
| 8 | Konfigurieren | RS0/RS1 oder Soft Rate Select; hostseitige Geschwindigkeit, FEC, SGMII/1000BASE-X | CDR ein/aus (98), Rate Select (87–88), Breakout-Lanes auf dem Host | AppSel/DataPathID im Staged Control Set wählen → ApplyDPInit → Datenpfad Init → Initialized | LOL, FEC-Mismatch, Breakout abgelehnt — Geschwindigkeit und Rate |
| 9 | Tx aktivieren | TX_DISABLE-Pin Low oder Software-Bit gelöscht (A2h 110.6) | Byte 86 = 00h | Seite 10h Byte 130 = 00h → DPTxTurnOn → DPActivated | Fernende sieht −40 dBm — Checkliste kein Link |
| 10 | Link | PHY/MAC erkennt Signal; AN/Link-Training bei DAC | gleich pro Lane | gleich pro Datenpfad | Link down bei guten Pegeln |
| 11 | Überwachen | A2h-Monitore und -Flags alle paar Sekunden pollen; TX_FAULT-/RX_LOS-Pins | IntL → Flags 3–21 lesen; Monitore pollen | IntL → Modul-Flags + Lane-Flags auf Seite 11h; VDM | Alarme, Flaps — DDM-Pegel, Link-Flapping |
| 12 | Entfernen | MOD_ABS High → Abbau | ModPrsL High | ModPrsL High | veralteter Zustand, wenn Entprellung versagt |
Die Schritte 3–6 laufen bei QSFP- und CMIS-Modulen in Low Power ab: Der Host validiert, bevor er Leistung in die Optik steckt. Deshalb zündet ein gesperrtes oder falsch kodiertes Modul nie seinen Laser, und deshalb liest das Fernende −40 dBm bei einem elektrisch einwandfreien Modul.
Timings, auf die der Host wartet
| Wartezeit | SFP | QSFP | CMIS |
|---|---|---|---|
| Management bereit nach dem Einstecken | 300 ms | 2 s | ≤ 2 s (MgmtInit), danach Zustand LowPwr |
| Nach Freigabe von Low Power | — | bis Data_Not_Ready gelöscht ist | bis Modulzustand Ready (max. Dauer auf Seite 01h angekündigt) |
| Datenpfad-Init | — | — | pro Schritt angekündigt (Nibble-Code: < 1 ms … < 50 min) |
| Tx-Aktivierung bis Licht | t_on ≤ 1 ms | ton_txdis 100 ms/toff 400 ms | DPTxTurnOn-Dauer angekündigt |
| Flag bis Interrupt | — | ton_IntL 200 ms | gemäß Hardwarespezifikation |
Timings auf Busebene (t_WR, Clock Stretch): Zweidraht-Schnittstelle.
Policy-Punkte, in denen sich Hosts unterscheiden
- Whitelist-Strenge — von „nur Herstellername“ bis signierte herstellerspezifische Blöcke.
- Was bei Ablehnung passiert — Port deaktiviert, Laser aus, oder Link mit Logeintrag zugelassen (Drittanbieter-Optik).
- CMIS-Tiefe — vollständige Anwendungs-/Datenpfad-Steuerung gegenüber „LPMode freigeben und hoffen" (CMIS-Probleme).
- FEC- und Geschwindigkeits-Vorgaben — aus Compliance-Codes abgeleitet oder statisch konfiguriert.
- DDM-Polling — Intervall, ob Schwellwerte eine Portabschaltung auslösen, ob externe Kalibrierung angewendet wird (Kalibrierung).
Herstellerspezifische CLI, um zu sehen, wo der Host stehen geblieben ist: Optik an Switches überprüfen.
Worin sich ein Programmiergerät von einem Host unterscheidet
Ein Programmiergerät wie CodingBox durchläuft die Schritte 1–5 und 11, aber keine Policy: Es liest alles, was das Modul offenlegt, einschließlich Herstellerbereichen und Passwort-Bytes, hält CMIS-Module in Low Power, sofern nicht anders angefordert, und aktiviert den Laser nie von sich aus. Deshalb kann ein Modul auf der Werkbank gesund aussehen und trotzdem in einem Port versagen — die Werkbank hat keinen Schritt 6.
In CodingBox
Check transceiver zeigt das Ergebnis der Schritte 3–5 so, wie ein Host es sehen würde — Typ, Rate, Prüfsummen, Leistungsklasse — und markiert Inkonsistenzen, bevor das Modul einen Port erreicht; DDM deckt Schritt 11 mit Live-Monitoren und Flags ab.
Die Hardware hinter Schritt 6 (Policy) und die Portgruppen-Grenzen hinter Schritt 8: Im Inneren eines Switches, Wie jedes NOS ein Modul validiert.