合規代碼:位元組 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)。