CodingBox ドキュメント

コンプライアンスコード:バイト 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 バイト 192SFF-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 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
3 — 10G Ethernet / InfiniBand10GBASE-ER10GBASE-LRM10GBASE-LR10GBASE-SRIB 1X SXIB 1X LXIB 1X copper activeIB 1X copper passive
4 — ESCON / SONETESCON MMF 1310 LEDESCON SMF 1310 レーザーOC-192 短距離SONET 伝送距離ビット 1SONET 伝送距離ビット 2OC-48 長距離OC-48 中距離OC-48 短距離
5 — SONET予約済みOC-12 SM 長距離OC-12 SM 中距離OC-12 短距離予約済みOC-3 SM 長距離OC-3 SM 中距離OC-3 短距離
6 — EthernetBASE-PXBASE-BX10100BASE-FX100BASE-LX/LX101000BASE-T1000BASE-CX1000BASE-LX1000BASE-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 cablepassive 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/s800 MB/s1600 MB/s400 MB/s3200 MB/s200 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-SX00h01h00h00h0Dh (1.3 Gb/s)01h 8B/10B850 nm
1000BASE-LX00h02h00h00h0Dh01h1310 nm
1000BASE-T 銅線00h08h00h00h0Dh01h0(該当なし)
10GBASE-SR10h00h00h00h67h (10.3 Gb/s)06h 64B/66B850 nm
10GBASE-LR20h00h00h00h67h06h1310 nm
10G パッシブ DAC00h00h04h00h67h06h0、バイト 60 = ケーブル準拠
25GBASE-SR00h00h00h02hFFh (byte 66 = 67h → 25.75 Gb/s)06h850 nm
25GBASE-LR00h00h00h03hFFh / 67h06h1310 nm
25G パッシブ DAC CA-25G-N00h00h04h0DhFFh / 67h06h0
10G/25G デュアルレート SR10h00h00h02hFFh / 67h06h850 nm

長さバイト 14–19 は整合していなければなりません。SR モジュールは OM3/OM4 の伝送距離を、LR モジュールはキロメートルを、DAC はバイト 18 にメートルを宣言します。

SFF-8636 バイト 131–138、164(QSFP ファミリー)

バイト内容
131 — 10/40G Ethernetbit 7 拡張(バイト 192 を使用)、6 10GBASE-LRM、5 10GBASE-LR、4 10GBASE-SR、3 40GBASE-CR4、2 40GBASE-SR4、1 40GBASE-LR4、0 40G アクティブケーブル(XLPPI)
132 — SONETOC-48 長距離/中距離/短距離、40G OTN
133 — SAS/SATASAS 6 / 12 / 24 Gb/s
134 — Gigabit Ethernetbit 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-LRQSFP-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 という結果になります(ベンダーロック)。

コーディングのルール

  1. ハードウェアが実際に満たすビットだけをセットしてください。SR モジュールで 10GBASE-LR を宣言すると、「リンクなし」が「エラーありのリンク」に変わってしまいます。
  2. 識別情報全体の整合性を保ってください:準拠 ↔ 波長 ↔ 長さ ↔ 符号化方式 ↔ 公称レート ↔ コネクター ↔ 送信器技術。
  3. 25G 以上では、バイト 36 / 192 を埋め、バイト 12 / 140 を FFh に設定し、バイト 66 / 222 に ×250 Mb/s のレートを入れてください。
  4. DAC では、波長の代わりに、ケーブル技術ビット、メートル単位の長さ、コネクター 23h、減衰/準拠バイトをコーディングしてください。
  5. 最後にチェックサムを再計算してください(チェックサム)。

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)。


この記事に不正確な点や誤りを見つけた場合は、該当する箇所を選択して Ctrl+Enter を押すと、できます。