Checksum: CC_BASE, CC_EXT, CC_DMI, halaman CMIS · Spesifikasi dan standar · Transceiver optik dan kabel · Dokumentasi · CodingBox
CodingBox Dokumentasi

Checksum: CC_BASE, CC_EXT, CC_DMI, halaman CMIS

Setiap spesifikasi manajemen melindungi blok identitasnya dengan satu atau lebih checksum — satu byte yang memungkinkan host mendeteksi EEPROM yang rusak atau setengah tertulis sebelum ia memercayai isinya. Checksum ini sepele untuk dihitung dan mudah dilupakan: checksum yang kedaluwarsa setelah pengeditan adalah alasan paling umum sebuah modul yang baru saja di-coding dilaporkan sebagai invalid.

Algoritme

Semuanya menggunakan aturan yang sama: jumlahkan byte dari rentang yang dicakup sebagai nilai 8-bit tak bertanda dan simpan 8 bit terendah dari hasil penjumlahannya (jumlah modulo 256). Tidak ada CRC, tidak ada polinomial.

sum = 0
untuk setiap byte b dalam rentang:
    sum = (sum + b) & 0xFF
checksum = sum

Contoh — lima byte pertama dari SFP 10GBASE-SR: 03 04 07 10 00 → 3 + 4 + 7 + 16 + 0 = 30 = 1Eh. Lanjutkan hingga byte 62 dan hasilnya adalah CC_BASE.

Tempat masing-masing checksum berada

SpesifikasiChecksumLokasiCakupan
SFF-8472 (SFP)CC_BASEA0h byte 63A0h byte 0–62
SFF-8472CC_EXTA0h byte 95A0h byte 64–94
SFF-8472CC_DMIA2h byte 95A2h byte 0–94 (ambang dan konstanta kalibrasi)
SFF-8636 (QSFP)CC_BASEbyte 191halaman atas 00h byte 128–190
SFF-8636CC_EXTbyte 223byte 192–222
INF-8077i (XFP)CC_BASEbyte 191byte 128–190
INF-8077iCC_EXTbyte 223byte 192–222
CMISchecksum halamanhalaman 00h byte 222halaman 00h byte 128–221
CMISchecksum halamanhalaman 01h byte 255halaman 01h byte 130–254 (128–129 menyimpan versi firmware tidak aktif dan dikecualikan)
CMISchecksum halamanhalaman 02h byte 255halaman 02h byte 128–254
CMISchecksum halamanhalaman 04h byte 255halaman 04h byte 128–254

Tidak dicakup oleh checksum apa pun: area khusus vendor (SFP A0h 96–127, QSFP 224–255, CMIS 223–255), EEPROM pengguna, monitor dan flag yang live, ambang halaman 03h QSFP, dan halaman lane CMIS. Vendor dapat menambahkan bidang integritasnya sendiri di ruang vendor — bidang tersebut bukan bagian dari spesifikasi.

Apa yang dilakukan host terhadapnya

PerilakuHasil dari checksum yang salah
Memvalidasi CC_BASE (sebagian besar switch dan router)modul ditampilkan sebagai invalid, unsupported, atau EEPROM checksum error; port dapat errdisable; laser sering dibiarkan mati
Memvalidasi CC_EXT jugasama, atau hanya entri log, tergantung platform
Memvalidasi CC_DMIDDM ditampilkan sebagai not supported atau nilainya diabaikan; link itu sendiri tidak terpengaruh
Mengabaikan checksum (banyak NIC, sebagian switch terbuka)modul berfungsi; kesalahan hanya muncul di tool

Kegagalan checksum dilaporkan bersama identitas, sehingga modul yang juga memiliki masalah kebijakan menampilkan satu pesan yang menutupi pesan lainnya — periksa checksum terlebih dahulu, itu adalah perbaikan yang murah. Peta gejala: Indeks gejala.

Kapan Anda harus menghitung ulang

  • Setelah mengedit apa pun dalam rentang yang dicakup — nama vendor, nomor part, serial, kode tanggal, kode kepatuhan, panjang gelombang, panjang, opsi, kelas daya.
  • Setelah menerapkan ambang atau konstanta kalibrasi pada SFP (CC_DMI).
  • Setelah memulihkan image parsial dari modul lain.
  • Tidak diperlukan untuk perubahan di ruang vendor, EEPROM pengguna, atau byte kontrol A2h.

Urutan operasi: edit → hitung ulang setiap checksum yang terpengaruh → tulis → baca kembali → verifikasi. Menulis byte checksum sebelum data yang dicakupnya meninggalkan sebuah celah waktu ketika kehilangan daya menghasilkan modul yang tidak valid.

Checksum dan penguncian vendor

Checksum yang benar itu perlu, tetapi tidak cukup. Platform yang ketat juga memeriksa blok vendor dan, pada desain yang terkunci, sebuah signature proprietary di ruang vendor yang sama sekali tidak diketahui oleh checksum spesifikasi. Lolos CC_BASE dengan identitas yang ditolak terlihat seperti kasus penguncian vendor, bukan kasus checksum — Penguncian vendor, Bidang vendor.

Di CodingBox

CodingBox menghitung ulang CC_BASE, CC_EXT, CC_DMI, dan checksum halaman CMIS secara otomatis pada setiap penulisan dan menyorot ketidakcocokan saat membaca sebuah modul — bidang checksum berwarna merah pada Check transceiver atau di EEPROM editor berarti modul tersebut diedit di tempat lain tanpa memperbaikinya, atau EEPROM-nya rusak.

Tempat masing-masing checksum berada di antara tetangganya: SFF-8472 A0h (63, 95), A2h (95), SFF-8636 atas (191, 223), halaman atas CMIS (222, 255), XFP (191, 223).


Jika Anda menemukan ketidakakuratan atau kesalahan dalam artikel ini, pilih bagian teks yang bersangkutan lalu tekan Ctrl+Enter untuk .