CMIS — antarmuka manajemen umum
CMIS, Common Management Interface Specification, adalah model manajemen untuk setiap faktor bentuk berkecepatan tinggi yang baru: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD dan SFP112 (sebagai SFP+ dengan CMIS), DSFP, COBO dan QSFP yang mendukung CMIS. CMIS dimulai pada QSFP-DD MSA (CMIS 3.0, 2018), diadopsi oleh grup OSFP dan COBO, dan sejak versi 5.0 (2021) dikelola di OIF. Dibandingkan dengan SFF-8636, ini bukan peta memori yang lebih besar melainkan model yang berbeda: halaman berbank untuk hingga 32 lane, state machine eksplisit untuk modul dan setiap data-path, aplikasi menggantikan bit field kepatuhan, diagnostik serbaguna (VDM), dan kanal command (CDB) untuk firmware dan fungsi lanjutan. Byte versi dan riwayatnya: Revisi spesifikasi.
Model memori
| Wilayah | Pengalamatan | Isi |
|---|---|---|
| Halaman bawah (byte 0–127) | selalu terlihat | identifier, revisi, status modul, flag, monitor modul, kontrol global, jenis media, deskriptor aplikasi 1–8, kata sandi, pemilihan bank 126, pemilihan halaman 127 |
| Halaman atas 00h (128–255) | halaman 127 = 00h | blok vendor, kelas daya, konektor, panjang kabel, teknologi media, checksum |
| 01h | pengiklanan | revisi firmware/hardware, panjang link, panjang gelombang, halaman dan bank yang didukung, durasi, kontrol integritas sinyal, deskriptor 9–15 |
| 02h | ambang | ambang alarm/peringatan modul dan lane |
| 04h | kemampuan laser | grid dan rentang laser yang dapat disetel (warisan SFF-TA-1004) |
| 10h (berbank) | kontrol lane | data-path deinit, Tx disable, polaritas, squelch, ekualisasi, staged control set |
| 11h (berbank) | status lane | state data-path, flag per-lane, monitor lane, status konfigurasi, active control set |
| 12h (berbank) | kontrol laser yang dapat disetel | kanal/panjang gelombang per lane |
| 13h–14h (berbank) | diagnostik | loopback, generator dan checker PRBS |
| 20h–2Fh (berbank) | VDM | deskriptor, sampel, ambang, flag |
| 9Fh | CDB | blok command: ID command, panjang, checksum, payload lokal |
| A0h–AFh | CDB EPL | payload extended untuk transfer besar (image firmware) |
| 80h–FFh (lainnya) | vendor | halaman khusus vendor |
Bank mengalamati 8 lane: bank 0 lane 1–8, bank 1 lane 9–16 dan seterusnya; berapa banyak yang diimplementasikan diiklankan pada halaman 01h. Modul yang hanya memiliki halaman 00h mengatur bit memori datar (byte 2 bit 7). Bus: satu alamat A0h, hingga 400 kHz, ModSelL per slot — antarmuka dua kawat.
Halaman bawah — byte tempat host bergantung
| Byte | Bidang | Catatan |
|---|---|---|
| 0 | Identifier | 18h QSFP-DD, 19h OSFP, 1Eh QSFP dengan CMIS… (SFF-8024) |
| 1 | Revisi CMIS | nibble major.minor: 50h = 5.0, 40h = 4.0, 30h = 3.0 |
| 2 | Karakteristik memori | bit 7 memori datar, ditambah stepped-config-only dan bit kemampuan lain |
| 3 | Status modul | bit 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; bit 0 interrupt deasserted |
| 8–11 | Flag modul | perubahan state, alarm suhu/Vcc, alarm aux, vendor; latched, dibersihkan saat dibaca |
| 14–25 | Monitor modul | suhu, Vcc, Aux1–Aux3 (arus TEC, suhu laser, supply tambahan), vendor |
| 26 | Kontrol global | 5.x: bit 6 LowPwrAllowRequestHW, bit 5 metode squelch, bit 4 LowPwrRequestSW, bit 3 reset software (4.x: bit 6 LowPwr, bit 4 ForceLowPwr) |
| 37–38 | Status CDB | busy / success / fail untuk blok command 1 dan 2 |
| 39–40 | Firmware aktif | major.minor dari image yang berjalan |
| 85 | Jenis media | 01h MMF, 02h SMF, 03h tembaga pasif, 04h kabel aktif, 05h BASE-T |
| 86–117 | Deskriptor aplikasi 1–8 | 4 byte masing-masing: ID interface host, ID interface media, jumlah lane host/media, opsi penetapan lane host |
| 118–121 | Perubahan kata sandi | ditentukan vendor |
| 122–125 | Entri kata sandi | ditentukan vendor — tempat kata sandi write-protection dimasukkan |
| 126 | Pemilihan bank | — |
| 127 | Pemilihan halaman | — |
State machine modul
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(ModuleFault dari state mana pun saat terjadi kesalahan fatal)
- MgmtInit — modul mem-boot controller-nya; identitas belum dapat dibaca (hingga 2 s menurut spesifikasi hardware).
- ModuleLowPwr — identitas, pengiklanan, dan ambang dapat dibaca; daya dibatasi ke kelas 1; di sinilah host memvalidasi modul.
- ModulePwrUp → ModuleReady — host melepas pin LPMode (atau membersihkan LowPwrRequestSW) dan modul mengaktifkan daya ke optiknya; data-path kini dapat diinisialisasi.
- ModulePwrDn — kebalikannya saat LPMode di-assert.
Modul yang tidak pernah keluar dari LowPwr adalah tiket CMIS klasik: Masalah CMIS, Daya & termal.
Aplikasi dan data-path
Alih-alih bit kepatuhan, modul CMIS mengiklankan aplikasi — pasangan antarmuka elektrik host dan interface media, dengan jumlah lane:
| Deskriptor | Interface host | Interface media | Lane host / lane media | Contoh |
|---|---|---|---|---|
| App 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | satu link 400G |
| App 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | breakout 4 × 100G |
Host memilih aplikasi per lane dengan menuliskan AppSel (bit 7–4), sebuah DataPathID (bit 3–1), dan bit explicit-control ke dalam Staged Control Set 0 (halaman 10h byte 145–152), lalu meng-assert ApplyDPInit (halaman 10h byte 143). Modul menjawab pada ConfigStatus (halaman 11h byte 202–205: accepted, rejected, invalid AppSel, invalid lane combination…) dan menyalin nilai yang diterima ke dalam Active Control Set (halaman 11h 206–221). Setiap data-path kemudian menjalani state machine-nya sendiri:
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
State dilaporkan per lane pada halaman 11h byte 128–131 (satu nibble per lane), dan durasi maksimum setiap langkah diiklankan pada halaman 01h agar host tahu berapa lama harus menunggu. Tx disable per lane berada pada halaman 10h byte 130. Breakout yang tidak didaftarkan modul sebagai aplikasi memang tidak tersedia — Kecepatan & rate.
Pemantauan: flag, monitor, VDM
- Monitor modul (halaman bawah 14–25) dan monitor lane (halaman 11h: daya Tx 154–169, bias Tx 170–185, daya Rx 186–201, 2 byte per lane) memakai format 16-bit yang sama seperti SFP/QSFP (satuan).
- Ambang ada pada halaman 02h; flag bersifat latched dan dibersihkan saat dibaca, dengan mask per flag; IntL memberi sinyal untuk flag mana pun yang tidak di-mask.
- VDM (halaman 20h–2Fh) menambahkan observable yang tidak pernah dimiliki spesifikasi lama: BER pra-FEC, frame FEC yang tidak dapat dikoreksi, SNR per lane, suhu dan usia laser, eSNR, parameter transisi level PAM4 — masing-masing dengan deskriptor, ambang, dan flag sendiri. Begitulah cara modul 400G melaporkan kualitas link sebelum kesalahan mencapai host (Pemantauan).
CDB — Command Data Block
Halaman 9Fh adalah mailbox: host menuliskan ID command (byte 128–129), panjang payload (130–132), sebuah checksum (133), dan hingga 120 byte payload lokal (136–255), atau lebih lagi pada halaman EPL A0h–AFh bila diperlukan; modul mengeksekusi dan melaporkan pada byte status 37–38 serta payload balasan. Command standar mencakup:
| Command | Tujuan |
|---|---|
| 0000h | kueri status |
| 0040h / 0041h | fitur modul / fitur manajemen firmware |
| 0100h | ambil info firmware (image yang berjalan dan yang nonaktif) |
| 0101h | mulai download firmware |
| 0103h / 0104h | tulis blok firmware lewat LPL / EPL |
| 0107h | selesaikan download |
| 0109h / 010Ah | jalankan image / commit image |
| 0102h | abort |
CDB adalah cara tool vendor memperbarui firmware modul di lapangan, dan cara sebagian vendor mengimplementasikan fungsi konfigurasi dan unlock. Dukungan dan fiturnya diiklankan pada halaman 01h.
Checksum dan kata sandi
Halaman 00h byte 222 meng-checksum byte 128–221; halaman 01h, 02h, dan 04h membawa checksum halaman pada byte 255 (Checksum). Kata sandi (122–125) dan skema unlock vendor berada di luar spesifikasi — Pengodean ulang EEPROM.
Dukungan host
Sistem operasi jaringan mengimplementasikan CMIS 4.0 dan 5.x dengan kedalaman yang berbeda-beda: sebagian menjalankan alur aplikasi/data-path secara penuh, sebagian lain melepas LPMode dan berharap modul bangun sendiri. Perbedaan inilah yang ada di balik sebagian besar tiket “dikenali tetapi tidak pernah siap” — Masalah CMIS, Apa yang dilakukan host.
Di CodingBox
CodingBox mendeteksi CMIS lewat byte identifier dan revisi, membaca memori bawah, halaman 00h, 01h, 02h, dan halaman lane berbank, mendekode deskriptor aplikasi terhadap SFF-8024, menampilkan state modul dan data-path serta monitor per-lane pada DDM, dan mengedit identitas dengan checksum halaman dihitung ulang di EEPROM editor. Operasi firmware lewat CDB bersifat khusus vendor dan berada di luar cakupan editor.
Tabel level register: Peta halaman bawah, Peta halaman atas 00h/01h/02h, Peta halaman lane 10h/11h, VDM, CDB.