厂商信息字段:名称、OUI、PN、SN 与日期代码
厂商块是主机在 show interface transceiver 中显示的内容,也是其兼容性策略比对的对象。规范精确定义了这些字段、它们的长度和编码方式,而主机对填充字符、大小写和多余字节毫不宽容。本页汇总了相关规则、各规范下的字节范围,以及会让一个完全正常的模块被读成乱码的常见错误。
各字段
| 字段 | SFF-8472(SFP,A0h) | SFF-8636(QSFP,00h 页) | CMIS(00h 页) | INF-8077i(XFP) | 格式 |
|---|---|---|---|---|---|
| 厂商名称 | 20–35 | 148–163 | 129–144 | 148–163 | 16 个 ASCII 字符 |
| 厂商 OUI | 37–39 | 165–167 | 145–147 | 165–167 | 3 字节,由 IEEE 分配 |
| 厂商 PN | 40–55 | 168–183 | 148–163 | 168–183 | 16 个 ASCII 字符 |
| 厂商版本 | 56–59 | 184–185 | 164–165 | 184–185 | 4/2/2/2 个 ASCII 字符 |
| 厂商序列号 | 68–83 | 196–211 | 166–181 | 196–211 | 16 个 ASCII 字符 |
| 日期代码 | 84–91 | 212–219 | 182–189 | 212–219 | 8 个 ASCII 字符 |
| CLEI 代码 | — | 02h 页,若字节 129 位 4 置位 | 190–199 | — | 10 个 ASCII 字符 |
| 厂商专用 | 96–127(A0h),A2h 用户 EEPROM 128–247 | 224–255,02h 页 | 223–255,自定义页 | 224–255 | 自由使用 |
逐字节映射:存储器映射。
编码规则
- 仅限 ASCII,可打印范围为 20h–7Eh。不允许 NUL(00h)、FFh 或控制字符。
- 左对齐,用空格(20h)填充至字段的完整长度。10 个字符的部件号后面应跟六个空格,而不是六个零。
- 厂商名称是制造商(或品牌方)注册的名称,是主机用于比对的字符串,通常区分大小写。
- OUI 是名称字段所属公司的 24 位 IEEE 组织唯一标识符,高字节在前; 00-00-00 表示未指定。主机很少检查它,但 OUI 与名称不一致,是识别被重新编码模块的一个简单特征。
- 版本格式自由(常见形式为
A、01、1.0),没有时填空格。 - 序列号应在同一厂商内唯一;许多厂商会在其中嵌入年/周信息和流水号;部分主机会利用其结构来识别自家模块。
- 日期代码为
YYMMDD,后跟 2 个字符的厂商批次代码(没有时填空格):240315= 2024 年 3 月 15 日。 - CLEI(Common Language Equipment Identifier,通用语言设备标识符)是一个 10 字符的电信资产代码,主要出现在销售给运营商的模块上。
主机比对的对象
| 主机行为 | 比对内容 | 常见于 |
|---|---|---|
| 名称 + PN 查找 | 将厂商名称和部件号与兼容性表比对 | 大多数企业级交换机 |
| PN 前缀/系列 | PN 的开头几个字符 | 拥有宽泛“受支持系列”列表的平台 |
| 厂商专用签名 | 厂商区域中的哈希值或魔数,由序列号和其他字段计算得出 | 严格的 OEM 锁定 |
| SN 模式 | 序列号的结构 | 部分 OEM,用于保修和防伪 |
| OUI | IEEE 标识符 | 少见;部分网卡和 NOS |
| 不比对 | 只要校验和有效就接受 | 开放式交换机,以及大多数允许不受支持 SFP 的网卡 |
哪个平台采取哪种做法,以及如何应对,是 厂商锁定和 第三方光模块的主题。
常见错误
| 错误 | 主机上的现象 |
|---|---|
| 用 NUL 而非空格填充 | 名称被截断或乱码,模块被标记为不受支持 |
| 字段多出一个字节,溢出到下一字段 | OUI 或 PN 损坏,校验和不匹配 |
| 大小写与参考值不同 | 兼容性表无法匹配 PN |
| 非 ASCII 字节(UTF-8、西里尔字母) | 显示问号或被拒绝 |
| 日期代码的数字位置出现字母 | 显示错误;部分主机会拒绝 |
| 厂商块被修改,但校验和未更新 | 模块无效,参见校验和 |
| 名称被修改,但厂商专用签名未更新 | 在严格的平台上仍然不受支持 |
| 身份信息与合规代码或波长不一致 | 速率和类型不受支持,参见合规代码 |
厂商专用区域
规范故意不定义厂商区域。制造商会在其中存放校准备份、生产数据、控制器配置,在带锁定的模块上还会存放认证数据。盲目覆写这些区域可能使模块变砖或破坏其锁定校验;从参考模块复制这些内容但序列号不匹配,通常也还是会导致校验失败。除非你了解该厂商的具体布局,否则应将其视为不透明区域(EEPROM 重新编码)。
在 CodingBox 中
EEPROM editor 将每个厂商字段作为文本编辑,按精确长度用空格填充,拒绝非 ASCII 输入,并在写入时重新计算校验和。 code database 保存完整的身份信息,因此可以一步应用一个已知良好的厂商块。
各映射中的厂商块:SFF-8472 A0h 20–91、SFF-8636 上层页 148–219、CMIS 00h 页 129–199、XFP 表 01h 148–219。
PN 字段背后各厂商的编号规则(Cisco、Juniper、Arista、Huawei、HPE、Dell、Nvidia、Brocade、MikroTik 等):OEM 部件号。