兼容性代码:字节 3–10、36 与扩展表
主机并非通过厂商名称得知模块是什么,而是通过 兼容性代码(compliance codes):这些位字段表示"我是 10GBASE-LR"或"我是 1000BASE-T 铜缆 SFP",此外还有一个 扩展代码,用于容纳位字段耗尽后才出现的所有新类型。主机据此命名模块类型、决定提供哪些速率、选择 FEC 和拆分方式,在严格的平台上还会据此拒绝代码与端口不匹配的模块。把这些代码写对,是为模块编码时最重要的一件事。
两代编码方式
| 机制 | 位置 | 工作原理 |
|---|---|---|
| 经典位字段 | SFF-8472 字节 3–10;SFF-8636 字节 131–138 和 164 | 每种标准占一位;可同时置位多个(双速率、多协议) |
| 扩展规范兼容性 | SFF-8472 字节 36;SFF-8636 字节 192 | 取自 SFF-8024 表 4-4 的单一值:25G、100G、200G、400G、各类 MSA PMD |
| 应用(Applications) | CMIS 描述符 | 主机接口 ID + 介质接口 ID + 通道数,每个模块可有多个 — 参见 CMIS |
25G 或 100G 模块通常不置位大多数经典位,而是把身份信息写入字节 36 或 192;10G/1G 模块则相反。双速率 10G/25G 模块两者都用。
SFF-8472 字节 3–10(SFP 系列)
| 字节 | 位 7 | 位 6 | 位 5 | 位 4 | 位 3 | 位 2 | 位 1 | 位 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G 以太网 / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X 有源铜缆 | IB 1X 无源铜缆 |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 激光器 | OC-192 短距离 | SONET reach 位 1 | SONET reach 位 2 | OC-48 长距离 | OC-48 中距离 | OC-48 短距离 |
| 5 — SONET | 保留 | OC-12 SM 长距离 | OC-12 SM 中距离 | OC-12 短距离 | 保留 | OC-3 SM 长距离 | OC-3 SM 中距离 | OC-3 短距离 |
| 6 — 以太网 | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — FC 链路长度 / 技术 | 超长距离 (V) | 短距离 (S) | 中距离 (I) | 长距离 (L) | 中等距离 (M) | 保留 | 短波激光器,线性接收 (SA) | 长波激光器 (LC) |
| 8 — FC 技术 / 线缆 | 机柜间电气连接 (EL) | 短波激光器,无 OFC (SN) | 短波激光器,带 OFC (SL) | 长波激光器 (LL) | 有源电缆 | 无源电缆 | 保留 | 保留 |
| 9 — FC 介质 | 双芯同轴 (TW) | 双绞线 (TP) | 小型同轴 (MI) | 视频同轴 (TV) | 62.5 µm 多模 (M6) | 50 µm 多模 (M5/M5E) | 保留 | 单模 (SM) |
| 10 — FC 速率 | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | 参见字节 62 | 100 MB/s |
字节 62(Fibre Channel speed 2,光纤通道速率 2)延续了 64GFC 及以上的速率列表。字节 36 存放扩展代码。字节 12 以 ×100 Mb/s 为单位给出标称速率(FFh → 字节 66,单位为 ×250 Mb/s),字节 11 给出编码方式,字节 13 给出速率选择所用的速率标识符。
典型 SFP 编码
| 模块 | 字节 3 | 字节 6 | 字节 8 | 字节 36 | 字节 12 | 字节 11 | 波长 |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh(1.3 Gb/s) | 01h 8B/10B | 850 nm |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 nm |
| 1000BASE-T 铜缆 | 00h | 08h | 00h | 00h | 0Dh | 01h | 0(不适用) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h(10.3 Gb/s) | 06h 64B/66B | 850 nm |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 nm |
| 10G 无源 DAC | 00h | 00h | 04h | 00h | 67h | 06h | 0,字节 60 = 线缆兼容性 |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh(字节 66 = 67h → 25.75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| 25G 无源 DAC CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| 10G/25G 双速率 SR | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
长度字节 14–19 必须与之匹配:SR 模块填写 OM3/OM4 传输距离,LR 模块填写公里数,DAC 则在字节 18 中填写米数。
SFF-8636 字节 131–138、164(QSFP 系列)
| 字节 | 内容 |
|---|---|
| 131 — 10/40G 以太网 | 位 7 为 扩展(使用字节 192),6 为 10GBASE-LRM,5 为 10GBASE-LR,4 为 10GBASE-SR,3 为 40GBASE-CR4,2 为 40GBASE-SR4,1 为 40GBASE-LR4,0 为 40G 有源电缆(XLPPI) |
| 132 — SONET | OC-48 长距离 / 中距离 / 短距离,40G OTN |
| 133 — SAS/SATA | SAS 6 / 12 / 24 Gb/s |
| 134 — 千兆以太网 | 位 3 为 1000BASE-T,2 为 1000BASE-CX,1 为 1000BASE-LX,0 为 1000BASE-SX |
| 135 — FC 链路长度与技术 | 位含义与 SFP 字节 7 相同 |
| 136 — FC 发射机技术 | EL、SN、SL、LL 位定义与 SFP 字节 8 相同 |
| 137 — FC 介质 | TW、TP、MI、TV、M6、M5、OM3、SM |
| 138 — FC 速率 | 100…3200 MB/s,扩展标志位 |
| 164 — 扩展模块 | InfiniBand 速率:SDR、DDR、QDR、FDR、EDR |
| 192 — 扩展兼容性 | 表 4-4 中的取值 |
典型示例:40GBASE-SR4 → 字节 131 = 04h,字节 192 = 00h;100GBASE-SR4 → 字节 131 = 80h(扩展),字节 192 = 02h;100G CWDM4 → 80h / 06h;100GBASE-CR4 DAC → 80h / 0Bh,连接器为 23h。
CMIS — 用应用取代位字段
CMIS 模块最多可列出 15 个应用,每个应用把一个主机电接口与一个介质接口配对(二者都是 SFF-8024 代码),并给出通道数。一个 400G DR4 模块可能会同时广播 400GAUI-8 ↔ 400GBASE-DR4(8:4)和 100GAUI-2 ↔ 100GBASE-DR(2:1,用于 4×100G 拆分)。主机为每条数据通路选择其中一个;未广播的组合无法配置。详情与选择流程参见 CMIS。
主机如何使用这些代码
- 命名 — CLI 上显示的类型字符串(
10GBASE-LR、QSFP-100G-SR4)由这些字节推导得出,通常取按固定顺序找到的第一个置位的位。 - 速率提供 — 主机只会列出代码存在的速率;字节 36 = 02h 但字节 3 无对应位的 25G 模块不会被提供 10G(速度与速率)。
- FEC 选择 — 扩展代码携带 FEC 假设信息(CA-25G-L/S/N;带或不带 RS-FEC 的 CAUI-4),部分主机据此设置 FEC(FEC 与链路训练)。
- 铜缆与光模块之分 — 字节 8 位 2–3、连接器 23h 以及字节 147 的铜缆技术位,会让主机切换到 DAC 处理方式(自动协商、链路训练)。
- 策略 — 严格的平台会将代码与端口模式及自身的兼容性数据库比对;即使厂商信息块被接受,不匹配时仍会返回 unsupported 或 speed and type not supported (厂商锁定)。
编码规则
- 只置位硬件确实满足的位;在 SR 模块上声明 10GBASE-LR,会把"无链路"变成"有错误的链路"。
- 保持整体身份信息一致:兼容性 ↔ 波长 ↔ 长度 ↔ 编码 ↔ 标称速率 ↔ 连接器 ↔ 发射机技术。
- 25G 及以上速率要填写字节 36 / 192,并把字节 12 / 140 设为 FFh,把 ×250 Mb/s 的速率填入字节 66 / 222。
- 对于 DAC,用线缆技术位、以米为单位的长度、连接器 23h 和衰减/兼容性字节来编码,而不是填写波长。
- 之后重新计算校验和(校验和)。
在 CodingBox 中
Check transceiver 界面会把上面每一个位都解码成易懂的名称,并列出 CMIS 应用;EEPROM editor 逐字段编辑代码字节,显示得到的类型字符串,并在写入时修正 CC_BASE 和 CC_EXT。
完整的位字段表格及其字节上下文:SFF-8472 A0h 映射表(字节 3–10、36、62)、SFF-8636 上页映射表(131–138、164、192)、XFP 映射表(131–138)。