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 dB | 10G/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) | ベンダーによる消費寿命の推定値 |
| 2 | TEC 電流 | 最大値に対する %(S16) | クーラーの負荷。温度と電圧 |
| 3 | レーザー周波数誤差 | MHz(S16) | DWDM/ZR:グリッドからのずれ |
| 4 | レーザー温度 | °C(S16、1/256) | 冷却型レーザー |
| 5 / 6 | eSNR、media/host 入力 | dB(U16、1/256) | 等化後の電気 SNR。PAM4 の「アイ高さ」に相当。18–20 dB 超で余裕あり、15 dB 未満で際どい(ベンダー依存) |
| 7 / 8 | PAM4 レベル遷移パラメーター、media/host | dB | 4つのレベルの線形性 |
| 9 / 10 | FEC 前 BER 最小値、media/host | F16 | 区間内の最良値 |
| 11 / 12 | FEC 前 BER 最大値 | F16 | 区間内の最悪値。アラートに使うべき数値 |
| 13 / 14 | FEC 前 BER 平均値 | F16 | — |
| 15 / 16 | FEC 前 BER 現在値 | F16 | 直近のサンプル値 |
| 17–24 | FERC(フレーム誤り率カウント)の最小/最大/平均/現在値、media/host | F16 | FEC 後の訂正不能フレーム数。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 -S(fec_corrected_blocks、fec_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 カウンターはモジュールの外、プログラマーの外にあるものです。これらはスイッチから得られます。