説明

パケット転送装置およびパケット転送方法

【課題】パケットのインターフェース規格に依らずに、パケットを転送することができるパケット転送装置およびパケット転送方法を提供すること。
【解決手段】各パケット転送装置1a〜1cのパケット変換部11は、バッファ21に対して受信パケットの断片を書き込む領域の直前に当該受信パケットの長さを書き込むための予約領域を確保するように、転送用パケットに書き込みアドレスを指定し、当該転送用パケットの転送が完了したことを条件として、当該受信パケットの長さを表すデータと、予約領域の先頭アドレスとを含む転送用パケットを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信したパケットを他の装置に転送するパケット転送装置およびパケット転送方法に関する。
【背景技術】
【0002】
従来、マルチポートスイッチと、マルチポートスイッチと複数のシリアルバスを介して接続される複数のデバイスとを備え、送信元のデバイスが、複数のデバイスのなかで少なくとも1つの送信先のデバイスを選択し、選択した送信先のデバイスにマルチポートスイッチとシリアルバスを通じてデータを送信する送信部を有し、送信先のデバイスが、送信元のデバイスからマルチポートスイッチとシリアルバスを通じてデータを受信する受信部を有するデータ伝送システムが知られている(例えば、特許文献1参照)。
【0003】
この従来のデータ伝送システムは、送信部が複数の送信先のデバイスを選択した場合に、選択した複数の送信先のデバイスの受信レートに基づいて、選択した複数の送信先のデバイスに対して送信するデータ量の比率を決定することにより、選択した複数の送信先のデバイスに効率よくデータを送信していた。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2010/122896号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述したような従来の技術では、送信するデータが構成するパケットのインターフェース規格を送信元のデバイスと送信先のデバイスとの間で予め定めておかなければならないといった課題があった。
【0006】
本発明は、このような課題を解決するためになされたもので、パケットのインターフェース規格に依らずに、パケットを転送することができるパケット転送装置およびパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のパケット転送装置は、受信パケットを他の装置(3a〜3c)に転送するパケット転送装置において、前記受信パケットの断片と、前記他の装置の記憶媒体(21)に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換部(11)と、前記転送用パケットを前記他の装置に転送するパケット転送部(12)と、を備え、前記パケット変換部は、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定し、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成し、前記パケット転送部は、前記パケット変換部によって生成された転送用パケットを前記他の装置に転送するように構成されている。
【0008】
この構成により、転送先の装置が、予約領域に書き込まれた長さ分のデータを記憶媒体から読み出すことにより、受信パケットを再生することができるため、本発明のパケット転送装置は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【0009】
なお、前記パケット変換部は、前記書き込みアドレスをペイロードの特定位置に格納した転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【0010】
また、前記パケット変換部は、Serial RapidIO(登録商標)規格に準拠した転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【0011】
また、前記パケット変換部は、前記書き込みアドレスがヘッダに追加された転送用パケットに前記受信パケットをフォーマット変換するようにしてもよい。
【0012】
また、本発明のパケット転送方法は、受信パケットを他の装置(3a〜3c)に転送するパケット転送装置(1a〜1c)を用いたパケット転送方法において、前記受信パケットの断片と、前記他の装置の記憶媒体(21)に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換ステップと、前記転送用パケットを前記記憶媒体に転送するパケット転送ステップと、を有し、前記パケット変換ステップは、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定するアドレス指定ステップと、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成するパケット生成ステップと、を含み、前記パケット転送ステップは、前記パケット生成ステップで生成された転送用パケットを転送するステップを含む。
【0013】
したがって、転送先の装置が、予約領域に書き込まれた長さ分のデータを記憶媒体から読み出すことにより、受信パケットを再生することができるため、本発明のパケット転送方法は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【発明の効果】
【0014】
本発明は、パケットのインターフェース規格に依らずに、パケットを転送することができるパケット転送装置およびパケット転送方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態に係るパケット転送装置によって構成されるシステムのブロック図である。
【図2】本発明の実施の形態に係るパケット転送装置の転送動作を説明するための概念図である。
【図3】本発明の実施の形態に係るパケット転送装置のパケットの転送先であるパケット受信装置のバッファのメモリマップを示す概念図である。
【図4】本発明の実施の形態に係るパケット転送装置の転送動作の他の例を説明するための概念図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面を参照して説明する。
【0017】
図1に示すように、本発明の実施の形態としてのシステムは、複数のパケット転送装置1a〜1cと、スイッチ2と、複数のパケット受信装置3a〜3cとを備え、複数のパケット転送装置1a〜1cに受信されたパケットが複数のパケット受信装置3a〜3cの何れかに送信されるようになっている。
【0018】
なお、図1において、それぞれ3つのパケット転送装置1a〜1cおよびパケット受信装置3a〜3cが図示されているが、これらの数を限定するものではない。また、以下の説明において、パケット転送装置1a〜1cを総称して「パケット転送装置1」といい、パケット受信装置3a〜3cを総称して「パケット受信装置3」という。
【0019】
パケット転送装置1は、パケットを受信するパケット受信部10と、受信パケットを複数の転送用パケットにフォーマット変換するパケット変換部11と、転送用パケットをパケット受信装置3に転送するパケット転送部12とを備えている。
【0020】
本実施の形態において、パケット受信部10、パケット変換部11およびパケット転送部12は、論理回路等のハードウェア素子の組み合わせ、または、FPGA(Field Programmable Gate Array)等によって一体に構成される。
【0021】
パケット受信装置3は、パケット転送装置1からスイッチ2を介して送信された転送用パケットを受信するパケット受信部20と、転送用パケットをバッファするバッファ21と、転送用パケットを更に他の装置に送信するパケット送信部22とを備えている。
【0022】
本実施の形態において、パケット受信部20およびパケット送信部22は、論理回路等のハードウェア素子の組み合わせ、または、FPGA等によって一体に構成される。また、バッファ21は、RAM(Random Access Memory)等の記憶媒体によって構成される。
【0023】
パケット転送装置1およびパケット受信装置3には、予めIDが割り当てられている。スイッチ2は、転送用パケットのヘッダに含まれるIDに基づいて、パケット転送装置1から転送された転送用パケットを何れかのパケット受信装置3に送信するようになっている。
【0024】
パケット転送装置1のパケット受信部10は、任意の規格に準拠したパケットを受信できるようになっている。パケット変換部11は、受信パケットを断片化し、各断片と、この断片のパケット受信装置3のバッファ21に対する書き込みアドレスとを含む複数の転送用パケットに受信パケットをフォーマット変換するようになっている。
【0025】
ここで、転送用パケットは、書き込みアドレスをヘッダに含めることができる規格に準拠し、本実施の形態においては、Serial RapidIO(以下、単に「sRIO」という)規格に準拠するものとする。すなわち、パケット転送部12は、sRIO規格に準拠して、転送用パケットをパケット受信装置3に転送するようになっている。
【0026】
sRIOは、CPU(Central Processing Unit)、DSP(Digital Signal Processing)、FPGA(Field Programmable Gate Array)等のボード上に設けられたデバイス間で1.25Gbps、2.5Gbps、3.125Gbpsといった高速通信を実現するためのバスの規格であり、バックプレーン間や筐体間の転送規格としても採用されている。
【0027】
sRIOの論理層は、メモリにデータを書き込むDMA(Direct Memory Address)を実現することが可能になっており、ヘッダには、少なくとも転送元装置のID(Source-ID)と、転送先装置のID(Destination-ID)と、転送先装置のメモリアドレスとを指定することができる。
【0028】
本実施の形態においては、転送元装置のIDには、パケット転送装置1のIDが指定され、転送先装置のIDには、パケット受信装置3のIDが指定され、転送先装置のメモリアドレスには、パケット受信装置3のバッファ21におけるアドレスが指定される。
【0029】
また、パケット変換部11は、バッファ21に対して受信パケットの断片を書き込む領域の直前に、この受信パケットの長さを書き込むための予約領域を確保するように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。本実施の形態において、予約領域の長さは、4バイトとする。
【0030】
すなわち、バッファ21が空であると仮定すると、パケット変換部11は、予約領域として、先頭から4バイトを確保し、5バイト目から受信パケットの断片が順次書き込まれていくように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。
【0031】
また、バッファ21にデータが書き込み済みであると仮定すると、パケット変換部11は、予約領域として、書き込み済みのデータに続く4バイトを確保し、以降から受信パケットの断片が順次書き込まれていくように転送用パケットのヘッダに書き込みアドレスを指定するようになっている。
【0032】
パケット転送部12は、このようにパケット変換部11によってフォーマット変換された転送用パケットをパケット受信装置3にスイッチ2を介して転送するようになっている。
【0033】
また、パケット変換部11は、受信パケットの全ての断片を含む転送用パケットの転送が完了したことを条件として、受信パケットの長さを表すデータと、予約領域の先頭アドレスとをヘッダに含む転送用パケットを生成するようになっている。パケット転送部12は、このようにパケット変換部11によって生成された転送用パケットをパケット受信装置3に転送するようになっている。
【0034】
本実施の形態において、パケット受信装置3のパケット受信部20は、sRIO規格に準拠して、パケット転送装置1からスイッチ2を介して転送された転送用パケットを受信するようになっている。
【0035】
バッファ21は、パケット転送装置1a〜1cに対応する数の論理的または物理的なセグメント31a〜31cに記憶領域が分割されている。以下、セグメント31a〜31cを総称して「セグメント31」という。
【0036】
各パケット受信装置3のパケット受信部20は、セグメント31aに対して、パケット転送装置1aから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【0037】
また、各パケット受信装置3のパケット受信部20は、セグメント31bに対して、パケット転送装置1bから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【0038】
同様に、各パケット受信装置3のパケット受信部20は、セグメント31cに対して、パケット転送装置1cから転送された転送用パケットのヘッダに含まれる書き込みアドレスが指す位置に、転送用パケットのペイロードを書き込むようになっている。
【0039】
パケット送信部22は、例えば、ラウンドロビン方式で、セグメント31a〜31cに書き込まれたデータをパケット単位で他の装置に送信するようになっている。ここで、セグメント31a〜31cに書き込まれたデータは、まず、受信パケットの長さを表し、それに続いて受信パケットを表すことになる。
【0040】
このため、パケット送信部22は、セグメント31から4バイトのデータを読み出し、この4バイトのデータが表す受信パケットの長さ分のデータ、すなわち、受信パケットを読み出すようになっている。
【0041】
以上のように構成されたパケット転送装置1の転送動作について図2を参照して説明する。ここでは、受信パケットがイーサネット(登録商標)フレーム50を構成するものとする。
【0042】
なお、図2において、「H」は、イーサネット(登録商標)フレーム50のヘッダを表し、「D」は、イーサネット(登録商標)フレーム50のペイロードを表し、「F」は、イーサネット(登録商標)フレーム50のフッタを表している。
【0043】
パケット転送装置1のパケット受信部10に受信されたイーサネット(登録商標)フレーム50は、パケット変換部11によって断片化され、それぞれsRIOパケットのヘッダHsおよびフッタFsが付された転送用パケット51a〜51dに変換され、パケット転送部12によって転送される。
【0044】
ここで、sRIOパケットの各ヘッダHsには、パケット変換部11によって、転送元装置のIDとしてパケット転送装置1のIDが指定され、転送先装置のIDとしてパケット受信装置3のIDが指定され、転送先装置のメモリアドレスとしてパケット受信装置3のセグメント31におけるアドレスが指定される。
【0045】
受信パケットの全ての断片を含む転送用パケットの転送が完了すると、パケット受信部10によるバイトカウント等によって得られた受信パケットの長さを表すデータLにsRIOパケットのヘッダHsおよびフッタFsが付された転送用パケット52がパケット変換部11によって生成され、パケット転送部12によって転送される。
【0046】
このように、パケット転送装置1によって転送された転送用パケットに基づいてセグメント31に格納されるデータは、図3に示すようになる。なお、図3においても、「H」は、イーサネット(登録商標)フレームのヘッダを表し、「D」は、イーサネット(登録商標)フレームのペイロードを表し、「F」は、イーサネット(登録商標)フレームのフッタを表している。
【0047】
データの格納位置としては、まず、セグメント31の先頭から、受信パケットの長さを表すデータLが格納され、続いて、イーサネット(登録商標)フレームのヘッダH、ペイロードD、フッタFが格納される。続いて、次の受信パケットの長さを表すデータLnが格納され、以降、同様に格納される。したがって、パケット送信部22がセグメント31をリングバッファのように用いることにより、受信パケットの長さと受信パケット(H、D、D、D、F)とを順次読み出すことが可能となる。
【0048】
なお、データの格納順序としては、図2に示したように、イーサネット(登録商標)フレームのヘッダH、ペイロードDおよびフッタFが格納された後に、受信パケットの長さを表すデータLが格納される。以降の受信パケットについても、同様な順序でデータが格納される。
【0049】
以下、セグメント31に対するデータの格納について、より詳細に説明する。各セグメント31a〜31cは、ライトポインタの値に基づいて、書き込み位置が管理される。各パケット転送装置1a〜1cのパケット転送部12は、対応するセグメント31a〜31cのライトポインタの値をそれぞれ管理すると共に、このライトポインタの値に基づいて、転送パケットのペイロード、すなわち、受信パケットの書き込みアドレスを決定する。
【0050】
例えば、図3に示すように、アドレスA0の直前のアドレスまで、セグメント31に書き込みが行われている状態であるとする。このとき、ライトポインタの値は、次に書き込みが可能なアドレスA0である。
【0051】
ここで、パケット転送部12は、受信パケットを転送しようとするときに、ライトポインタの値に基づいたアドレスA0に対して、前述した予約領域(例えば、4バイト)を確保して、アドレスA1を書き込みアドレスとして決定し、決定したアドレスA1を指定して、受信パケットを転送するための最初の転送パケットを送信する。
【0052】
そして、パケット転送部12は、受信パケットの転送済みのデータ長分だけアドレスをシフトしていくことにより、書き込みアドレス(A2、A3、A4)を決定し、決定したアドレス(A2、A3、A4)を指定して、以降の転送パケットを送信する。
【0053】
受信パケットの転送が完了すると、パケット転送部12は、予約領域のアドレスA0を書き込みアドレスとして決定、決定したアドレスA0を指定して、受信パケットの長さを表すデータLを格納した転送パケットを送信する。
【0054】
その後、パケット転送部12は、セグメント31の次の書き込みが可能なアドレスA5を示すようにライトポインタの値を更新して、この受信パケットに対する転送処理を完了する。以降、パケット転送部12は、受信パケットを転送する度に、以上に説明した転送動作をライトポインタの値を更新しながら繰り返し実行する。
【0055】
一方、各セグメント31a〜31cは、リードポインタの値に基づいて、読み出し位置が管理される。各パケット受信装置3a〜3cのパケット送信部22は、対応するセグメント31a〜31cのリードポインタの値をそれぞれ管理し、このリードポインタの値に基づいて、受信パケットの読み出しアドレスを決定する。
【0056】
例えば、図3に示すように、アドレスA0の直前のアドレスまで、セグメント31から読み出しが行われている状態であるとする。このとき、リードポインタの値は、次に読み出しが可能なアドレスA0である。
【0057】
ここで、パケット送信部22は、ライトポインタの値がアドレスA0を示し、アドレスA0に対するデータの書き込みが完了し、ライトポインタの値が他のアドレスを示したことを条件として、リードポインタの値に基づいたアドレスA0を読み出しアドレスとして決定し、決定したアドレスA0を指定して、受信パケットの長さを表すデータLを予約領域から読み出す。
【0058】
次に、パケット送信部22は、アドレスA0から予約領域分シフトしたアドレスA1を読み出しアドレスとして決定し、決定したアドレスA1を指定して、アドレスA1からデータLが表す長さ分のデータ、すなわち、受信パケットを読み出す。
【0059】
その後、パケット送信部22は、アドレスA1からデータLが表す長さ分シフトしたアドレスA5を示すようにリードポインタの値を更新して、この受信パケットに対する読み出し動作を完了する。以降、パケット送信部22は、パケット転送部12によって転送され、セグメント31に格納された受信パケットを読み出す度に、以上に説明した読み出し動作をリードポインタの値を更新しながら繰り返し実行する。
【0060】
以上に説明したように、パケット受信装置3が、予約領域に書き込まれた長さ分のデータをバッファ21から読み出すことにより、受信パケットを再生することができるため、本実施の形態のパケット転送装置1は、パケットのインターフェース規格に依らずに、パケットを転送することができる。
【0061】
なお、本実施の形態において、転送用パケットがsRIO規格に準拠するものとして説明したが、本発明においては、本発明において、転送用パケットは、ヘッダに書き込みアドレスを含めることができる規格に準拠していればよい。
【0062】
また、図4に示すように、パケット変換部11は、書き込みアドレスをペイロードの特定位置に格納し、他の転送規格に準拠した転送用パケットに受信パケットをフォーマット変換するようにしてもよい。この場合には、パケット受信部20は、DMA機能を有するように構成される。
【0063】
なお、図4においても、「H」は、イーサネット(登録商標)フレーム50のヘッダを表し、「D」は、イーサネット(登録商標)フレーム50のペイロードを表し、「F」は、イーサネット(登録商標)フレーム50のフッタを表している。
【0064】
具体的には、パケット転送装置1のパケット受信部10に受信されたイーサネット(登録商標)フレーム50は、パケット変換部11によって断片化され、それぞれ転送用パケットのヘッダHi、書き込みアドレスUiおよびフッタFiが付された転送用パケット61a〜61dに変換され、パケット転送部12によって転送される。
【0065】
ここで、パケット変換部11によって、転送用パケットのヘッダHsには、転送元装置のIDとしてパケット転送装置1のIDが指定され、転送先装置のIDとしてパケット受信装置3のIDが指定され、書き込みアドレスUiには、転送先装置のメモリアドレスとしてパケット受信装置3のセグメント31におけるアドレスが指定される。
【0066】
受信パケットの全ての断片を含む転送用パケットの転送が完了すると、パケット受信部10によるバイトカウント等によって得られた受信パケットの長さを表すデータLに転送用パケットのヘッダHi、書き込みアドレスUiおよび転送用パケットのフッタFiが付された転送用パケット62がパケット変換部11によって生成され、パケット転送部12によって転送される。
【産業上の利用可能性】
【0067】
本発明に係るパケット転送装置は、ボード上に設けられたデバイス間に配置されるパケット転送装置に適用する他に、例えば、移動端末の試験装置の内部データ転送機能に適用することができる。
【符号の説明】
【0068】
1、1a〜1c パケット転送装置
2 スイッチ
3、3a〜3c パケット受信装置
10、20 パケット受信部
11 パケット変換部
12 パケット転送部
21 バッファ
22 パケット送信部
31、31a〜31c セグメント

