# SONiC で 800G AEC ケーブルを検証してみた
Navigation: [[../index|index]] | [[../overview|overview]]
> [!note] 出典と確度
> 本資料は[[ソフトバンク株式会社]]の[[張朝程]]氏・[[内田泰広]]氏が SONiC Workshop Japan 2025(2025年5月19日)で発表したスライド資料である。全28ページ(本編18ページ + Appendix 10ページ)を画像で確認した。発表動画(YouTube)の音声を Whisper で文字起こしし、口頭説明を補助情報として使用した。タイトルスライド・SpeakerDeck 公式ページの登壇者・所属・発表日は一致した。全スライドに `CONFIDENTIAL` の表記があるが、SpeakerDeck・YouTube で一般公開されている資料である。
## 概要
ソフトバンクが自社データセンターの AI 計算基盤における消費電力削減の選択肢として 800G AEC(Active Electrical Cable)ケーブルを検証した記録。検証1では二社の SONiC スイッチ間でのリンクアップ可否を確認し、片方のベンダーでリンクしない問題を CMIS(Common Management Interface Specification)のログとレジスタ読み書きで切り分けて解決した過程を、検証2では AEC ケーブルと光トランシーバー(Optics)の消費電力を専用テスターで比較した結果を報告する。
## 主要メッセージ
- AEC ケーブルは DAC(Passive Direct Attach Cable)と同じ銅素材のケーブルだが、DSP を内蔵する点で DAC と異なる。DSP により電気信号を増幅して伝送距離を伸ばし、信号劣化を補正できる。AOC(Active Optical Cable)も DSP を内蔵するが OE(電気/光)変換を伴うのに対し、AEC は OE 変換がないため消費電力を抑えられる(p.5)。
- 検証1では Tomahawk 5 搭載 SONiC スイッチ2台を800G AEC ケーブルで接続する構成を X社・Y社それぞれで組み、X社 SONiC 同士はリンクアップしたが Y社 SONiC ではリンクしなかった。SONiC の CLI(`show interface transceiver` 等)だけでは原因を特定できなかった(p.7)。
- AEC ケーブルと SONiC は両方とも CMIS 4.0 以降をサポートしており、`show logging xcvrd | grep CMIS | grep ${interface_name}` で CMIS 関連ログを絞り込める。正常系(X社)では `READY` まで初期化状態が進むログが確認できるのに対し、異常系(Y社)では `DataPathInitialized timeout` の後に `status=Failed` へ遷移するログが見つかり、「モジュール初期化失敗」と「Tx power 起動失敗」の2つの被疑箇所に絞り込んだ(p.8-10)。
- CMIS はモジュール情報をページ単位のレジスタ(Page 00h=Vendor情報、Page 01h=Supported link length 等、Page 10h=Data Path initialization control・Tx Output Controls)で管理する。`i2cdump`/`i2cset` コマンドで対象ポートの i2c bus id と CMIS の i2c アドレス(0x50)を指定してレジスタを読み書きできる(p.11, p.22-23)。
- Page 10h の Data Path initialization control レジスタ(byte 128)を読むと全8レーンが `0 = Initialized` で正常だったが、Tx Output Controls レジスタ(byte 130)は全レーンが `1 = Tx Disabled`(値 `0xFF`)になっていた。CMIS 仕様上 Tx output disable 機能は通常ホスト(スイッチ NOS)のみが制御するため、Y社 SONiC 側の Tx 出力制御処理に問題があると推測し、`i2cset` でレジスタ値を `0x00` に書き換えたところ Link up した(p.12-14, p.26-28)。
- 消費電力測定では、SONiC/Linux コマンドで得られるのは PSU 単位の電力のみでポート単位の計測はスイッチのハードウェア依存により不可能だった。そこでケーブルベンダー([[Credo Semiconductor]])と協力し、EVB(Evaluation Board)を介してオシロスコープで電流・電圧プローブによる直接計測を行った(p.16)。
- Tomahawk 5 搭載 SONiC スイッチ(SONiC 202211-based branch)で Layer 2 トラフィック(フレームサイズ1500byte)を Load 0%/100% で流し、800G AEC(Copper)・800G SR8 Optics(VCSEL)・800G DR8 Optics(EML)の消費電力を比較した。Load 100% 時、AEC は 11.04W、SR8 Optics は 12.92W、DR8 Optics は 13.99W で、AEC は SR8 比で約15%、DR8 比で約21%低い消費電力だった(p.17)。
- まとめとして、AEC ケーブルはオープン仕様(CMIS)準拠のため異なるベンダー間でも利用可能であり、CMIS の基本を理解することが SONiC 環境での障害切り分けに役立つとする。一方で SONiC 上でポート単位の電力測定ができる仕組みが望ましいという課題、および AEC ケーブルはケーブル長の制限(検証構成は2.5m、最大長7m)により利用可能な場面が限定的という制約を挙げている(p.18、口頭説明)。
## 視覚的に重要な図表
**p.5 AECケーブルとDAC・AOCの構造比較**
![[_attachments/softbank-sonic-800g-aec/page-005.png]]
DSP内蔵の有無とOE変換の有無で AEC(DSP内蔵・電気のみ)・DAC(DSPなし・電気のみ)・AOC(DSP内蔵・光変換あり)の3種のケーブルを図示し、AECが消費電力を抑えられる理由を示す。
**p.7 検証1のリンクアップ検証構成とY社SONiCでの失敗**
![[_attachments/softbank-sonic-800g-aec/page-007.png]]
Tomahawk 5搭載SONiCスイッチ2台を800G AECケーブルで接続する構成をX社・Y社それぞれで示し、Y社SONiCのみリンクしなかった事実とSONiC CLIだけでは原因特定が困難だった経緯を示す。
**p.10 CMIS異常動作ログとCMIS State Tableの対応**
![[_attachments/softbank-sonic-800g-aec/page-010.png]]
Y社スイッチのCMISログで`DataPathInitialized timeout`の後`status=Failed`に遷移する箇所を、SONiC CMIS State Table仕様の該当行(DP_TXON・FAILED)に赤枠で対応づけ、2つの被疑箇所(初期化失敗/Tx power失敗)を特定する根拠を示す。
**p.13 Tx Output Controlsレジスタの全レーン無効化(Root cause発見)**
![[_attachments/softbank-sonic-800g-aec/page-013.png]]
`i2cdump`で読んだPage 10h・byte 130の値が`0xFF`(全8レーンが`Tx Disabled`)であることを示し、これがリンクアップしない根本原因であると特定する決定的な図。
**p.14 レジスタ書き換えによるリンクアップ解決**
![[_attachments/softbank-sonic-800g-aec/page-014.png]]
`i2cset`でTx Output Controlsレジスタを`0x00`(全レーンTx Enabled)に書き換えた結果、無事Link upしたことを示す。
**p.17 AECケーブルとOpticsの消費電力比較表**
![[_attachments/softbank-sonic-800g-aec/page-017.png]]
Load 0%/100%条件下でAEC(Copper)・Optics SR8(VCSEL)・Optics DR8(EML)の消費電力を比較し、AECがSR8比15%・DR8比21%低いことを示す本資料の中心的な実測データ。
**p.22 CMISのPage構造(CMIS Module Memory)**
![[_attachments/softbank-sonic-800g-aec/page-022.png]]
CMISモジュールメモリがPageSelect Registerで切り替わる複数の128byteページ(Page 00h=Vendor情報、Page 01h=Supported link length、Page 10h=Data Path initialization control・Tx Output Controls)から構成される様子を図解し、Appendixで切り分け手順の理解を補強する。
## 口頭説明・補足
- 発表者の張朝程氏は2025年1月1日にソフトバンクへ入社。前職は2年間のiOSソフトウェアエンジニアと、スイッチメーカーでのネットワークエンジニアの経験を持つ。台湾出身で2016年に留学のため来日した(口頭説明。スライドには「2025 ソフトバンク株式会社 中途入社」「出身: 台湾、2016年から来日」とのみ記載)。
- 検証1の構成で使用したスイッチは Tomahawk 5 搭載 SONiC スイッチで、接続に使用した AEC ケーブルは OSFP タイプ・長さ2.5mだったと口頭説明で補足された(スライド上は「TH5 #1〜#4」「800G AEC」としか記載がなく、フォームファクタ・長さはスライドに明記されていない)。
- Y社 SONiC でリンクアップしなかった原因について、CMIS 仕様上 Tx output disable は通常ホストのみが制御することを踏まえ、「Y社 SONiC 側の Tx 出力制御の実装に問題がある可能性が高く、該当ベンダーの SONiC 側で修正が必要」と口頭で明言している(スライドの推測トーンより踏み込んだ表現)。
- まとめの「ケーブル長さの制限で使用できる場面は限定的」という点について、口頭説明では今回の検証で使用した AEC ケーブルは2.5mだが、現行の AEC ケーブルの最大長は7mであり、利用可能な場所がまだ限定されている現状だと補足している。
- Q&A は本発表の YouTube 動画には含まれておらず、質疑応答の内容は確認できない。
## 概念・実体への接続
- [[AECケーブル]]: AEC/DAC/AOCの構造比較、CMIS準拠による相互接続性、消費電力の実測比較(SR8比15%・DR8比21%減)、ケーブル長上限(7m)という制約を新規追加。
- [[CMIS]]: SONiC上でのCMISログ確認手順(`show logging xcvrd`)とPage構造(Page 00h/01h/10h)、`i2cdump`/`i2cset`によるレジスタ読み書きの実例、Tx Output Disable機能は通常ホストのみが制御するという仕様上の原則を新規追加。
- [[SONiC]]: SONiC実装のCMIS Tx出力制御にベンダー間差異があり、片方のベンダーではTx Output Controlsレジスタが意図せず無効のまま残る不具合が観測された事例を追加。
- [[張朝程]] / [[内田泰広]] / [[ソフトバンク株式会社]]: [[@2026__JANOG58__Rack-Scale GPUサーバーのNW設計と運用までの苦悩]] に続く2件目のソース。時系列上は本資料(2025年5月)が先行する。張朝程氏の入社時期・前職経歴が新たに判明した。
- [[Credo Semiconductor]]: 検証で使用した800G AECケーブルのベンダーとして新規追加。
- [[光トランシーバー電力方式]]: DSP搭載範囲によるFRO/LRO/LPO/CPOの光トランシーバー電力方式とは別軸で、電気ケーブル(AEC)がOE変換省略により消費電力を抑える方式であることを対比情報として追加。
## 限界・不確実点
- 検証1の「被疑箇所」の絞り込みおよび「Y社 SONiC 側の実装が怪しい」という結論は、あくまで発表者の推測であり、該当ベンダーによる公式な原因確認や恒久対応は本資料に含まれない。
- p.16の消費電力測定で使用した EVB(Evaluation Board)や測定機材の型番は画像から読み取れず、テスターの具体的な製品名は不明。
- Special Thanks に記載された [[Credo Semiconductor]] とネットワンシステムズ株式会社がそれぞれ検証にどう協力したか(ケーブル提供/測定機材提供/技術サポート等の内訳)はスライド・音声のいずれにも明記されていない。
- X社・Y社の具体的なスイッチベンダー名・SONiCディストリビューション名は匿名化されており本資料からは特定できない。