以下、図面を参照しつつ、本発明の実施形態について説明する。
図1は、本発明の実施形態に係る通信装置100を説明するための図である。通信装置100は、他装置から受信したイーサネットフレームを、該フレームに含まれる宛先情報に従ってスイッチングし、宛先となる装置に中継する装置である。なお、本実施形態においては、イーサネットフレームを対象とする通信装置100を例として説明するが、本発明はこれに限定されず、例えばATM(Asynchronous Transfer Mode)セルを対象とする装置であってもよい。
通信装置100は、第1送受信部10_1〜第n送受信部10_n(nは2以上の整数)と、スイッチ部11とを備える。なお、以下の説明において第1送受信部10_1〜第n送受信部10_nを総称する場合は、「送受信部10」と呼ぶ。
第1送受信部10_1〜第n送受信部10_nは、それぞれ第1端末装置9_1〜第n端末装置9_nに接続されている。以下の説明において第1端末装置9_1〜第n端末装置9_nを総称する場合は、「端末装置9」と呼ぶ。各送受信部10は、端末装置9から受信したユーザフレームを、他装置に中継する処理を行う。また、スイッチ部11は、複数の送受信部10の間において、ユーザフレームを交換する処理を行う。なお、送受信部10の接続対象は、パーソナルコンピュータなどの端末装置9に限定されず、サーバ装置やルータなどの他の装置であってもよい。
各送受信部10は、第1ポート12_1〜第mポート12_m(mは2以上の整数)と、MUX/DMUX部13と、入力処理部14と、出力処理部15と、トラフィックマネージャ16とを備える。なお、以下の説明において第1ポート12_1〜第mポート12_mを総称する場合は、「ポート12」と呼ぶ。各ポート12は、個別の通信回線に対応し、例えばRJ−45などの通信ケーブル用コネクタ、およびPHYレイヤ(物理レイヤ)とMAC(Media Access Control)レイヤの機能を備える通信処理回路を含む。通信回線としては、例えばIEEE(The Institute of Electrical and Electronics Engineers, Inc.)により規定された1000BASE−T、および10GBASE−Tなどを例示できる。
図1において、実線の矢印はユーザフレームの経路を例示しており、破線の矢印はテストフレームの経路を例示している。ここで、ユーザフレームとは、端末装置9またはサーバ装置などにおいて生成され、ユーザが送受信する情報を含むフレームを指す。一方、テストフレームは、通信装置100内でのフレームの疎通を監視するために用いられるフレームを指す。
ユーザフレームは、例えば、第1送受信部10_1の第1ポート12_1から入力され、MUX/DMUX部13、入力処理部14、およびトラフィックマネージャ16を介してスイッチ部11に出力される。スイッチ部11は、入力されたユーザフレームを第n送受信部10_nのトラフィックマネージャ16に出力する。そして、ユーザフレームは、トラフィックマネージャ16、出力処理部15およびMUX/DMUX部13を介して、第2ポート12_2から第n端末装置9_nに送信される。
一方、テストフレームは、MUX/DMUX部13内の生成点Pinにおいて生成され、入力処理部14およびトラフィックマネージャ16を介してスイッチ部11に出力される。スイッチ部11は、入力されたテストフレームを折り返して、トラフィックマネージャ16に出力する。そして、テストフレームは、トラフィックマネージャ16および出力処理部15を介してMUX/DMUX部13に出力され、MUX/DMUX部13の終端点Poutにおいて終端される。
テストフレームは、上記の経路を伝送される過程において、入力処理部14、出力処理部15、およびトラフィックマネージャ16に設けられた各メモリの検査に用いられる。入力処理部14は、イングレス(INGRESS)のフレーム処理を行うものであり、出力処理部15は、イーグレス(EGRESS)のフレーム処理を行うものである。また、トラフィックマネージャ16は、フレームの優先度に応じたキューイングを行うものである。通信装置100内では、ユーザフレームおよびテストフレームに共通の伝送路が設けられている。なお、テストフレームの生成点Pinおよび終端点Poutは、検査対象の送受信部10内ではなく、外部の他の装置に設けられてもよい。この場合、送受信部10のハードウェア構成の規模が低減されるという利点が得られる。
図2(a)〜(c)は、フレームの一例を示す構成図である。図2(a)は、ユーザフレーム(イーサネットフレーム)の基本的な構成を示す。このユーザフレームは、端末装置9から出力された、通信装置100に入力される前のフレームである。ユーザフレームは、DA(Distination Address)、SA(Source Address)、TYPE、ペイロード、およびFCS(Frame Check Sequence)の領域を含む。DAは、送信先装置のMACアドレスであり、SAは、送信元装置のMACアドレスである。TYPEは、IP(Internet Protocol)などのプロトコルの種別である。ペイロードは、当該フレームにより送受信される情報である。FCSは、フレームのデータ誤りを検出するための情報である。
図2(b)は、通信装置100の内部におけるユーザフレームの基本的な構成を示す。この装置内ユーザフレームは、上記のイーサネットフレームにヘッダを付与したものである。ヘッダは、MUX/DMUX部13内において、ユーザフレームに付与および削除される。
図2(c)は、テストフレームの基本的な構成を示す。テストフレームは、通信装置100の内部のみにおいて伝送されるフレームである。テストフレームの構造は、ユーザフレームの構造に倣うものであり、先頭にヘッダを有する。テストフレームのヘッダは、生成点Pinにおいてテストフレーム本体と同時に生成される。テストフレームのDA,SA,TYPE,およびペイロードは、限定がなく、例えば全部「0」であってもよい。FCSは、ユーザフレームと同様に、他の各領域の値に基づいて算出された値となる。
本実施形態において、テストフレームは、ヘッダの直後にアドレス情報を有し、該アドレスの直後にキュー情報を有している。アドレス情報は、入力処理部14に設けられた入力アドレステーブル、および出力処理部15に設けられた出力アドレステーブルの正常性を検査するための情報である。また、キュー情報は、トラフィックマネージャ16に設けられたキューの正常性を検査するための情報である。なお、本実施形態では上記のようにヘッダの直後にアドレス情報を配置し、アドレス情報の直後にキュー情報を配置したが、フレーム内におけるアドレス情報およびキュー情報の位置は特に限定されない。
ヘッダは、識別情報および各種の制御情報を含む。識別情報は、ユーザフレームとテストフレームを識別するための情報である。例えば、識別情報が「0」の場合、該フレームがユーザフレームであることを示し、識別情報が「1」の場合、該フレームがテストフレームであることを示す。入力処理部14、出力処理部15、およびトラフィックマネージャ16は、この識別情報を参照してフレームの処理を区別する。また、スイッチ部11は、識別情報によりテストフレームを認識すると、上述したように当該テストフレームを出力元の送受信部10に折り返す(図1の破線参照)。
制御情報は、例えば、フレームの転送先となる送受信部10の識別番号1〜n、および該転送先の送受信部10におけるポート12の識別番号1〜mを含む。送受信部10の識別番号1〜nは、例えば入力処理部14によりヘッダに付与される。スイッチ部11は、ヘッダ内の識別番号1〜nを参照して、転送先の送受信部10を判断する。また、出力処理部15は、ヘッダにポート12の識別番号1〜mを付与し、MUX/DMUX部13は、この識別番号1〜mを参照して、送信先のポート12を判断する。このように、通信装置100は、MPLS(Multi-protocol Label Switching)に基づくスイッチ動作を行う。
また、制御情報は、フレームの優先度に関する情報および出力ポートに関する情報を含む。トラフィックマネージャ16は、これらの情報を参照してQoS(Quality of Service)制御を実行する。
図3は、送受信部10の構成を説明するための図である。送受信部10は、MUX/DMUX部13と、入力処理部14と、出力処理部15と、トラフィックマネージャ16と、これらの機能部の動作を統括制御する制御部40とを備える。
MUX/DMUX部13は、テストフレーム生成部20と、ヘッダ付与部21と、ヘッダ除去部22と、テストフレーム廃棄部23と、MUX処理部24と、DMUX処理部25とを備える。
ヘッダ付与部21およびヘッダ除去部22は、第1ポート12_1〜第mポート12_mと接続されている。ヘッダ付与部21は、受信したイーサネットフレームにヘッダを付与し、図2(b)に示すような装置内ユーザフレームを出力する。
テストフレーム生成部20は、図1に示す生成点Pinに相当し、制御部40からの指示に基づいてテストフレームの生成処理を行う。テストフレーム生成部20は、生成処理において、テストフレーム本体に加え、ヘッダおよびFCSも生成する。上述したように、テストフレームはヘッダの直後にアドレス情報を有し、該アドレス情報の直後にキュー情報を有する。
本実施形態において、テストフレーム生成部20は、検査対象となる入力アドレステーブル26および出力アドレステーブル30のメモリアドレスを決定し、テストフレームにアドレス情報として書き込む。入力アドレステーブル26および出力アドレステーブル30は、それぞれ入力処理部14および出力処理部15に含まれるメモリである。テストフレーム生成部20は、生成するテストフレームごとに、検査対象となるメモリのアドレスを変更する。テストフレーム生成部20は、検査対象となるメモリのアドレスを決定するためのカウンタ値を有し、テストフレームを生成するごとに該カウンタ値を変更する。カウンタ値は、例えば一定値の加算により変化してもよい。これにより、テストフレーム生成部20は、メモリ内の各アドレスを網羅するようにアドレス情報を変化させることができる。
また、テストフレーム生成部20は、検査対象となるフローキュー61およびポートキュー62を決定し、テストフレームにキュー情報を書き込む。フローキュー61およびポートキュー62は、トラフィックマネージャ16に含まれるメモリであり、それぞれ複数のキューから構成されている。キュー情報は、優先度情報および出力ポート情報を含んでいる。優先度情報は、テストフレームがどのフローキュー61を通過するかを指定するものであり、出力ポート情報は、テストフレームがどのポートキュー62を通過するかを指定するものである。これらの優先度情報および出力ポート情報に基づき、テストフレームが通過するフローキュー61およびポートキュー62の経路が指定される。本実施形態において、テストフレーム生成部20は、生成するテストフレームごとに、優先度情報および出力ポート情報を変更する。これにより、テストフレームが通過するフローキュー61およびポートキュー62の経路を様々に変更することができる。
また、テストフレーム生成部20は、制御部40からの設定に基づき、テストフレームの送信タイミングの制御を行う。送信タイミングは、例えば一定周期(1ms、または10msなど)をおいて到来するように設定されてもよい。
MUX処理部24は、ヘッダ付与部21からのユーザフレームおよびテストフレーム生成部20からのテストフレームの入力処理部14への出力制御を行う。すなわち、MUX処理部24は、複数のユーザフレームおよびテストフレームの出力を調停する。
例えば、MUX処理部24は、出力待ちのユーザフレームを有するヘッダ付与部21の出力バッファに対して、ラウンドロビン方式に従って出力許可を与える。これにより、出力待ちのユーザフレームを有する各出力バッファは、順次ユーザフレームを出力する。
また、テストフレーム生成部20により生成されたテストフレームは、ユーザフレームの帯域に対する圧迫を避けるために、ユーザフレームよりも低い優先度に基づいて、入力処理部14に送信される。従って、MUX処理部24は、出力待ちのテストフレームがあり、且つ出力待ちのユーザフレームがある場合、ユーザフレームを優先して出力する。一方、出力待ちのユーザフレームがなく、且つ出力待ちのテストフレームがある場合、MUX処理部24はテストフレーム生成部20に出力許可を与え、テストフレームを出力する。なお、MUX処理部24の動作はこれに限定されず、出力待ちのユーザフレームの有無に関わらず、上記の送信タイミングに従ってテストフレームを出力してもよい。
一方、DMUX処理部25は、出力処理部15から入力されたユーザフレームおよびテストフレームを、ヘッダ除去部22とテストフレーム廃棄部23とに振り分けて出力する。DMUX処理部25は、テストフレームをヘッダ内の識別情報に基づいて認識し、テストフレーム廃棄部23に出力する。また、DMUX処理部25は、ユーザフレームをヘッダ内の識別情報に基づいて認識し、ヘッダ除去部22に出力する。
ヘッダ除去部22は、入力されたユーザフレームからヘッダを除去し、ヘッダ内の制御情報に含まれる識別番号1〜mに対応するポート12にユーザフレームを出力する。
テストフレーム廃棄部23は、図1に示す終端点Poutに相当し、テストフレームを受信したときに廃棄する。テストフレーム廃棄部23は、廃棄に先立ち、入力されたテストフレームの正常性を、テストフレーム内のFCSに基づいて検査し、結果を制御部40に通知する。
次に、入力処理部14を説明する。図4は、入力処理部14の構成を説明するための図である。図4に示すように、入力処理部14は、入力アドレステーブル26と、エラー検出部27と、入力フレーム処理部28とを備える。
入力アドレステーブル26は、テストフレームによる検査対象となるメモリである。入力アドレステーブル26には、ユーザフレームの送信先アドレスDA(送信先の端末装置9のMACアドレス)と、送受信部10の識別番号1〜nとが対応付けられて記録されている。入力アドレステーブル26のデータは、例えばフラッディングによる学習機能によって構築される。
入力フレーム処理部28は、フレーム識別部41と、転送先解析部42と、アドレス抽出部43とを備える。
フレーム識別部41は、入力されたフレームのヘッダに含まれる識別情報に基づいて、該フレームがユーザフレームとテストフレームの何れであるか識別する。フレーム識別部41は、識別結果に基づいて、ユーザフレームを転送先解析部42に出力し、テストフレームをアドレス抽出部43に出力する。
アドレス抽出部43は、テストフレームを受信した場合、該テストフレームを解析し、テストフレームに含まれるアドレス情報を抽出する。アドレス抽出部43は、テストフレーム中において何処にアドレス情報が含まれているか予め知っている。そして、アドレス抽出部43は、テストフレームおよび抽出したアドレス情報を転送先解析部42に出力する。
転送先解析部42は、フレーム識別部41からユーザフレームを受信した場合、入力アドレステーブル26を参照し、ユーザフレームの送信先アドレスDAに基づいて送受信部10の識別番号1〜nを特定する。転送先解析部42は、特定した送受信部10の識別番号1〜nをエラー検出部27を介して読み込む。そして、転送先解析部42は、読み込んだ識別番号1〜nをユーザフレームのヘッダに書き込み、ユーザフレームをトラフィックマネージャ16に送信する。
一方、アドレス抽出部43からテストフレームおよびアドレス情報を受信した場合、転送先解析部42は、入力アドレステーブル26にアクセスし、該アドレスに格納されたデータをエラー検出部27を介して読み込む。そして、転送先解析部42は、読み込んだデータをテストフレームのヘッダに書き込まずに、テストフレームをトラフィックマネージャ16に送信する。
エラー検出部27は、転送先解析部42のアクセスによって入力アドレステーブル26から読み出されたデータの誤りを検出する。誤り検出処理は、データに付与されたエラー検出情報に基づいて行われる。エラー検出情報としては、例えばECC(Error Check Code)を例示できるが、これに限定されない。エラー検出部27は、データ誤りを検出した場合、エラー通知を制御部40に出力する。
図5は、入力アドレステーブル26のデータ構造を示す図である。入力アドレステーブル26には、アドレスごとに、エラー検出情報およびデータが記録されている。なお、図5に示すアドレス値は一例である。エラー検出情報は、例えばECCであってよい。データは、ユーザフレームの送信先アドレスDAと、送受信部10の識別番号1〜nとを対応付けたものである。
上述したように、テストフレーム生成部20は、テストフレームごとにアドレス情報を変化させている。従って、受信したテストフレームに含まれるアドレス情報を抽出し、該アドレスのデータを読み込む作業を繰り返すことにより、入力アドレステーブル26内の各アドレスを網羅するようにデータを読み出して、エラー検出部27により検査することができる。
このように、本実施形態に係る通信装置100によれば、未使用状態の送受信部10の識別番号、つまり通常あまりアクセスされないアドレスに対応するデータを読み出して検査することができる。通常の運用において、入力アドレステーブル26は、ユーザフレームの送信先アドレスDAに対応するデータのみが読み出される。このため、未使用状態の送受信部10の識別番号、つまり通常あまりアクセスされないアドレスのデータは、該当する送受信部10を送信先とするユーザフレームを受信した後に、はじめて誤りが検出される場合がある。従って、上述したように、通常あまりアクセスされないアドレスのデータ誤りを、ユーザフレームの受信に先立って早期に検出することは有効である。
図1において説明したように、入力処理部14から出力されたユーザフレームは、トラフィックマネージャ16を介してスイッチ部11に出力される。スイッチ部11は、入力されたユーザフレームのヘッダに書き込まれた識別番号1〜nに基づいて、転送すべき送受信部10を特定し、該送受信部10にユーザフレームを転送する。
また、図1において説明したように、入力処理部14から出力されたテストフレームは、スイッチ部11において折り返され、出力元の送受信部10のトラフィックマネージャ16に入力される。
次に、トラフィックマネージャ16について説明する。図6は、トラフィックマネージャ16の構成を説明するための図である。トラフィックマネージャ16は、フレームの優先度に応じたキューイングを行うものである。図6に示すように、トラフィックマネージャ16は、フレーム処理部60と、フローキュー61と、ポートキュー62と、第1セレクタ63と、第2セレクタ64とを備える。
フレーム処理部60は、フレーム識別部65と、キュー抽出部66と、振り分け部67とを備える。また、フローキュー61は、第1フローキュー61_1、第2フローキュー61_2、第3フローキュー61_3、および第4フローキュー61_4を含む。また、ポートキュー62は、第1ポートキュー62_1〜第mポートキュー62_mを含む。
フレーム識別部65は、入力されたフレームのヘッダに含まれる識別情報に基づいて、該フレームがユーザフレームとテストフレームの何れであるか識別する。フレーム識別部65は、識別結果に基づいて、ユーザフレームを振り分け部67に出力し、テストフレームをキュー抽出部66に出力する。
キュー抽出部66は、テストフレームを受信した場合、該テストフレームを解析し、テストフレームに含まれるキュー情報を抽出する。上述したように、キュー情報は優先度情報および出力ポート情報を含む。キュー抽出部66は、テストフレーム中において何処にキュー情報が含まれているか予め知っている。そして、キュー抽出部66は、テストフレームおよび抽出したキュー情報を振り分け部67に出力する。
振り分け部67は、フレーム識別部65からユーザフレームを受信した場合、ユーザフレームのヘッダに含まれる優先度情報に応じて、ユーザフレームを第1フローキュー61_1、第2フローキュー61_2、第3フローキュー61_3、および第4フローキュー61_4の何れかに振り分ける。第1フローキュー61_1は、最も優先度の高いフレームが入力されるキューであり、第2フローキュー61_2、第3フローキュー61_3の順で優先度が低くなり、第4フローキュー61_4が最も優先度の低いフレームが入力されるキューである。
フローキュー61に入力されたユーザフレームは、出力待ち状態となる。第1セレクタ63は、各フローキュー61で出力待ちのユーザフレームを、それぞれのフローキューの優先度に応じて取り出す。第1セレクタ63は、優先度の高いフローキュー61に格納されたユーザフレームを優先的に取り出す。
そして、第1セレクタ63は、ユーザフレームのヘッダに含まれる出力ポート情報に応じて、ユーザフレームを第1ポートキュー62_1〜第mポートキュー62_mの何れかに出力する。ポートキュー62に入力されたユーザフレームは、出力待ち状態となる。第2セレクタ64は、各ポートキュー62で出力待ちのユーザフレームを取り出し、出力処理部15に出力する。
一方、キュー抽出部66からテストフレームおよびキュー情報を受信した場合、振り分け部67は、キュー情報に含まれる優先度情報に応じて、テストフレームを第1フローキュー61_1、第2フローキュー61_2、第3フローキュー61_3、および第4フローキュー61_4の何れかに振り分ける。例えば、最も高い優先度が指定されている場合には、振り分け部67はテストフレームを第1フローキュー61_1に出力する。また、例えば2番目に高い優先度が指定されている場合には、振り分け部67はテストフレームを第2フローキュー61_2に出力する。
その後、第1セレクタ63は、各フローキュー61で出力待ちのテストフレームを、それぞれのフローキューの優先度に応じて取り出す。この処理はユーザフレームの場合と同様である。そして、第1セレクタ63は、キュー情報に含まれる出力ポート情報に応じて、テストフレームを第1ポートキュー62_1〜第mポートキュー62_mの何れかに出力する。ポートキュー62に入力されたテストフレームは、出力待ち状態となる。第2セレクタ64は、各ポートキュー62で出力待ちのテストフレームを取り出し、出力処理部15に出力する。
上述したように、テストフレーム生成部20は、テストフレームごとにキュー情報、すなわち優先度情報および出力ポート情報を変化させている。従って、本実施形態に係る通信装置100は、テストフレームを様々なフローキュー61を通過させ、さらに様々なポートキュー62を通過させることができる。フローキュー61およびポートキュー62を通過したテストフレームの正常性は、MUX/DMUX部13のテストフレーム廃棄部23により検査される。
このように、本実施形態に係る通信装置100によれば、未使用状態のフローキュー61とポートキュー62の正常性を検査することができる。例えば通常の運用において優先度の最も高いユーザフレームしか流れていない場合、第1フローキュー61_1を通る伝送経路の正常性は確認することができるが、ユーザフレームが通過しない他の第2フローキュー61_2、第3フローキュー61_3、第4フローキュー61_4の正常性は確認できない。このため、仮に第2フローキュー61_2、第3フローキュー61_3、第4フローキュー61_4に異常がある場合、これらのフレーキューを通過するユーザフレームを受信した場合に初めて異常が検出されることになる。これはユーザフレームの消失等につながるので、好ましくない。
テストフレームは、通常優先度が低く設定されているので、単にテストフレームを通信装置内で流した場合には、テストフレームは優先度の低いキュー、すなわち第4フローキュー61_4しか通過できない。従って、その他のキュー、例えば第2フローキュー61_2や第3フローキュー61_3の疎通は検査することができない。
本実施形態に係る通信装置100では、テストフレームにキュー情報を持たせ、テストフレームの優先度および出力ポートをテストフレームごとに変えている。そして、トラフィックマネージャ16のフレーム処理部60において、キュー情報を抽出し、テストフレームの優先度およびに応じて、テストフレームが様々なキューを通過するように構成されている。これにより、様々なキューの経路を満遍なく検査することができ、フローキュー61、ポートキュー62の異常を早期に検出できるので、ユーザフレームの消失等が生じる事態を回避または少なくとも低減できる。
次に、出力処理部15を説明する。図7は、出力処理部15の構造を説明するための図である。図7に示すように、出力処理部15は、出力アドレステーブル30と、エラー検出部31と、出力フレーム処理部29とを備える。
出力アドレステーブル30は、テストフレームによる検査対象となるメモリである。出力アドレステーブル30には、ユーザフレームの送信先アドレスDAと、送信先ポート12の識別番号1〜mとが対応付けられて記録されている。出力アドレステーブル30のデータは、例えばフラッディングによる学習機能によって構築される。
出力フレーム処理部29は、フレーム識別部71と、送信ポート解析部72と、アドレス抽出部73とを備える。
フレーム識別部71は、入力されたフレームのヘッダに含まれる識別情報に基づいて、該フレームがユーザフレームとテストフレームの何れであるか識別する。フレーム識別部71は、識別結果に基づいて、ユーザフレームを送信ポート解析部72に出力し、テストフレームをアドレス抽出部73に出力する。
アドレス抽出部73は、テストフレームを受信した場合、該テストフレームを解析し、テストフレームに含まれるアドレス情報を抽出する。アドレス抽出部73は、テストフレーム中において何処にアドレス情報が含まれているか予め知っている。そして、アドレス抽出部73は、テストフレームおよび抽出したアドレス情報を送信ポート解析部72に出力する。
送信ポート解析部72は、フレーム識別部71からユーザフレームを受信した場合、出力アドレステーブル30を参照し、ユーザフレームの送信先アドレスDAに基づいて送信先ポート12の識別番号1〜mを特定する。送信ポート解析部72は、特定した送信先ポートをエラー検出部31を介して読み込む。そして、送信ポート解析部72は、読み込んだ識別番号1〜mをユーザフレームのヘッダに書き込み、ユーザフレームをMUX/DMUX部13のDMUX処理部25に送信する。
一方、アドレス抽出部73からテストフレームおよびアドレス情報を受信した場合、送信ポート解析部72は、出力アドレステーブル30にアクセスし、該アドレスに格納されたデータをエラー検出部31を介して読み込む。そして、送信ポート解析部72は、読み込んだデータをテストフレームのヘッダに書き込まずに、テストフレームをMUX/DMUX部13のDMUX処理部25に送信する。
エラー検出部31は、送信ポート解析部72のアクセスによって出力アドレステーブル30から読み出されたデータの誤りを検出する。誤り検出処理は、データに付与されたエラー検出情報に基づいて行われる。エラー検出情報としては、例えばECC(Error Check Code)を例示できるが、これに限定されない。エラー検出部31は、データ誤りを検出した場合、エラー通知を制御部40に出力する。
このように出力処理部15においても、入力処理部14と同様に、出力アドレステーブル30内の各アドレスを網羅するようにデータを読み出して、エラー検出部31により検査することができる。これにより、通常あまりアクセスされないアドレスのデータ誤りを、ユーザフレームの受信に先立って早期に検出することは有効である。
図8は、テストフレームによる送受信部10の正常性検査処理を示すフロー図である。
まず、MUX/DMUX部13のテストフレーム生成部20は、制御部40の指示に従ってテストフレームを生成し、入力処理部14に出力する(S10)。テストフレームは、ヘッダの直後にアドレス情報を有し、該アドレスの直後にキュー情報を有している。アドレス情報およびキュー情報は、テストフレームごとに変えられる。
入力処理部14の入力フレーム処理部28は、テストフレームを受信すると、入力アドレステーブル26の正常性検査を実施する(S12)。エラー検出部27は、入力アドレステーブル26から読み出されたデータの誤りを検出する。データ誤りを検出した場合、エラー検出部27はデータ誤りを制御部40に通知する。誤り検査後、入力フレーム処理部28はテストフレームをスイッチ部11に向けて出力する。
スイッチ部11は、入力されたフレームがテストフレームであると認識すると、該テストフレームを出力元の送受信部10のトラフィックマネージャ16に折り返す(S14)。
トラフィックマネージャ16は、テストフレームを受信すると、フローキュー61およびポートキュー62の正常性検査を実施する(S16)。フローキュー61およびポートキュー62の異常は、MUX/DMUX部13のテストフレーム廃棄部23により検出される。トラフィックマネージャ16から出力されたテストフレームは、出力処理部15の出力フレーム処理部29に出力される。
出力処理部15の出力フレーム処理部29は、テストフレームを受信すると、出力アドレステーブル30の正常性検査を実施する(S18)。エラー検出部31は、出力アドレステーブル30から読み出されたデータの誤りを検出する。データ誤りを検出した場合、エラー検出部31はデータ誤りを制御部40に通知する。誤り検査後、出力フレーム処理部29はテストフレームをMUX/DMUX部13に出力する。
MUX/DMUX部13のDMUX処理部25は、入力されたフレームがテストフレームであると認識すると、該テストフレームをテストフレーム廃棄部23に出力する。テストフレーム廃棄部23は、入力されたテストフレームの正常性をFCSに基づいて検査した後、テストフレームを廃棄する(S20)。テストフレームに異常がある場合、制御部40に通知する。
図9は、本発明の別の実施形態に係る通信装置100を説明するための図である。図3に示す通信装置100と同一または対応する構成要素については同一の符号を付し、重複する説明は適宜省略する。なお、図9においては、MUX/DMUX部13、出力処理部15、トラフィックマネージャ16などの内部構成の図示を一部省略している。
本実施形態においては、スイッチ部11に出力処理部90と、DMUX処理部94と、テストフレーム廃棄部95とが設けられている。出力処理部90は、出力フレーム処理部91と、エラー検出部93と、出力アドレステーブル92とを備える。
本実施形態において、送受信部10のテストフレーム生成部20から送信されたテストフレームは、入力処理部14およびトラフィックマネージャ16を介してスイッチ部11に入力される。図3に示す通信装置100では、スイッチ部11は、入力されたテストフレームを出力元の送受信部10に折り返していた。しかしながら、本実施形態では、スイッチ部11はテストフレームを折り返さず、他の送受信部10に転送する。該他の送受信部10への転送前に、テストフレームは出力処理部90に入力される。なお、ユーザフレームの場合も、テストフレームと同様に出力処理部90に入力される。
出力処理部90の各機能部の動作は、図7で説明した送受信部10における出力処理部15とほぼ同じであり、テストフレームを用いて、出力アドレステーブル92内の各アドレスのデータ誤りが検査される。
DMUX処理部94は、出力処理部90から入力されたフレームがテストフレームであるかユーザフレームであるか識別する。テストフレームである場合、DMUX処理部94は該フレームをテストフレーム廃棄部95に出力する。一方、ユーザフレームである場合、DMUX処理部94はヘッダに書き込まれた送受信部10の識別番号1〜nに従って、送受信部10に出力する。
テストフレーム廃棄部95は、テストフレームを受信したときに廃棄する。テストフレーム廃棄部95は、廃棄に先立ち、入力されたテストフレームの正常性を、テストフレーム内のFCSに基づいて検査し、結果を制御部に通知する。
図3に示す実施形態では、スイッチ部11でテストフレームを折り返しているので、スイッチ部11で折り返される経路については正常性を確認できる。しかしながら、スイッチ部11で折り返されない経路については正常性を確認できなかった。一方、本実施形態に係る通信装置100によれば、スイッチ部11内に出力処理部90を設けたことにより、スイッチ部11でテストフレームを折り返す・折り返さないにかかわらず、生成された全てのテストフレームの疎通確認を行うことができる。
図10は、入力処理部14の変形例を説明するための図である。図10に示すように、本変形例に係る入力処理部14は、第1〜第L入力アドレステーブル26_1〜26Lと、第1〜第Lエラー検出部27_1〜27_Lと、第1〜第L入力フレーム処理部28_1〜28Lとを備える(Lは2以上の整数)。第1〜第L入力フレーム処理部28_1〜28Lは、それぞれ、図4に示す入力フレーム処理部28と同様に、フレーム識別部、転送先解析部およびアドレス抽出部(図示せず)を備える。
本変形例に係る入力処理部14において、第1〜第L入力アドレステーブル26_1〜26Lは、それぞれ、テーブル内で検査できるアドレスが予め設定されている。例えば、第1アドレステーブル26_1は、アドレスの下位2ビットを検査するように設定されており、第2アドレステーブル26_2は、アドレスの下位3ビットを検査するように設定されている。
第1入力フレーム処理部28_1には、MUX/DMUX部からフレームが入力される。第1入力フレーム処理部28_1のフレーム識別部は、フレームがテストフレームであるかユーザフレームであるかを識別する。ユーザフレームは転送先解析部に送られ、テストフレームはアドレス抽出部に送られる。ここで、第1入力フレーム処理部28_1のアドレス抽出部は、テストフレームのアドレス情報のうち、第1入力アドレステーブル26_1に設定されたビットのみ抽出する。例えば第1入力アドレステーブル26_1がアドレスの下位2ビットを検査するように設定されている場合、アドレス情報から下位2ビットを抽出する。アドレス抽出部は、テストフレームおよび抽出したアドレス情報を転送先解析部に出力する。転送先解析部は、例えば下位2ビットに対応するデータを第1エラー検出部27_1を介して読み込む。第1エラー検出部27_1は、読み出されたデータの誤りを検出した場合、エラー通知を制御部に出力する。データ読込後、転送先解析部はテストフレームを第2入力フレーム処理部28_2に出力する。
第2入力フレーム処理部28_2においても、同様の処理が行われる。例えば第2入力アドレステーブル26_1がアドレスの下位3ビットを検査するように設定されている場合、第2入力フレーム処理部28_2のアドレス抽出部は、アドレス情報から下位3ビットを抽出する。転送先解析部は、下位3ビットに対応するデータを第2エラー検出部27_2を介して読み込む。第2エラー検出部27_2は、読み出されたデータの誤りを検出した場合、エラー通知を制御部に出力する。データ読込後、転送先解析部はテストフレームを第3入力フレーム処理部(図示せず)に出力する。
このように、本変形例に係る入力処理部14では、アドレスを部分的に確認することにより、入力アドレステーブルのどこに誤りがあるかを効率的に検査することができる。
図11は、本発明のさらに別の実施形態に係る通信装置100を説明するための図である。図11においては、上述の実施形態と同一または対応する構成要素については同一の符号を付し、重複する説明は適宜省略する。
本実施形態に係る通信装置100は、図10に示す入力処理部14を有する。また、本実施形態においては、MUX/DMUX部13のテストフレーム生成部20内にアドレス抽出部43が設けられている。また、入力処理部14内の各入力フレーム処理部は、フレーム識別部および転送先解析部42を備えているが、アドレス抽出部は備えていない。
本実施形態において、テストフレーム生成部20が例えば「abcdefgh」という8ビットのアドレス情報を有するテストフレームを生成したとする。この場合、アドレス抽出部43は、生成されたテストフレームからアドレス情報を抜き出す。アドレス情報のうちどのビットを抜き出すかは外部設定され、例えば下位から3ビットごとに抽出するとした場合、「fgh」、「cde」、「0ab」が抽出される。その後、テストフレーム生成部20は、アドレス情報において抽出されたビット以外のビットを「0」に置き換え、テストフレームとして送信する。例えば、アドレス情報として「00000fgh」を有するテストフレーム1、アドレス情報として「00cde000」を有するテストフレーム2、およびアドレス情報として「ab000000」を有するテストフレーム3が送信される。上記のように、元々1フレームとして送信されるはずのテストフレームが、アドレス抽出を行うことにより、複数(上記の例では3つ)のテストフレームとして送信される。
本実施形態に係る通信装置100によれば、テストフレーム生成部20内にアドレス抽出部43を設けたことにより、第1〜第L入力フレーム処理部28_1〜28_Lのそれぞれにアドレス抽出部を設ける必要がなくなる。その結果、回路規模の削減を図ることができる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せによりいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。