【特許請求の範囲】
【請求項1】
受信パケットを他の装置(3a〜3c)に転送するパケット転送装置において、
前記受信パケットの断片と、前記他の装置の記憶媒体(21)に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換部(11)と、
前記転送用パケットを前記他の装置に転送するパケット転送部(12)と、を備え、
前記パケット変換部は、前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定し、該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成し、
前記パケット転送部は、前記パケット変換部によって生成された転送用パケットを前記他の装置に転送することを特徴とするパケット転送装置。
【請求項2】
前記パケット変換部は、前記書き込みアドレスをペイロードの特定位置に格納した転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項1に記載のパケット転送装置。
【請求項3】
前記パケット変換部は、Serial RapidIO規格に準拠した転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項2に記載のパケット転送装置。
【請求項4】
前記パケット変換部は、前記書き込みアドレスがヘッダに追加された転送用パケットに前記受信パケットをフォーマット変換することを特徴とする請求項1に記載のパケット転送装置。
【請求項5】
受信パケットを他の装置(3a〜3c)に転送するパケット転送装置(1a〜1c)を用いたパケット転送方法において、
前記受信パケットの断片と、前記他の装置の記憶媒体(21)に対する該断片の書き込みアドレスとを含む複数の転送用パケットに該受信パケットをフォーマット変換するパケット変換ステップと、
前記転送用パケットを前記記憶媒体に転送するパケット転送ステップと、を有し、
前記パケット変換ステップは、
前記記憶媒体に対して前記断片を書き込む領域の直前に該受信パケットの長さを書き込むための予約領域を確保するように前記転送用パケットに前記書き込みアドレスを指定するアドレス指定ステップと、
該転送用パケットの転送が完了したことを条件として、該受信パケットの長さを表すデータと、前記予約領域の先頭アドレスとを含む転送用パケットを生成するパケット生成ステップと、を含み、
前記パケット転送ステップは、
前記パケット生成ステップで生成された転送用パケットを転送するステップを含むことを特徴とするパケット転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−12922(P2013−12922A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−144515(P2011−144515)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000000572)アンリツ株式会社 (838)
【Fターム(参考)】