CodingBox ドキュメント

CMIS(共通管理インターフェース)

CMISCommon Management Interface Specification)は、QSFP-DD、OSFP、OSFP-XD、QSFP112、 SFP-DD、SFP112(SFP+ with CMIS として)、DSFP、COBO、そして CMIS 対応 QSFP まで、あらゆる新しい高速フォームファクターの管理モデルです。QSFP-DD MSA(CMIS 3.0、2018年)で始まり、OSFP と COBO の各グループに採用され、バージョン 5.0(2021年)以降は OIF が維持しています。SFF-8636 と比べると、単に大きなメモリマップというより別のモデルです。最大 32 レーン分のバンク化されたページ、モジュールと各データパスそれぞれの明示的なステートマシン、準拠ビットフィールドの代わりの アプリケーション、多彩な診断機能(VDM)、そしてファームウェアと拡張機能のためのコマンドチャネル(CDB)です。バージョンバイトと変遷履歴は 仕様リビジョンを参照してください。

メモリモデル

領域アドレッシング内容
下位ページ(バイト 0–127)常に参照可能識別子、リビジョン、モジュール状態、フラグ、モジュール監視項目、グローバル制御、メディアタイプ、アプリケーションディスクリプタ 1–8、パスワード、バンク選択 126ページ選択 127
上位ページ 00h(128–255)ページ 127 = 00hベンダーブロック、電力クラス、コネクター、ケーブル長、メディア技術、チェックサム
01hアドバタイズファームウェア/ハードウェアリビジョン、リンク長、波長、対応ページとバンク、所要時間、信号品質制御、ディスクリプタ 9–15
02hしきい値モジュールおよびレーンのアラーム/警告しきい値
04hレーザー機能波長可変レーザーのグリッドと範囲(SFF-TA-1004 系列
10h(バンク化)レーン制御データパスの無効化、Tx ディセーブル、極性、スケルチ、等化、ステージドコントロールセット
11h(バンク化)レーンステータスデータパスの状態、レーンごとのフラグ、レーン監視項目、設定状態、アクティブコントロールセット
12h(バンク化)波長可変レーザー制御レーンごとのチャネル/波長
13h–14h(バンク化)診断ループバック、PRBS ジェネレーターとチェッカー
20h–2Fh(バンク化)VDMディスクリプタ、サンプル、しきい値、フラグ
9FhCDBコマンドブロック:コマンド ID、長さ、チェックサム、ローカルペイロード
A0h–AFhCDB EPL大容量転送(ファームウェアイメージ)用の拡張ペイロード
80h–FFh(その他)ベンダーベンダー固有のページ

バンクは 8 レーンをアドレッシングします。バンク 0 はレーン 1–8、バンク 1 はレーン 9–16 という具合です。実装されているバンク数はページ 01h でアドバタイズされます。ページ 00h しか持たないモジュールは、フラットメモリビット(バイト 2 ビット 7)をセットします。バス:単一アドレス A0h、最大 400 kHz、スロットごとの ModSelL — 2線式インターフェース

下位ページ — ホストが拠り所とするバイト

バイトフィールド備考
0識別子18h QSFP-DD、19h OSFP、1Eh QSFP with CMIS…(SFF-8024
1CMIS リビジョンメジャー・マイナーのニブル:50h = 5.0、40h = 4.0、30h = 3.0
2メモリ特性bit 7 フラットメモリ、その他ステップ構成専用などの機能ビット
3モジュール状態bits 3–1:1 LowPwr、2 PwrUp、3 Ready、4 PwrDn、5 Fault;bit 0 割り込み解除
8–11モジュールフラグ状態変化、温度/Vcc アラーム、補助アラーム、ベンダー固有;ラッチされ、読み取りでクリア
14–25モジュール監視項目温度、Vcc、Aux1–Aux3(TEC 電流、レーザー温度、追加電源)、ベンダー固有
26グローバル制御5.x:bit 6 LowPwrAllowRequestHW、bit 5 スケルチ方式、bit 4 LowPwrRequestSW、bit 3 ソフトウェアリセット(4.x:bit 6 LowPwr、bit 4 ForceLowPwr)
37–38CDB ステータスコマンドブロック 1・2 の busy/success/fail
39–40アクティブファームウェア実行中イメージのメジャー・マイナー
85メディアタイプ01h MMF、02h SMF、03h パッシブ銅線、04h アクティブケーブル、05h BASE-T
86–117アプリケーションディスクリプタ 1–8それぞれ 4 バイト:ホストインターフェース ID、メディアインターフェース ID、ホスト/メディアのレーン数、ホストレーン割り当てオプション
118–121パスワード変更ベンダー定義
122–125パスワードエントリベンダー定義 — 書き込み保護パスワードの格納場所
126バンク選択
127ページ選択

モジュールステートマシン

Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
                            ▲                              │
                            └──────── ModulePwrDn ◄────────┘
                       (ModuleFault from any state on a fatal error)
  • MgmtInit — モジュールがコントローラーを起動する段階。識別情報はまだ読み取れません(ハードウェア仕様上、最大 2 s)。
  • ModuleLowPwr — 識別情報、アドバタイズ、しきい値が読み取り可能。電力はクラス 1 に制限され、ホストはここでモジュールを検証します。
  • ModulePwrUp → ModuleReady — ホストが LPMode ピンをネゲートする(または LowPwrRequestSW をクリアする)と、モジュールは光学系に電力を供給します。これでデータパスを初期化できます。
  • ModulePwrDn — LPMode のアサート時の逆方向の遷移です。

LowPwr から抜け出せないモジュールは、CMIS における典型的なトラブルです。 CMIS の問題電力と熱を参照してください。

アプリケーションとデータパス

準拠ビットの代わりに、CMIS モジュールはアプリケーションをアドバタイズします。これは、レーン数を伴うホスト電気インターフェースとメディアインターフェースの組み合わせです。

ディスクリプタホストインターフェースメディアインターフェースホストレーン/メディアレーン数
App 112h 400GAUI-8 C2M1Ch 400GBASE-DR48 / 4400G リンク1本
App 20Eh 100GAUI-2 C2M14h 100GBASE-DR2 / 14 × 100G ブレークアウト

ホストはレーンごとにアプリケーションを選びます。AppSel(bits 7–4)、DataPathID (bits 3–1)、明示制御ビットをステージドコントロールセット 0(ページ 10h バイト 145–152)に書き込み、続いてApplyDPInit(ページ 10h バイト 143)をアサートします。モジュールは ConfigStatus(ページ 11h バイト 202–205:accepted、rejected、invalid AppSel、 invalid lane combination…)で応答し、受理された値をアクティブコントロールセット (ページ 11h 206–221)にコピーします。各データパスはそれぞれ独自のステートマシンをたどります。

DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
       ▲                                                          │
       └────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘

状態はレーンごとにページ 11h バイト 128–131 に報告され(レーンあたり1ニブル)、各ステップの最大所要時間はページ 01h でアドバタイズされるため、ホストはどれだけ待てばよいか分かります。レーンごとの Tx ディセーブルはページ 10h バイト 130 にあります。モジュールがアプリケーションとして挙げていないブレークアウトは、単純に利用できません — 速度とレートを参照してください。

監視:フラグ、監視項目、VDM

  • モジュール監視項目(下位ページ 14–25)とレーン監視項目(ページ 11h:Tx パワー 154–169、Tx バイアス 170–185、Rx パワー 186–201、レーンあたり 2 バイト)は、SFP/QSFP と同じ 16 ビット形式を使います(単位)。
  • しきい値はページ 02h にあります。フラグはラッチされ読み取りでクリアされ、フラグごとにマスクがあります。IntL はマスクされていないフラグがあれば発報します。
  • VDM(ページ 20h–2Fh)は、旧仕様にはなかった観測項目を追加します。FEC 前 BER、訂正不能な FEC フレーム、レーンごとの SNR、レーザー温度と経年、eSNR、PAM4 レベル遷移パラメーターです。それぞれに専用のディスクリプタ、しきい値、フラグがあります。400G モジュールが、エラーがホストに届く前にリンク品質を報告できるのはこの仕組みによるものです(監視)。

CDB — コマンドデータブロック

ページ 9Fh はメールボックスです。ホストがコマンド ID(バイト 128–129)、ペイロード長(130–132)、チェックサム(133)、そして最大 120 バイトのローカルペイロード(136–255)を書き込み、必要に応じて EPL ページ A0h–AFh にさらに書き込みます。モジュールはこれを実行し、ステータスバイト 37–38 と応答ペイロードで報告します。標準コマンドの例:

コマンド用途
0000hステータス照会
0040h / 0041hモジュール機能/ファームウェア管理機能
0100hファームウェア情報を取得(実行中イメージと非アクティブイメージ)
0101hファームウェアダウンロード開始
0103h / 0104hLPL/EPL 経由でファームウェアブロックを書き込み
0107hダウンロード完了
0109h / 010Ahイメージを実行/イメージをコミット
0102h中止

CDB は、ベンダーツールが現場でモジュールのファームウェアを更新する仕組みであり、一部のベンダーが設定機能やアンロック機能を実装する仕組みでもあります。対応状況と機能はページ 01h でアドバタイズされます。

チェックサムとパスワード

ページ 00h のバイト 222 はバイト 128–221 のチェックサムです。ページ 01h、02h、04h では、バイト 255 にページチェックサムが入ります(チェックサム)。パスワード(122–125)とベンダーのアンロック方式は仕様の対象外です — EEPROM の書き換えを参照してください。

ホストの対応

ネットワーク OS が実装する CMIS 4.0 と 5.x の深さはさまざまです。アプリケーション/データパスの一連の流れをフルに制御するものもあれば、LPMode を解除してモジュール自身の立ち上げに任せるものもあります。この違いが、「認識はされるが決して Ready にならない」という大半のトラブルの背景にあります — CMIS の問題ホストが行うことを参照してください。

CodingBox では

CodingBox は識別子とリビジョンバイトで CMIS を検出し、下位メモリ、ページ 00h、01h、02h、バンク化されたレーンページを読み取り、アプリケーションディスクリプタを SFF-8024 と照合してデコードし、モジュールとデータパスの状態およびレーンごとの監視項目を DDM 画面に表示し、EEPROM editor では識別情報を編集するとページチェックサムを再計算します。CDB 経由のファームウェア操作はベンダー固有であり、エディターの対象外です。

レジスタレベルの表:下位ページマップ上位ページマップ 00h/01h/02hレーンページマップ 10h/11h、VDM、CDB


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