(57)【特許請求の範囲】
【請求項１】
受信したデータを転送する第１及び第２グループのボードと、
コントローラと、を含む通信装置であって、
前記第１グループのボードのそれぞれは、前記第２グループのボードと通信可能に接続され、
前記コントローラは、
前記第１グループにおける第１ボードと、前記第２グループにおける第２ボードと、の間における第１インタフェース障害を検出し、
前記第１ボードと、前記第２グループのボードと、の間で障害検出されているインタフェース数を特定し、
前記第２ボードと、前記第１グループのボードと、の間で障害検出されているインタフェース数を特定し、
前記第１ボードにおける障害検出結果と、前記第２ボードにおける障害検出結果と、に基づいて、前記第１インタフェース障害の原因が前記第１ボードの故障であるか否かを判定し、判定結果を出力する、通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記第１ボードにおいて障害検出されているインタフェース数が１より大きく、前記第２ボードにおいて障害検出されているインタフェース数が１である場合に、前記第１インタフェース障害の原因が前記第１ボードの故障であると判定する、通信装置。
【請求項３】
請求項１又は２に記載の通信装置であって、
前記第１及び第２グループのボードのそれぞれは、インタフェース障害を引き起こすボード内故障を検出する検出器を含み、
前記コントローラは、前記第１のボード及び前記第２のボードの一方においてボード内故障が検出されている場合に、前記第１のボード及び前記第２のボードの障害インタフェース数を特定することなく、前記第１インタフェース障害の原因が前記一方のボードの故障であると判定する、通信装置。
【請求項４】
請求項１ないし３いずれか一に記載の通信装置であって、
前記第１ボードにおいて障害検出されているインタフェース数が１であり、前記第２ボードにおいて障害検出されているインタフェース数が１である場合に、前記コントローラは、前記第１ボード及び前記第２ボードそれぞれの冗長の有無を判定し、
前記第１ボード及び前記第２ボードの一方が冗長化され、他方が冗長化されていない場合に、前記コントローラは、前記第１インタフェース障害の原因が前記冗長化されている一方のボードの故障であると判定する、通信装置。
【請求項５】
請求項４に記載の通信装置であって、
前記第１及び第２ボードの双方が冗長化されている又は冗長化されていない場合に、前記コントローラは、前記第１及び第２ボードの状態を判定し、
前記第１及び第２ボードの一方が待機状態であり、他方が運用状態である場合に、前記コントローラは、前記第１インタフェース障害の原因が前記待機状態にある一方のボードの故障であると判定する、通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記第１及び第２ボードの双方が待機状態又は運用状態である場合に、前記コントローラは、前記第１インタフェース障害の原因が、予め設定されているグループのボードの故障であると判定する、通信装置。
【請求項７】
受信したデータを転送する第１及び第２グループのボードを含み、前記第１グループのボードのそれぞれが、前記第２グループボードの全てのボードと通信可能に接続されている通信装置、の制御方法であって、
前記第１グループにおける第１ボードと、前記第２グループにおける第２ボードと、の間における第１インタフェース障害を検出し、
前記第１ボードと、前記第２グループのボードと、の間で障害検出されているインタフェース数を特定し、
前記第２ボードと、前記第１グループのボードと、の間で障害検出されているインタフェース数を特定し、
前記第１ボードにおける障害検出結果と、前記第２ボードにおける障害検出結果と、に基づいて、前記第１インタフェース障害の原因が前記第１ボードの故障であるか否かを判定し、判定結果を出力する、通信装置の制御方法。
【請求項８】
請求項７に記載の通信装置の制御方法であって、
前記第１ボードにおいて障害検出されているインタフェース数が１より大きく、前記第２ボードにおいて障害検出されているインタフェース数が１である場合に、前記第１インタフェース障害の原因が前記第１ボードの故障であると判定する、通信装置の制御方法。
【請求項９】
請求項７又８に記載の通信装置の制御方法であって、
前記第１及び第２グループのボードのそれぞれは、インタフェース障害を引き起こすボード内故障を検出する検出器を含み、
前記第１のボード及び前記第２のボードの一方においてボード内故障が検出されている場合に、前記第１のボード及び前記第２のボードの障害インタフェース数を特定することなく、前記第１インタフェース障害の原因が前記一方のボードの故障であると判定する、通信装置の制御方法。
【請求項１０】
請求項７ないし９いずれか一に記載の通信装置の制御方法であって、
前記第１ボードにおいて障害検出されているインタフェース数が１であり、前記第２ボードにおいて障害検出されているインタフェース数が１である場合に、前記第１ボード及び前記第２ボードそれぞれの冗長の有無を判定し、
前記第１ボード及び前記第２ボードの一方が冗長化され、他方が冗長化されていない場合に、前記第１インタフェース障害の原因が前記冗長化されている一方のボードの故障であると判定する、通信装置の制御方法。
【請求項１１】
請求項１０に記載の通信装置の制御方法であって、
前記第１及び第２ボードの双方が冗長化されている又は冗長化されていない場合に、前記第１及び第２ボードの状態を判定し、
前記第１及び第２ボードの一方が待機状態であり、他方が運用状態である場合に、前記第１インタフェース障害の原因が前記待機状態にある一方のボードの故障であると判定する、通信装置の制御方法。
【請求項１２】
請求項１０に記載の通信装置の制御方法であって、
前記第１及び第２ボードの双方が待機状態又は運用状態である場合に、前記第１インタフェース障害の原因が、予め設定されているグループのボードの故障であると判定する、通信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信装置の制御方法に関する。
【背景技術】
【０００２】
例えば、特許文献１、２は、通信装置内のボードとして、通信装置全体を制御する装置制御ユニット（以下ＢＣＵとも呼ぶ）と、ネットワーク・インタフェースを制御するネットワーク・インタフェース・ボード（以下ＮＩＦとも呼ぶ）と、ＮＩＦ間のパケットを転送するボードとを開示している。また、特許文献１、２は、ＢＣＵとＮＩＦ間のパケットを転送するボードとが分離されている構成を開示している。特許文献１において、Ｓｗｉｔｃｈ  Ｃｏｎｔｒｏｌｌｅｒ６がＢＣＵに相当し、Ｓｗｉｔｃｈ  Ｓｅｃｔｉｏｎｓ３１、３２がＮＩＦ間のパケットを転送するボードに相当する。
【０００３】
特許文献２において、Ｃｏｎｔｒｏｌｌｅｒ  Ｃａｒｄ１４５、２１０がＢＣＵに相当し、Ｓｗｉｔｃｈ  Ｃａｒｄ１２５、１３０、Ｓｗｉｔｃｈ  Ｆａｂｒｉｃ２２０が、ＮＩＦ間のパケットを転送するボードに相当する。
【０００４】
特許文献３は、ＢＣＵとＮＩＦ間のパケットを転送するボードとが一体となった構成を開示している。特許文献３において、ＲＭ６０がＢＣＵに相当し、Ｃｒｏｓｓｂａｒ  Ｓｗｉｔｃｈ２０がＮＩＦ間のパケットを転送するボードに相当する。
【０００５】
特許文献４は、宛先検索機能やフィルタリング機能を含む、ＮＩＦ間のパケットを転送するボードを開示している。宛先検索機能は、ネットワーク・インタフェース（ネットワーク・ポート）からパケットを受信した後に当該パケットをどのインタフェース（ネットワーク・ポート）から送信すべきかを検索する。制御ボード１０がＢＣＵに相当し、中継処理ボード１００がＮＩＦ間のパケットを転送するボードに相当する。中継処理ボード１００は、宛先検索機能やフィルタリング機能を有する。
【０００６】
特許文献５は、装置内信号の異常を監視し、異常が検出された装置内信号を送信したボードのグループ毎の枚数及び実装位置情報を基に、装置内信号の伝送経路上のボード故障位置を判定する方法を開示している。なお、特許文献５が開示する技術は、ボード間のインタフェース故障に関する技術ではない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許７７５６０１３明細書
【特許文献２】米国特許７７８７４６９明細書
【特許文献３】特開２０００−２４４５７０号公報
【特許文献４】特開２００７−２２８４９０号公報
【特許文献５】特開２０１０−２１３０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
背景技術で開示される通信装置内のボードで、他のボートとの間のインタフェースで障害が検出されたとき、通信装置は、その障害が、信号を送信したボードの故障に起因するか、又は、信号を受信したボードの故障に起因するかを判定せず、オペレータは、一方のボードが故障していると判断し、そのボードを交換していた。
【０００９】
故障しているボードの判断方法は、例えば、ボードの種類間で上下関係を決め、一律に下位のボードが故障していると判断する。例えば、ある判断方法は、通信装置において回線に近いボードを下位と定義し、通信装置内の共通的な処理を行うボードを上位と定義する。これにより、通信が停止する範囲を局所化することができる。
【００１０】
しかし、ボード間のインタフェースで障害が検出された場合に、一律に下位のボードが故障していると判定すると、実際には上位のボードが故障している場合に誤ったボードを交換することになる。
【課題を解決するための手段】
【００１１】
本発明の一態様は、受信したデータを転送する第１及び第２グループのボードと、コントローラと、を含む通信装置である。前記第１グループのボードのそれぞれは、前記第２グループのボードと通信可能に接続されている。前記コントローラは、前記第１グループにおける第１ボードと、前記第２グループにおける第２ボードと、の間における第１インタフェース障害を検出する。前記コントローラは、前記第１ボードと、前記第２グループのボードと、の間で障害検出されているインタフェース数を特定する。前記コントローラは、前記第２ボードと、前記第１グループのボードと、の間で障害検出されているインタフェース数を特定する。前記コントローラは、前記第１ボードにおける障害検出結果と、前記第２ボードにおける障害検出結果と、に基づいて、前記第１インタフェース障害の原因が前記第１ボードの故障であるか否かを判定する。例えば、前記コントローラは、前記第１ボードにおける障害検出結果と、前記第２ボードにおける障害検出結果とに基づいて、前記第１ボードにおいて障害検出されているインタフェース数が１より大きく、前記第２ボードにおいて障害検出されているインタフェース数が１である場合に、前記第１インタフェース障害の原因が前記第１ボードの故障であると判定する。
【発明の効果】
【００１２】
本発明の一態様によれば、通信装置のボード間において障害が検出された場合に、誤ったボードが交換される可能性を低減できる。
【図面の簡単な説明】
【００１３】
【図１】通信装置の構成例を模式的に示すブロック図である。
【図２】ＳＦＵとＰＰＵとの間の一つのインタフェースにおいて、故障が発生したボードと、障害を検出したボードとの関係を示す。
【図３】ＳＦＵ接続関係テーブルの構成例を示す。
【図４】ＰＰＵ接続関係テーブルの構成例を示す。
【図５】ＰＰＵ冗長構成テーブル１０２６の構成例を示す。
【図６】ＳＦＵ状態管理テーブルの構成例を示す。
【図７】ＰＰＵ状態管理テーブルの構成例を示す。
【図８】故障判定インタフェーステーブルの構成例を示す。
【図９】障害情報管理テーブルの構成例を示す。
【図１０】ＳＦＵインタフェース障害検出カウンタテーブルの構成例を示す。
【図１１】ＰＰＵインタフェース障害検出カウンタテーブルの構成例を示す。
【図１２】ＢＣＵ１０の動作の全体的な流れを示すフローチャートである。
【図１３】図１２のフローチャートにおける、ステップ６１０１の詳細を示すフローチャートである。
【図１４】ボード内の故障を検出する検出器であるＯＢＰ／ＣＬＫ部の構成例を示す。
【図１５】図１３のフローチャートにおける、インタフェース障害チェック（６００２）の例を示すフローチャートである。
【図１６】図１３のフローチャートにおける、冗長化状態チェック（６００３）の例を示すフローチャートである。
【図１７】図１３のフローチャートにおける、運用／待機状態チェック（６００４）の例を示すフローチャートである。
【図１８】図１３のフローチャートにおけるステップ６００６（複数のインタフェースで障害を検出したボードを故障と判定）において、ＳＦＵを故障と判定する例を示す。
【図１９】図１３のフローチャートにおけるステップ６００６（複数のインタフェースで障害を検出したボードを故障と判定）において、ＳＦＵを故障と判定する例を示す。
【図２０】図１３のフローチャートにおけるステップ６００６（複数のインタフェースで障害を検出したボードを故障と判定）において、ＰＰＵを故障と判定する例を示す。
【図２１】図１３のフローチャートにおけるステップ６００７（冗長化されている方のボードを故障と判定）の例を示す。
【図２２】図１３のフローチャートにおけるステップ６００７（冗長化されている方のボードを故障と判定）の例を示す。
【図２３】図１３のフローチャートにおけるステップ６００８（待機状態の方のボードを故障と判定）の例を示す。
【図２４】図１３のフローチャートにおけるステップ６００８（待機状態の方のボードを故障と判定）の例を示す。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１５】
本実施形態の通信装置は、当該通信装置内のボード間のインタフェースにおいて障害が検出された場合に、当該インタフェースのどちら側のボードが故障に起因しているかを判定する。通信装置は第１グループの複数ボードと第２グループの複数ボードとを含み、各ボードが、他方グループの複数ボードとデータ通信可能に接続している。
【００１６】
一例において、本実施形態の通信装置は、ボード間の一つのインタフェースで障害を検出した場合に、当該インタフェースのボードそれぞれで障害検出されているインタフェース数を特定する。一方のボードにおいて複数インタフェースの障害が検出され、もう一方で一つのインタフェースのみの障害（単一インタフェースの障害）が検出されている場合、通信装置は、複数のインタフェースで障害が検出されているボードが故障であると判定する。
【００１７】
一例において、本実施形態の通信装置は、障害が検出されたインタフェースにいずれのボードが故障しているかを、段階的に判定する。本実施形態の段階的判定により、故障の可能性がボードを故障と判定でき、さらに、故障ボードの交換による通信への影響を低減できる。
【００１８】
第１の段階は、ボード内の故障検出器により故障を検出した場合には、当該ボードが故障であると判定する。ボードを故障と判定する明確な証拠がある場合に、故障ボードを正しく判定できる。
【００１９】
第１の段階で故障ボードを特定できない場合、第２の段階は、各ボードにおいて検出されているインタフェース障害数により、故障しているボードを判定する。一方のボードで複数のインタフェース障害が検出され、他方のボードで単一のインタフェースで障害が検出されている場合、複数のインタフェース障害が検出されているボードが故障であると判定する。これにより、故障の可能性が高い方のボードを故障と判定することができる。
【００２０】
ハードウェアの故障は一般的に独立に発生し、複数の独立した故障が同時に発生する可能性は小さい。一つのボードの複数のボードとの間のインタフェースで同時に障害が検出されている場合、この一つのボードの故障によりインタフェース障害が発生していると判定することが妥当である。当該ボードを故障と判定することにより、対向側の複数のボードが同時に故障と判定され通信停止範囲が広くなることを防ぐことができる。
【００２１】
第２の段階で故障ボードを特定できない場合、通信装置は第３の段階を実行する。一方のボードが冗長化され、他方のボードが冗長化されていない場合、通信装置は、冗長化されているボードが故障していると判定する。これにより、冗長構成の他のボードを用いて通信の継続を保証することができる。
【００２２】
第３の段階で故障ボードを特定できない場合、通信装置は第４の段階を実行する。一方のボードが運用状態であり、他方のボードが待機状態である場合、通信装置は、待機状態のボードが故障していると判定する。これにより、冗長状態の切替を防ぐことができ、冗長状態の切替による瞬断を防ぐことができる。
【００２３】
第４の段階で故障ボードを特定できない場合、通信装置は第５の段階を実行する。通信装置は、予め決められているグループのボードが故障であると判定する。これにより、最終的にどちらかのボードの故障と判定するかを必ず決めることができる。
【００２４】
上記四つの段階の一部は省略されていてもよい。例えば、通信装置は、第２の段階のみを実行してもよいし、第１及び第２の段階のみ又は第２及び第３の段階のみを実行してもよい。
【００２５】
以下において本実施形態の通信装置を具体的に説明する。図１は、本実施形態に係る通信装置の構成例を模式的に示すブロック図である。通信装置は、２重化された装置制御ユニット（以下ＢＣＵとも呼ぶ）１０、１１、ネットワーク・インタフェース・ボード（以下ＮＩＦとも呼ぶ）４０〜４７を含む。通信装置は、さらに、パケット処理ユニット（以下ＰＰＵとも呼ぶ）３０〜３３、ＰＰＵ間のパケットの転送を行うスイッチ・ファブリック・ユニット（以下ＳＦＵとも呼ぶ）２０〜２３を含む。
【００２６】
ＮＩＦ４０〜４７は、各々一つ或いは複数のネットワーク・インタフェース（ネットワーク・ポート）を制御する。ＰＰＵ３０〜３３は、それぞれ、ＮＩＦ４０〜４７を収容し、パケットの宛先検索、不正なパケットを廃棄するフィルタリング及びパケットの転送を行う。ＳＦＵ２０〜２３は、ＰＰＵ３０〜３３間のパケットを転送する。
【００２７】
ＢＣＵ１０、１１は、それぞれ、通信装置全体を制御することができる。ＢＣＵ１０は運用系であり、ＢＣＵ１０１１は待機系である。運用系ＢＣＵ１０は、装置全体の制御及び他のボードの制御を行い、待機系ＢＣＵ１１は、制御動作を行うことなく、待機状態にある。運用系ＢＣＵ１０において障害が発生すると、待機系ＢＣＵ１１が、通信装置の制御を引き継ぐ。通信装置は、一つだけのＢＣＵを有していてもよい。
【００２８】
ＢＣＵ１０、１１は同様の構成を有しており、以下では、ＢＣＵ１０の構成を説明する。ＢＣＵ１０は、プロセッサ１０１と主記憶デバイスであるメモリ１０２とを含む。プロセッサ１０１は、メモリ１０２に記憶されているプログラムを実行することによって所定の機能を実現する。メモリ１０２は、プロセッサ１０１によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶する。
【００２９】
プログラムはプロセッサ１０１によって実行されることで、定められた処理を行う。従って、本実施形態においてプログラムを主語とする説明は、プロセッサ１０１を主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作するＢＣＵ及び通信装置が行う処理である。
【００３０】
メモリ１０２は、ＢＣＵ１０による制御動作を行うプログラム及びそれらが使用する情報を記憶している。図１は、本実施形態の動作に関するプログラム及び情報のみを示しており、メモリ１０２は、不図示の他のプログラム及び情報を記憶していてよい。本実施形態において、ＢＣＵ１０が使用する情報はテーブルで表現されるが、情報はテーブルとは異なるデータ構造により表現されていてもよい。
【００３１】
説明の便宜上、プロセッサ１０１が使用するデータ（プログラム及びテーブルを含む）はメモリ１０２内に示されているが、典型的には、データは二次記憶デバイスからメモリ１０２にロードされる。二次記憶デバイスは、所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶装置である。
【００３２】
メモリ１０２は、装置状態管理プログラム１０２０、障害検出プログラム１０２１、故障ボード切分けプログラム１０２２、障害復旧プログラム１０２３を記憶している。さらに、メモリ１０２は、上記プログラム１０２０〜１０２３が使用する情報を記憶している。
【００３３】
メモリ１０２は、ＳＦＵ接続関係テーブル１０２４、ＰＰＵ接続関係テーブル１０２５、ＰＰＵ冗長構成テーブル１０２６、ＳＦＵ状態管理テーブル１０２７を記憶している。メモリ１０２は、さらに、ＰＰＵ状態管理テーブル１０２８、故障判定インタフェーステーブル１０２９、障害情報管理テーブル１０２１０、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２、を記憶している。これらテーブル及びプログラムの詳細は後述する。
【００３４】
ＢＣＵ１０と全ＳＦＵ２０〜２３及び全ＰＰＵ３０〜３３は、制御ネットワーク７０を介して通信可能である。ＢＣＵ１０は、インタフェース障害を検出したボードからの割り込みを、制御ネットワーク７０を介して受信できる。ＢＣＵ１０は、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３の状態を、制御ネットワーク７０を介してチェックすることができる。
【００３５】
本実施形態において、ＢＣＵ１０は、定期的にＳＦＵ２０〜２３及びＰＰＵ３０〜３３における障害の有無をチェックすることができる。ＢＣＵ１０は、割り込みが上がった後の障害復旧処理の中で、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３の障害の有無をチェックできる。
【００３６】
ＢＣＵ１１と全ＳＦＵ２０〜２３及び全ＰＰＵ３０〜３３は、制御ネットワーク７１を介して通信可能である。ＢＣＵ１１は、運用状態に変化した後、ＢＣＵ１０と同様の動作を行う。
【００３７】
ＳＦＵ２０〜２３は、それぞれ、ＰＰＵ間のデータ転送を行うＬＳＩであるクロスバ・スイッチ（ＣＳＷ）２００と、ＣＳＷ２００が動作する為の電源とクロックを供給するＯＢＰ／ＣＬＫ部２０１と、を含む。
【００３８】
ＰＰＵ３０〜３３は、それぞれ、検索転送部３００とＯＢＰ／ＣＬＫ部３０１とを含む。検索転送部３００は、パケットの宛先検索、不正パケットを廃棄するフィルタリング、及びデータ転送を行うＬＳＩである。ＯＢＰ／ＣＬＫ部３０１は、検索転送部３００が動作する為の電源とクロックを供給する。
【００３９】
全てのＳＦＵ２０〜２３と全てのＰＰＵ３０〜３３の全とは、ボード間インタフェース８００〜８３３で相互接続されている。ボード間インタフェース８００〜８３３は、それぞれ、双方向でパケットを転送する。つまり、ボード間インタフェース８００〜８０３、８１０〜８１３、８２０〜８２３、８３０〜８３３は、それぞれ、ＳＦＵからＰＰＵへのパケットを転送し、さらに、ＰＰＵからＳＦＵへのパケットを転送する。
【００４０】
データを送信するボード（ＳＦＵ又はＰＰＵ）は、データのエラーを検出する為の符号化を行った後に、ボード間インタフェースにデータを送出する。データを受信したボード（ＰＰＵ又はＳＦＵ）は、符号の復号化を行い、エラー検出を行うと同時にデータを復元する。
【００４１】
データを受信したボードが復号化によってエラーを検出した場合、エラー原因の二つの可能性がある。一つは、データを送信したボードの故障が、データ送出時にデータエラーを引き起こした可能性である。もう一つは、データを受信したボードの故障が、データ受信時にデータエラーを引き起こした可能性である。
【００４２】
図２は、ＳＦＵとＰＰＵとの間の一つのインタフェースに着目し、故障が発生したボードと、障害を検出したボードとの関係を示す。図２の一列目２２１は、ＳＦＵで故障が発生した場合、二列目２２２はＰＰＵで故障が発生した場合に対応する。それぞれの一行目２２３はＳＦＵで障害を検出した場合、二行目２２４はＰＰＵで障害を検出した場合に対応する。ＢＣＵ１０は、ＳＦＵとＰＰＵのいずれが、ボード間インタフェースから受信したデータにおいてエラーを検出した場合でも、当該インタフェースの障害として同等に扱う。
【００４３】
図２は、一つのボード間インタフェースに着目し、一つのＳＦＵと一つのＰＰＵを示す。しかし、実際には、図１に示すように、複数のＳＦＵ２０〜２３と複数のＰＰＵ３０〜３３が、メッシュで接続されている。ＳＦＵ２０〜２３とＰＰＵ３０〜３３との間の接続関係及びそれらを接続するインタフェースを管理することが必要である。
【００４４】
ＳＦＵ接続関係テーブル１０２４及びＰＰＵ接続関係テーブル１０２５は、これらの情報を管理する。図３及び図４は、それぞれ、ＳＦＵ接続関係テーブル１０２４及びＰＰＵ接続関係テーブル１０２５の構成例を示している。装置状態管理プログラム１０２０は、これらを更新、管理する。
【００４５】
ＳＦＵ接続関係テーブル１０２４は、障害を検出したＳＦＵ２０〜２３の対向部位を示す。ＰＰＵ接続関係テーブル１０２５は、障害を検出したＰＰＵ３０〜３３の対向部位を示す。
【００４６】
図３において、ＳＦＵ接続関係テーブル１０２４は、ＳＦＵ番号及びポート番号により障害検出部位を特定する。ＳＦＵ番号は通信装置内で一意にＳＦＵを特定し、ポート番号はＳＦＵ内でポートを一意に特定する。
【００４７】
各障害検出部位の対向部位は、ＰＰＵ番号とポート番号により特定される。ＰＰＵ番号は通信装置内で一意にＰＰＵを特定し、ポート番号はＰＰＵ内でポートを一意に特定する。二つ部位を接続するボード間インタフェースは、インタフェース番号により特定される。インタフェース番号は、通信装置内においてボード間インタフェースを一意に特定する。
【００４８】
図４において、ＰＰＵ接続関係テーブル１０２５は、ＰＰＵ番号及びポート番号により障害検出部位を特定する。各障害検出部位の対向部位は、ＳＦＵ番号とポート番号により特定される。二つ部位を接続するボード間インタフェースは、インタフェース番号により特定される。ＢＣＵ１０は、これらテーブル１０２４、１０２５を参照して、インタフェースのどちら側で障害を検出した場合でも、障害として扱うべきインタフェースを特定できる。
【００４９】
ＳＦＵがインタフェース障害を検出した場合、ＢＣＵ１０は、ＳＦＵ接続関係テーブル１０２４を参照して、当該インタフェースの対向ＰＰＵを特定することができる。同様に、ＰＰＵがインタフェース障害を検出した場合、ＢＣＵ１０は、ＰＰＵ接続関係テーブル１０２５を参照して、当該インタフェースの対向ＳＦＵを特定することができる。ＢＣＵ１０は、テーブル１０２４、１０２５の一方のみを有していてもよい。いずれのテーブルのみによっても、ＳＦＵ及びＰＰＵの対向ボードを特定することができる。
【００５０】
ＢＣＵ１０は、ボード間のインタフェースで障害を検出した場合、一方のボードが故障していると判定する。ＢＣＵ１０は、故障と判定したボードの障害復旧処理を行うことにより、障害からの復旧を試みる。
【００５１】
ボードの障害復旧処理の一つの方法は、例えば、当該ボードを閉塞後、再度初期化する。障害復旧処理において、ＢＣＵ１０は、ボードの障害復旧処理において、オペレータに障害を通知してもよい。例えば、ＢＣＵ１０は、表示装置（不図示）において障害メッセージを表示する、装置上の所定色のランプを点灯する、又は、ＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）のトラップを出力する。これらの組み合わせも使用可能である。
【００５２】
ＢＣＵ１０は、上記障害復旧処理を、ボード間のインタフェース故障を検出したときに自動的に行う。ＢＣＵ１０は、どちらのボードの故障とするかを自動的に判定する。ＢＣＵ１０がボード間のインタフェースでの障害を検出した場合に、故障しているボードを判定する為、ボード間の接続関係、各ボードの冗長有無、及び、各ボードの動作状態を予め保持している。
【００５３】
装置状態管理プログラム１０２０は、通信装置内のボード構成及びボード状態を管理する。装置状態管理プログラム１０２０は、通信装置内のボード構成及びボード状態に合わせて、ＳＦＵ接続関係テーブル１０２４、ＰＰＵ接続関係テーブル１０２５、ＰＰＵ冗長構成テーブル１０２６、ＳＦＵ状態管理テーブル１０２７、ＰＰＵ状態管理テーブル１０２８、故障判定インタフェーステーブル１０２９を作成、更新する。装置状態管理プログラム１０２０は、これらテーブル１０２４〜１０２９を、ボード間のインタフェースで障害が発生する前に予め準備する。
【００５４】
上述のように、ボード間の接続関係は、ＳＦＵ接続関係テーブル１０２４及びＰＰＵ接続関係テーブル１０２５に保持されている。ＰＰＵ３０〜３３の冗長構成の情報は、ＰＰＵ冗長構成テーブル１０２６に保持されている。
【００５５】
図５は、ＰＰＵの冗長構成を示すＰＰＵ冗長構成テーブル１０２６の構成例を示す。ＰＰＵ冗長構成テーブル１０２６は、ＰＰＵ番号によって識別されるＰＰＵ３０〜３３のそれぞれが冗長を構成する他のＰＰＵ及び他のＰＰＵと冗長を構成するか否かの情報を示す。
【００５６】
ＰＰＵの冗長の実現方法の例は、複数のＰＰＵで冗長を構成する一組を形成し、組内の各ＰＰＵの配下のポート間でリンク・アグリゲーションなどの回線冗長を組む。冗長を構成する複数のＰＰＵのいずれかが閉塞されても、回線冗長機能によりユーザ通信が継続される。ＢＣＵ１０は、ＰＰＵ冗長構成テーブル１０２６を参照することにより、ＰＰＵの冗長有無を判定できる。
【００５７】
ＳＦＵの冗長有無の判定方法の例は、下記数式１に示す通り、運用状態ＳＦＵと待機状態のＳＦＵ総枚数が、通信装置内の通信に必要な性能を満たすための必要枚数よりも多ければ、冗長有りと判定する。
（数式１）
ＳＦＵの冗長有り
＝（運用状態ＳＦＵの枚数＋待機状態ＳＦＵの枚数  ＞  必要枚数）
【００５８】
例えば搭載可能枚数が４枚で必要枚数が３枚の場合、ＢＣＵ１０は、搭載枚数が４の場合に冗長有り、と判定し、搭載枚数が３枚以下の場合に冗長無し、と判定する。必要枚数は、ＢＣＵ１０内に予め設定されている。搭載枚数が必要枚数より多い場合、ＢＣＵ１０がいずれかのＳＦＵを故障と判定して障害復旧処理を行っても、上記必要枚数が満たされる。
【００５９】
ＳＦＵ２０〜２３、ＰＰＵ３０〜３３の各ボードの動作状態の情報は、ＳＦＵ状態管理テーブル１０２７、ＰＰＵ状態管理テーブル１０２８に保持されている。図６及び図７は、それぞれ、ＳＦＵ状態管理テーブル１０２７及びＰＰＵ状態管理テーブル１０２８の構成例を示す。
【００６０】
運用状態は、当該ボードが運用されている状態であり、ボード間のインタフェースも使用されている。待機状態において、ボードは運用には使用されておらず、例えば省電力化の為に待機している。当該ボードと冗長を組んでいる他の運用状態のボードが故障したときに直ぐに使用状態へ変化できるよう、当該ボードのボード間インタフェースは使用できる状態にある。そのため、当該ボードは、そのインタフェースで障害を検出する可能性がある。
【００６１】
閉塞状態は、非搭載（電源ＯＦＦを含む）、故障状態、復旧処理中など、通信動作をしていない状態である。この状態のボードと対向ボードとの間のインタフェースでは、当該ボード及び対向ボード共、新たに障害を検出しても無視するか、障害を新たに検出しないようにマスクすべき状態である。なお、ここに示した状態は例であり、これ以外の状態を設けることも可能である。
【００６２】
後述するように、ＢＣＵ１０は、ＳＦＵ２０〜２３とＰＰＵ３０〜３３と間の、ある一つのインタフェースで障害を検出したとき、他のＳＦＵとＰＰＵ間のインタフェースの障害の有無も調査し、故障ボードを特定する。故障ボードの判定対象のインタフェースは、全インタフェースではなく、閉塞状態のボードのインタフェースは除外される。
【００６３】
故障判定インタフェーステーブル１０２９は、故障判定において使用するインタフェース及び除外するインタフェースの情報を保持している。図８は、故障判定インタフェーステーブル１０２９の構成例を示す。
【００６４】
故障判定インタフェーステーブル１０２９は、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３のマトリックスにおいて、各ＳＦＵとＰＰＵとの間のインタフェースが使用されるか除外されるかを示す。あるボードが除外されるとき、当該ボードのインタフェースの全てが除外される。装置状態管理プログラム１０２０は、ＳＦＵ状態管理テーブル１０２７、ＰＰＵ状態管理テーブル１０２８から故障判定インタフェーステーブル１０２９を作成する。ボードが閉塞状態にあるとき、当該ボードは除外される。
【００６５】
以上のテーブル１０２４〜１０２９は、インタフェース障害検出の前に、予め用意されている。一方、障害情報管理テーブル１０２１０、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２は、インタフェース障害検出後に作成、更新される。
【００６６】
図９は、障害情報管理テーブル１０２１０の構成例を示す。障害情報管理テーブル１０２１０は、全インタフェースにおける障害の有無の情報を保持する。図９において、障害情報管理テーブル１０２１０はＳＦＵ２０〜２３及びＰＰＵ３０〜３３のマトリックスにおいて、各ＳＦＵとＰＰＵとの間のインタフェースにおいて障害が検出されたかを示す。なお、閉塞状態のボードにおいては障害検出されない。
【００６７】
後述するように、ＳＦＵとＰＰＵ間のある一つのインタフェースにおいて、ボードが障害を検知すると、検知したボードからの割り込み、又は、ＢＣＵ１０からの各ボードの定期的なチェックにより、ＢＣＵ１０は当該インタフェースの障害を検出する。ＢＣＵ１０は、これを契機に、他のＳＦＵとＰＰＵ間のインタフェースの障害の有無を調査する。当該調査により得られた情報は、障害情報管理テーブル１０２１０に格納される。
【００６８】
図１０は、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１の構成例を示す。ＳＦＵインタフェース障害検出カウンタテーブル１０２１１は、各ＳＦＵの障害検出インタフェース数を示す。具体的には、各ＳＦＵにつき、全ＰＰＵ３０〜３３との間のインタフェースで、故障判定インタフェーステーブル１０２９が「使用」状態を示し、障害情報管理テーブル１０２１０が「障害検出」を示すインタフェースの数を示す。
【００６９】
図１１は、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２の構成例を示す。ＰＰＵインタフェース障害検出カウンタテーブル１０２１２は、各ＰＰＵの障害検出インタフェース数を示す。具体的には、各ＰＰＵにつき、全ＳＦＵ２０〜２３との間のインタフェースで、故障判定インタフェーステーブル１０２９が「使用」状態を示し、障害情報管理テーブル１０２１０が「障害検出」を示すインタフェースの数を示す。
【００７０】
テーブルを使用し、図１に示すＢＣＵ１０内のプログラムが、ボード間のインタフェース障害を検出し、当該インタフェースにおけるいずれのボードが故障であるか判定し、障害復旧処理を行う。
【００７１】
障害検出プログラム１０２１は、ボード間のインタフェースの障害を検出する。インタフェースの一方のボード（ＳＦＵ又はＰＰＵ）は、当該インタフェースで障害を検知すると、障害発生を示す情報をレジスタに格納する。当該ボードは、さらに、インタフェース障害の発生を、障害検出プログラム１０２１に割り込みにより通知してもよい。
【００７２】
障害検出プログラム１０２１は、障害を検出したボードからの割り込み又はＳＦＵ２０〜２３、ＰＰＵ３０〜３３のレジスタの定期的参照（定期的チェック）により、障害発生を検出することができる。
【００７３】
故障ボード切分けプログラム１０２２は、障害検出プログラム１０２１がボード間のインタフェースの障害を検出した後に呼ばれる。故障ボード切分けプログラム１０２２は、他のＳＦＵとＰＰＵと間のインタフェース障害の有無を調査し、全インタフェースにおける障害の有無の情報を、障害情報管理テーブル１０２１０に格納する。
【００７４】
故障ボード切分けプログラム１０２２は、各ＳＦＵにつき、全ＰＰＵ３０〜３３との間のインタフェースで、故障判定インタフェーステーブル１０２９で「使用」状態になっていて、テーブル１０２１０で「障害検出」状態になっているインタフェースの数をＳＦＵインタフェース障害検出カウンタテーブル１０２１１に格納する。
【００７５】
故障ボード切分けプログラム１０２２は、各ＰＰＵにつき、全ＳＦＵ２０〜２３との間のインタフェースで、故障判定インタフェーステーブル１０２９で「使用」状態になっていて、障害情報管理テーブル１０２１０で「障害検出」状態になっているインタフェースの数を、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２に格納する。
【００７６】
故障ボード切分けプログラム１０２２は、障害情報管理テーブル１０２１０、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２を使用して、障害検出されたインタフェースの一方のボードを故障と判定する。
【００７７】
障害復旧プログラム１０２３は、故障ボード切分けプログラム１０２２が故障ボードを特定した後に呼ばれる。障害復旧プログラム１０２３は、特定した故障ボードを再初期化する、及び／又は、障害及び／又は障害復旧についての情報を示すメッセージを表示する。
【００７８】
以下において、ＢＣＵ１０の動作を具体的に説明する。故障ボード切分けプログラム１０２２は、障害検出されたインタフェースにおいて、故障しているボードを判定する。当該この判定方法は次の判定基準に従う。
第一の判定基準：故障の可能性が高いボードを故障と判定する。
第二の判定基準：通信への影響を抑える。
【００７９】
図１２は、ＢＣＵ１０の動作の全体的な流れを示すフローチャートである。障害検出プログラム１０２１がボード間インタフェースで障害を検出すると（６１）、ＢＣＵ１０は、ステップ６１０１を実行する。具体的には、故障ボード切分けプログラム１０２２は、図１３を参照して後述するフローチャートに従い故障ボードを特定し、さらに、障害復旧プログラム１０２３は、当該ボードの障害復旧処理を行う。
【００８０】
この後、障害検出プログラム１０２１は、障害が発生しているボード間インタフェースが存在するか調査する（６１０２）。障害検出プログラム１０２１は、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３のレジスタを参照して、障害が発生しているボード間インタフェースが存在するか判定する。
【００８１】
いずれかのインタフェースで障害発生している場合（６１０２：有）、ＢＣＵ１０は、ステップ６１０１に戻る。ＢＣＵ１０は、ステップ６１０１、６１０２を、ボード間インタフェース障害が無くなるまで繰り返す。ボード間インタフェース障害が無くなったら（６１０２：無）、ＢＣＵ１０は、ボード間インタフェース障害復旧処理を終了する。
【００８２】
上記フローは、１回のループ毎に故障と判定する１枚のボードを決め、障害復旧処理を行う。１枚のループが全てのインタフェース障害を復旧する場合に、１回のループでフローは終了する。
【００８３】
複数のボードを故障と判定する場合、複数のボードで独立した要因の障害が同時に発生することは想定できない。例えば外部電源異常、装置温度異常、外来ノイズなど、複数のボードに共通に影響を及ぼす障害要因に因るものと想定される。障害要因は故障と判定した各ボード以外にあることが想定されるので、ＢＣＵ１０は、オペレータにより復旧処理されるべき障害であることを通知してもよい。
【００８４】
図１３は、ステップ６１０１の詳細を示すフローチャートである。図１２を参照して説明したように、障害検出プログラム１０２１がボード間インタフェースで障害を検出する（６１）。ＳＦＵとＰＰＵ間の一つのインタフェースにおける障害を検出したボードからの割り込み、又は、各ボードの定期的なチェックにより、障害検出プログラム１０２１は、インタフェース番号で識別される一つのインタフェースの障害を検出する。
【００８５】
故障ボード切分けプログラム１０２２は、全ＳＦＵ２０〜２３及びＰＰＵ３０〜３３において、故障が検出されているかどうかをチェックし、その結果をメモリ１０２内に保持する（６００１）。各ボードは、ボード内の故障を検出する検出器を含む。当該検出器は、ボード間のインタフェース障害を引き起す故障を検出することができる。一例において、検出器は、ボード内のオンボード電源の故障とボード内のクロックの故障を検出する。
【００８６】
図１４は、ボード内の故障を検出する検出器であるＯＢＰ／ＣＬＫ部２０１の構成例を示す。ＯＢＰ／ＣＬＫ部２０１は、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３のそれぞれに実装される。ＯＢＰ／ＣＬＫ部２０１は、ＣＳＷ２００／検索転送部３００が動作する為の電源とクロックを供給する。
【００８７】
ＯＢＰ／ＣＬＫ部２０１は、クロック２０１０、クロックモニタ２０１１、オンボード電源(ＯＢＰ１)２０１２、オンボード電源(ＯＢＰ２)２０１３、電圧モニタ２０１４を含む。クロックモニタ２０１１は、クロック２０１０の異常を検知する。オンボード電源(ＯＢＰ１)２０１２は、ＣＳＷ２００／検索転送部３００に電力を供給する。オンボード電源(ＯＢＰ２)２０１３は、クロック２０１０に電力を供給する。電圧モニタ２０１４は、ＯＢＰ１  ２０１２及びＯＢＰ２  ２０１３の電圧異常を検知する。
【００８８】
クロックモニタ２０１１及び電圧モニタ２０１４は、それぞれ、ボード内の故障を検出する。クロックモニタ２０１１又は電圧モニタ２０１４が障害を検出すると、障害検出プログラム１０２１又は故障ボード切分けプログラム１０２２は、クロックモニタ２０１１又は電圧モニタ２０１４から割り込みを受信し、当該ボードの障害を検出することができる。
【００８９】
さらに、障害検出プログラム１０２１又は故障ボード切分けプログラム１０２２は、ボード内のレジスタを参照し、クロックモニタ２０１１及び電圧モニタ２０１４による障害検出の有無をチェックすることで、当該ボードにおける故障の有無を知ることもできる。なお、ボード内故障の検出は、インタフェース障害の検出に含まれていてもよいし、含まれていなくともよい。
【００９０】
図１３に戻って、障害検出プログラム１０２１は、全ＳＦＵ２０〜２３及び全ＰＰＵ３０〜３３において、閉塞状態ではないいずれかのボードが故障を検出しているか判定する（６００１）。閉塞状態ではなくいずれかのボードがボード内故障を検出している場合（６００１：「ボード内故障が検出されている」）、故障ボード切分けプログラム１０２２は、故障が検出されたボードを故障と判定する（６００５）。当該ボードは、本フロー開始のトリガとなったインタフェースのボードとは必ずしも一致しない。
【００９１】
障害復旧プログラム１０２３は、当該ボードの障害復旧処理を行う（６０１０）。本例において、障害復旧プログラム１０２３は、当該ボードの状態を閉塞状態に変更する。障害復旧プログラム１０２３は、当該ボードの関連する情報を、ＳＦＵ状態管理テーブル１０２７、ＰＰＵ状態管理テーブル１０２８において更新する。
【００９２】
障害復旧プログラム１０２３は、さらに、当該ボードが故障を有すると判定されたことを表示する。なお、故障ボード切分けプログラム１０２２は、故障が検出されている全てのボードを故障と判定してもよい。障害復旧プログラム１０２３は、障害復旧において故障を有すると判定されたボードを初期化してもよい。
【００９３】
いずれのボードも故障を検出していない場合（６００１：「ボード内故障が検出されていない」）、故障ボード切分けプログラム１０２２は、各ボードで複数のボード間インタフェースで障害が検出されているかどうかをチェックする（６００２）。
【００９４】
図１５は、インタフェース障害チェック（６００２）の例を示すフローチャートである。故障ボード切分けプログラム１０２２は、全ＳＦＵ２０〜２３と全ＰＰＵ３０〜３３の間のインタフェースにつき、障害が検出されているかを調査し、その結果を障害情報管理テーブル１０２１０に格納する（６００２１）。故障ボード切分けプログラム１０２２は、例えば、ＳＦＵ２０〜２３及びＰＰＵ３０〜３３の各レジスタを参照して、インタフェース障害が発生しているかを調査することができる。
【００９５】
故障ボード切分けプログラム１０２２は、各ＳＦＵと、全ＰＰＵ３０〜３３との間のインタフェースにおいて、故障判定インタフェーステーブル１０２９において「使用」であり、障害情報管理テーブル１０２１０において「障害検出」であるインタフェースの数を決定する。故障ボード切分けプログラム１０２２は、各ＳＦＵについて決定した数を、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１に格納する（６００２２）。
【００９６】
故障ボード切分けプログラム１０２２は、各ＰＰＵと、全ＳＦＵ２０〜２３との間のインタフェースにおいて、故障判定インタフェーステーブル１０２９において「使用」であり、障害情報管理テーブル１０２１０において「障害検出」であるインタフェースの数を決定する。故障ボード切分けプログラム１０２２は、各ＰＰＵについて決定した数を、ＰＰＵインタフェース障害検出カウンタテーブル１０２１２に格納する。
【００９７】
故障ボード切分けプログラム１０２２は、ＳＦＵインタフェース障害検出カウンタテーブル１０２１１及びＰＰＵインタフェース障害検出カウンタテーブル１０２１２に格納された、障害検出インタフェース数の最大値を求める（６００２４）。
【００９８】
故障ボード切分けプログラム１０２２は、障害検出インタフェース数の最大値によって異なるステップに進む（６００２５）。障害検出インタフェース数の最大値が０の場合（６００２５：０）、故障ボード切分けプログラム１０２２は、インタフェース障害検出無し、と判定し（６００２６）、図１３のフローチャートにおけるステップ６０１０に進む。
【００９９】
故障ボード切分けプログラム１０２２、インタフェース障害を検出したことをトリガとして図１３のフローを開始しており、最初に図１３のフローを実行したときには、インタフェース障害が必ず存在する。しかし、ＢＣＵ１０は、全インタフェース障害を処理し終わるまで、図１２のフローチャートにけるステップ６１０１、６１０２を繰り返す。最後のループにおいて、障害検出インタフェース数の最大値が０となる。
【０１００】
障害検出インタフェース数の最大値が２以上の場合（６００２５：２以上）、故障ボード切分けプログラム１０２２は、障害検出インタフェース数の最大値を示すボードを選択し、当該ボードと複数のボードとの間のインタフェースで障害検出と判定する（６００２７）。故障ボード切分けプログラム１０２２は、図１３のフローチャートにおいて、複数のインタフェースで障害を検出した当該ボードが故障であると判定する（６００６）。
【０１０１】
一つのボードにおける複数のボード間インタフェースで障害が検出されている場合は、当該ボードが故障にしている可能性が高いため、この判定方法により、適切に故障ボードを特定できる。
【０１０２】
図９の障害情報管理テーブル１０２１０の例が示すように、複数ボードとの間でインタフェース障害を有しているボードが複数存在する場合、それらの内の一つのボードを故障と判定しても、インタフェース障害が残る場合がある。ＢＣＵ１０は、図１２のフローチャートに従い、複数ボードとの間でインタフェース障害を有しているボードを、順に、故障と判定する。
【０１０３】
障害検出インタフェース数の最大値が１の場合（６００２５：１）、故障ボード切分けプログラム１０２２は、インタフェース障害が検出されている各ボードにおいて、一つのボード間インタフェースでのみ障害が検出されている判定する（６００２８）。故障ボード切分けプログラム１０２２は、図１３のフローチャートにおける冗長化状態チェック（６００３）に進む。
【０１０４】
図１６は、冗長化状態チェック（６００３）の例を示すフローチャートである。ＳＦＵの冗長有無を、上記数式１を使用して決定する（６００３１）。故障ボード切分けプログラム１０２２は、ＳＦＵ状態管理テーブル１０２７から、運用状態ＳＦＵ及び待機状態ＳＦＵの枚数を得る。
【０１０５】
故障ボード切分けプログラム１０２２は、障害検出されている一つのインタフェースを選択し、当該インタフェースに繋がるＰＰＵの冗長有無を、ＰＰＵ冗長構成テーブル１０２６から得る（６００３２）。
【０１０６】
故障ボード切分けプログラム１０２２は、ＳＦＵの冗長有無とＰＰＵの冗長有無により異なるステップに進む（６００３３、６００３４、６００３５）。
【０１０７】
ＳＦＵが冗長化されておらず、ＰＰＵが冗長化されている場合（６００３３：無し、６００３４：有り）、又は、ＳＦＵが冗長化され、ＰＰＵが冗長化されていない場合（６００３３：有り、６００３５：無し）、故障ボード切分けプログラム１０２２は、片方のボードだけ冗長化されていると判定する（６００３６）。
【０１０８】
故障ボード切分けプログラム１０２２は、図１３のフローチャートにおいてステップ６００７に進み、冗長化されている方のボードを故障と判定する。冗長化されているボードを故障と判定し、障害復旧処理を行うことで、復旧処理の通信への影響を抑えることができる。
【０１０９】
ＳＦＵ及びＰＰＵが冗長化されている場合（６００３３：有り、６００３５：有り）、又は、ＳＦＵ及びＰＰＵが冗長化されていない場合（６００３３：無し、６００３４：無し）、故障ボード切分けプログラム１０２２は、両側のボード共、両側のボード共冗長化されていない、又は、両側のボード共冗長化されていると判定する（６００３７）。故障ボード切分けプログラム１０２２は、図１３のフローチャートにおいて、運用／待機状態チェック（６００４）に進む。
【０１１０】
図１７は、運用／待機状態チェック（６００４）の例を示すフローチャートである。故障ボード切分けプログラム１０２２は、障害を検出したインタフェースに繋がるＳＦＵの運用／待機状態を、ＳＦＵ状態管理テーブル１０２７から得る（６００４１）。また、障害を検出したインタフェースに繋がるＰＰＵの運用／待機状態を、ＰＰＵ状態管理テーブル１０２８から得る（６００４２）。
【０１１１】
故障ボード切分けプログラム１０２２は、ＳＦＵの運用／待機状態とＰＰＵの運用／待機状態により、異なるステップに進む（６００４３、６００４４、６００４５）。
【０１１２】
ＳＦＵが待機状態でＰＰＵが運用状態である場合（６００４３：待機状態、６００４４：運用状態）、又は、ＳＦＵが運用状態でＰＰＵが待機状態の場合（６００４３：運用状態、６００４５：待機状態）、故障ボード切分けプログラム１０２２は、片方のボードだけ待機状態と判定する（６００４６）。故障ボード切分けプログラム１０２２は、図１３のフローチャートにおいて、待機状態のボードを故障と判定する（６００８）。待機状態ボードを故障と判定することで、障害復旧の通信への影響を抑えられる。
【０１１３】
ＳＦＵ及びＰＰＵが待機状態の場合（６００４３：待機状態、６００４４：待機状態）、又は、ＳＦＵ及びＰＰＵが運用状態の場合（６００４３：運用状態、６００４５：運用状態）、故障ボード切分けプログラム１０２２は、両側のボード共に待機状態、又は、両側のボード共に運用状態と判定する（６００４７）。故障ボード切分けプログラム１０２２は、図１３のフローチャートにおいて、ステップ６００９に進む。
【０１１４】
ステップ６００９において、故障ボード切分けプログラム１０２２は、上下関係において下位のボードを故障と判定する。上下関係は予め決められている。例えば、ＳＦＵとＰＰＵの間のインタフェース障害の場合、ＰＰＵが下位と決められており、故障ボード切分けプログラム１０２２は、ＰＰＵが故障と判定する。
【０１１５】
一組のＳＦＵとＰＰＵに着目した場合、上記故障ボードの判定は、図１３のフローチャートにおけるステップ６００１〜ステップ６００４の判定を順次実行する。つまり、ＢＣＵ１０は、ボード内故障検出器による故障検出、障害インタフェース数、冗長構成、待機／運用状態、ＳＦＵ／ＰＰＵ種別の順で、一組のＳＦＵとＰＰＵにおいて、故障ボード判定を行う。
【０１１６】
以下において、故障ボード切分けプログラム１０２２による判定結果が、図１３のフローチャートにおけるステップ６００６、６００７、６００８のそれぞれが示す判定結果になる例を示す。
【０１１７】
図１８及び図１９は、図１３のフローチャートにおけるステップ６００６（複数のインタフェースで障害を検出したボードを故障と判定）において、ＳＦＵを故障と判定する例を示す。図２０は、ＰＰＵを故障と判定する例を示す。これらの例において、ボード内故障が検出されず（６００１：ボード内故障が検出されなかった）、故障ボード切分けプログラム１０２２は、ステップ６００２（インタフェース障害チェック）に進んだものとする。
【０１１８】
図１９は、図１８の例において、図１５のフローチャートにおけるステップ６００２１により作成された障害情報管理テーブル１０２１０を示す。図１８において、ＳＦＵ２１と複数のＰＰＵ３０、３２との間のインタフェースで障害が検出されている。この場合、故障ボード切分けプログラム１０２２は、図１５のフローチャートにおけるステップ６００２７（複数のボード間インタフェースで障害検出）に進み、図１３のフローチャートのステップ６００６において、ＳＦＵ２１を故障と判定する。
【０１１９】
図２０は、図１５のフローチャートにおけるステップ６００２１により作成された障害情報管理テーブル１０２１０の他の例を示す。図２０では、ＰＰＵ３２と複数のＳＦＵとの間のインタフェースで障害が検出されており、故障ボード切分けプログラム１０２２は、図１５におけるステップ６００２７（複数のボード間インタフェースで障害検出）に進み、図１３のステップ６００６において、ＰＰＵ２を故障と判定する。
【０１２０】
次に、図２１及び図２２は、図１３のステップ６００７（冗長化されている方のボードを故障と判定）の例を示す。これら例においても、これらの例において、ボード内故障が検出されず（６００１：ボード内故障が検出されなかった）、故障ボード切分けプログラム１０２２は、ステップ６００２（インタフェース障害チェック）に進んだものとする。
【０１２１】
図２１及び図２２の例ではＳＦＵ２１とＰＰＵ３２の間のインタフェースでのみ障害が検出されている。故障ボード切分けプログラム１０２２は、図１３におけるステップ６００２（インタフェース障害チェック）において、一つのボード間インタフェースでのみ障害検出の方の分岐から、ステップ６００３（冗長化状態チェック）に進む。
【０１２２】
図２１の例では、ＳＦＵ２１が冗長化されており、ＰＰＵ３２が冗長化されていないので（図１６において、６００３３：有り、６００３５：無し）、故障ボード切分けプログラム１０２２は、ステップ６００３６（片方のボードだけ冗長化されている）に進み、さらに、図１３のステップ６００７において、冗長化されているＳＦＵ２１を故障と判定する。
【０１２３】
図２２の例では、ＳＦＵ２１が冗長化されてなく、ＰＰＵ３２が冗長化されているので（図１６において、６００３３：無し、６００３４：有り）、故障ボード切分けプログラム１０２２は、ステップ６００３６（片方のボードだけ冗長化されている）に進み、さらに、図１３のステップ６００７において、冗長化されているＰＰＵ３２を故障と判定する。
【０１２４】
次に、図２３及び図２４は、図１３のステップ６００８（待機状態の方のボードを故障と判定）の例を示す。図２１及び図２２の例では、ＳＦＵ２１とＰＰＵ３２の間のインタフェースで障害が検出されている。故障ボード切分けプログラム１０２２は、図１３のステップ６００２（インタフェース障害チェック）において、一つのボード間インタフェースでのみ障害検出の分岐から、ステップ６００３（冗長化状態チェック）に進む。
【０１２５】
故障ボード切分けプログラム１０２２は、図１３のステップ６００３（冗長化状態チェック）で、ＳＦＵ２１、ＰＰＵ３２の双方が冗長化されていると判定し、ステップ６００４（運用／待機状態チェック）に進む。
【０１２６】
図２３の例では、ＳＦＵ２１が待機状態で、ＰＰＵ３２が運用状態なので（図１７において、６００４３：待機状態、６００４４：運用状態）、故障ボード切分けプログラム１０２２は、図１７のステップ６００４６（片方のボードだけ待機状態）に分岐し、図１３のステップ６００８で待機状態のＳＦＵ２１を故障と判定する。
【０１２７】
図２４の例では、ＳＦＵ１が運用状態で、ＰＰＵ３２が待機状態なので（図１７において、６００４３：運用状態、６００４５：待機状態）、故障ボード切分けプログラム１０２２は、図１７のステップ６００４６（片方のボードだけ待機状態）に分岐し、図１３のステップ６００８で、待機状態のＰＰＵ３２を故障と判定する。
【０１２８】
障害復旧プログラム１０２３は、ボード間のインタフェースで障害を検出したときに、通信装置の管理用の端末に障害メッセージを表示してもよいし、ログメッセージとして装置内に障害メッセージを保存してもよい。
【０１２９】
図１３のフローチャートのステップ６００５、６００６、６００７、６００８、６００９の判定結果毎に、異なるメッセージを表示するようにすれば、オペレータは、判定結果をメッセージから知ることができる。メッセージは、故障と判定したボードと、当該判定の理由を示してもよい。
【０１３０】
判定理由は、例えば、当該ボードで内部障害が検出されたこと（６００５）、当該ボードにおいて複数インタフェースとの間の障害が検出されたこと（６００６）、当該ボードが冗長構成を有し、対向ボードが冗長構成を有していないこと（６００７）等である。
【０１３１】
図１２のフローチャートにおいて、障害復旧プログラム１０２３は、ループを１回周る毎に、障害メッセージを一つ表示する。障害メッセージが複数個表示された場合、オペレータは、図1２に示すループが複数回実行されたことが判る。この場合、障害要因は故障と判定した各ボード以外にあることが想定されるので、オペレータは、人手介入により復旧処理を行うべき障害であると判断できる。
【０１３２】
以上、本実施形態によれば、通信装置のボード間において障害が検出された場合に、誤ったボードが交換される可能性を低減できる。また、ボードの交換が通信に与える影響を低減することができる。
【０１３３】
なお、本発明は上記例に限定されるものではなく、様々な変形例が含まれる。本発明は、通信装置におけるボードの機能構成に限定されない。上記例は、下位ボードのＳＦＵと上位ボードのＰＰＵとの間のインタフェース障害において、故障ボードを判定している。本発明はこの例に限定されず、他の種類のボード間のインタフェース障害に適用することができる。本発明は、各ボードへの機能の実装方法に係わらず、異なるグループのボード間のインタフェースで障害を検出したときに、当該インタフェースのどちら側のボードの故障に起因するかを判定することができる。
【０１３４】
ＢＣＵの機能と、ＮＩＦ間のパケットを転送する機能を一つのボードに収容する構成においては、当該ボードを障害と判定した場合に、当該ボードと冗長を組んでいる別のボードに、ＢＣＵの機能として実現している装置内の管理情報を引き継ぐことが必要である。そのため、インタフェースで障害を検出した場合に、常にインタフェースの他方のボードが故障していると判定してもよい。
【０１３５】
インタフェース障害における故障ボード判定の上記例は、複数段階のステップ（図１３のフローチャートにおける６００１〜６００９）を含むが、これらの一部を省略してもよい。上記例において、コントローラであるＢＣＵ１０が故障ボードを判定したが、これと異なるボードが当該判定を行ってもよい。
【０１３６】
上記例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある例の構成の一部を他の例の構成に置き換えることが可能であり、また、ある例の構成に他の例の構成を加えることも可能である。また、各例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１３７】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の非一時的記録媒体に置くことができる。
【符号の説明】
【０１３８】
１０、１１  ＢＣＵ、１０１  プロセッサ、１０２  メモリ、２０〜２３  ＳＦＵ、３０〜３３  ＰＰＵ、４０〜４７  ＮＩＦ、２００  ＣＳＷ、２０１  ＳＦＵ内ＯＢＰ／ＣＬＫ部、３００  検索転送部、８００〜８０３、８１０〜８１３、８２０〜８２３、８３０〜８３３  ボード間インタフェース、２０１０  タイミング供給クロック、２０１１  クロックモニタ、２０１２  ＣＳＷ／検索転送部に電力を供給するオンボード電源、２０１３  ＳＦＵ内クロックに電力を供給するオンボード電源、２０１４  ＳＦＵ内電圧モニタ
【図１】
0006017383.tif 000002
【図２】
0006017383.tif 000003
【図３】
0006017383.tif 000004
【図４】
0006017383.tif 000005
【図５】
0006017383.tif 000006
【図６】
0006017383.tif 000007
【図７】
0006017383.tif 000008
【図８】
0006017383.tif 000009
【図９】
0006017383.tif 000010
【図１０】
0006017383.tif 000011
【図１１】
0006017383.tif 000012
【図１２】
0006017383.tif 000013
【図１３】
0006017383.tif 000014
【図１４】
0006017383.tif 000015
【図１５】
0006017383.tif 000016
【図１６】
0006017383.tif 000017
【図１７】
0006017383.tif 000018
【図１８】
0006017383.tif 000019
【図１９】
0006017383.tif 000020
【図２０】
0006017383.tif 000021
【図２１】
0006017383.tif 000022
【図２２】
0006017383.tif 000023
【図２３】
0006017383.tif 000024
【図２４】
0006017383.tif 000025