イーサネット・テストの知見

高速イーサネットにおいて、オートネゴシエーション(AN)およびリンクトレーニング(LT)をテストするにはどうすればよいですか?

なぜオートネゴシエーション(AN)とリンクトレーニング(LT)は、高速イーサネットにとって不可欠なのでしょうか?

オートネゴシエーション(AN)とリンクトレーニング(LT)は、現代の高速イーサネットリンク(特に112G PAM4およびそれ以上の規格)において、信頼性の高い高性能な動作を実現するために不可欠なプロセスです。ANは、接続されたデバイス間で速度や前方誤り訂正(FEC)などの共通パラメータを合意させる役割を果たし、一方、LTは、伝送経路の劣化によるビットエラーを最小限に抑えるため、送信側の等化処理を動的に最適化します。

この記事では、高度なイーサネットトラフィックジェネレータを用いて、AN/LT実装のプロトコル準拠性と実環境でのパフォーマンスの両方を検証する方法について解説します。相互運用性の問題、トレーニング動作の不整合、根本原因の特定が困難といった、開発者が直面する主な課題を取り上げるとともに、自動化および対話型のテストワークフローを含む、体系的なテスト手法に関する実践的な指針を提供します。

学習内容:

  • ANとLTの役割――そして100G、400G、800Gイーサネットにおいてこれらが不可欠な理由
  • 堅牢性、一貫性、および相互運用性を確保するために、どのようなシナリオをテストすべきか
  • ANのみ、ANとLTの組み合わせ、および段階的な対話型リンクトレーニングテストの実行方法
  • トレーニング動作、イコライザ設定、およびBER性能の分析方法

これらのアプローチに従うことで、ネットワーク機器ベンダーや半導体開発者は、次世代イーサネット環境において、規格への準拠を確認し、相互運用性の問題を解決し、リンク性能を最適化することができます。

図1:Z800Freya ジェネレータを搭載したXena シャーシ

XOA ユーティリティとは何ですか?また、AN/LTのテストではどのように使用するのですか?

Z800Freya SerDes TGA(ANLTライセンス付き)

Z800Freya モジュールは、112Gbps SerDesまたは56Gbps SerDesベースのイーサネットを使用して、50G PAM4 / 100G PAM4 / 200G PAM4 / 400G PAM4 / 800G PAM4のステートレス・イーサネットを生成および解析できます。これには、ANおよびLTの通常(自動)テストが含まれます。

また、XOA ユーティリティを介してANおよびLTプロトコルの対話型テストを可能にする拡張ライセンスも利用可能です。

XOA ユーティリティ

別途購入可能な「Xena (XOA) ANLT Utility」は、クライアントPCからXena Freya 上のAN/LTテストシーケンスを設定・実行するためのコマンドラインインターフェース(CLI)シェルアプリケーションです。XenaManager GUIアプリケーションと比較して、XOA UtilityはAN/LTのより高度な制御およびテスト機能を利用できます。本製品は別途購入が必要です。

