校验和:CC_BASE、CC_EXT、CC_DMI 与 CMIS 页面 · 规范与标准 · 光模块与线缆 · 文档 · CodingBox
CodingBox 文档

校验和:CC_BASE、CC_EXT、CC_DMI 与 CMIS 页面

每份管理规范都会用一个或多个校验和来保护自己的身份信息块,校验和是一个字节,让主机在信任 EEPROM 内容之前,先判断它是否损坏或写了一半。校验和的计算很简单,却很容易被遗忘:编辑之后忘记更新校验和,是刚编码完的模块被判定为无效最常见的原因。

算法

所有校验和都遵循同一规则:把覆盖范围内的字节当作无符号 8 位数值相加,只保留和的低 8 位 (对 256 取模)。不使用 CRC,也不涉及多项式。

sum = 0
对范围内的每个字节 b:
    sum = (sum + b) & 0xFF
checksum = sum

示例:某 10GBASE-SR SFP 的前五个字节为 03 04 07 10 00 → 3 + 4 + 7 + 16 + 0 = 30 = 1Eh。一直加到 byte 62,结果就是 CC_BASE。

各校验和的位置

规范校验和位置覆盖范围
SFF-8472 (SFP)CC_BASEA0h 字节 63A0h 字节 0–62
SFF-8472CC_EXTA0h 字节 95A0h 字节 64–94
SFF-8472CC_DMIA2h 字节 95A2h 字节 0–94(阈值和校准常数)
SFF-8636 (QSFP)CC_BASE字节 191上页 00h 字节 128–190
SFF-8636CC_EXT字节 223字节 192–222
INF-8077i (XFP)CC_BASE字节 191字节 128–190
INF-8077iCC_EXT字节 223字节 192–222
CMIS页校验和页 00h 字节 222页 00h 字节 128–221
CMIS页校验和页 01h 字节 255页 01h 字节 130–254(128–129 保存备用固件版本,不计入校验)
CMIS页校验和页 02h 字节 255页 02h 字节 128–254
CMIS页校验和页 04h 字节 255页 04h 字节 128–254

没有任何校验和覆盖的区域:厂商自定义区(SFP A0h 96–127、QSFP 224–255、CMIS 223–255)、用户 EEPROM、实时监测值和标志位、QSFP page 03h 的阈值,以及 CMIS 通道页。厂商可以在厂商自定义区中加入自己的完整性校验字段,但那些不属于规范的一部分。

主机如何处理校验和

行为校验和错误时的结果
校验 CC_BASE(大多数交换机和路由器)模块显示为无效、不支持或EEPROM 校验和错误;端口可能被 errdisable;激光器通常保持关闭
同时校验 CC_EXT结果相同,或者只记录日志,取决于具体平台
校验 CC_DMIDDM 显示为不支持,或数值被忽略;链路本身不受影响
忽略校验和(许多 NIC,部分开放式交换机)模块可以正常工作;错误只会在工具中显示

校验和错误和身份信息问题会一起报告,因此如果模块同时存在策略限制问题,两个消息会互相掩盖,分不清究竟是哪一个;先检查校验和,这是成本最低的排查步骤。故障现象对照表: 故障现象索引。

什么时候必须重新计算

  • 编辑覆盖范围内的任何内容之后:厂商名称、型号、序列号、日期代码、合规代码、波长、长度、选项、功率等级。
  • 在 SFP 上应用阈值或校准常数之后(CC_DMI)。
  • 从另一个模块恢复部分镜像之后。
  • 厂商自定义区、用户 EEPROM 或 A2h 控制字节的更改不需要重新计算。

操作顺序:编辑 → 重新计算所有受影响的校验和 → 写入 → 回读 → 校验。如果在数据写入之前 先写入校验和字节,就会留下一段时间窗口,一旦在此期间断电,模块就会变成无效状态。

校验和与厂商锁定

校验和正确是必要条件,但不是充分条件。严格的平台还会检查厂商信息块,在锁定设计中,还会检查厂商自定义区里的一段专有签名,而这段签名是规范定义的校验和完全不知道的。CC_BASE 校验通过、但身份信息仍被拒绝,这种情况属于厂商锁定问题,而不是校验和问题,参见: 厂商锁定, 厂商字段。

在 CodingBox 中

CodingBox 会在每次写入时自动重新计算 CC_BASE、CC_EXT、CC_DMI 和 CMIS 页校验和,并在读取模块时高亮显示不匹配的情况:Check transceiver 或 EEPROM editor 中出现红色的校验和字段,说明模块在别处被编辑过但没有修正校验和,或者 EEPROM 已损坏。

各校验和在相邻字节中的具体位置: SFF-8472 A0h(63、95), A2h(95), SFF-8636 上层页(191、223), CMIS 上层页(222、255), XFP(191、223)。


如果您发现本资料中有不准确之处或错误,请选中相应片段并按 Ctrl+Enter,即可。