CodingBox ドキュメント

VDM と FEC の指標:PAM4 リンク

レーンあたり 50G 以上になると、光パワーだけでは健全性を判断する指標として不十分になります。Rx パワーが完璧な PAM4 リンクでも、コネクターの汚れ1つで訂正不能なエラーに陥ることがあり、その最初の兆候は dBm ではなくビット誤り率です。この数値は2つの情報源から得られます。モジュール内部では、CMIS のVDM(Versatile Diagnostics Monitoring)が、レーンごとに FEC 前 BER、SNR、レーザーの健全性を報告します。ホスト側では、FEC デコーダーが訂正済みと訂正不能のコードワードを数えます。この2つを合わせて見ることで、リンクが損失なくトラフィックを運んでいる間でも、故障までどれだけ余裕があるかが分かります。

FEC が診断を変えた理由

PAM4 を使う 25G 以上のイーサネット PMD はすべて(そして 25G NRZ のほとんども)、リード・ソロモン FEC を前提としています。FEC が 10⁻¹² 以上まで訂正してくれるため、光学部品側は 10⁻⁵–10⁻⁴ という生の誤り率を出すことが許されています。その結果、劣化しつつあるリンクは、FEC の限界を超えるまで MAC 側にはエラーがまったく現れず、その後突然故障します。FEC 前 BER だけが、マージンを滑らかに示す唯一の指標です。

FEC符号コードワードあたりの訂正能力10⁻¹² 出力のための FEC 前 BER 限界(概算)使用箇所
BASE-R(「FC-FEC」、Clause 74)Fire code(2112、2080)11 ビットのバースト≈ 10⁻⁷ … 10⁻⁸、利得 ~2 dB10G/25G NRZ、CA-25G-S
RS-FEC KR4(Clause 91/108)GF(2¹⁰) 上の RS(528, 514)7 シンボル≈ 5 × 10⁻⁵25GBASE-CR/SR/LR、100GBASE-SR4/CWDM4/CR4
RS-FEC KP4(Clause 119/134)RS(544, 514)15 シンボル≈ 2.4 × 10⁻⁴すべての 50G PAM4 レーン:50G/100G/200G/400G/800G
連結符号/oFEC(コヒーレント)内符号+外符号≈ 10⁻² … 2 × 10⁻²400ZR(CFEC)、OpenZR+(oFEC)

設定の不一致については、FEC、オートネゴシエーション、リンクトレーニングを参照してください。

VDM:モジュールが報告する内容

VDM は CMIS のページ 20h–2Fh にあり(8 レーンごとにバンク分けされる)、ページ 01h でアドバタイズされます。それぞれの観測項目には、記述子(種類、レーン)、ライブのサンプル値、4つのしきい値、そしてフラグがあり、従来の監視項目とまったく同じ構造です。

ページ内容
20h–23h記述子:どの観測項目か、どのレーンか、どのしきい値セットか
24h–27hサンプル値(各2バイト)
28h–2Bhしきい値:上限/下限アラーム、上限/下限警告
2Ch–2Fhフラグとマスク

観測項目の種類(CMIS 4.0/5.x)

ID観測項目単位/形式分かること
1レーザーの経年度%(U16)ベンダーによる消費寿命の推定値
2TEC 電流最大値に対する %(S16)クーラーの負荷。温度と電圧
3レーザー周波数誤差MHz(S16)DWDM/ZR:グリッドからのずれ
4レーザー温度°C(S16、1/256)冷却型レーザー
5 / 6eSNR、media/host 入力dB(U16、1/256)等化後の電気 SNR。PAM4 の「アイ高さ」に相当。18–20 dB 超で余裕あり、15 dB 未満で際どい(ベンダー依存)
7 / 8PAM4 レベル遷移パラメーター、media/hostdB4つのレベルの線形性
9 / 10FEC 前 BER 最小値、media/hostF16区間内の最良値
11 / 12FEC 前 BER 最大値F16区間内の最悪値。アラートに使うべき数値
13 / 14FEC 前 BER 平均値F16
15 / 16FEC 前 BER 現在値F16直近のサンプル値
17–24FERC(フレーム誤り率カウント)の最小/最大/平均/現在値、media/hostF16FEC 後の訂正不能フレーム数。0 であるべき
128+コヒーレントセット(CMIS 5.x):変調器バイアス、CD、DGD、SOPMD、OSNR、eSNR、Q ファクター、Rx 合計/信号パワー、キャリア周波数オフセット…各種400ZR/ZR+ モジュール

