Cosa fa l’host: rilevamento, validazione, avvio
Le specifiche descrivono il lato del modulo — pin, memoria, stati. Questa pagina descrive il lato dell’host: la sequenza che uno switch, un router o una NIC esegue dal momento in cui un modulo viene inserito fino a quando il traffico scorre, con i pin, i byte e i tempi che usa ciascun passaggio. Conoscerla trasforma «la porta dice unsupported» in «l’host si è fermato al passaggio 4», e spiega perché un modulo perfetto sul banco di prova può comunque fallire in una porta.
Segnali a bassa velocità per fattore di forma
| Fattore di forma | Presenza | Reset / alimentazione | Interrupt / guasto | Altro |
|---|---|---|---|---|
| SFP / SFP+ / SFP28 | MOD_ABS (basso = presente) | — (TX_DISABLE controlla il laser) | TX_FAULT, RX_LOS | RS0, RS1 selezione di velocità |
| XFP | Mod_ABS | P_Down/RST | Interrupt, Mod_NR (non pronto), 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 | — (nessun pin di selezione, un bus per porta) |
| SFP-DD | modulo assente come in SFP | richiesta di bassa potenza | interrupt | selezione di velocità come in SFP |
Funzioni dei pin e piedinature per famiglia: Hardware SFP, Hardware QSFP, XFP.
La sequenza
| # | Passaggio | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS | Il guasto si presenta come |
|---|---|---|---|---|---|
| 1 | Rilevare | MOD_ABS passa a basso; antirimbalzo | ModPrsL basso | ModPrsL / PRSn basso | la porta resta vuota; modulo «non rilevato» |
| 2 | Alimentare e attendere | 3,3 V sempre attivo; attendere t_init 300 ms | accensione con LPMode alto (solo classe 1); attendere t_init 2 s o interrogare Data_Not_Ready | uguale; attendere che lo stato del modulo esca da MgmtInit (≤ 2 s) | le letture restituiscono FFh / 00h; identità vuota |
| 3 | Identificare | leggere A0h 0–95; byte 0 = 03h seleziona il parser SFF-8472 | leggere 0–127 e la pagina superiore 00h; byte 0 = 0Dh/11h, byte 1 revisione | leggere la pagina inferiore e la pagina superiore 00h; byte 0 = 18h/19h…, byte 1 versione CMIS | unknown module type |
| 4 | Convalidare | CC_BASE, CC_EXT; coerenza di identificatore/connettore/codifica | CC_BASE, CC_EXT | checksum della pagina 00h | invalid EEPROM, checksum error — Checksum |
| 5 | Decodificare il tipo | byte di conformità 3–10, 36; byte di velocità 12/66; lunghezze; lunghezza d’onda | byte 131–138, 192; 140/222 | tipo di medio 85, descrittori di applicazione | speed and type not supported — Codici di conformità |
| 6 | Policy | nome/PN del produttore (ed eventualmente firma) confrontati con la tabella di compatibilità | uguale | uguale | unsupported transceiver, errdisable — Blocco del produttore |
| 7 | Classe di potenza | bit di livello del byte 64 rispetto al budget della porta | classe del byte 129; scrivere il byte 93 per rilasciare la bassa potenza / abilitare le classi 5–8 | classe del byte 200 rispetto alla porta; disattivare LPMode o azzerare LowPwrRequestSW → modulo PwrUp → Ready | trattenuto in bassa potenza, power exceeds — Alimentazione e termica |
| 8 | Configurare | RS0/RS1 o selezione di velocità software; velocità, FEC, SGMII/1000BASE-X lato host | CDR on/off (98), selezione di velocità (87–88), lane di breakout sull’host | scegliere AppSel/DataPathID nel set di controllo a stadi → ApplyDPInit → percorso dati Init → Initialized | LOL, mancata corrispondenza del FEC, breakout rifiutato — Velocità e rate |
| 9 | Abilitare Tx | pin TX_DISABLE basso o bit software azzerato (A2h 110.6) | byte 86 = 00h | pagina 10h byte 130 = 00h → DPTxTurnOn → DPActivated | l’estremità remota vede −40 dBm — Checklist di assenza di collegamento |
| 10 | Collegamento | PHY/MAC vede il segnale; AN/link training su DAC | uguale per lane | uguale per percorso dati | collegamento inattivo con livelli buoni |
| 11 | Monitorare | interrogare i monitor e i flag di A2h ogni pochi secondi; pin TX_FAULT / RX_LOS | IntL → leggere i flag 3–21; interrogare i monitor | IntL → flag del modulo + flag di lane della pagina 11h; VDM | allarmi, flapping — Livelli DDM, Flapping del collegamento |
| 12 | Rimuovere | MOD_ABS alto → smontaggio | ModPrsL alto | ModPrsL alto | stato obsoleto se l’antirimbalzo non lo rileva |
I passaggi 3–6 avvengono in bassa potenza per i moduli QSFP e CMIS: l’host convalida prima di spendere potenza sull’ottica. Ecco perché un modulo bloccato o codificato male non accende mai il proprio laser, e perché l’estremità remota legge −40 dBm su un modulo che dal punto di vista elettrico è perfettamente funzionante.
Tempi che l’host attende
| Attesa | SFP | QSFP | CMIS |
|---|---|---|---|
| Gestione pronta dopo l’inserimento | 300 ms | 2 s | ≤ 2 s (MgmtInit) poi stato LowPwr |
| Dopo il rilascio della bassa potenza | — | finché Data_Not_Ready non si azzera | finché lo stato del modulo non è Ready (durata massima annunciata nella pagina 01h) |
| Init del percorso dati | — | — | annunciata per passaggio (codice a nibble: < 1 ms … < 50 min) |
| Da abilitazione Tx a emissione luce | t_on ≤ 1 ms | ton_txdis 100 ms / toff 400 ms | durata di DPTxTurnOn annunciata |
| Da flag a interrupt | — | ton_IntL 200 ms | secondo la specifica hardware |
Tempi a livello di bus (t_WR, clock stretch): Interfaccia a due fili.
Punti di policy in cui gli host differiscono
- Rigore della lista bianca — da «solo nome del produttore» a blocchi specifici del produttore firmati.
- Cosa succede in caso di rifiuto — porta disabilitata, laser spento, oppure collegamento consentito con una voce di log (Ottiche di terze parti).
- Profondità di CMIS — controllo completo di applicazione/percorso dati contro «rilasciare LPMode e sperare» (Problemi di CMIS).
- Valori predefiniti di FEC e velocità — derivati dai codici di conformità oppure configurati staticamente.
- Polling DDM — intervallo, se le soglie attivano lo spegnimento della porta, se viene applicata una calibrazione esterna (Calibrazione).
CLI specifica per produttore per vedere dove si è fermato l’host: Verifica delle ottiche sugli switch.
In cosa un programmatore differisce da un host
Un programmatore come CodingBox esegue i passaggi 1–5 e 11 ma senza policy: legge tutto ciò che il modulo espone, comprese le aree del produttore e i byte delle password, mantiene i moduli CMIS in bassa potenza a meno che non sia richiesto altrimenti, e non abilita mai il laser da solo. Ecco perché un modulo può sembrare sano sul banco di prova e comunque fallire in una porta — il banco di prova non ha il passaggio 6.
In CodingBox
Check transceiver mostra il risultato dei passaggi 3–5 come li vedrebbe un host — tipo, velocità, checksum, classe di potenza — e segnala le incoerenze prima che il modulo raggiunga una porta; DDM copre il passaggio 11 con monitor e flag in tempo reale.
L’hardware dietro il passaggio 6 (policy) e i limiti di gruppo porta dietro il passaggio 8: Dentro uno switch, Come ogni NOS convalida un modulo.