Yang dilakukan host: deteksi, validasi, aktivasi
Spesifikasi mendeskripsikan sisi modul — pin, memori, state. Halaman ini mendeskripsikan sisi host: urutan yang dijalankan switch, router, atau NIC sejak modul dipasang hingga trafik mengalir, beserta pin, byte, dan timing yang dipakai setiap langkah. Mengetahuinya mengubah “port bilang unsupported” menjadi “host berhenti di langkah 4”, dan menjelaskan mengapa modul yang sempurna di meja kerja tetap bisa gagal di port.
Sinyal kecepatan rendah per faktor bentuk
| Faktor bentuk | Kehadiran | Reset / daya | Interrupt / gangguan | Lainnya |
|---|---|---|---|---|
| SFP / SFP+ / SFP28 | MOD_ABS (low = hadir) | — (TX_DISABLE mengendalikan laser) | TX_FAULT, RX_LOS | RS0, RS1 rate select |
| XFP | Mod_ABS | P_Down/RST | Interrupt, Mod_NR (belum siap), 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 | — (tanpa pin select, satu bus per port) |
| SFP-DD | module absent seperti SFP | permintaan daya rendah | interrupt | rate select seperti SFP |
Fungsi pin dan pinout per keluarga: Perangkat keras SFP, Perangkat keras QSFP, XFP.
Urutannya
| # | Langkah | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS | Kegagalan tampak seperti |
|---|---|---|---|---|---|
| 1 | Deteksi | MOD_ABS menjadi low; debounce | ModPrsL low | ModPrsL / PRSn low | port tetap kosong; modul “tidak terdeteksi” |
| 2 | Daya & tunggu | 3,3 V selalu aktif; tunggu t_init 300 ms | power on dengan LPMode high (hanya kelas 1); tunggu t_init 2 s atau poll Data_Not_Ready | sama; tunggu state modul keluar dari MgmtInit (≤ 2 s) | pembacaan mengembalikan FFh / 00h; identitas kosong |
| 3 | Identifikasi | baca A0h 0–95; byte 0 = 03h memilih parser SFF-8472 | baca 0–127 dan halaman atas 00h; byte 0 = 0Dh/11h, byte 1 revisi | baca halaman bawah dan halaman atas 00h; byte 0 = 18h/19h…, byte 1 versi CMIS | unknown module type |
| 4 | Validasi | CC_BASE, CC_EXT; konsistensi identifier/konektor/encoding | CC_BASE, CC_EXT | checksum halaman 00h | invalid EEPROM, checksum error — Checksum |
| 5 | Dekode jenis | byte kepatuhan 3–10, 36; rate byte 12/66; panjang; panjang gelombang | byte 131–138, 192; 140/222 | jenis media 85, deskriptor aplikasi | speed and type not supported — Kode kepatuhan |
| 6 | Kebijakan | nama vendor/PN (dan mungkin signature) dicocokkan dengan tabel kompatibilitas | sama | sama | unsupported transceiver, errdisable — Penguncian vendor |
| 7 | Kelas daya | bit level byte 64 vs budget port | kelas byte 129; tulis byte 93 untuk melepas daya rendah / mengaktifkan kelas 5–8 | kelas byte 200 vs port; deassert LPMode atau bersihkan LowPwrRequestSW → modul PwrUp → Ready | tertahan di daya rendah, power exceeds — Daya & termal |
| 8 | Konfigurasi | RS0/RS1 atau soft rate select; kecepatan, FEC, SGMII/1000BASE-X di sisi host | CDR on/off (98), rate select (87–88), lane breakout di host | pilih AppSel/DataPathID dalam staged control set → ApplyDPInit → data path Init → Initialized | LOL, FEC mismatch, breakout ditolak — Kecepatan & rate |
| 9 | Aktifkan Tx | pin TX_DISABLE low atau soft bit dibersihkan (A2h 110.6) | byte 86 = 00h | halaman 10h byte 130 = 00h → DPTxTurnOn → DPActivated | ujung jauh melihat −40 dBm — Tidak ada link |
| 10 | Link | PHY/MAC melihat sinyal; AN/pelatihan link pada DAC | sama per lane | sama per data-path | link down dengan level yang baik |
| 11 | Pantau | poll monitor dan flag A2h setiap beberapa detik; pin TX_FAULT / RX_LOS | IntL → baca flag 3–21; poll monitor | IntL → flag modul + flag lane halaman 11h; VDM | alarm, flap — Level DDM, Link flapping |
| 12 | Lepas | MOD_ABS high → tear down | ModPrsL high | ModPrsL high | state basi jika debounce meleset |
Langkah 3–6 terjadi dalam daya rendah untuk modul QSFP dan CMIS: host memvalidasi sebelum mengeluarkan daya untuk optik. Itulah sebabnya modul yang terkunci atau salah dikodekan tidak pernah menyalakan lasernya, dan mengapa ujung jauh membaca −40 dBm pada modul yang secara elektrik baik-baik saja.
Timing yang ditunggu host
| Penantian | SFP | QSFP | CMIS |
|---|---|---|---|
| Manajemen siap setelah pemasangan | 300 ms | 2 s | ≤ 2 s (MgmtInit) lalu state LowPwr |
| Setelah melepas daya rendah | — | hingga Data_Not_Ready bersih | hingga state modul Ready (durasi maks. diiklankan di halaman 01h) |
| Inisialisasi data-path | — | — | diiklankan per langkah (kode nibble: < 1 ms … < 50 min) |
| Tx enable hingga menyala | t_on ≤ 1 ms | ton_txdis 100 ms / toff 400 ms | durasi DPTxTurnOn diiklankan |
| Flag hingga interrupt | — | ton_IntL 200 ms | sesuai spesifikasi hardware |
Timing level bus (t_WR, clock stretch): Antarmuka dua kawat.
Titik kebijakan yang berbeda antar-host
- Ketatnya whitelist — dari “hanya nama vendor” hingga blok khusus vendor yang ditandatangani.
- Yang terjadi saat ditolak — port dinonaktifkan, laser mati, atau link tetap diizinkan dengan entri log (Optik pihak ketiga).
- Kedalaman CMIS — kontrol aplikasi/data-path penuh vs “lepas LPMode dan berharap” (Masalah CMIS).
- Default FEC dan kecepatan — diturunkan dari kode kepatuhan atau dikonfigurasi secara statis.
- Polling DDM — interval, apakah ambang memicu shutdown port, apakah kalibrasi eksternal diterapkan (Kalibrasi).
CLI per-vendor untuk melihat di mana host berhenti: Memverifikasi optik pada switch.
Bedanya programmer dengan host
Programmer seperti CodingBox menjalankan langkah 1–5 dan 11 tetapi tanpa kebijakan: ia membaca semua yang ditunjukkan modul, termasuk area vendor dan byte kata sandi, menjaga modul CMIS tetap dalam daya rendah kecuali diminta lain, dan tidak pernah mengaktifkan laser dengan sendirinya. Itulah sebabnya sebuah modul bisa tampak sehat di meja kerja tetapi tetap gagal di port — meja kerja tidak memiliki langkah 6.
Di CodingBox
Check transceiver menampilkan hasil langkah 3–5 sebagaimana host akan melihatnya — jenis, rate, checksum, kelas daya — dan menandai ketidakkonsistenan sebelum modul mencapai port; DDM mencakup langkah 11 dengan monitor dan flag live.
Hardware di balik langkah 6 (kebijakan) dan batasan port-group di balik langkah 8: Di dalam switch, Bagaimana setiap NOS memvalidasi modul.