F16 は CMIS の 16 ビット比率フォーマットで、5 ビットの指数部と 11 ビットの仮数部からなり、値 = 仮数 × 10^(指数 − 24) で求まります。1.5 × 10⁻⁶ の FEC 前 BER は、仮数 1500、指数 15 として格納されます。media 側は光ラインを、host 側はスイッチ ASIC への電気インターフェースを指します。host 側の BER が悪い場合、原因は光ファイバーではなくコネクターか基板にあります。

ホスト側の FEC カウンター

スイッチや NIC は、ポートごと、多くの場合レーンごとに次を数えます。

カウンター健全注意異常
訂正済みコードワード緩やかに増加(FEC 前 BER 10⁻⁸ … 10⁻⁶)急速な増加(KP4 で 10⁻⁵)限界に近い
訂正不能コードワード0少しでも増加継続的な増加 = フレーム損失
レーンごとのシンボルエラーレーン間で均等1レーンが突出そのレーンの光ファイバー/コネクター/レーザー
FEC 前 BER(算出値)< 10⁻⁷10⁻⁶ … 10⁻⁵> 10⁻⁴(KP4)

確認場所は、多くの NOS では show interfaces … fec / phy detail光学部品の検証)、Linux では ethtool -Sfec_corrected_blocksfec_uncorrectable_blocks)と ethtool --show-fec、SONiC では show interfaces counters fec です。カウンターは累積値です。クリアしてから増加率を見てください。

両方をあわせて読む

Rx パワーFEC 前 BER/eSNR訂正不能数診断
ウィンドウ内< 10⁻⁷、eSNR 高い0マージンがあり健全
ウィンドウ内10⁻⁵、1レーンで eSNR が低下0そのレーンが劣化中:MPO 光ファイバーの汚れ、VCSEL の経年劣化、際どいコネクター。故障する前に対処する(レーンごとの診断
低い高いありバジェットの問題。Rx パワーとリンクバジェット
ウィンドウ内、両端ともhost 側が高いあり電気的な問題:ケージ/コネクターの接触、基板、DAC の品質、等化設定の誤り
ウィンドウ内media 側が高い、全レーンあり分散、伝送距離クラスの誤り、合波器での波長ずれ、極性の一部誤り
良好エラー 0、リンクがフラップ0信号の問題ではない:FEC/AN の不一致、熱、ソフトウェア

しきい値とアラート

VDM のしきい値はベンダーが設定します。FEC 前 BER の代表的な上限警告は、FEC 限界のおよそ10分の1です(KP4 で 2 × 10⁻⁵)。アラートには増加率とトレンドを使ってください。FEC 前 BER が1週間で1桁上昇すれば、しきい値にかかわらず対応が必要です(監視)。FEC 後の訂正不能エラーは、常にインシデントです。

VDM がない場合

SFF-8472 と SFF-8636 のモジュールには VDM がありません。10G/25G/100G の NRZ リンクは、ホストの FEC カウンターと Rx パワーに頼ることになります。一部の SFF-8636 モジュールは、ページ 20h–21h やベンダー用バイトにベンダー固有の SNR や BER を公開していますが、ベンダーのツールでしか読み取れません。FEC を使わない NRZ(10G LR、1G)では、インターフェースの CRC/入力エラーカウンターだけがビットレベルでの唯一の手がかりです。

CodingBox では

CMIS モジュールでは、CodingBox が VDM の記述子とサンプル値を読み取り、DDM 画面で従来の監視項目と並べてレーンごとに表示し、F16 比率を普通の数値にデコードします。ホストの FEC カウンターはモジュールの外、プログラマーの外にあるものです。これらはスイッチから得られます。


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