(57)【要約】【課題】  試験コストを低減することができるパケット生成装置及びパケット生成方法を提供する。【解決手段】  パケット生成装置は、パケットが入力される第１入力ポート及び第２入力ポートと、パケットが出力される第１出力ポート及び第２出力ポートと、前記第２出力ポートから出力されたパケットを格納する格納部と、前記格納部に格納されたパケットに関するカウント値をカウントするカウンタ部と、前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力する制御部とを有する。【選択図】図２
2018061169.tif 000002
【特許請求の範囲】
【請求項１】
パケットが入力される第１入力ポート及び第２入力ポートと、
パケットが出力される第１出力ポート及び第２出力ポートと、
前記第２出力ポートから出力されたパケットを格納する格納部と、
前記格納部に格納されたパケットに関するカウント値をカウントするカウンタ部と、
前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力する制御部とを有することを特徴とするパケット生成装置。
【請求項２】
前記カウント値は、パケットに付与されており、
前記カウンタ部は、パケットが前記第２出力ポートから出力されるたびに前記カウント値を更新することを特徴とする請求項１に記載のパケット生成装置。
【請求項３】
前記制御部は、前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを増やして前記第１出力ポート及び前記第２出力ポートからそれぞれ出力することを特徴とする請求項１または２に記載のパケット生成装置。
【請求項４】
パケットが入力される第３入力ポートと、
パケットが出力される第３出力ポートと、
前記第３入力ポートから入力されたパケットから前記カウント値を削除する削除部とを有し、
前記制御部は、前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポート及び前記第３出力ポートから出力し、前記第３出力ポートから出力されたパケットを前記第３入力ポートに入力して前記第１出力ポートから出力することを特徴とする請求項２または３に記載のパケット生成装置。
【請求項５】
パケットに関する条件と、前記パケットに関する条件に応じた処理内容とが登録された１以上のテーブルを有し、
前記制御部は、前記１以上のテーブルを参照することにより、前記第１出力ポート及び前記第２出力ポートからパケットの出力先を決定することを特徴とする請求項１乃至４に記載のパケット生成装置。
【請求項６】
前記第２入力ポートと前記第２出力ポートは、互いに接続されていることを特徴とする請求項１乃至５に記載のパケット生成装置。
【請求項７】
パケットが入力される第１入力ポート及び第２入力ポートと、パケットが出力される第１出力ポート及び第２出力ポートとを用いたパケット生成方法において、
前記第２出力ポートから出力されたパケットを格納部に格納し、
前記格納部に格納されたパケットに関するカウント値をカウントし、
前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、
前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、
前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力することを特徴とするパケット生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、パケット生成装置及びパケット生成方法に関する。
【背景技術】
【０００２】
例えばルータなどの通信装置の中には、例えば１００（Gbps）以上の伝送速度が可能な高性能のものが存在する。この種の通信装置を試験するためには、１００（Gbps）以上の伝送速度が可能な試験装置が必要となる。なお、伝送速度に関し、例えば特許文献１にはＦＩＦＯ（First-In First-Out）を用いて伝送速度を変換する方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６９０７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えばパケット負荷試験を実施するためには、１００（Gbps）以上の伝送速度でパケットを送信することができる専用の試験装置が必要となるため、試験コストが増加するという問題がある。これに対し、例えばＰＣサーバに実装されたネットワークインターフェースカードをソフトウェアで制御することによりパケット負荷試験を行えば、試験コストを抑えることができる。
【０００５】
しかし、この場合、ＰＣサーバに搭載されたプロセッサの性能の制約により、パケットの伝送速度は最大でも、およそ数十（Gbps）であるため、必要十分なパケット負荷試験を行うことができない。
【０００６】
そこで本件は、試験コストを低減することができるパケット生成装置及びパケット生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、パケット生成装置は、パケットが入力される第１入力ポート及び第２入力ポートと、パケットが出力される第１出力ポート及び第２出力ポートと、前記第２出力ポートから出力されたパケットを格納する格納部と、前記格納部に格納されたパケットに関するカウント値をカウントするカウンタ部と、前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力する制御部とを有する。
【０００８】
１つの態様では、パケット生成方法は、パケットが入力される第１入力ポート及び第２入力ポートと、パケットが出力される第１出力ポート及び第２出力ポートとを用いたパケット生成方法において、前記第２出力ポートから出力されたパケットを格納部に格納し、前記格納部に格納されたパケットに関するカウント値をカウントし、前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力する方法である。
【発明の効果】
【０００９】
１つの側面として、試験コストを低減することができる。
【図面の簡単な説明】
【００１０】
【図１】試験装置の一例を示す構成図である。
【図２】スイッチデバイスの一例を示す構成図である。
【図３】パケットのフォーマットの一例を示す図である。
【図４】第１実施例における入力ポートと出力ポートの間のパケット転送処理を示す図である。
【図５】受信用入力ポートから入力されたパケットの処理の一例を示すフローチャートである。
【図６】ループ用入力ポートから入力されたパケットの処理の一例を示すフローチャートである。
【図７】フローテーブルによるパケット処理の一例を示す図である。
【図８】第２実施例における入力ポートと出力ポートの間のパケット転送処理を示す図である。
【図９】フローテーブルによるパケット処理の他例を示す図である。
【図１０】パケットのフォーマットの他例を示す図である。
【図１１】フローテーブルによるパケット処理の他例を示す図である。
【図１２】第３実施例における入力ポートと出力ポートの間のパケット転送処理を示す図である。
【図１３】受信用入力ポートから入力されたパケットの処理の他例を示すフローチャートである。
【図１４】ヘッダ削除用入力ポートから入力されたパケットの処理の一例を示すフローチャートである。
【図１５】ループ用入力ポートから入力されたパケットの処理の他例を示すフローチャートである。
【図１６】フローテーブルによるパケット処理の他例を示す図である。
【図１７】第４実施例における入力ポートと出力ポートの間のパケット転送処理を示す図である。
【図１８】フローテーブルによるパケット処理の他例を示す図である。
【図１９】フローテーブルによるパケット処理の他例を示す図である。
【図２０】試験装置を配置したネットワークの一例を示す構成図である。
【発明を実施するための形態】
【００１１】
図１は、試験装置２の一例を示す構成図である。試験装置２は、ＰＣサーバ３から入力されたパケット（ＰＫＴ）を内部または外部でループさせることにより所定の帯域（例えば１００（Gbps））のパケットを得る。そして、試験装置２は、所定の帯域のパケットを、試験対象であるスイッチ４に送信することによりパケット負荷試験などを行う。
【００１２】
試験装置２は、パケット生成装置の一例であり、例えば、１００（Gbps）以上の伝送速度のスイッチ（例えばレイヤ２スイッチなど）により構成される。試験装置２を汎用のスイッチにより構成することにより、試験コストを抑えることが可能となる。
【００１３】
試験装置２は、スイッチデバイス１と、ＣＰＵ（Central Processing Unit）２０と、メモリ２１，２３と、複数の入力ポート２４ａ，２４ｂと、受信処理部２５、送信処理部２６と、複数の出力ポート２７ａ，２７ｂとを有する。複数の入力ポート２４ａ，２４ｂにはパケットがそれぞれ入力され、複数の出力ポート２７ａ，２７ｂからはそれぞれパケットが出力される。
【００１４】
複数の入力ポート２４ａ，２４ｂは、それぞれ、例えばフォトダイオードなどの光受信器などから構成され、複数の出力ポート２７ａ，２７ｂは、それぞれ、例えばレーザダイオードなどの光送信器などから構成される。共通のポート番号が割り当てられた一対の入力ポート２４ａ，２４ｂ及び出力ポート２７ａ，２７ｂは、共通の通信回線によりパケットを送受信する。
【００１５】
１つの入力ポート２４ａには、ＰＣサーバ３からパケットが入力される。ＰＣサーバ３は、ソフトウェアにより制御可能なネットワークインターフェースカードを備え、ネットワークインターフェースカードから試験装置２にパケットが送信される。なお、入力ポート２４ａは第１入力ポートの一例である。
【００１６】
他の入力ポート２４ｂは、符号Ｒｏで示されるように、光ファイバにより１つの出力ポート２７ｂと接続されている。つまり、入力ポート２４ｂと出力ポート２７ｂは互いに接続されている。このため、試験装置２は、所定の帯域となるまでパケットを出力ポート２７ｂから入力ポート２４ｂにループさせることができる。なお、入力ポート２４ｂは第２入力ポートの一例であり、出力ポート２７ｂは第２出力ポートの一例である。
【００１７】
他の出力ポート２７ａは、パケットをスイッチ４に送信する。なお、出力ポート２７ａは第１出力ポートの一例である。
【００１８】
受信処理部２５は、複数の入力ポート２４ａ，２４ｂから入力されたパケットの受信処理を行う。受信処理部２５はパケットをスイッチデバイス１に出力する。
【００１９】
スイッチデバイス１は、例えばＦＰＧＡ（Field Programming Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェアにより構成され、パケット転送処理などの各種の処理を実行する。スイッチデバイス１は、メモリ２３に記憶された複数のフローテーブルによりＯｐｅｎＦｌｏｗ（登録商標、以下同様）に基づくパケット処理を行う。なお、ＯｐｅｎＦｌｏｗのパケット処理の例については後述する。
【００２０】
また、スイッチデバイス１は、符号Ｒｉで示されるように、入力ポート２４ｂ及び出力ポート２７ｂに代わり、パケットをループさせてもよい。この場合、入力ポート２４ｂ及び出力ポート２７ｂの間を光ファイバで接続する手間が省ける。なお、以下の実施例では、入力ポート２４ｂ及び出力ポート２７ｂの間を接続することにより、パケットをループさせる場合を挙げる。
【００２１】
ＣＰＵ２０は、メモリ２１に記憶されたプログラムに従い動作する。ＣＰＵ２０は、例えばスイッチデバイス１経由でメモリ２３内のフローテーブルを設定する。また、ＣＰＵ２０は、符号Ｒｘで示されるように、ＰＣサーバ３に代えてパケットのイメージを生成して、入力ポート２４ａに入力してもよい。この場合、試験の実行時にＰＣサーバ３を省くことができる。なお、以下の実施例では、ＰＣサーバ３から入力ポート２４ａにパケットを入力する場合を挙げる。
【００２２】
スイッチデバイス１は、パケットを送信処理部２６に出力する。送信処理部２６は、パケットの送信処理を行う。送信処理部２６は、パケットを複数の出力ポート２７ａ，２７ｂに出力する。
【００２３】
図２は、スイッチデバイス１の一例を示す構成図である。スイッチデバイス１は、パケット処理部１０、設定処理部１２、ヘッダ処理部１３、廃棄処理部１４、統計処理部１５、転送処理部１６、帯域制御部１７、入力バッファ１８、及び出力バッファ１９を有する。
【００２４】
入力バッファ１８は、複数の入力ポート２４ａ，２４ｂから入力されたパケットを入力ポート２４ａ，２４ｂごとに一時的に格納する。入力バッファ１８は、格納部の一例であり、出力ポート２７ｂから出力されたパケット、つまり入力ポート２４ｂから入力されたパケットを格納する。
【００２５】
パケット処理部１０は、入力バッファ１８からパケットを順次に読み出して、メモリ２３内のフローテーブル（＃１〜＃Ｎ（Ｎ：正の整数））２３０を検索することによりパケットに対し各種の処理を実行する。フローテーブル２３０は、テーブルの一例であり、パケットに関する条件と、パケットに関する条件に応じた処理内容とが登録されている。
【００２６】
設定処理部１２は、ＣＰＵ２０の制御に従いフローテーブル２３０の設定処理を実行する。より具体的には、設定処理部１２は、フローテーブル２３０の内容の登録及び削除を行う。
【００２７】
パケット処理部１０は、フローテーブル２３０の検索結果に応じてヘッダ処理部１３、廃棄処理部１４、統計処理部１５、及び転送処理部１６に処理を依頼する。なお、パケット処理部１０は制御部の一例である。
【００２８】
ヘッダ処理部１３は、例えば、入力ポート２４ａから入力されたパケットに対してＰＢＢ（Provider Backbone Bridge）ヘッダの付与し、また、削除部として、出力ポート２７ｂから出力されるパケットからＰＢＢヘッダを削除する。さらに、ヘッダ処理部１３は、ＰＢＢヘッダの内容を書き換える。
【００２９】
図３は、パケットのフォーマットの一例を示す図である。パケットは、宛先を示すＤＡ（Destination Address）、送信元を示すＳＡ（Source Address）、ＥｔｈｅｒＴｙｐｅ（０ｘ０８００または０ｘ８６ＤＤ（０ｘは１６進数表記））、ＩＰ（Internet Protocol）ヘッダ、ＴＣＰ（Transmission Control Protocol）ヘッダ、及びユーザデータを有する。
【００３０】
パケットには、ヘッダ処理部１３によりＰＢＢヘッダが付与される。ＰＢＢヘッダには、広域イーサネット（登録商標、以下同様）に対応する拡張ＶＬＡＮ（Virtual Local Area Network）に関する各種の情報が含まれる。ＰＢＢヘッダは、「b-eth_dst」、「b-eth_src」、Ｂ−ＴＡＧ（中継ＶＬＡＮタグ）、Ｉ−ＴＡＧ（サービスインスタンスタグ）を有する。
【００３１】
「b-eth_dst」は、６（Byte）のデータであり、パケットのループ回数が所定の最大値に達したか否かを示す。「b-eth_dst」は、ループ回数が最大値未満である場合、０ｘＡＡＡＡＡＡＢＢＢＢＢＢを示し、ループ回数が最大値に達した場合、０ｘＡＡＡＡＡＡＣＣＣＣＣＣを示す。なお、パケットのループ回数とは、パケットが出力ポート２７ｂから出力されて入力ポート２４ｂに入力された回数である。
【００３２】
「b-eth_src」は、６（Byte）のデータであり、その上位側２（Byte）は固定値（０ｘＡＢＣＤ）である。「b-eth_src」の下位側４（Byte）は、パケットの残りのループ回数を示すループカウント値（Ｍ，Ｍ−１，・・・，２，１，０）である。ここで、ループ回数の最大値はＭ＋１（Ｍ：正の整数）である。
【００３３】
本例において、ループカウント値の減算により残りのループ回数（＝最大値−ループ回数）がカウントされるが、これとは逆に、ループカウント値の加算によりループ回数をカウントすることもできる。ループカウント値が０になると、「b-eth_dst」は０ｘＡＡＡＡＡＡＢＢＢＢＢＢから０ｘＡＡＡＡＡＡＣＣＣＣＣＣに書き換えられる。その後、パケットは出力ポート２７ａから出力される。
【００３４】
このように、パケットには、パケットに関するカウント値の一例であるループカウント値が付与されている。このため、試験装置２は、ループカウント値を記憶するメモリなどの記憶手段が必要ない。
【００３５】
また、Ｂ−ＴＡＧは、ＥｔｈｅｒＴｙｐｅ（０ｘ８８Ａ８）、ＰＣＰ（Priority Code Point）、ＣＦＩ（Canonical Format Indicator）、及びＶＩＤ（VLAN Identifier）を含む。なお、本例において、ＰＣＰは０〜７であり、ＣＦＩは０である。
【００３６】
また、Ｉ−ＴＡＧは、ＥｔｈｅｒＴｙｐｅ（０ｘ８８Ｅ７）、ＰＣＰ、ＤＥＩ（Drop Eligability Indicator）、予約領域のＲＥＳ（Reserved）、及びＩ−ＳＩＤ（Individual Service ID）を含む。Ｉ−ＳＩＤは、ＶＩＤの拡張領域であり、ＶＩＤにより識別される４０９６の通信回線数より多くの通信回線を識別する。なお、本例において、ＰＣＰは０〜７であり、ＤＥＩ、ＲＥＳ、及びＩ−ＳＩＤは０である。
【００３７】
再び図２を参照すると、廃棄処理部１４は、ＰＢＢヘッダの異常なパケットを廃棄する。統計処理部１５は、ＰＢＢヘッダの異常なパケットをカウントする。なお、ＰＢＢヘッダの異常は、「b-eth_dst」と「b-eth_src」の上位側２（Byte）により判定される。
【００３８】
転送処理部１６は、パケット処理部１０が指定する出力ポート２７ａ，２７ｂにパケットを転送する。パケット処理部１０は、複数のフローテーブル２３０を参照することにより、出力ポート２７ａ，２７ｂからパケットの出力先を決定する。このため、パケット処理部１０は、パケットに関する条件に応じて出力先の出力ポート２７ａ，２７ｂを容易に決定することができる。転送処理部１６は、パケットを帯域制御部１７に出力する。
【００３９】
帯域制御部１７は、出力先の出力ポート２７ａ，２７ｂごとにパケットの帯域を制御する。帯域制御部１７は、パケットを出力バッファ１９に出力する。出力バッファ１９は出力ポート２７ａ，２７ｂごとにパケットを一時的に格納する。パケットは出力バッファ１９から出力ポート２７ａ，２７ｂに出力される。
【００４０】
次に、フローテーブル２３０によるパケット処理について説明する。
【００４１】
（第１実施例）
図４は、第１実施例における入力ポート２４ａ，２４ｂと出力ポート２７ａ，２７ｂの間のパケット転送処理を示す図である。図４において、図１と共通する構成には同一の符号を付し、その説明を省略する。
【００４２】
本例において、ポート番号＃１の入力ポート２４ａは、ＰＣサーバ３からパケットを受信する受信用入力ポートであり、ポート番号＃１０の出力ポート２７ａは、試験対象のスイッチ４にパケットを送信する送信用出力ポートである。また、ポート番号＃１５の入力ポート２４ｂとポート番号＃１６の出力ポート２７ｂは、光ファイバにより互いに接続されている。ポート番号＃１６の出力ポート２７ｂは、ループさせるパケットを出力するループ用出力ポートであり、ポート番号＃１５の入力ポート２４ｂは、ループしたパケットが入力されるループ用入力ポートである。
【００４３】
スイッチデバイス１は、受信用入力ポート２４ａから入力されたパケットをコピーして、一例として、１つのパケットを送信用出力ポート２７ａから出力し（符号Ｒ１１参照）、２つのパケットをループ用出力ポート２７ｂから出力する（符号Ｒ１２参照）。ループ用出力ポート２７ｂから出力されたパケットは、ループ用入力ポート２４ｂからスイッチデバイス１に再度入力されることでループする。ループするパケット数は、コピーにより増加するだけでなく、受信用入力ポート２４ａからパケットが連続して入力されることによっても増加する。
【００４４】
スイッチデバイス１は、ループカウント値が０に達していないとき、ループ用入力ポート２４ｂから入力されたパケットをコピーして、一例として、１つのパケットを送信用出力ポート２７ａから出力し（符号Ｒ２１参照）、２つのパケットをループ用出力ポート２７ｂから出力する（符号Ｒ２２参照）。このため、スイッチ４に送信されるパケット数が時間とともに増加する。
【００４５】
スイッチデバイス１は、ループカウント値が最大値に達したとき、パケットを送信用出力ポート２７ａから出力する（符号Ｒ２１参照）。このとき、スイッチデバイス１は、ループ用出力ポート２７ｂからパケットを出力しない。
【００４６】
このため、スイッチデバイス１は、ＰＣサーバ３から入力されたパケットを、そのループ回数が最大値に達するまでループさせることにより蓄積しておき、ループ回数が最大値に達したとき、試験対象のスイッチ４に送信することができる。したがって、スイッチデバイス１は、最大値、つまりループ回数の上限値を適切な値に設定することで、所望の帯域（例えば１００（Gbps））のパケットを送信することが可能である。
【００４７】
次に、入力ポート２４ａ，２４ｂごとのパケット処理について述べる。なお、スイッチデバイス１は、パケットの入力元のポートを、例えば、パケットに付与されたポート番号、またはパケットを受信したスイッチデバイス１のポートにより判別する。
【００４８】
図５は、受信用入力ポート２４ａから入力されたパケットの処理の一例を示すフローチャートである。本処理において、パケット処理部１０は、パケットに関する条件に従いフローテーブル２３０を検索し、その検索結果に従った処理を実行する。
【００４９】
スイッチデバイス１は受信用入力ポート２４ａからパケット（ＰＫＴ）を受信する（ステップＳｔ１）。次に、パケット処理部１０はヘッダ処理部１３によりパケットにＰＢＢヘッダを付与する（ステップＳｔ２）。次に、パケット処理部１０はパケットをコピーする（ステップＳｔ３）。このとき、パケット処理部１０は、ＰＢＢヘッダを含めてパケットをコピーする。
【００５０】
次に、パケット処理部１０は、転送処理部１６により、例えば２つのパケットをループ用出力ポート２７ｂから出力する（ステップＳｔ４）。このため、パケット数が、ＰＣサーバ３から入力されたパケット数より増加する。
【００５１】
次に、パケット処理部１０は、ヘッダ処理部１３により例えば１つのパケットからＰＢＢヘッダを削除する（ステップＳｔ５）。次に、パケット処理部１０は、転送処理部１６により、そのパケットを送信用出力ポート２７ａから出力する（ステップＳｔ６）。このため、試験対象のスイッチ４には、ＰＢＢヘッダのないパケットが入力される。このようにして、受信用入力ポート２４ａから入力されたパケットの処理は実行される。
【００５２】
図６は、ループ用入力ポート２４ｂから入力されたパケットの処理の一例を示すフローチャートである。本処理において、パケット処理部１０は、パケットに関する条件に従いフローテーブル２３０を検索し、その検索結果に応じた処理を実行する。
【００５３】
スイッチデバイス１はループ用入力ポート２４ｂからパケット（ＰＫＴ）を受信する（ステップＳｔ１１）。次に、パケット処理部１０は、パケットのＰＢＢヘッダから「b-eth_dst」を取得する（ステップＳｔ１２）。
【００５４】
パケット処理部１０は「b-eth_dst」の値が０ｘＡＡＡＡＡＡＣＣＣＣＣＣであるか否かを判定する（ステップＳｔ１３）。「b-eth_dst」の値は、上述したように、ループカウント値が０に達している場合、０ｘＡＡＡＡＡＡＣＣＣＣＣＣとなる。
【００５５】
パケット処理部１０は、「b-eth_dst」の値が０ｘＡＡＡＡＡＡＣＣＣＣＣＣである場合（ステップＳｔ１３のＹｅｓ）、ヘッダ処理部１３によりパケットからＰＢＢヘッダを削除する（ステップＳｔ１４）。次に、パケット処理部１０は、転送処理部１６によりＰＢＢヘッダが削除されたパケットを送信用出力ポート２７ａから送信する（ステップＳｔ１５）。このため、ループ回数が最大値に達したパケットが試験対象のスイッチ４に送信される。
【００５６】
また、パケット処理部１０は、「b-eth_dst」の値が０ｘＡＡＡＡＡＡＣＣＣＣＣＣではない場合（ステップＳｔ１３のＮｏ）、「b-eth_dst」の値が０ｘＡＡＡＡＡＡＢＢＢＢＢＢであるか否かを判定する（ステップＳｔ１６）。パケット処理部１０は、「b-eth_dst」の値が０ｘＡＡＡＡＡＡＢＢＢＢＢＢではない場合（ステップＳｔ１６のＮｏ）、ＰＢＢヘッダが異常であると判定し、統計処理部１５の統計処理により異常なパケット数を計数し（ステップＳｔ１７）、廃棄処理部１４によりそのパケットを廃棄する（ステップＳｔ１８）。
【００５７】
また、パケット処理部１０は、「b-eth_dst」の値が０ｘＡＡＡＡＡＡＢＢＢＢＢＢである場合（ステップＳｔ１６のＹｅｓ）、「b-eth_src」を取得する（ステップＳｔ１９）。パケット処理部１０は、「b-eth_src」の上位側２（Byte）の値が０ｘＡＢＣＤであるか否かを判定する（ステップＳｔ２０）。「b-eth_dst」の値は、上述したように、ループカウント値が０に達していない場合、０ｘＡＡＡＡＡＡＢＢＢＢＢＢとなる。
【００５８】
パケット処理部１０は、「b-eth_src」の上位側２（Byte）の値が０ｘＡＢＣＤではない場合（ステップＳｔ２０のＮｏ）、ＰＢＢヘッダが異常であると判定し、統計処理部１５の統計処理により異常なパケット数を計数し（ステップＳｔ１７）、廃棄処理部１４によりそのパケットを廃棄する（ステップＳｔ１８）。また、パケット処理部１０は、「b-eth_src」の上位側２（Byte）の値が０ｘＡＢＣＤである場合（ステップＳｔ２０のＹｅｓ）、ループカウント値が０であるか否かを判定する（ステップＳｔ２１）。
【００５９】
パケット処理部１０は、ループカウント値が０である場合（ステップＳｔ２１のＹｅｓ）、ヘッダ処理部１３により「b-eth_dst」の値を０ｘＡＡＡＡＡＡＢＢＢＢＢＢから０ｘＡＡＡＡＡＡＣＣＣＣＣＣに変更する（ステップＳｔ２５）。また、パケット処理部１０は、ループカウント値が０ではない場合（ステップＳｔ２１のＮｏ）、ヘッダ処理部１３によりループカウント値を更新する（ステップＳｔ２２）。より具体的には、ループカウント値は、フローテーブル２３０によりカウントされており、本処理により１つ減算される。
【００６０】
次に、パケット処理部１０はパケットをコピーする（ステップＳｔ２３）。このとき、パケット処理部１０は、ＰＢＢヘッダを含めてパケットをコピーする。次に、パケット処理部１０は、転送処理部１６により、例えば１つのパケットをループ用出力ポート２７ｂから送信する（ステップＳｔ２４）。
【００６１】
次に、パケット処理部１０は、ヘッダ処理部１３によりパケットからＰＢＢヘッダを削除する（ステップＳｔ２６）。次に、パケット処理部１０は、転送処理部１６により、例えば２つのパケットを送信用出力ポート２７ａから送信する（ステップＳｔ２７）。
【００６２】
次に、フローテーブル２３０の例を挙げ、フローテーブル２３０によるパケット処理を説明する。なお、フローテーブル２３０の内容は、一例としてＯｐｅｎＦｌｏｗに規定された機能に従い設定されているが、他のプロトコルの規定にされた機能が用いられてもよい。
【００６３】
図７は、フローテーブル２３０によるパケット処理の一例を示す図である。フローテーブル＃１〜＃９は、それそれ、フローテーブル２３０の一例である。パケット処理部１０は、各フローテーブル＃１〜＃９を順次に参照することによりパケット処理を実行する。
【００６４】
フローテーブル＃１は入力ポート２４ａ，２４ｂの判定に用いられる。「Match」はパケットに関する条件を比較するアクションである。「in_port」は入力ポート２４ａ，２４ｂのポート番号を示す。また、「goto table」は、指定されたフローテーブルを参照させるアクションである。点線の矢印は、「goto table」による参照先のフローテーブルを示す。
【００６５】
このため、パケット処理部１０は、ポート番号＃１の受信用入力ポート２４ａからパケットが入力された場合、フローテーブル＃２を参照する。この場合、図５に示された処理が実行される。また、パケット処理部１０は、ポート番号＃１５のループ用入力ポート２４ｂからパケットが入力された場合、フローテーブル＃１５を参照する。この場合、図６に示された処理が実行される。
【００６６】
フローテーブル＃２はパケットへのＰＢＢヘッダの付与に用いられる。パケット処理部１０は、ヘッダ処理部１３に「push pbb」、「push vlan」、「push b-eth_dst」、「push b-eth_src」の各アクションを実行させる。各アクションは、図５のステップＳｔ２に相当する。
【００６７】
「push pbb」は、パケットにＩ−ＴＡＧを付与するアクションであり、「push vlan」は、パケットにＢ−ＴＡＧを付与するアクションである。また、「push b-eth_dst」は、パケットに「b-eth_dst」を付与するアクションであり、「push b-eth_src」は、パケットに「b-eth_src」を付与するアクションである。フローテーブル＃２によって、「push b-eth_dst」の初期値は０ｘＡＡＡＡＡＡＢＢＢＢＢＢに設定され、「b-eth_src」の初期値は０ｘＡＢＣＤ００００１０００に設定される。
【００６８】
ここで、「b-eth_src」の下位側４（Byte）はループカウント値であるため、ループカウント値の初期値は０ｘ００００１０００（１０進数の４０９６）に設定される。なお、ループカウント値の初期値は、０ｘ００００１０００に限定されず、所望のパケットの帯域に応じて決定される。パケット処理部１０は、ＰＢＢヘッダの付与後、「goto table7」に従いフローテーブル＃７を参照する。なお、「group1」はフローテーブル＃７のシーケンス番号である。
【００６９】
フローテーブル＃７は、受信用入力ポート２４ａから入力されたパケットのループ処理及び送信処理に用いられる。「out」は、「out_port」により指定されたポート番号の出力ポート２７ａ，２７ｂからパケットを出力するアクションである。なお、ポート番号は、パケットの出力回数分だけ記載される。例えば「out out_port=16,16」には、ポート番号「16」は２回記載されているため、このアクションにより２つのパケットがポート番号＃１６のループ用出力ポート２７ｂから出力される。このアクションは、図５のステップＳｔ３，Ｓｔ４に相当する。
【００７０】
また、「out out_port=10」には、ポート番号「10」は１回しか記載されていないため、このアクションにより１つのパケットがポート番号＃１０の送信用出力ポート２７ａから出力される。このアクションは、図５のステップＳｔ３，Ｓｔ６に相当する。
【００７１】
また、「pop vlan_id」及び「pop pbb」は、パケットからＰＢＢヘッダを削除するアクションである。このアクションは、図５のステップＳｔ５に相当する。
【００７２】
フローテーブル＃３はパケットの送信判定に用いられる。パケット処理部１０は、「b-eth_dst」が０ｘＡＡＡＡＡＡＣＣＣＣＣＣである場合、フローテーブル＃９を参照し、「b-eth_dst」が０ｘＡＡＡＡＡＡＢＢＢＢＢＢである場合、フローテーブル＃４を参照する。このアクションは、図６のステップＳｔ１３，Ｓｔ１６に相当する。
【００７３】
フローテーブル＃９は、ループ回数が最大値に達したパケットのループ処理及び送信処理に用いられる。「pop vlan_id」及び「pop pbb」により、パケットからＰＢＢヘッダが削除される。このアクションは、図６のステップＳｔ１４に相当する。また、「out out_port=10」により、１つのパケットがポート番号＃１０の送信用出力ポート２７ａから出力される。このアクションは、図６のステップＳｔ１５に相当する。
【００７４】
フローテーブル＃４はループカウント値の取得に用いられる。フローテーブル＃４の各アクションにより、パケット処理部１０は、パケットに付与されたＰＢＢヘッダから「b-eth_src」を取得して４８（Bit）の変数「Metadata」にコピーする。これにより、ループカウント値が取得される。パケット処理部１０は、ループカウント値の取得後、「goto table5」に従いフローテーブル＃５を参照する。
【００７５】
フローテーブル＃５は、カウンタ部の一例であり、ループカウント値の処理に用いられる。フローテーブル＃５は、ループ用入力ポート２４ｂから入力され入力バッファ１８に格納されたパケットのループカウント値をカウントする。
【００７６】
フローテーブル＃５には、現在の変数「Metadata」に対応してセット（「set」のアクション）される新たな変数「Metadata」が登録されている。ループカウント値は、変数「Metadata」の下位側４（Byte）であり、パケットがループするたびに１つずつ減算される。
【００７７】
このため、例えば、現在の変数「Metadata」が０ｘＡＢＣＤ００００１０００である場合、これに対応する新たな変数「Metadata」は０ｘＡＢＣＤ０００００ＦＦＦとなる。また、現在の変数「Metadata」が０ｘＡＢＣＤ０００００００１である場合、これに対応する新たな変数「Metadata」は０ｘＡＢＣＤ００００００００となる。つまり、パケット処理部１０は、現在の変数「Metadata」から１を減算した値を新たな変数「Metadata」をセットする。このアクションは、図６のステップＳｔ２２に相当する。
【００７８】
このようにして、フローテーブル＃５は、パケットがループ用出力ポート２７ｂから出力されるたびにループカウント値を更新する。ループカウンタ値は、ＰＢＢヘッダの一部としてパケットに付与されている。
【００７９】
このため、スイッチデバイス１は、パケットの帯域を算出する機能部を設けて帯域制御を行う場合と比べると、負荷の低い処理で所望の帯域のパケットを送信することができる。仮に、パケットの帯域を算出する機能部を設けて帯域制御を行う場合、例えば、帯域に関するレジスタへのアクセスの競合などが発生することにより処理の負荷が増加するため、スイッチデバイス１のパケット転送性能が低下して所望の帯域が得られないおそれがある。
【００８０】
パケット処理部１０は、変数「Metadata」をセットした後、フローテーブル＃６を参照する。
【００８１】
また、フローテーブル＃５には、現在の変数「Metadata」が０ｘＡＢＣＤ００００００００である場合、つまりループカウント値が０である場合、「b-eth_dst」に０ｘＡＡＡＡＡＡＣＣＣＣＣＣをセットするアクション（「set b-eth_dst」）が登録されている。このアクションは、図６のステップＳｔ２５に相当する。パケット処理部１０は、「b-eth_dst」をセットした後、フローテーブル＃８を参照する。
【００８２】
フローテーブル＃６は、ＰＢＢヘッダへのループカウント値の書き込みに用いられる。フローテーブル＃６のアクションにより、変数「Metadata」の値は「b-eth_src」にコピーされる。その後、パケット処理部１０は、「goto table8」に従いフローテーブル＃８を参照する。なお、「group2」はフローテーブル＃８のシーケンス番号である。
【００８３】
フローテーブル＃８は、ループ用入力ポート２４ｂから入力されたパケットのループ処理及び送信処理に用いられる。「out out_port=16,16」のアクションにより２つのパケットがポート番号＃１６のループ用出力ポート２７ｂから出力される。このアクションは、図６のステップＳｔ２３、Ｓｔ２４に相当する。
【００８４】
「pop vlan_id」及び「pop pbb」により、パケットからＰＢＢヘッダが削除される。このアクションは、図６のステップＳｔ２６に相当する。また、「out out_port=10」により、１つのパケットがポート番号＃１０の送信用出力ポート２７ａから出力される。このアクションは、図６のステップＳｔ２７に相当する。
【００８５】
このように、パケット処理部１０は、ループカウント値が０に達していないとき、パケットを増やして送信用出力ポート２７ａ及びループ用出力ポート２７ｂからそれぞれ出力する。このため、スイッチデバイス１は、ループ回数が増えるたびに試験対象のスイッチ４に出力するパケット数を増加させることができる。
【００８６】
本実施例において、パケット処理部１０は、フローテーブル＃７の「out out_port=16,16」に従い、受信用入力ポート２４ａから入力されたパケットをループ用出力ポート２７ｂから出力する。また、パケット処理部１０は、ループカウント値が０に達してないとき、フローテーブル＃７の「out out_port=16,16」に従い、入力バッファ１８に格納されたパケットをループ用出力ポート２７ｂから出力する。さらに、パケット処理部１０は、ループカウント値が０に達したとき、フローテーブル＃９の「out out_port=10」に従い、入力バッファ１８に格納されたパケットをループ用入力ポート２４ｂに入力して送信用出力ポート２７ａから出力する。
【００８７】
このため、試験装置２は、受信用入力ポート２４ａから入力されたパケットを、そのループカウント値に基づいて、所望の帯域となるまでループ用出力ポート２７ｂとループ用入力ポート２４ｂの間でループさせることにより蓄積することができる。そして、試験装置２は、ループカウント値が０（所定値）に達したとき、パケットを送信用出力ポート２７ａから送信することにより、試験対象のスイッチ４に対しパケット負荷試験を行うことができる。
【００８８】
また、試験装置２は、上述したように、例えば汎用のスイッチにより構成することができる。したがって、実施例の試験装置２によると、試験コストの低減が可能である。
【００８９】
また、パケット処理部１０は、フローテーブル＃７〜＃９を参照することにより、出力ポート２７ａ，２７ｂからパケットの出力先を決定する。このため、試験装置２は、パケットに関する条件に応じて出力先の出力ポート２７ａ，２７ｂを容易に決定することができる。
【００９０】
（第２実施例）
第１実施例において、ループ用入力ポート２４ｂとループ用出力ポート２７ｂの各ポート番号は相違しているが、同一であってもよい。この場合、共通の通信回線に対応する入力ポート２４ｂ及び出力ポート２７ｂがパケットのループに用いられるため、使用可能な通信回線を増やすことが可能となる。
【００９１】
図８は、第２実施例における入力ポート２４ａ，２４ｂと出力ポート２７ａ，２７ｂの間のパケット転送処理を示す図である。図８において、図４と共通する構成には同一の符号を付し、その説明を省略する。
【００９２】
本例では、ループ用入力ポートとしてポート番号＃１５の入力ポート２４ｂが用いられ、ループ用出力ポートとしてポート番号＃１５の出力ポート２７ｂが用いられる。つまり、ループ用入力ポート２４ｂとループ用出力ポート２７ｂのポート番号＃１５は同一である。
【００９３】
図９は、本例におけるフローテーブルによるパケット処理を示す図である。図９において、図７と共通する内容についての説明は省略する。
【００９４】
本例において、ループ用出力ポート２７ｂのポート番号は、第１実施例とは異なり、１５である。このため、フローテーブル＃７，＃８のループ対象パケットの出力先（「out_port」）の指定が「15」となる。
【００９５】
本例によると、第１実施例と同様の効果が得られるだけでなく、使用可能な通信回線数を第１実施例より増やすことが可能である。
【００９６】
上記の実施例において、ループカウント値はＰＢＢヘッダ内の「b-eth_src」の下位側４（Byte）に割り当てられているが、これに限定されず、例えばＶＩＤに割り当てられてもよい。
【００９７】
図１０は、本例のパケットのフォーマットを示す図である。図１０において、図３と共通する内容の説明は省略する。ＶＩＤはループカウント値として用いられる。このため、ループカウント値の範囲は０〜４０９５となる。また、「b-eth_src」は０ｘＡＢＣＤ００００１０００の固定値となる。
【００９８】
図１１は、本例におけるフローテーブルによるパケット処理を示す図である。図１１は、第２実施例の場合のフローテーブル２３０を示す。なお、図１１において、図９と共通する内容についての説明は省略する。
【００９９】
本例では、フローテーブル＃４，＃６は用いられない。パケット処理部１０は、フローテーブル＃３に従い、「b-eth_dst」が０ｘＡＡＡＡＡＡＢＢＢＢＢＢである場合、フローテーブル＃５を参照する。
【０１００】
フローテーブル＃５には、ＥｔｈｅｒＴｙｐｅ及び現在のＶＩＤに対応する新たなＶＩＤが登録されている。ＥｔｈｅｒＴｙｐｅは０ｘ８８Ａ８の固定値であり、ＶＩＤはループカウント値である。また、パケット処理部１０は、「set valan_vid」によりＶＩＤ、つまりループカウント値を更新する。すなわち、フローテーブル＃５は、上記の実施例と同様に、パケットがループ用出力ポート２７ｂから出力されるたびにループカウント値を更新する。したがって、本例においても、上記の実施例と同様の効果が得られる。その後、パケット処理部１０は、「goto table8」によりフローテーブル＃８を参照する。
【０１０１】
また、パケット処理部１０は、フローテーブル＃５にＶＩＤが０であるとき、「b-eth_dst」を０ｘＡＡＡＡＡＡＢＢＢＢＢＢから０ｘＡＡＡＡＡＡＣＣＣＣＣＣに変更する。その後、パケット処理部１０は、「goto table8」によりフローテーブル＃８を参照する。
【０１０２】
（第３実施例）
上記の実施例において、パケット処理部１０は、フローテーブル＃８〜９に従い、送信用出力ポート２７ａから出力されるパケットからＰＢＢヘッダを削除する。しかし、ＰＢＢヘッダを削除するアクションをフローテーブル＃９に集約するため、ヘッダ削除用入力ポートとヘッダ削除用出力ポートを設けてもよい。
【０１０３】
図１２は、第３実施例における入力ポート２４ａ〜２４ｃと出力ポート２７ａ〜２７ｃの間のパケット転送処理を示す図である。図１２において、図４と共通する構成には同一の符号を付し、その説明を省略する。
【０１０４】
本例では、ポート番号＃１７の入力ポート２４ｃをヘッダ削除用入力ポートとし、ポート番号＃１８の出力ポート２７ｃをヘッダ削除用出力ポートとする。ヘッダ削除用入力ポート２４ｃとヘッダ削除用出力ポート２７ｃは、符号Ｒｈで示されるように、光ファイバにより互いに接続されている。ヘッダ削除用出力ポート２７ｃに入力されたパケットはループしてヘッダ削除用入力ポート２４ｃに入力される。
【０１０５】
スイッチデバイス１は、ヘッダ処理部１３により、ヘッダ削除用入力ポート２４ｃから入力されたパケットからＰＢＢヘッダを削除し、符号Ｒ３１で示されるように送信用出力ポート２７ａから出力する。なお、入力ポート２４ｃは第３入力ポートの一例であり、出力ポート２７ｃは第３出力ポートの一例である。また、ヘッダ処理部１３は、削除部の一例であり、ヘッダ削除用入力ポート２４ｃから入力されたパケットからループカウント値を削除する。
【０１０６】
また、スイッチデバイス１は、符号Ｒ１２，Ｒ１３で示されるように、受信用入力ポート２４ａから入力されたパケットをループ用出力ポート２７ｂ及びヘッダ削除用出力ポート２７ｃから出力する。スイッチデバイス１は、符号Ｒ２２，Ｒ２３で示されるように、ループ用入力ポート２４ｂから入力されたパケットをループ用出力ポート２７ｂ及びヘッダ削除用出力ポート２７ｃから出力する。
【０１０７】
これにより、スイッチデバイス１は、試験対象のスイッチ４に送信するパケットを、いったんヘッダ削除用出力ポート２７ｃから出力しヘッダ削除用入力ポート２４ｃから入力することによりＰＢＢヘッダを削除する。そして、スイッチデバイス１は、ＰＢＢヘッダが削除されたパケットを送信用出力ポート２７ａから出力する。入力ポート２４ａ〜２４ｃごとのパケット処理について述べる。
【０１０８】
図１３は、本例において受信用入力ポート２４ａから入力されたパケットの処理を示すフローチャートである。図１３において、図５と共通する処理には同一の符号を付し、その説明を省略する。
【０１０９】
本例では、上記の実施例とは異なり、ＰＢＢヘッダの削除処理（ステップＳｔ５）は実行されない。すなわち、スイッチデバイス１は、パケットをループ用出力ポート２７ｂから出力した後（ステップＳｔ４）、他のパケットをヘッダ削除用出力ポート２７ｃから出力する（ステップＳｔ５ａ）。
【０１１０】
図１４は、ヘッダ削除用入力ポート２４ｃから入力されたパケットの処理の一例を示すフローチャートである。本処理において、パケット処理部１０は、パケットに関する条件に従いフローテーブル２３０を検索し、その検索結果に従った処理を実行する。
【０１１１】
スイッチデバイス１は、ヘッダ削除用入力ポート２４ｃから入力されたパケットを受信する（ステップＳｔ３１）。次に、スイッチデバイス１は、ヘッダ処理部１３によりパケットからＰＢＢヘッダを削除する（ステップＳｔ３２）。次に、スイッチデバイス１は、転送処理部１６によりパケットを送信用出力ポート２７ａから送信する（ステップＳｔ３３）。このようにして、ヘッダ削除用入力ポート２４ｃから入力されたパケットは処理される。
【０１１２】
図１５は、本例においてループ用入力ポート２４ｂから入力されたパケットの処理の他例を示すフローチャートである。図１５において、図６と共通する処理には同一の符号を付し、その説明を省略する。
【０１１３】
本例では、上記の実施例とは異なり、ＰＢＢヘッダの削除処理（ステップＳｔ２６）は実行されない。すなわち、スイッチデバイス１は、パケットをループ用出力ポート２７ｂから出力した後（ステップＳｔ２４）、他のパケットをヘッダ削除用出力ポート２７ｃから出力する（ステップＳｔ２６ａ）。
【０１１４】
このように、スイッチデバイス１は、ヘッダ削除用入力ポート２４ｃから入力されたパケットのみからＰＢＢヘッダを削除するため、パケット処理が単純化される。
【０１１５】
図１６は、本例におけるフローテーブル２３０によるパケット処理を示す図である。図１６において、図７と共通する内容の説明は省略する。
【０１１６】
フローテーブル＃１には、ポート番号＃１７に対応して「goto table9」のアクションが設定されている。このため、パケット処理部１０は、ポート番号＃１７のヘッダ削除用出力ポート２７ｃからパケットが入力されると、「goto table9」に従い、フローテーブル＃９を参照する。フローテーブル＃９には、上記の実施例と同様に、ＰＢＢヘッダの削除のアクションが設定されている。
【０１１７】
このため、ヘッダ削除用出力ポート２７ｃから入力されたパケットはＰＢＢヘッダを削除される。パケット処理部１０は、「out out_port=10」に従い、ＰＢＢヘッダを削除されたパケットを送信用出力ポート２７ａから出力する。この場合のアクションは、図１４に示された処理に対応する。
【０１１８】
また、フローテーブル＃７，＃８には、パケットをコピーしてヘッダ削除用出力ポート２７ｃ及びループ用出力ポート２７ｂに出力するアクション（「multicast 18,16,16」）が設定されている。このため、１つのパケットがヘッダ削除用出力ポート２７ｃからヘッダ削除用入力ポート２４ｃに入力され、ＰＢＢヘッダの削除後、送信用出力ポート２７ａから出力される。また、２つのパケットがループ用出力ポート２７ｂからループ用入力ポート２４ｂに入力される。
【０１１９】
したがって、パケット処理部１０は、フローテーブル＃５に従い、ループカウント値が０に達していないとき、パケットをループ用出力ポート２７ｂ及びヘッダ削除用出力ポート２７ｃから出力する。そして、パケット処理部１０は、ヘッダ削除用出力ポート２７ｃから出力されたパケットをヘッダ削除用入力ポート２４ｃから入力して送信用出力ポート２７ａから出力する。このとき、ヘッダ処理部１３は、ヘッダ削除用入力ポート２４ｃから入力されたパケットから、ループカウント値を含むＰＢＢヘッダを削除する。
【０１２０】
よって、パケット処理部１０は、ヘッダ削除用入力ポート２４ｃから入力されたパケットのみからＰＢＢヘッダを削除すればよいため、パケット処理が単純化される。
【０１２１】
（第４実施例）
第３実施例においても、使用可能な通信回線数を増やすため、第２実施例と同様に、ヘッダ削除用入力ポート２４ｃとヘッダ削除用出力ポート２７ｃのポート番号を同一にしてもよい。
【０１２２】
図１７は、第４実施例における入力ポート２４ａ〜２４ｃと出力ポート２７ａ〜２７ｃの間のパケット転送処理を示す図である。図１７において、図８と共通する構成には同一の符号を付し、その説明を省略する。
【０１２３】
本例において、ヘッダ削除用入力ポート２４ｃとヘッダ削除用出力ポート２７ｃのポート番号は１７である。すなわち、ヘッダ削除用入力ポート２４ｃとヘッダ削除用出力ポート２７ｃのポート番号＃１７は同一である。
【０１２４】
図１８は、本例におけるフローテーブル２３０によるパケット処理を示す図である。図１８において、図１６と共通する内容の説明は省略する。
【０１２５】
本例において、ヘッダ削除用入力ポート２４ｃとヘッダ削除用出力ポート２７ｃのポート番号は１７である。このため、フローテーブル＃７，＃８には、パケットをコピーしてポート番号＃１７のヘッダ削除用出力ポート２７ｃとループ用出力ポート２７ｂから出力するアクションが設定されている（「multicast 17,15,15」）。
【０１２６】
また、本例においても「b-eth_src」に代えてＶＩＤをループカウント値として用いることができる。
【０１２７】
図１９は、本例におけるフローテーブル２３０によるパケット処理を示す図である。図１９において、図１１及び図１８と共通する内容の説明は省略する。
【０１２８】
本例では、ＶＩＤをループカウント値として用いるため、フローテーブル＃５には、現在のＶＩＤに対応する新たなＶＩＤが設定されている。このため、ループカウント値がフローテーブル＃５により更新される。
【０１２９】
図２０は、試験装置２を配置したネットワークの一例を示す構成図である。ネットワークには、コアネットワーク９１及びアクセスネットワーク９２〜９４が含まれる。
【０１３０】
コアネットワーク９１には、複数の試験装置２、複数のＰＣサーバ３、複数のスイッチ（＃１〜＃３）４、及び複数のルータ（＃１〜＃３）５が設けられている。ルータ（＃２）５は他のルータ（＃２，＃３）５と接続されている。
【０１３１】
スイッチ（＃１〜＃３）４は試験装置２の試験対象である。試験装置２にはＰＣサーバ３からパケットが入力される。また、スイッチ（＃１〜＃３）４はルータ（＃１〜＃３）５にそれぞれ接続されている。スイッチ（＃１〜＃３）４はアクセスネットワーク９２〜９４に接続されている。
【０１３２】
アクセスネットワーク９２には、試験装置２、ＰＣサーバ３、スイッチ（＃４）４、及びルータ（＃４）５が設けられている。スイッチ（＃４）４は試験装置２の試験対象である。試験装置２にはＰＣサーバ３からパケットが入力される。また、スイッチ（＃４）４はルータ（＃４）５にそれぞれ接続されている。ルータ（＃４）５はコアネットワーク９１に接続されている。
【０１３３】
アクセスネットワーク９３には、試験装置２、ＰＣサーバ３、スイッチ（＃５）４、及びルータ（＃５）５が設けられている。スイッチ（＃５）４は試験装置２の試験対象である。試験装置２にはＰＣサーバ３からパケットが入力される。また、スイッチ（＃５）４はルータ（＃５）５にそれぞれ接続されている。ルータ（＃５）５はコアネットワーク９１に接続されている。
【０１３４】
アクセスネットワーク９４には、試験装置２、ＰＣサーバ３、スイッチ（＃６）４、及びルータ（＃６）５が設けられている。スイッチ（＃６）４は試験装置２の試験対象である。試験装置２にはＰＣサーバ３からパケットが入力される。また、スイッチ（＃６）４はルータ（＃６）５にそれぞれ接続されている。ルータ（＃６）５はコアネットワーク９１に接続されている。
【０１３５】
各ＰＣサーバ３は、統計情報制御システム９０に接続されている。統計情報制御システム９０には、例えば、ＰＣサーバ３を制御するサーバなどが含まれている。統計情報制御システム９０は、各ＰＣサーバ３を制御することにより、試験装置２に試験を実行させることができる。このため、ネットワーク全体のスイッチ（＃１〜＃６）４を一度に試験することが可能となる。
【０１３６】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１３７】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  パケットが入力される第１入力ポート及び第２入力ポートと、
パケットが出力される第１出力ポート及び第２出力ポートと、
前記第２出力ポートから出力されたパケットを格納する格納部と、
前記格納部に格納されたパケットに関するカウント値をカウントするカウンタ部と、
前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力する制御部とを有することを特徴とするパケット生成装置。
（付記２）  前記カウント値は、パケットに付与されており、
前記カウンタ部は、パケットが前記第２出力ポートから出力されるたびに前記カウント値を更新することを特徴とする付記１に記載のパケット生成装置。
（付記３）  前記制御部は、前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを増やして前記第１出力ポート及び前記第２出力ポートからそれぞれ出力することを特徴とする付記１または２に記載のパケット生成装置。
（付記４）  パケットが入力される第３入力ポートと、
パケットが出力される第３出力ポートと、
前記第３入力ポートから入力されたパケットから前記カウント値を削除する削除部とを有し、
前記制御部は、前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポート及び前記第３出力ポートから出力し、前記第３出力ポートから出力されたパケットを前記第３入力ポートに入力して前記第１出力ポートから出力することを特徴とする付記２または３に記載のパケット生成装置。
（付記５）  パケットに関する条件と、前記パケットに関する条件に応じた処理内容とが登録された１以上のテーブルを有し、
前記制御部は、前記１以上のテーブルを参照することにより、前記第１出力ポート及び前記第２出力ポートからパケットの出力先を決定することを特徴とする付記１乃至４に記載のパケット生成装置。
（付記６）  前記第２入力ポートと前記第２出力ポートは、互いに接続されていることを特徴とする付記１乃至５に記載のパケット生成装置。
（付記７）  パケットが入力される第１入力ポート及び第２入力ポートと、パケットが出力される第１出力ポート及び第２出力ポートとを用いたパケット生成方法において、
前記第２出力ポートから出力されたパケットを格納部に格納し、
前記格納部に格納されたパケットに関するカウント値をカウントし、
前記第１入力ポートから入力されたパケットを前記第２出力ポートから出力し、
前記カウント値が所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポートから出力し、
前記カウント値が前記所定値に達したとき、前記格納部に格納されたパケットを前記第２入力ポートに入力して前記第１出力ポートから出力することを特徴とするパケット生成方法。
（付記８）  前記カウント値は、パケットに付与されており、パケットが前記第２出力ポートから出力されるたびに更新されることを特徴とする付記７に記載のパケット生成方法。
（付記９）  前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを増やして前記第１出力ポート及び前記第２出力ポートからそれぞれ出力することを特徴とする付記７または８に記載のパケット生成方法。
（付記１０）  パケットが入力される第３入力ポートと、パケットが出力される第３出力ポートとをさらに用い、
前記第３入力ポートから入力されたパケットから前記カウント値を削除し、
前記カウント値が前記所定値に達していないとき、前記格納部に格納されたパケットを前記第２出力ポート及び前記第３出力ポートから出力し、前記第３出力ポートから出力されたパケットを前記第３入力ポートに入力して前記第１出力ポートから出力することを特徴とする付記８または９に記載のパケット生成方法。
（付記１１）  パケットに関する条件と、前記パケットに関する条件に応じた処理内容とが登録された１以上のテーブルを参照することにより、前記第１出力ポート及び前記第２出力ポートからパケットの出力先を決定することを特徴とする付記７乃至１０に記載のパケット生成方法。
（付記１２）  前記第２入力ポートと前記第２出力ポートは、互いに接続されていることを特徴とする付記７乃至１１に記載のパケット生成方法。
【符号の説明】
【０１３８】
１      スイッチデバイス
２      試験装置
１０      パケット処理部
１３      ヘッダ処理部
１８      入力バッファ
２４ａ     受信用入力ポート
２４ｂ     ループ用入力ポート
２４ｃ     ヘッダ削除用入力ポート
２７ａ     送信用出力ポート
２７ｂ     ループ用出力ポート
２７ｃ     ヘッダ削除用出力ポート
【図１】
2018061169.tif 000003
【図２】
2018061169.tif 000004
【図３】
2018061169.tif 000005
【図４】
2018061169.tif 000006
【図５】
2018061169.tif 000007
【図６】
2018061169.tif 000008
【図７】
2018061169.tif 000009
【図８】
2018061169.tif 000010
【図９】
2018061169.tif 000011
【図１０】
2018061169.tif 000012
【図１１】
2018061169.tif 000013
【図１２】
2018061169.tif 000014
【図１３】
2018061169.tif 000015
【図１４】
2018061169.tif 000016
【図１５】
2018061169.tif 000017
【図１６】
2018061169.tif 000018
【図１７】
2018061169.tif 000019
【図１８】
2018061169.tif 000020
【図１９】
2018061169.tif 000021
【図２０】
2018061169.tif 000022