コンプライアンスコード:バイト 3–10、36 と拡張テーブル
ホストは、ベンダー名からモジュールの正体を知るわけではありません。コンプライアンスコードから知るのです。「私は 10GBASE-LR です」「私は 1000BASE-T 銅線 SFP です」と告げるビットフィールド、そしてビットフィールドの余地がなくなった後に登場したすべてのものをカバーする単一の拡張コード です。ホストはこれらを使ってモジュール種別を判別し、どの速度を提供するか決め、FEC とブレークアウトを選び、厳格なプラットフォームでは、コードがポートと一致しないモジュールを拒否します。これを正しく設定することが、モジュールにコーディングを施すうえで最も重要な作業です。
コーディングの2つの世代
| 方式 | 場所 | 仕組み |
|---|---|---|
| 従来のビットフィールド | SFF-8472 バイト 3–10;SFF-8636 バイト 131–138 と 164 | 規格ごとに1ビット;複数セットされる場合もある(デュアルレート、マルチプロトコル) |
| 拡張仕様準拠 | SFF-8472 バイト 36;SFF-8636 バイト 192 | SFF-8024 Table 4-4 の値の1つ:25G、100G、200G、400G、MSA PMD |
| アプリケーション | CMIS ディスクリプタ | ホストインターフェース ID + メディアインターフェース ID + レーン数、モジュールあたり複数 — CMIS を参照 |
25G または 100G のモジュールは、従来のビットのほとんどをクリアのままにし、識別情報をバイト 36 または 192 に格納します。10G/1G のモジュールはその逆です。10G/25G のデュアルレートモジュールは両方を使います。
SFF-8472 バイト 3–10(SFP ファミリー)
| バイト | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G Ethernet / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X copper active | IB 1X copper passive |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 レーザー | OC-192 短距離 | SONET 伝送距離ビット 1 | SONET 伝送距離ビット 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 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — FC リンク長/技術 | very long (V) | short (S) | intermediate (I) | long (L) | medium (M) | 予約済み | shortwave laser, linear Rx (SA) | longwave laser (LC) |
| 8 — FC 技術/ケーブル | electrical inter-enclosure (EL) | shortwave laser w/o OFC (SN) | shortwave laser with OFC (SL) | longwave laser (LL) | active cable | passive cable | 予約済み | 予約済み |
| 9 — FC メディア | twin axial (TW) | twisted pair (TP) | miniature coax (MI) | video coax (TV) | multimode 62.5 µm (M6) | multimode 50 µm (M5/M5E) | 予約済み | single mode (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)は、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 (byte 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 Ethernet | bit 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 — Gigabit Ethernet | bit 3 1000BASE-T、2 1000BASE-CX、1 1000BASE-LX、0 1000BASE-SX |
| 135 — FC リンク長と技術 | SFP バイト 7 と同じビットの意味 |
| 136 — FC 送信器技術 | SFP バイト 8 と同じ EL、SN、SL、LL のビット |
| 137 — FC メディア | TW、TP、MI、TV、M6、M5、OM3、SM |
| 138 — FC 速度 | 100 … 3200 MB/s、拡張フラグ |
| 164 — 拡張モジュール | InfiniBand のレート:SDR、DDR、QDR、FDR、EDR |
| 192 — 拡張準拠 | Table 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 ブレークアウト用)をアドバタイズすることがあります。ホストはデータパスごとに1つを選択します。アドバタイズされていないものは設定できません。詳細と選択の流れは 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 の bits 2–3、コネクター 23h、バイト 147 の銅線技術により、ホストは DAC 向けの処理(オートネゴシエーション、リンクトレーニング)に切り替わります。
- ポリシー — 厳格なプラットフォームは、コードをポートのモードおよび自社の互換性データベースと照合します。ベンダーブロックが受理されていても、一致しなければunsupported または speed and type not supported という結果になります(ベンダーロック)。
コーディングのルール
- ハードウェアが実際に満たすビットだけをセットしてください。SR モジュールで 10GBASE-LR を宣言すると、「リンクなし」が「エラーありのリンク」に変わってしまいます。
- 識別情報全体の整合性を保ってください:準拠 ↔ 波長 ↔ 長さ ↔ 符号化方式 ↔ 公称レート ↔ コネクター ↔ 送信器技術。
- 25G 以上では、バイト 36 / 192 を埋め、バイト 12 / 140 を FFh に設定し、バイト 66 / 222 に ×250 Mb/s のレートを入れてください。
- 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)。