XOA パッケージはオープンソースであり、GitHub(https://github.com/XenaNetworks)からダウンロードしてインストールできます。XOA Utilityは、Windows、Linux、およびmacOSで動作します。Xena 、図2に示すように、RFC-2544などのL2およびL3テストシーケンスを実行するためのXOA APIも提供しています。

お使いのPCからTCPポート22611を使用してXena へのTCP/IP接続を開くことで、Xena 接続できます。

XOA は、XOA APIの複数の呼び出しを共通の関数にまとめ、使いやすさをXOA (高レベル関数)を基盤としています。

独自のPythonスクリプトを作成したい場合は、XOA APIを直接使用することも可能です。

XOA のコマンド構成は、以下の通りです:

< コマンド > [ < サブコマンド > ] [ < 引数 > ] [ < オプション > ]

以下の章では、これらのコマンドのうちいくつかを用いて、一般的なAN/LTテストケースを実行する方法について説明します。XOA コマンドの完全な一覧は、ソフトウェアに組み込まれているリファレンスマニュアルに記載されています。

ANLTのテスト方法

図2:Xena パッケージの構成。

図3:ANLTのあらゆる試験における一般的な手順は、以下のステップで構成される 

イーサネットにおけるオートネゴシエーション(AN)プロトコルはどのように機能するのでしょうか?

オートネゴシエーション(AN)の主な目的は、リンクの両端にある2つの接続デバイスが相互に通信し、共通の伝送パラメータセットについて合意することです。ANはIEEE 802.3の73条で標準化されています。

マルチレーン接続の場合、ANはレーン0でのみ実行され、AN実行中は残りのレーンのSerDesは無効化されます。

ANプロトコルは、通信に48ビット長のリンクコードワード(LCW)を使用し、156.25 Mbpsという低ビットレートを採用しています。LCWはDMEページとも呼ばれ、この規格ではベースページとネクストページの両方が定義されています。

ANプロセス中、各リンクパートナーは、遠隔側のリンクパートナーがDMEページの正常な受信を確認するまで、同じDMEページを継続的に送信します。少なくとも1つのリンクパートナーに「Next Pages」がある場合、送信すべき「Next Pages」がなくなるまで、同様の方法でそれらを交換します。

2つのリンクパートナーは、それぞれの技術的性能(伝送速度など)を比較し、802.3で定義されている優先順位決定テーブルに基づいて、両者に共通する最高水準を選択する。

ANプロセスの一環として、2つのリンクパートナーがDMEページを際限なく送信し続けることを防ぐため、いくつかのタイムアウトが定義されている。

リンクトレーニング(LT)プロトコルは、どのようにイーサネットリンクのパフォーマンスを最適化するのでしょうか?

リンクトレーニング(LT)とは、電気ケーブルを介したイーサネットについてIEEE 802.3で定義されたプロセスであり、2つのエンドポイントが相互に通信を行い、最適な伝送を実現するためにそれぞれの送信側イコライザの設定を調整するものである。

LTでは、各リンクパートナーにおける送信側イコライザの係数(例えばc(-3)、c(-2)、c(-1)、c(0)、c(1)など)の重みが調整されます。ANとは対照的に、LTプロトコルはケーブル上の実際の速度で動作します。

また、この規格では、LTの明確な基準を確立するために利用できる、いくつかのプリセット送信イコライザー設定も定義されています。

リンクパートナーは、LT中に通信を行うためにトレーニングフレームを使用します。トレーニングフレームは、制御情報とトレーニングデータで構成されています。制御ワードはイコライザの設定に関する情報を交換し、トレーニングパターンは特定のイコライザ設定の性能をテストするために使用されます。性能はビット誤り率(BER)によって評価されます。

トレーニングフレームは、マルチレーン接続のすべてのレーンで個別に送信されます。

AN/LTプロトコルおよびパフォーマンスを検証する際、どのような点をテストすべきでしょうか?

ANおよびLTプロトコルのテストを行う主な目的は以下の通りです:

  • サードパーティベンダーとの互換性を確保する
  • 例外的なシナリオに対する耐性をテストする
  • 一貫性テスト
  • コンプライアンスの遵守を証明する

XenaManagerを使用すると、Z800Freya ジェネレータを以下の4つのモードでプロトコルを実行するように設定できます:

  • AN/LTが無効:テスターはANおよびLTを実行しません
  • AN専用:ANプロトコルのみを実行します
  • 自動モードでのANとLT:自動(通常)モードで、ANを実行した後、LTを実行します
  • 対話モードでのANおよびLT:ANを実行した後、LT対話モードに移行します。このモードでは、LTプロトコルをコマンドごとに順次実行し、各コマンドに対する応答を分析することができます(追加XOA ユーティリティライセンスが必要です)。

ANLTのあらゆる試験における一般的な手順は、図3に示す手順に従う必要があります。

アプリケーションノート:ANLTの試験セットアップ

図4:実験装置

AN/LTの検証における代表的なテストケースにはどのようなものがありますか?

このセクションでは、XOA を使用してAN/LTプロトコルのさまざまな有用なテストを定義・実行する方法の例を紹介します。

AN/LTのテスト環境はどのように構築すればよいですか?

すべてのテスト例で使用したテスト構成を図4に示す。これには、XOA Utilityのライセンスが適用されたZ800Freya ジェネレータ(ここではCompactシャーシに搭載されている)が含まれており、XOA を実行しているノートPCとTCP経由で接続されている。Z800Freya ポートの1つは、電気ケーブルを介して被試験装置(DUT)のポートの1つにFreya 。

以下の手順に従って、その後のテストに備えてテスターのポートを設定してください。

1. テスターに接続する

まず、`connect` コマンドとテスターの IP アドレス `xx.xx.xx.xx` を使用して、テスターに接続する必要があります。

ポートへの接続時にどのポートを使用するか決まっていない場合は、以下の例のように、–ports オプションを空欄のままにしておいてください。ポートの予約は後で可能です。

xoa connect xx.xx.xx.xxxoa

2. ポートを予約する

次に、以下の例に示すように、`port` コマンドを使用してテスター上でポートを予約します。

xoa port 0/0 –reset –force

3. リンクの復元を無効にする

ANLTテストを実行する前に、recovery コマンドを使用して、対象のポートのリンク復旧機能を無効にすることを忘れないでください。

これは、ポートが同期を検出できない場合、常に5秒ごとにANLTコマンドシーケンスを再実行しようとするためです。

対話型テストの前にこの機能を無効にしておかないと、手動でのリンクトレーニングの手順に支障をきたすことになります。

xoa[ポート 0/0]$ recovery –off

リンクトレーニングとは独立して、オートネゴシエーション(AN)をどのようにテストしますか?

この例では、DUTがLTを開始せずにリンク(ループバックなし)上でANプロセスを完了できるかどうかをテストし、その後ログを分析できるようにします。テストの手順は以下の通りです。

1. ポートのリセット

ポートを明確に定義された状態から開始できるように、`port --reset` コマンドでポートをリセットしてください。

xoa[port0/0]$ port 0/0 –reset

2. ANLTの設定

ANLTとLTの両方について、`an config`および`lt config`コマンドを使用して設定を行う必要があります。

xoa[port0/0]$ an config –on –no-loopback

xoa[port0/0]$ lt config –off

3. ログを記録する

ANプロセスのログを画面に表示し、ファイルに書き出すには、`an log` コマンドを使用します。

xoa[port0/0]$ an log "anlog1.txt"

4. ANLTを実行する

設定されたテストシーケンスは、do anlt コマンドで開始されます。

xoa[port0/0]$ do anlt

5. ANのステータスを確認する

ANの実行状況は、`an status` コマンドで確認できます

xoa[port0/0]$ an status

自動モードで、ANの後にLTをどのようにテストしますか?

この例では、DUTがANおよびLTプロセスを自動的に完了できるかどうかをテストし、その後ログを分析できるようにします。テストの手順は以下の通りです:

1. ポートのリセット

ポートを明確に定義された状態から開始できるように、`port --reset` コマンドでポートをリセットしてください。

xoa[port0/0]$ port 0/0 –reset

2. ANLTの設定

`an config` および `lt config` コマンドを使用して、AN と LT を設定しました

xoa[port0/0]$ an config –on –no-loopback

xoa[port0/0]$ lt config –on –mode=automatic

3. ログをファイルに書き出す

ANプロセスのログを画面に表示し、ファイル「log1.txt」に書き出すには、コマンド an log を使用します。

xoa[port0/0]$ an_log "log1.txt"

レーン0のLTプロセスのログを画面に表示し、ファイル「ltlog0.txt」に書き出すには、コマンド lt log を使用します。

xoa[port0/0]$ lt log 0 "ltlog0.txt"

4. ANLTを実行する

設定されたテストシーケンスは、do anlt コマンドで開始されます。

xoa[port0/0]$ do anlt

5. ANおよびLTのステータスを確認する

ANの実行状況は、`an status` コマンドで確認できます

xoa[port0/0]$ an status

LTの実行状況は、`lt status` コマンドで確認できます。

xoa[port0/0]$ lt status

リンクトレーニングのプロトコルにおける一貫性をどのように確認しますか?

LTプロトコルの整合性を検証するには、Txイコライザの初期設定を同一に設定した上で、自動モードでのANおよびLTを数回繰り返す必要があります。すべてのレーンのイコライザが、タップの設定が完全に同一となった場合、プロトコルの整合性が確認されたことになります。

インタラクティブモードでリンクトレーニングをどのようにテストしますか?

この例では、LTの対話モードを有効にし、DUTに対していくつかの対話コマンドを送信する方法を示します:

  • リモートポートに特定のプリセットを使用するよう指定する
  • リモートポートに対し、そのタップの1つを変更するよう依頼する
  • トレーニングパターンにおいて、リモートポートに特定のコーディングを使用するよう指定する
  • リモートポートに対し、特定のレーンのトレーニングが完了したことを通知する

この例では、DUTがANおよびLTプロセスを自動的に完了できるかどうかをテストし、その後ログを分析できるようにします。テストの手順は以下の通りです。

1. ポートのリセット

ポートを明確に定義された状態から開始できるように、`port --reset` コマンドでポートをリセットしてください。

xoa[port0/0]$ port 0/0 –reset

2. ANLTの設定

`an config` および `lt config` コマンドを使用して、AN と LT を設定しました

xoa[port0/0]$ an config –off

xoa[port0/0]$ lt config –on –mode=interactive

3. ログをファイルに書き出す

レーン0のLTプロセスのログを画面に表示し、ファイルに書き出すには、コマンド「lt log」を使用します。

xoa[port0/0]$ lt log 0 "ltlog0.txt"

4. ANLTを実行する

設定されたテストシーケンスは、do anlt コマンドで開始されます。

xoa[port0/0]$ do anlt

テスターは現在、対話型LTモードになっており、コマンドの入力を待っています。

5. リモートポートに対し、特定のレーンで特定のプリセットを使用するよう指示する

コマンド「lt preset」は、DUTに対し、特定のレーンの送信イコライザで特定のプリセットを使用するよう指示します。次のコマンドは、レーン0のプリセットをpreset1に設定します。

xoa[port0/0]$ 0 1

6. リモートポートに対し、特定のレーン上の特定のタップをインクリメントするよう要求する

コマンド「lt inc」は、DUTに対し、特定のレーンのTxイコライザ上の特定のタップ(強調)を1段階増やすよう指示します。増分は1回につき1段階のみ可能です。以下のコマンドは、レーン0のc(0)(メイン)を1段階増やします。

xoa[port0/0]$ lt inc 0 main

7. リモートポートに対し、特定のレーンにおけるトレーニングパターンで特定のコードを使用するよう依頼する

コマンド「lt encoding」は、特定のレーンの送信側イコライザにおけるトレーニングパターンで、特定の符号化方式を使用するようDUTに指示します。以下は、レーン0でプリコーディング付きPAM4の符号化方式を設定する例です。

xoa[port0/0]$ lt encoding 0 pam4pre

8. リモートポートに対し、特定のレーンの学習が完了したことを通知する

以下は、LTがレーン0で完了したことを示しています。

xoa[port0/0]$ lt trained 0

AN/LTのテストに関するツール、ドキュメント、リソースはどこで入手できますか?

Live Demoをお試しください

今すぐ、PC(Windows XP以上)と当社のLive Demo を使って、Xena をお試しいただけます。こちらをクリックして開始してください

詳細については、当社のウェブサイトをご覧ください

このアプリケーションノートで取り上げている製品について詳しくは、当社のウェブサイトの以下のページをご覧ください:

価格情報

価格の詳細については、xenaまでお問い合わせくださいxena

ディスカバリーコールを予約する

Xena エキスパートと簡単な電話相談を予約し、Xena Test Platformがお客様のニーズに最適なソリューションかどうかをご確認ください:https://xenanetworks.com/discovery-call-booking/