(57)【特許請求の範囲】
【請求項１】
受信パケットを他の装置（３ａ〜３ｃ）に転送するパケット転送装置において、
前記受信パケットの断片と、前記他の装置の記憶媒体（２１）に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換部（１１）と、
前記転送用パケットを前記他の装置に転送するパケット転送部（１２）と、を備え、
前記パケット変換部は、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定し、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成し、
前記パケット転送部は、前記パケット変換部によって生成された転送用パケットを前記他の装置に転送することを特徴とするパケット転送装置。
【請求項２】
前記パケット変換部は、前記書き込みアドレスをペイロードの特定位置に格納した転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記パケット変換部は、Ｓｅｒｉａｌ  ＲａｐｉｄＩＯ規格に準拠した転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項２に記載のパケット転送装置。
【請求項４】
前記パケット変換部は、前記書き込みアドレスがヘッダに追加された転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項１に記載のパケット転送装置。
【請求項５】
受信パケットを他の装置（３ａ〜３ｃ）に転送するパケット転送装置（１ａ〜１ｃ）を用いたパケット転送方法において、
前記受信パケットの断片と、前記他の装置の記憶媒体（２１）に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換ステップと、
前記転送用パケットを前記記憶媒体に転送するパケット転送ステップと、を有し、
前記パケット変換ステップは、
前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定するアドレス指定ステップと、
該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成するパケット生成ステップと、を含み、
前記パケット転送ステップは、
前記パケット生成ステップで生成された転送用パケットを転送するステップを含むことを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信したパケットを他の装置に転送するパケット転送装置およびパケット転送方法に関する。
【背景技術】
【０００２】
従来、マルチポートスイッチと、マルチポートスイッチと複数のシリアルバスを介して接続される複数のデバイスとを備え、送信元のデバイスが、複数のデバイスのなかで少なくとも１つの送信先のデバイスを選択し、選択した送信先のデバイスにマルチポートスイッチとシリアルバスを通じてデータを送信する送信部を有し、送信先のデバイスが、送信元のデバイスからマルチポートスイッチとシリアルバスを通じてデータを受信する受信部を有するデータ伝送システムが知られている（例えば、特許文献１参照）。
【０００３】
この従来のデータ伝送システムは、送信部が複数の送信先のデバイスを選択した場合に、選択した複数の送信先のデバイスの受信レートに基づいて、選択した複数の送信先のデバイスに対して送信するデータ量の比率を決定することにより、選択した複数の送信先のデバイスに効率よくデータを送信していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／１２２８９６号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような従来の技術では、送信するデータが構成するパケットのインターフェース規格を送信元のデバイスと送信先のデバイスとの間で予め定めておかなければならないといった課題があった。
【０００６】
本発明は、このような課題を解決するためになされたもので、パケットのインターフェース規格に依らずに、パケットを転送することができるパケット転送装置およびパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のパケット転送装置は、受信パケットを他の装置（３ａ〜３ｃ）に転送するパケット転送装置において、前記受信パケットの断片と、前記他の装置の記憶媒体（２１）に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換部（１１）と、前記転送用パケットを前記他の装置に転送するパケット転送部（１２）と、を備え、前記パケット変換部は、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定し、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成し、前記パケット転送部は、前記パケット変換部によって生成された転送用パケットを前記他の装置に転送するように構成されている。
【０００８】
この構成により、転送先の装置が、予約領域に書き込まれた長さ分のデータを記憶媒体から読み出すことにより、受信パケットを再生することができるため、本発明のパケット転送装置は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【０００９】
なお、前記パケット変換部は、前記書き込みアドレスをペイロードの特定位置に格納した転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【００１０】
また、前記パケット変換部は、Ｓｅｒｉａｌ  ＲａｐｉｄＩＯ（登録商標）規格に準拠した転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【００１１】
また、前記パケット変換部は、前記書き込みアドレスがヘッダに追加された転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【００１２】
また、本発明のパケット転送方法は、受信パケットを他の装置（３ａ〜３ｃ）に転送するパケット転送装置（１ａ〜１ｃ）を用いたパケット転送方法において、前記受信パケットの断片と、前記他の装置の記憶媒体（２１）に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換ステップと、前記転送用パケットを前記記憶媒体に転送するパケット転送ステップと、を有し、前記パケット変換ステップは、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定するアドレス指定ステップと、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成するパケット生成ステップと、を含み、前記パケット転送ステップは、前記パケット生成ステップで生成された転送用パケットを転送するステップを含む。
【００１３】
したがって、転送先の装置が、予約領域に書き込まれた長さ分のデータを記憶媒体から読み出すことにより、受信パケットを再生することができるため、本発明のパケット転送方法は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【発明の効果】
【００１４】
本発明は、パケットのインターフェース規格に依らずに、パケットを転送することができるパケット転送装置およびパケット転送方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るパケット転送装置によって構成されるシステムのブロック図である。
【図２】本発明の実施の形態に係るパケット転送装置の転送動作を説明するための概念図である。
【図３】本発明の実施の形態に係るパケット転送装置のパケットの転送先であるパケット受信装置のバッファのメモリマップを示す概念図である。
【図４】本発明の実施の形態に係るパケット転送装置の転送動作の他の例を説明するための概念図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１７】
図１に示すように、本発明の実施の形態としてのシステムは、複数のパケット転送装置１ａ〜１ｃと、スイッチ２と、複数のパケット受信装置３ａ〜３ｃとを備え、複数のパケット転送装置１ａ〜１ｃに受信されたパケットが複数のパケット受信装置３ａ〜３ｃの何れかに送信されるようになっている。
【００１８】
なお、図１において、それぞれ３つのパケット転送装置１ａ〜１ｃおよびパケット受信装置３ａ〜３ｃが図示されているが、これらの数を限定するものではない。また、以下の説明において、パケット転送装置１ａ〜１ｃを総称して「パケット転送装置１」といい、パケット受信装置３ａ〜３ｃを総称して「パケット受信装置３」という。
【００１９】
パケット転送装置１は、パケットを受信するパケット受信部１０と、受信パケットを複数の転送用パケットにフォーマット変換するパケット変換部１１と、転送用パケットをパケット受信装置３に転送するパケット転送部１２とを備えている。
【００２０】
本実施の形態において、パケット受信部１０、パケット変換部１１およびパケット転送部１２は、論理回路等のハードウェア素子の組み合わせ、または、ＦＰＧＡ（Field Programmable Gate Array）等によって一体に構成される。
【００２１】
パケット受信装置３は、パケット転送装置１からスイッチ２を介して送信された転送用パケットを受信するパケット受信部２０と、転送用パケットをバッファするバッファ２１と、転送用パケットを更に他の装置に送信するパケット送信部２２とを備えている。
【００２２】
本実施の形態において、パケット受信部２０およびパケット送信部２２は、論理回路等のハードウェア素子の組み合わせ、または、ＦＰＧＡ等によって一体に構成される。また、バッファ２１は、ＲＡＭ（Random Access Memory）等の記憶媒体によって構成される。
【００２３】
パケット転送装置１およびパケット受信装置３には、予めＩＤが割り当てられている。スイッチ２は、転送用パケットのヘッダに含まれるＩＤに基づいて、パケット転送装置１から転送された転送用パケットを何れかのパケット受信装置３に送信するようになっている。
【００２４】
パケット転送装置１のパケット受信部１０は、任意の規格に準拠したパケットを受信できるようになっている。パケット変換部１１は、受信パケットを断片化し、各断片と、この断片のパケット受信装置３のバッファ２１に対する書き込みアドレスとを含む複数の転送用パケットに受信パケットをフォーマット変換するようになっている。
【００２５】
ここで、転送用パケットは、書き込みアドレスをヘッダに含めることができる規格に準拠し、本実施の形態においては、Ｓｅｒｉａｌ  ＲａｐｉｄＩＯ（以下、単に「ｓＲＩＯ」という）規格に準拠するものとする。すなわち、パケット転送部１２は、ｓＲＩＯ規格に準拠して、転送用パケットをパケット受信装置３に転送するようになっている。
【００２６】
ｓＲＩＯは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processing）、ＦＰＧＡ（Field Programmable Gate Array）等のボード上に設けられたデバイス間で１．２５Ｇｂｐｓ、２．５Ｇｂｐｓ、３．１２５Ｇｂｐｓといった高速通信を実現するためのバスの規格であり、バックプレーン間や筐体間の転送規格としても採用されている。
【００２７】
ｓＲＩＯの論理層は、メモリにデータを書き込むＤＭＡ（Direct Memory Address）を実現することが可能になっており、ヘッダには、少なくとも転送元装置のＩＤ（Source-ID）と、転送先装置のＩＤ（Destination-ID）と、転送先装置のメモリアドレスとを指定することができる。
【００２８】
本実施の形態においては、転送元装置のＩＤには、パケット転送装置１のＩＤが指定され、転送先装置のＩＤには、パケット受信装置３のＩＤが指定され、転送先装置のメモリアドレスには、パケット受信装置３のバッファ２１におけるアドレスが指定される。
【００２９】
また、パケット変換部１１は、バッファ２１に対して受信パケットの断片を書き込む領域の直前に、この受信パケットの長さを書き込むための予約領域を確保するように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。本実施の形態において、予約領域の長さは、４バイトとする。
【００３０】
すなわち、バッファ２１が空であると仮定すると、パケット変換部１１は、予約領域として、先頭から４バイトを確保し、５バイト目から受信パケットの断片が順次書き込まれていくように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。
【００３１】
また、バッファ２１にデータが書き込み済みであると仮定すると、パケット変換部１１は、予約領域として、書き込み済みのデータに続く４バイトを確保し、以降から受信パケットの断片が順次書き込まれていくように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。
【００３２】
パケット転送部１２は、このようにパケット変換部１１によってフォーマット変換された転送用パケットをパケット受信装置３にスイッチ２を介して転送するようになっている。
【００３３】
また、パケット変換部１１は、受信パケットの全ての断片を含む転送用パケットの転送が完了したことを条件として、受信パケットの長さを表すデータと、予約領域の先頭アドレスとをヘッダに含む転送用パケットを生成するようになっている。パケット転送部１２は、このようにパケット変換部１１によって生成された転送用パケットをパケット受信装置３に転送するようになっている。
【００３４】
本実施の形態において、パケット受信装置３のパケット受信部２０は、ｓＲＩＯ規格に準拠して、パケット転送装置１からスイッチ２を介して転送された転送用パケットを受信するようになっている。
【００３５】
バッファ２１は、パケット転送装置１ａ〜１ｃに対応する数の論理的または物理的なセグメント３１ａ〜３１ｃに記憶領域が分割されている。以下、セグメント３１ａ〜３１ｃを総称して「セグメント３１」という。
【００３６】
各パケット受信装置３のパケット受信部２０は、セグメント３１ａに対して、パケット転送装置１ａから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【００３７】
また、各パケット受信装置３のパケット受信部２０は、セグメント３１ｂに対して、パケット転送装置１ｂから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【００３８】
同様に、各パケット受信装置３のパケット受信部２０は、セグメント３１ｃに対して、パケット転送装置１ｃから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【００３９】
パケット送信部２２は、例えば、ラウンドロビン方式で、セグメント３１ａ〜３１ｃに書き込まれたデータをパケット単位で他の装置に送信するようになっている。ここで、セグメント３１ａ〜３１ｃに書き込まれたデータは、まず、受信パケットの長さを表し、それに続いて受信パケットを表すことになる。
【００４０】
このため、パケット送信部２２は、セグメント３１から４バイトのデータを読み出し、この４バイトのデータが表す受信パケットの長さ分のデータ、すなわち、受信パケットを読み出すようになっている。
【００４１】
以上のように構成されたパケット転送装置１の転送動作について図２を参照して説明する。ここでは、受信パケットがイーサネット（登録商標）フレーム５０を構成するものとする。
【００４２】
なお、図２において、「Ｈ」は、イーサネット（登録商標）フレーム５０のヘッダを表し、「Ｄ」は、イーサネット（登録商標）フレーム５０のペイロードを表し、「Ｆ」は、イーサネット（登録商標）フレーム５０のフッタを表している。
【００４３】
パケット転送装置１のパケット受信部１０に受信されたイーサネット（登録商標）フレーム５０は、パケット変換部１１によって断片化され、それぞれｓＲＩＯパケットのヘッダＨｓおよびフッタＦｓが付された転送用パケット５１ａ〜５１ｄに変換され、パケット転送部１２によって転送される。
【００４４】
ここで、ｓＲＩＯパケットの各ヘッダＨｓには、パケット変換部１１によって、転送元装置のＩＤとしてパケット転送装置１のＩＤが指定され、転送先装置のＩＤとしてパケット受信装置３のＩＤが指定され、転送先装置のメモリアドレスとしてパケット受信装置３のセグメント３１におけるアドレスが指定される。
【００４５】
受信パケットの全ての断片を含む転送用パケットの転送が完了すると、パケット受信部１０によるバイトカウント等によって得られた受信パケットの長さを表すデータＬにｓＲＩＯパケットのヘッダＨｓおよびフッタＦｓが付された転送用パケット５２がパケット変換部１１によって生成され、パケット転送部１２によって転送される。
【００４６】
このように、パケット転送装置１によって転送された転送用パケットに基づいてセグメント３１に格納されるデータは、図３に示すようになる。なお、図３においても、「Ｈ」は、イーサネット（登録商標）フレームのヘッダを表し、「Ｄ」は、イーサネット（登録商標）フレームのペイロードを表し、「Ｆ」は、イーサネット（登録商標）フレームのフッタを表している。
【００４７】
データの格納位置としては、まず、セグメント３１の先頭から、受信パケットの長さを表すデータＬが格納され、続いて、イーサネット（登録商標）フレームのヘッダＨ、ペイロードＤ、フッタＦが格納される。続いて、次の受信パケットの長さを表すデータＬｎが格納され、以降、同様に格納される。したがって、パケット送信部２２がセグメント３１をリングバッファのように用いることにより、受信パケットの長さと受信パケット（Ｈ、Ｄ、Ｄ、Ｄ、Ｆ）とを順次読み出すことが可能となる。
【００４８】
なお、データの格納順序としては、図２に示したように、イーサネット（登録商標）フレームのヘッダＨ、ペイロードＤおよびフッタＦが格納された後に、受信パケットの長さを表すデータＬが格納される。以降の受信パケットについても、同様な順序でデータが格納される。
【００４９】
以下、セグメント３１に対するデータの格納について、より詳細に説明する。各セグメント３１ａ〜３１ｃは、ライトポインタの値に基づいて、書き込み位置が管理される。各パケット転送装置１ａ〜１ｃのパケット転送部１２は、対応するセグメント３１ａ〜３１ｃのライトポインタの値をそれぞれ管理すると共に、このライトポインタの値に基づいて、転送パケットのペイロード、すなわち、受信パケットの書き込みアドレスを決定する。
【００５０】
例えば、図３に示すように、アドレスＡ０の直前のアドレスまで、セグメント３１に書き込みが行われている状態であるとする。このとき、ライトポインタの値は、次に書き込みが可能なアドレスＡ０である。
【００５１】
ここで、パケット転送部１２は、受信パケットを転送しようとするときに、ライトポインタの値に基づいたアドレスＡ０に対して、前述した予約領域（例えば、４バイト）を確保して、アドレスＡ１を書き込みアドレスとして決定し、決定したアドレスＡ１を指定して、受信パケットを転送するための最初の転送パケットを送信する。
【００５２】
そして、パケット転送部１２は、受信パケットの転送済みのデータ長分だけアドレスをシフトしていくことにより、書き込みアドレス（Ａ２、Ａ３、Ａ４）を決定し、決定したアドレス（Ａ２、Ａ３、Ａ４）を指定して、以降の転送パケットを送信する。
【００５３】
受信パケットの転送が完了すると、パケット転送部１２は、予約領域のアドレスＡ０を書き込みアドレスとして決定、決定したアドレスＡ０を指定して、受信パケットの長さを表すデータＬを格納した転送パケットを送信する。
【００５４】
その後、パケット転送部１２は、セグメント３１の次の書き込みが可能なアドレスＡ５を示すようにライトポインタの値を更新して、この受信パケットに対する転送処理を完了する。以降、パケット転送部１２は、受信パケットを転送する度に、以上に説明した転送動作をライトポインタの値を更新しながら繰り返し実行する。
【００５５】
一方、各セグメント３１ａ〜３１ｃは、リードポインタの値に基づいて、読み出し位置が管理される。各パケット受信装置３ａ〜３ｃのパケット送信部２２は、対応するセグメント３１ａ〜３１ｃのリードポインタの値をそれぞれ管理し、このリードポインタの値に基づいて、受信パケットの読み出しアドレスを決定する。
【００５６】
例えば、図３に示すように、アドレスＡ０の直前のアドレスまで、セグメント３１から読み出しが行われている状態であるとする。このとき、リードポインタの値は、次に読み出しが可能なアドレスＡ０である。
【００５７】
ここで、パケット送信部２２は、ライトポインタの値がアドレスＡ０を示し、アドレスＡ０に対するデータの書き込みが完了し、ライトポインタの値が他のアドレスを示したことを条件として、リードポインタの値に基づいたアドレスＡ０を読み出しアドレスとして決定し、決定したアドレスＡ０を指定して、受信パケットの長さを表すデータＬを予約領域から読み出す。
【００５８】
次に、パケット送信部２２は、アドレスＡ０から予約領域分シフトしたアドレスＡ１を読み出しアドレスとして決定し、決定したアドレスＡ１を指定して、アドレスＡ１からデータＬが表す長さ分のデータ、すなわち、受信パケットを読み出す。
【００５９】
その後、パケット送信部２２は、アドレスＡ１からデータＬが表す長さ分シフトしたアドレスＡ５を示すようにリードポインタの値を更新して、この受信パケットに対する読み出し動作を完了する。以降、パケット送信部２２は、パケット転送部１２によって転送され、セグメント３１に格納された受信パケットを読み出す度に、以上に説明した読み出し動作をリードポインタの値を更新しながら繰り返し実行する。
【００６０】
以上に説明したように、パケット受信装置３が、予約領域に書き込まれた長さ分のデータをバッファ２１から読み出すことにより、受信パケットを再生することができるため、本実施の形態のパケット転送装置１は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【００６１】
なお、本実施の形態において、転送用パケットがｓＲＩＯ規格に準拠するものとして説明したが、本発明においては、本発明において、転送用パケットは、ヘッダに書き込みアドレスを含めることができる規格に準拠していればよい。
【００６２】
また、図４に示すように、パケット変換部１１は、書き込みアドレスをペイロードの特定位置に格納し、他の転送規格に準拠した転送用パケットに受信パケットをフォーマット変換するようにしてもよい。この場合には、パケット受信部２０は、ＤＭＡ機能を有するように構成される。
【００６３】
なお、図４においても、「Ｈ」は、イーサネット（登録商標）フレーム５０のヘッダを表し、「Ｄ」は、イーサネット（登録商標）フレーム５０のペイロードを表し、「Ｆ」は、イーサネット（登録商標）フレーム５０のフッタを表している。
【００６４】
具体的には、パケット転送装置１のパケット受信部１０に受信されたイーサネット（登録商標）フレーム５０は、パケット変換部１１によって断片化され、それぞれ転送用パケットのヘッダＨｉ、書き込みアドレスＵｉおよびフッタＦｉが付された転送用パケット６１ａ〜６１ｄに変換され、パケット転送部１２によって転送される。
【００６５】
ここで、パケット変換部１１によって、転送用パケットのヘッダＨｓには、転送元装置のＩＤとしてパケット転送装置１のＩＤが指定され、転送先装置のＩＤとしてパケット受信装置３のＩＤが指定され、書き込みアドレスＵｉには、転送先装置のメモリアドレスとしてパケット受信装置３のセグメント３１におけるアドレスが指定される。
【００６６】
受信パケットの全ての断片を含む転送用パケットの転送が完了すると、パケット受信部１０によるバイトカウント等によって得られた受信パケットの長さを表すデータＬに転送用パケットのヘッダＨｉ、書き込みアドレスＵｉおよび転送用パケットのフッタＦｉが付された転送用パケット６２がパケット変換部１１によって生成され、パケット転送部１２によって転送される。
【産業上の利用可能性】
【００６７】
本発明に係るパケット転送装置は、ボード上に設けられたデバイス間に配置されるパケット転送装置に適用する他に、例えば、移動端末の試験装置の内部データ転送機能に適用することができる。
【符号の説明】
【００６８】
１、１ａ〜１ｃ  パケット転送装置
２  スイッチ
３、３ａ〜３ｃ  パケット受信装置
１０、２０  パケット受信部
１１  パケット変換部
１２  パケット転送部
２１  バッファ
２２  パケット送信部
３１、３１ａ〜３１ｃ  セグメント
【図１】
0005282124.tif 000002
【図２】
0005282124.tif 000003
【図３】
0005282124.tif 000004
【図４】
0005282124.tif 000005