LawineX

Lawine Xは,専用ハードウェアによるクロックレベルの正確さを活用したネットワーク性能試験装置です.

専用ハードウェアならではの正確なパケット送信間隔

テストパケットの送受信のすべてをハードワイヤドで実現.装置による測定のゆらぎはありません

  • 内部動作クロック125MHzによる最小8n秒単位の測定精度を実現
  • 完全にロジックによる実装なので,ソフトウェアのチューニング,校正が不要です.
  • 最大10Gbpsでのパケット送受信を達成.

テストシナリオに基づく自動テストをサポート

最大5つまでのテストシナリオを設定可能.テスト開始後は終了を待つだけ.2系統のテスト経路に対して同一のシナリオによるテストを同時に実行します.

  • 送信するパケットのIPアドレス,ポート番号,プロトコル種別などを記述したシナリオを受理.
  • ベースとなる値+マスクパタンによって,特定範囲でのランダムテストパタン生成をサポート
  • テスト実行時に,テストパタンの有効無効を一時的に設定することもできます.

WebベースのGUIによる簡単制御

シナリオ設定,テスト開始はGUIで楽々制御.動作中の結果もリアルタイムでモニタリングできます

  •  GUIによる設定/実行制御をサポート.複雑なコマンドを覚える必要はありません.
  •  受信パケットの到着時刻のばらつき(ヒストグラム)を実行中に確認できます.

#

#

クイックスタートガイド

以下のステップで使用開始してください

サーバでの準備

  1. LawineボードのSFP+ポートにケーブルを接続してください.テストパケットは,1番ポート・3番ポートから送出し,0番ポート・2番ポートで受信します.
  2. Lawineサーバを起動するPCで8080ポートへのHTTPアクセスを許可してください
  3. 上記リンクよりOSにあったソフトウェアをダウンロードしてください
  4. 展開し,できたディレクトリに移動してください
  5. ./run.sh で実行開始

クライアントでの準備

  1. Webブラウザを起動します(Google Chromeを推奨)
  2. Lawineサーバを起動したPCの8080にブラウザでアクセスしてください
  3. シナリオファイルを選択し,"Go"をクリックすればテストパケットによる測定が開始されます.
  4. 測定中に,Pauseで一旦停止.Goで再び実行,Restartで最初からやりなおしができます.
  5. 各テストパタン左のチェックボックスをオフにすることで一時的に該当パタンのパケット送信を停止することができます.
  6. テスト結果は各シナリオ終了後にdataディレクトリの下にxxxxxx.resultというファイル名で保存されます.

シナリオファイルについて

テストパケットはJSON形式のシナリオファイルで設定できます.書式は次の通りです.

  1. {
  2. "scenarios": [ /* シナリオの開始 */
  3. {
  4. "name": "scenario0", /* シナリオの名前 */
  5. "description": "test scenario written on 2014.09.29 #1", /* 実行中に表示される説明 */
  6. "repetition" : 10000, /* パタンの繰り返し回数.31bit範囲内 */
  7. "gap" : 50, /* 送信するパケット間のギャップ.8ns単位のカウンタ値.0x4000000未満で指定する */
  8. "patterns":[ /* パタンを指定する.最大5個まで指定可能 */
  9. { "ethernet_dest": "22:22:22:22:22:22", /* 送信元MACアドレス */
  10. "ethernet_src" : "12:11:11:11:11:11", /* 送信先MACアドレス */
  11. "ip_protocol" : "UDP", /* プロトコル.UDPまたはTCP */
  12. "dest_ip_addr" : "192.168.10.100", /* 送信先のIPアドレス */
  13. "dest_ip_mask" : "255.255.255.255", /* 送信先のIPアドレスのマスク.マスクしない部分は乱数で決まる */
  14. "src_ip_addr" : "192.168.20.100", /* 送信元のIPアドレス */
  15. "src_ip_mask" : "255.255.255.255", /* 送信元のIPアドレスのマスク.マスクしない部分は乱数で決まる */
  16. "dest_port" : 16384, /* 送信先のポート番号 */
  17. "dest_port_mask" : "0xFFFF", /* 送信先のポート番号のマスク.マスクしない部分は乱数で決まる */
  18. "src_port" : 0, /* 送信元のポート番号 */
  19. "src_port_mask" : "0xFFFF", /* 送信元のポート番号のマスク.マスクしない部分は乱数で決まる */
  20. "length" : 100, /* パケット長さ: 60〜1500 */
  21. "length_mask" : "0xFFFFFFFF", /* パケット長さのマスク.マスクしない部分は乱数で決まる */
  22. "extentions" : 1, /* MPLSまたはVLANヘッダの追加の有無
  23. 1: MPLSヘッダを付与
  24. 2: VLANヘッダを付与
  25. それ以外: MPLS,VLANヘッダは付与しない */
  26. "mpls_label" : "0xFFFFFFFF", /* 付与するMPLSラベル.extentionsが1の時のみ有効 */
  27. "vlan_tci" : "0xFFFF" /* 付与するLVAN TCI.extentionsが2の時のみ有効*/
  28. },
  29. { "ethernet_dest": "44:44:44:44:44:44", /* 同様に,あと4個まで書ける.書かなくてもいい*/
  30. ...
  31. }
  32. ]
  33. },
  34. { /* 同様にシナリオを並べて書くことができる */
  35. "name": "scenario0",
  36. "description": "test scenario written on 2014.09.29 #1",
  37. ....
  38. }
  39. ]
  40. }

測定結果について

パケット遅延の測定結果はつぎの4つのビンでカウントされます.

  • ビン0: 8ns刻みでの遅延のカウント.0〜8,184nsまでを1023分割
  • ビン1: 128ns刻みでの遅延のカウント.0〜130,944nsまでを1023分割.
  • ビン2: 2048ns刻みでの遅延のカウント.0〜2,095,104nsまでを1023分割
  • ビン3: 131,072ns刻みでの遅延のカウント.0〜134,086,656nsまでを1023分割

測定結果ファイルには,各ビン毎のカウント結果が配列で保存されています.

UIでは,ビン0,1,2,3でカウントされた値をそれぞれ赤,緑,青,ピンクで表示しています.