(57)【特許請求の範囲】
【請求項１】
パケットを転送するネットワーク装置であって、
制御装置と、ネットワークから入力されたパケットの転送処理を行う複数のプロセッサコアを有するネットワークプロセッサと、を備え、
前記制御装置は、
前記ネットワークプロセッサにヘルスチェックパケットを送信し、
前記各プロセッサコアのパケットの処理に関する統計情報及び前記ヘルスチェックパケットの処理に関する統計情報を監視情報として取得し、
前記取得した監視情報によって、前記各プロセッサコアの状態を監視することを特徴とするネットワーク装置。
【請求項２】
請求項１に記載のネットワーク装置であって、
前記ネットワークプロセッサは、前記制御装置が送信するパケットを所定のキューに格納することを特徴とするネットワーク装置。
【請求項３】
請求項２に記載のネットワーク装置であって、
前記ネットワークプロセッサは、
前記ヘルスチェックパケットを最低優先キューに格納し、
前記最低優先キューに格納されたヘルスチェックパケットを各プロセッサコアにバースト的に送信することを特徴とするネットワーク装置。
【請求項４】
請求項１に記載のネットワーク装置であって、
前記ネットワークプロセッサは、受信したヘルスチェックパケットに関する統計情報を更新し、受信したヘルスチェックパケットを廃棄することを特徴とするネットワーク装置。
【請求項５】
パケットを転送するネットワーク装置におけるプロセッサの監視方法であって、
前記ネットワーク装置は、制御装置と、ネットワークから入力されたパケットの転送処理を行う複数のプロセッサコアを有するネットワークプロセッサと、を有し、
前記方法は、
前記制御装置が、前記ネットワークプロセッサにヘルスチェックパケットを送信し、
前記制御装置が、前記各プロセッサコアのパケットの処理に関する統計情報及び前記ヘルスチェックパケットの処理に関する統計情報を監視情報として取得し、
前記制御装置が、前記取得した監視情報によって、前記各プロセッサコアの状態を監視することを特徴とする監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケットを転送するネットワーク装置に関する。
【背景技術】
【０００２】
近年、将来の機能拡張に対応するため、ネットワークプロセッサを搭載するネットワーク装置（ルータ、スイッチ）があり、ネットワークプロセッサにも複数個のプロセッサコアを有するマルチコアプロセッサが用いられる。特に、ユーザパケットを直接扱うパケット転送部においては、汎用プロセッサの機能の他に、イーサネット（イーサネットは登録商標）などのＩ／Ｆ、暗号機能、ハードウェアによるＬ２パーサを有するマルチコア・ネットワークプロセッサが用いられることがある。
【０００３】
また、ワイヤスピードを確保するために、入力されたパケットを各コアに振り分けるパケットスケジューラをハードウェアロジックのみで構成し、リソースのアイドル状態によって各プロセッサコアへのパケットの振り分けを判定するネットワークプロセッサがある。
【０００４】
本技術分野の背景技術として特開２０１２−８０４２６号公報（特許文献１）がある。特許文献１には、制御部と処理部とを備える通信装置が記載されており、前記制御部は、前記処理部に対して監視パケットを送信する監視パケット送信部と、前記監視パケットに対する応答を受信する監視パケット応答受信部と、前記監視パケット応答受信部が前記監視パケットに対する応答エラーを検知し、前記監視周期内に検知した前記応答エラーの数が閾値以上である場合に、前記処理部で障害が発生していることを検知する障害検知部と、を備え、前記処理部は、前記監視パケットを受信した場合に、前記制御部に対して応答を返す監視パケット応答部を備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−８０４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したネットワークプロセッサにおいて、プロセッサコアのサイレント故障を検出するためのヘルスチェック技術が重要である。また、ヘルスチェックにおいて、ユーザトラフィックが無い場合も考慮する必要がある。
【０００７】
前述した特許文献１に記載された技術では、ラウンドロビンによってパケットをプロセッサコアに割り当てる。このため、ヘルスチェックの対象となるプロセッサコアを指定することができないので、一部のプロセッサコアがヘルスチェックの対象にならない場合があった。また、ヘルスチェックパケットが返信されるかによって、プロセッサコアの障害を検出するので、ヘルスチェックパケットとユーザパケットとが混在した場合、障害を検出できないプロセッサコアが生じることがあった。
【０００８】
また、通常、パケットスケジューラはハードウェアロジックで構成されているので、プログラマブルでなく、ヘルスチェックパケットを所望のプロセッサコアに振り分ける機能を実装することは困難であった。このため、パケットスケジューラによらないで、全てのプロセッサコアにヘルスチェックパケットを振り分ける方法が必要となっている。
【０００９】
このように、従来技術では全てのプロセッサコアの死活監視を確実に実行することが困難であり、全てのコアの障害を確実に検出できるシンプルなヘルスチェック方法が求められている。
【課題を解決するための手段】
【００１０】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、パケットを転送するネットワーク装置であって、制御装置と、ネットワークから入力されたパケットの転送処理を行う複数のプロセッサコアを有するネットワークプロセッサと、を備え、前記制御装置は、前記ネットワークプロセッサにヘルスチェックパケットを送信し、前記各プロセッサコアのパケットの処理に関する統計情報及び前記ヘルスチェックパケットの処理に関する統計情報を監視情報として取得し、前記取得した監視情報によって、前記各プロセッサコアの状態を監視する。
【発明の効果】
【００１１】
本発明の代表的な実施の形態によれば、各コアの故障を的確に検出することができる。
前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施例のネットワーク装置の構成を示すブロック図である。
【図２】第１の実施例のヘルスチェックパケットの処理を説明する図である。
【図３】第１の実施例のヘルスチェックパケットのフレームフォーマットを説明する図である。
【図４】第１の実施例のネットワークプロセッサがヘルスチェックパケットを処理するフローチャートである。
【図５】第１の実施例のコアの障害検出・判定処理のフローチャートである。
【図６】本発明の第２の実施例のヘルスチェックパケットの処理を説明する図である。
【図７】第２の実施例のネットワークプロセッサがヘルスチェックパケットを処理するフローチャートである。
【図８】第２の実施例のネットワーク装置のヘルスチェックを説明する図である。
【図９】第２の実施例のネットワーク装置を含むネットワークにおけるヘルスチェックを説明する図である。
【発明を実施するための形態】
【００１３】
＜実施例１＞
図１は、本発明の第１の実施例のネットワーク装置の構成を示すブロック図である。
【００１４】
第１の実施例のネットワーク装置１は、制御部１００、転送制御部１１０、ネットワークプロセッサ１２０、１４０及びネットワーク回線ポート１５０を有する。
【００１５】
制御部１００は、制御用プロセッサ１０１、メモリ１０２、制御バスブリッジ１０３、制御バス１０４、メモリバス１０５及び装置内回線ポート１０６を有する。
【００１６】
制御用プロセッサ１０１は、メモリ１０２に格納されたプログラムを実行することによって、ネットワーク装置１の動作を制御する。
【００１７】
メモリ１０２は、メモリバス１０５を介して、制御用プロセッサ１０１と接続されている。メモリ１０２は、制御用プロセッサ１０１が実行するプログラム及び当該プログラムを実行する際に使用されるデータを格納する。例えば、メモリ１０２は、ヘルスチェックパケット送受信プログラム１０２１、ＮＰ内コア監視プログラム１０２２及び部分回復／部分縮退プログラム１０２３を格納する。また、メモリ１０２は、ヘルスチェックパケット宛先検索情報１０２４、ヘルスチェックパケットルーティング情報１０２５及び統計カウンタ情報テーブル１０２６を格納する。
【００１８】
メモリ１０２は、揮発性の記憶装置（例えば、ＤＲＡＭ）で構成されても、不揮発性の記憶装置（例えば、フラッシュメモリ）で構成されてもよい。すなわち、制御用プロセッサ１０１が実行するプログラムは、メモリ１０２の内部又は外部の不揮発性の記憶装置（フラッシュメモリ、磁気記憶装置など）から読み出されて、揮発性の記憶装置にロードされて、制御用プロセッサ１０１によって実行される。
【００１９】
制御用プロセッサ１０１が実行するプログラムは、ネットワークを介して又はリムーバブルメディア（フラッシュメモリ、ＣＤ−ＲＯＭなど）によって提供され、非一時的記憶媒体であるメモリ１０２に格納される。このため、ネットワーク装置１は、リムーバブルメディアを読み込むインタフェース（例えば、ＵＳＢポートなど）を有するとよい。
【００２０】
制御用プロセッサ１０１が所定のプログラムを実行することによって、制御部１００の機能が実装される。なお、ロジック回路による専用のＬＳＩによって制御部１００を構成してもよい。
【００２１】
ヘルスチェックパケット送受信プログラム１０２１は、プロセッサコア１２２の死活監視をするためのヘルスチェックパケットを生成し、生成したヘルスチェックパケットを所定時間（Ｔ）間隔でネットワークプロセッサ１２０に送信する。また、ヘルスチェックパケット送受信プログラム１０２１は、ネットワークプロセッサ１２０から返信されたヘルスチェックパケットを受信し、送信したヘルスチェックパケットと照合する。
【００２２】
ＮＰ内コア監視プログラム１０２２は、プロセッサコア１２２の動作状態を監視する。このため、ＮＰ内コア監視プログラム１０２２は、統計カウンタ１２１から計数値（例えば、プロセッサコア毎のパケットの処理数）を取得する。または、ＮＰ内コア監視プログラム１０２２は、ヘルスチェックパケット送受信プログラム１０２１が送信したヘルスチェックパケットの返信を照合する。ＮＰ内コア監視プログラム１０２２は、一つのプログラムで全てのプロセッサコア＃０〜＃ｎを監視しても、プログラム毎に動作する複数のスレッドによって各プロセッサコアを監視してもよい。ＮＰ内コア監視プログラム１０２２が実行する障害検出・判定処理の詳細は、図５を用いて後述する。
【００２３】
部分回復／部分縮退プログラム１０２３は、プロセッサコアの障害が検出された場合、障害の程度に応じてプロセッサコアを回復又は停止する。
【００２４】
ヘルスチェックパケット宛先検索情報１０２４は、ヘルスチェックパケットによって死活監視がされるプロセッサコアの情報（例えば、プロセッサコアの識別情報）を格納する。
【００２５】
ヘルスチェックパケットルーティング情報１０２５は、ヘルスチェックパケットによって死活監視がされるプロセッサコアの宛先（例えば、プロセッサコアの識別情報、装置内回線ポートの番号）を格納する。
【００２６】
統計カウンタ情報テーブル１０２６は、統計カウンタ１２１から読み出した計数値（例えば、プロセッサコア毎のパケットの処理数）を格納する。第１の実施例では、所定時間（Ｔ）毎の統計カウンタ１２２１の計数値を比較するため、統計カウンタ情報テーブル１０２６が１サイクル前の計数値を記憶する。
【００２７】
制御バスブリッジ１０３は、制御部１００内の制御バス１０４とネットワーク装置１内の制御バス１１５とを接続する。装置内制御バス１１５は、ネットワークプロセッサ１２０、１４０と接続されている。制御部１００は、装置内制御バス１１５を介して統計カウンタ１２１から計数値を取得する。
【００２８】
装置内回線ポート１０６は、他の回路（例えば、ネットワークプロセッサ１２０）と接続されている。制御部１００は、装置内回線ポート１０６を介してヘルスチェックパケットを送受信する。
【００２９】
転送制御部１１０は、ネットワーク装置１に入力されたパケットの転送先を決定する制御部であって、経路情報１１１を有する。経路情報１１１は、入力されたパケットを出力するポートを決定するために使用される情報で、ヘルスチェックパケットを転送するための出力ポートの情報も含む。
【００３０】
ネットワークプロセッサは、複数のネットワークプロセッサが実装されている。図１では、運用系ネットワークプロセッサ１２０及び待機系ネットワークプロセッサ１４０の二つのネットワークプロセッサを図示するが、二つより多いネットワークプロセッサを実装してもよい。
【００３１】
各ネットワークプロセッサは、同じ構成を有するので、ここでは、運用系ネットワークプロセッサ１２０の構成及び機能について説明し、待機系ネットワークプロセッサ１４０の説明は省略する。
【００３２】
ネットワークプロセッサ１２０は、統計カウンタ１２１、プロセッサコア１２２、宛先検索部１２３、コア振分部１２４、優先キュー１２５、キュー振分部１２６及び装置内回線ポート１２７を有する。
【００３３】
統計カウンタ１２１は、ネットワーク装置１に関する統計情報を計数するカウンタである。統計カウンタ１２１は、例えば、プロセッサコア毎のパケットの処理数や、プロセッサコア毎のヘルスチェックパケットの処理数を計数する。各プロセッサコア＃０〜＃ｎは、処理すべきパケットが入力されると、統計カウンタ１２１に割り当てられた所定のアドレスの値を加算するように統計カウンタ１２１に要求する。
【００３４】
プロセッサコア１２２は、複数のプロセッサコア＃０〜＃ｎを有する。各プロセッサコア＃０〜＃ｎがメモリ（図示省略）に格納されたプログラムを実行することによって、ネットワークプロセッサ１２０の機能が実装される。プロセッサコア１２２が実行するプログラムは、ネットワークを介して又はリムーバブルメディア（フラッシュメモリ、ＣＤ−ＲＯＭなど）によって提供され、非一時的記憶媒体であるメモリに格納される。
【００３５】
宛先検索部１２３は、ヘルスチェックパケット宛先検索情報１０２４及びヘルスチェックパケットルーティング情報１０２５を参照し、プロセッサコア１２２に入力されるパケットの宛先を検索し、入力されたパケットの出力先ポートを決定する。
【００３６】
具体的には、ヘルスチェックパケットと判定した場合に、宛先アドレスから自装置宛か他装置宛かを判定し、出力先ポ−トを決定する。
【００３７】
キュー振分部１２６は、ネットワーク回線ポート１５０及び装置内回線ポート１２７に入力されたパケットの優先度を所定の規則に従って決定し、決定された優先度毎に設けられたキューにパケットを振り分ける。例えば、キュー振分部１２６は、入力されたパケットに付されたイーサタイプに従ってヘルスチェックパケットを判定し、ヘルスチェックパケットを所定のキュー（例えば、第１の実施例では最低優先キュー、第２の実施例では最高優先キュー）に振り分ける。
【００３８】
また、キュー振分部１２６は、ネットワーク回線ポート１５０及び装置内回線ポート１２７に入力されたパケットの優先度を所定の規則に従って決定し、決定された優先度毎に設けられたキューにパケットを振り分ける。例えば、キュー振分部１２６は、入力されたユーザパケットの優先度を所定のルールに従って決定し、決定された優先度毎に設けられたキューにパケットを振り分ける。
【００３９】
優先キュー１２５は、複数の優先度を持つキューを有する。なお、優先度が高いキューからは単位時間に多数のパケットが取り出され、優先度が低いキューからは単位時間に少数のパケットが取り出される。
【００４０】
コア振分部１２４は、優先キュー１２５に格納されたパケットを各プロセッサコア＃０〜＃ｎに振り分ける。特に、コア振分部１２４は、ヘルスチェックパケットを全てのプロセッサコアに振り分ける。例えば、コア振分部１２４は、ラウンドロビン、プロセッサコアの負荷、パケットの種類、パケット内の情報などの振り分けルールに従ってパケットを振り分ける。
【００４１】
装置内回線ポート１２７は、他の回路（例えば、制御部１００）と接続されており、装置内回線ポート１２７を介してヘルスチェックパケットを送受信する。
【００４２】
なお、宛先検索部１２３、優先キュー１２５、キュー振分部１２６及び装置内回線ポート１２７は、第１の実施例では必要なく、後述する第２の実施例で必要な構成である。
【００４３】
ネットワーク回線ポート１５０は、パケットがネットワーク装置１に入力され、パケットがネットワーク装置１から出力されるインターフェースであり、他の装置から転送されるユーザパケット及びネットワーク装置間で転送されるヘルスチェックパケットを送受信する。
【００４４】
図２は、第１の実施例のヘルスチェックパケットの処理を説明する図である。
【００４５】
制御部１００のヘルスチェックパケット送受信プログラム１０２１は、ヘルスチェックパケットを所定時間（Ｔ）間隔でプロセッサコア１２２に送信する。図中、ヘルスチェックパケットは「Ｈ」の符号で表し、ユーザパケットは「Ｐ」の符号で表す。プロセッサコア１２２が制御部１００に返信するヘルスチェックパケットは、装置内転送用の宛先がネットワークプロセッサ１２０で、装置内転送用の送信元が制御部１００である。
【００４６】
ヘルスチェックパケット送受信プログラム１０２１が送信したヘルスチェックパケットは、装置内回線ポート１０６、１２７を経由して、入力キューの最低優先キュー１３１１に入力される。これは、ヘルスチェックパケットによって、ユーザデータの転送に遅延などの影響が生じないように、ヘルスチェックパケットを低い優先度で処理するためである。なお、転送部は、ネットワークプロセッサ１２０が実行するプログラムによって実装され、ネットワーク装置１内のパケットの転送先を決定する。
【００４７】
第１の実施例では、後述する第２の実施例と異なり、ヘルスチェックパケットは、装置内回線ポート１２７から入力される。よって、ヘルスチェックパケットとネットワーク回線ポート１５０から入力されるユーザパケットとを容易に識別することができる。このため、第１の実施例のヘルスチェックパケットは、装置内転送用の宛先及び送信元が制御部１００又はネットワークプロセッサ１２０となっているだけでよく、その他にヘルスチェックパケットを識別するための情報は含む特殊なヘルスチェックパケットを使用する必要がない。
【００４８】
コア振分部１２４は、最低優先キュー１３１１に所定数（例えば、コアの数と同数）のヘルスチェックパケットが格納された後に、Ｈ／Ｗパケットスケジューラ１２８にヘルスチェックパケットをバースト送信する。
【００４９】
Ｈ／Ｗパケットスケジューラ１２８は、コア振分部１２４から送られたヘルスチェックパケットを、各プロセッサコア＃０〜＃ｎに送る。なお、プロセッサコア１２２で動作するプログラムによって、ヘルスチェックパケットがプロセッサコア１２２にバースト送信されたと同じ状態を作ることもできる。
【００５０】
各プロセッサコア＃０〜＃ｎは、受信したパケットがヘルスチェックパケットであれば、制御部１００にヘルスチェックパケットを返信する。このプロセッサコアが実行する処理の詳細は、図４を用いて後述する。各プロセッサコア＃０〜＃ｎは、制御部１００に返信するヘルスチェックパケットをＨ／Ｗパケットスケジューラ１２８に送ることによって、ヘルスチェックパケットを制御部１００に返信する。
【００５１】
プロセッサコア１２２は、ヘルスチェックパケットの出力先ポートを判定するために、宛先アドレスを参照するが、宛先アドレス及び送信元アドレスは変更しない。なお、第一の実施例では必要ないが、他装置発のヘルスチェックパケットを返信する際は、宛先アドレスと送信元アドレスとを入れ替える必要がある。(アドレスの入れ替えは、制御部１００にて行う)。
【００５２】
Ｈ／Ｗパケットスケジューラ１２８は、プロセッサコア１２２から送られたヘルスチェックパケットを、装置内回線ポート１２７に対応する出力ポートキュー１３３１に格納する。出力ポートキュー１３３１に格納されたヘルスチェックパケットは、装置内回線ポート１２７、１０６を経由して、制御部１００に送られる。
【００５３】
第１の実施例では、統計カウンタ１２１は、プロセッサコア毎のパケットの処理数を計数している。ＮＰ内コア監視プログラム１０２２は、ヘルスチェックパケットの送信周期（Ｔ）毎に、プロセッサコア毎のパケットの処理数を統計カウンタ１２１から取得する。そして、取得したパケットの処理数から、各プロセッサコアが動作しているか、障害が生じているかを判定する。すなわち、所定時間での統計カウンタの計数値の増加によって、プロセッサコアの障害を監視する（所定時間でパケット処理数が増加していないプロセッサコアを障害と判定する）。障害検出・判定処理の詳細は、図５を用いて後述する。
【００５４】
なお、ＮＰ内コア監視プログラム１０２２は、統計カウンタ１２１から取得したパケットの処理数と各プロセッサコアから返信されるヘルスチェックパケットを併用してプロセッサコアの障害を検出してもよい。第１の実施例において、返信されるヘルスチェックパケットを用いた判定より、統計カウンタ１２１を用いた判定の方が、高精度で障害を判定することができる。これは、ヘルスチェックパケットの処理期間中に、ネットワーク装置１がオーバーサブスクリプション状態になることがあり、ヘルスチェックパケットが一部のプロセッサコアに振り分けられない場合があるからである。
【００５５】
ＮＰ内コア監視プログラム１０２２が、統計カウンタ１２１から取得したパケットの処理数を用いてプロセッサコアの障害を検出する場合、プロセッサコア１２２は、統計カウンタ１２１を更新すれば、制御部１００にヘルスチェックパケットを返信しなくてもよい。
【００５６】
次に、ヘルスチェックパケットを各プロセッサコア＃０〜＃ｎに振り分ける方法の変形例を説明する。以下に説明する変形例では、最低優先キュー１３１１に所定数のヘルスチェックパケットが格納された後に、ヘルスチェックパケットを各コアに送るのではなく、各プロセッサコア内でヘルスチェックパケットの処理を遅延させることによって、ヘルスチェックパケットを全プロセッサコアに送る。
【００５７】
すなわち、Ｈ／Ｗパケットスケジューラ１２８は、プロセッサコアがパケットを処理中である場合、新たにパケットを送らない。このため、各プロセッサコア内でヘルスチェックパケットの処理時間をｎ倍（ｎはプロセッサコアの数）に延ばすことによって、空いているプロセッサコアにヘルスチェックパケットが送られることから、ヘルスチェックパケットを全プロセッサコアに送ることができる。
【００５８】
なお、変形例において、ヘルスチェックパケットを空きプロセッサコア１２２に送るための特別なキュー（例えば、ペンディングキュー）を設けてもよい。ヘルスチェックパケットのキューとユーザパケットのキューとを分離することによって、ヘルスチェックパケットとユーザパケットとを異なるタイミングでプロセッサコアに送ることができる。
【００５９】
この変形例では、ユーザパケットが入力されていない状態において、ヘルスチェックパケットが全プロセッサコアに振り分けられる。一方、ユーザパケットが入力されている状態において、ユーザパケット及びヘルスチェックパケットのいずれかが、各プロセッサコアに入力される。全プロセッサコアがヘルスチェックパケットを処理中に、ネットワーク装置１がオーバーサブスクリプション状態になることがある。
【００６０】
また、各プロセッサコアは、ユーザパケットが送られた場合、ヘルスチェックパケットの処理を中止し、処理中のヘルスチェックパケットを廃棄してもよい。これは、本実施例のヘルスチェックがプロセッサコアが動作しているかを確認するためのものであり、ヘルスチェックパケットが正常に処理されなくても、ユーザパケットが処理されれば、プロセッサコアは動作しているからである。すなわち、プロセッサコアがパケットを処理する時間より、全プロセッサコア分のヘルスチェックパケットを入力する時間の方が短ければ、全てのプロセッサコアにパケットを振り分けることができる。
【００６１】
また、制御部１００が統計カウンタ１２１の計数値によって、各プロセッサコアの死活監視をする場合、各プロセッサコアは、統計カウンタ１２１の計数値を更新すれば、ヘルスチェックパケットの処理を中止し（又は、処理をすることなく）、処理中のヘルスチェックパケットを廃棄してもよい。ヘルスチェックパケットを廃棄することによって、ヘルスチェックパケットを処理するために、プロセッサコアのリソースを消費することがない。
【００６２】
図３は、第１の実施例のヘルスチェックパケットのフレームフォーマットを説明する図である。
【００６３】
ヘルスチェックパケットは、ネットワーク装置１内で制御部１００とプロセッサコア１２２との間で送受信されるパケットであり、宛先アドレス３０１、送信元アドレス３０２、イーサタイプ３０３、ペイロード３０４及び誤り訂正符号３０５を含む。
【００６４】
宛先アドレス３０１及び送信元アドレス３０２は、ヘルスチェックパケットの宛先の装置及び送信元の装置であり、本実施例では制御部１００及び各プロセッサコア１２２である。ネットワークプロセッサ１２０は、宛先ＭＡＣアドレスを用いてパケットを出力するポートを決定する。
【００６５】
イーサタイプ３０３は、上位層のプロトコルを識別するために使用されるフィールドである。第２の実施例において、ヘルスチェックパケットを識別するためのコードが格納するためにイーサタイプ３０３を用いる。例えば、ヘルスチェックパケットを識別するために、ＩＥＥＥ８０２に定義された以外の番号（例えば、０ｘ９９９９）を用いることができる。なお、ヘルスチェックパケットを識別するためにイーサタイプを用いず、ヘルスチェックパケット専用に定められたＩＰアドレスやＶＬＡＮ−ＩＤを用いてもよい。
【００６６】
ペイロード３０４は、通常はユーザデータを格納するが、第２の実施例のヘルスチェックパケットは、ペイロード内の所定位置（例えば、先頭の４バイト）にヘルスチェックの対象となるプロセッサコアの番号を格納する。
【００６７】
図４は、第１の実施例のネットワークプロセッサ１２０がヘルスチェックパケットを処理するフローチャートである。
【００６８】
プロセッサコア１２２は、パケットを受信すると、統計カウンタ１２１に格納された統計情報（カウント値）を更新する（Ｓ１０１）。具体的には、プロセッサコア毎に処理したパケット数（ヘルスチェックパケット数とユーザパケット数との和）を更新する。
【００６９】
なお、プロセッサコア１２２は、パケット受信時に統計カウンタ１２１を更新せず、パケットの処理完了時に統計カウンタ１２１を更新してもよい。また、受信した（処理した）パケットがヘルスチェックパケットである場合に統計カウンタ１２１を更新してもよい。
【００７０】
次に、プロセッサコア１２２は、受信したパケットがヘルスチェックパケットであるかを判定する（Ｓ１０２）。受信したパケットがヘルスチェックパケットであれば、ヘルスチェックパケットを装置内回線ポート１２７から送信する（Ｓ１０３）。
【００７１】
一方、受信したパケットがヘルスチェックパケットでなければ（ユーザパケットであれば）、当該ユーザパケットの宛先に対応するネットワーク回線ポート１５０からユーザパケットを送信する（Ｓ１０４）。
【００７２】
このように、プロセッサコア１２２は、処理すべきユーザパケットがない場合も、所定時間間隔で送信されるヘルスチェックパケットを処理している。
【００７３】
図５は、第１の実施例のコアの障害検出・判定処理のフローチャートである。障害検出・判定処理は、制御部１００の制御用プロセッサ１０１によって実行される。
【００７４】
制御用プロセッサ１０１は、ヘルスチェックパケット送受信プログラム１０２１によって、ヘルスチェックパケットを所定時間（Ｔ）間隔でプロセッサコア１２２内の各コアに送信する。そして、ＮＰ内コア監視プログラム１０２２は、各プロセッサコア１２２の障害を判定する（Ｓ１１１）。具体的には、所定時間間隔で統計カウンタ１２１から受信パケット数の計数値を取得し、統計カウンタ情報テーブル１０２６に格納された計数値と比較し、パケット数が変化しているか否かを判定する（Ｓ１１２）。その結果、前回取得したパケット数からパケット数が増加している場合、当該プロセッサコアは動作していると判定し、ステップＳ１１１に戻る。一方、前回取得したパケット数から増加していない場合、障害であると判定し、ステップＳ１１３に進む。
【００７５】
ステップＳ１１３では、３回目連続して当該コアの処理パケット数が増加しているかを判定する。その結果、３回連続して当該コアの処理パケット数が増加していない場合、ステップＳ１１５に進み、部分回復／部分縮退プログラム１０２３を起動し、部分縮退処理を実行する。一方、当該コアの受信パケット数が増加していない回数が３回連続まで至っていない場合、ステップＳ１１４に進み、部分回復／部分縮退プログラム１０２３を起動し、部分回復処理を実行する。
【００７６】
部分回復処理（Ｓ１１４）では、コア振分部１２４がパケットを振り分ける対象から当該障害が検出されたコアを除外することによって、当該コアを切り離す。その後、制御部１００は、当該コアをリセットし、初期設定をして、プログラムを再ロードし、コアの動作を再開する。その後、コア振分部１２４がパケットを振り分ける対象から当該コアを戻し、当該コアを組み込む。このようにして、部分回復処理によって、障害が検出されたコアを再起動することができる。
【００７７】
また、部分縮退処理（Ｓ１１５）では、コア振分部１２４がパケットを振り分ける対象から当該障害が検出されたコアを除外することによって、当該コアを切り離す。その後、制御部１００は、当該コアをリセットし、コアの動作を停止する。なお、部分縮退処理によって動作を停止したプロセッサコアの数によって、ネットワーク装置１の動作を停止する閾値を設けてもよい。すなわち、部分縮退処理によってプロセッサコアが動作を停止し、ネットワーク装置の処理能力が低下した場合、ネットワーク装置の動作を停止する。
【００７８】
すなわち、制御部１００は一つのプロセッサコアのパケットカウンタの値が３回連続して増加していない（所定時間（４Ｔ）内にパケットカウンタが増加していない）場合、障害であると判定し、当該プロセッサコアを停止する。一方、所定時間（４Ｔ）内で１回でもパケットカウンタの値が増加すれば、正常と判定し、当該プロセッサコアを再起動する。
【００７９】
以上に説明したように、本発明の第１の実施例では、全てのプロセッサコアにパケット（ユーザパケット又はヘルスチェックパケット）を振り分け、各プロセッサコアのパケットの処理状況を監視するので、全てのコアの死活監視を的確かつ迅速にすることができる。このため、部分縮退処理及び部分回復処理が迅速に行えるため、装置の可用性を向上することができる。
【００８０】
また、ネットワークプロセッサ１２０は、制御部１００から送信されたヘルスチェックパケットを所定のキューに格納するので、ヘルスチェックパケットとユーザパケットとを異なるルールで処理することができる。
【００８１】
特に、ネットワークプロセッサ１２０は、ヘルスチェックパケットを最低優先キュー１３１１に格納し、各プロセッサコアにバースト送信するので、全てのプロセッサコアに確実にヘルスチェックパケットを振り分けることができる。
【００８２】
また、制御部１００は、各プロセッサコアのヘルスチェックパケットの処理数の統計情報によって、各プロセッサコアの死活監視をするので、ヘルスチェックパケットが一部のプロセッサコアに振り分けられない場合でもプロセッサコアの障害を的確に判定することができる。
【００８３】
また、ネットワークプロセッサ１２０は、受信したヘルスチェックパケットの統計情報を更新し、受信したヘルスチェックパケットを廃棄するので、ヘルスチェックパケットの処理のためにプロセッサコアのリソースを消費を抑制し、ユーザパケットの処理の遅延を抑制することができる。
【００８４】
＜実施例２＞
次に、本発明の第２の実施例について説明する。
【００８５】
第２の実施例では、前述した第１の実施例と異なり、制御部１００が、ヘルスチェックパケットを処理すべきプロセッサコアを決定し、プロセッサコアからヘルスチェックパケットが返信されるかによってプロセッサコアの障害を判定する。
【００８６】
なお、第２の実施例は、図８に示すように、１台のネットワーク装置内でのプロセッサコアの死活監視に適用できるが、図９に示すように、１台のネットワーク装置が複数のネットワーク装置のプロセッサコアの死活監視をする場合にも適用できる。
【００８７】
図６は、第２の実施例のヘルスチェックパケットの処理を説明する図である。
【００８８】
制御部１００のヘルスチェックパケット送受信プログラム１０２１は、ヘルスチェックパケットを所定時間（Ｔ）間隔でプロセッサコア１２２に送信する。前述したように、第２の実施例では、ヘルスチェックパケット送受信プログラム１０２１が、ヘルスチェックパケットを処理すべきプロセッサコアを決定し、ヘルスチェックパケットの種別及びヘルスチェックパケットを処理すべきプロセッサコアの番号をヘルスチェックパケットに含める。
【００８９】
第２の実施例では、前述した第１の実施例と異なり、ヘルスチェックパケットは、装置内回線ポート１２７及びネットワーク回線ポート１５０から入力される。このため、パケットが入力されるポートによって、ユーザパケットとヘルスチェックパケットとを識別することができない。このため、ヘルスチェックパケットを識別するための識別情報を付す。
【００９０】
例えば、図中、ヘルスチェックパケットは「Ｈ」の符号で表し、ユーザパケットは「Ｐ」の符号で表す。ヘルスチェックパケットの数字の一桁目はヘルスチェックパケットの種別であり、二桁目の数字はヘルスチェックパケットを処理すべきプロセッサコアの番号である。
【００９１】
例えば、第２の実施例では、ヘルスチェックパケットの種別は下記の４種類が設定される。
タイプ０：当該装置発−当該装置宛（当該ネットワーク装置がＭａｓｔｅｒかつＴａｒｇｅｔである）
タイプ１：当該装置発−他装置宛（当該ネットワーク装置がＭａｓｔｅｒである）
タイプ２：他装置発−当該装置宛（当該ネットワーク装置がＴａｒｇｅｔである）
タイプ３：他装置発−他装置宛（当該ネットワーク装置がＴｒａｎｓｉｔである）
【００９２】
上記の種別は、ヘルスチェックパケットのフレームフォーマット内に特別なフィールドを設けて種別を定義するものではなく、ヘルスチェックパケットが各ネットワーク装置を転送される過程において、相対的に変化するものである。
【００９３】
なお、宛先アドレス、送信元アドレスとの関係は、以下となる。
タイプ０では、宛先は自装置アドレス、送信元は自装置アドレス、
タイプ１では、宛先は他装置アドレス、送信元は自装置アドレス、
タイプ２では、宛先は自装置アドレス、送信元は他装置アドレス
タイプ３では、宛先は他装置アドレス、送信元は他装置アドレス（宛先とは違うアドレス）。
【００９４】
ヘルスチェックパケット送受信プログラム１０２１が送信したヘルスチェックパケットは、装置内回線ポート１０６、１２７を経由して、転送部の入力キュー１３４１に入力される。また、第２の実施例では、他のネットワーク装置が送信したヘルスチェックパケットが、ネットワーク回線ポート１５０を経由して、転送部の入力キュー１３４２に入力される。
【００９５】
キュー振分部１２６は、入力キュー１３４１、１３４２に格納されたパケットのイーサタイプ３０３を読み出して、入力キュー１３４１、１３４２に格納されたパケットがヘルスチェックパケットであるかを判定する。そして、キュー振分部１２６は、入力キュー１３４１、１３４２に格納されたパケットがヘルスチェックパケットであれば、入力キュー１３４１、１３４２に格納されたヘルスチェックパケットを優先キュー１２５の最高優先キューに格納する。これは、ヘルスチェックパケットが廃棄され障害と判定されることを避けるためである。しかし、プロセッサコアがヘルスチェックパケットを優先して処理すると、ユーザパケットの処理が遅延する可能性がある。このため、優先キュー１２５が、プロセッサコア毎のシェーピング機能を有し、所定レートを超えるパケットがプロセッサコアに入力されないように制御してもよい。この場合、ヘルスチェックパケットの処理が遅延して、プロセッサコアが障害と判定されないレートを設定するとよい。
【００９６】
なお、第２の実施例においても、前述した第１の実施例のように、ヘルスチェックパケットを最低優先キューに格納し、プロセッサコア毎の統計情報によってプロセッサコアの死活監視を行ってもよい。
【００９７】
コア振分部１２４は、優先キュー１２５に格納されたパケットを各キューの優先度に応じて読み出して、Ｈ／Ｗパケットスケジューラ１２８に送る。
【００９８】
Ｈ／Ｗパケットスケジューラ１２８は、コア振分部１２４から送られたヘルスチェックパケットのペイロード３０４からヘルスチェックの対象となるプロセッサコアの番号を読み出して、ヘルスチェックパケットを処理すべきプロセッサコアを特定し、特定されたプロセッサコアにヘルスチェックパケットを送る。
【００９９】
宛先検索部１２３は、プロセッサコア１２２が受信したヘルスチェックパケットの宛先を検索する。
【０１００】
各プロセッサコア＃０〜＃ｎは、パケットタイプからパケットのタイプ、すなわち、ヘルスチェックパケットの宛先を判定し、受信したヘルスチェックパケットが自宛であれば、ヘルスチェックパケットを装置内回線ポート１２７から制御部１００に返信する。制御部１００は、受信したヘルスチェックパケットの送信アドレスから、自装置発のヘルスチェックパケットか他装置発のヘルスチェックパケットかを判定し、他装置発のヘルスチェックパケットである場合、宛先アドレスと送信元アドレスを入れ替えることによって、他のパケット転送装置に返信するヘルスチェックパケットを生成する。なお、自装置発のヘルスチェックパケットである場合、返信するヘルスチェックパケットを生成する必要は無い。
【０１０１】
また、他宛であれば、ヘルスチェックパケットを転送する。このプロセッサコアが実行する処理の詳細は、図７を用いて後述する。各プロセッサコア＃０〜＃ｎは、受信したヘルスチェックパケットをＨ／Ｗパケットスケジューラ１２８に送る。
【０１０２】
Ｈ／Ｗパケットスケジューラ１２８は、プロセッサコア１２２から送られたヘルスチェックパケットを、その宛先に応じて、装置内回線ポート１２７に対応する出力ポートキュー１３３１又はネットワーク回線ポート１５０に対応する出力ポートキュー１３３２に格納する。
【０１０３】
出力ポートキュー１３３１に格納されたヘルスチェックパケットは、装置内回線ポート１２７、１０６を経由して、制御部１００に送られる。出力ポートキュー１３３２に格納されたヘルスチェックパケットは、ネットワーク回線ポート１５０から、他のネットワーク装置に送られる。
【０１０４】
ＮＰ内コア監視プログラム１０２２は、各プロセッサコアからヘルスチェックパケットが返信されるかによって、プロセッサコアの障害を検出する。すなわち、ＮＰ内コア監視プログラム１０２２は、ヘルスチェックパケットを返信しないプロセッサコアを障害と判定する。
【０１０５】
なお、ＮＰ内コア監視プログラム１０２２は、各プロセッサコアから返信されるヘルスチェックパケットと統計カウンタ１２１から取得したパケットの処理数を併用してプロセッサコアの障害を検出してもよい。この場合、統計カウンタ１２１は、プロセッサコア毎のヘルスパケットの処理数を計数する。ＮＰ内コア監視プログラム１０２２は、ヘルスチェックパケットの送信周期（Ｔ）毎に、プロセッサコア毎のヘルスチェックパケットの処理数を統計カウンタ１２１から取得する。そして、取得したヘルスチェックパケットの処理数から、各プロセッサコアが動作しているか、障害が生じているかを判定する。すなわち、所定時間での統計カウンタの増加によって、プロセッサコアの障害を監視する（所定時間でヘルスチェックパケットの処理数が増加していないプロセッサコアを障害と判定する）。
【０１０６】
例えば、図９に示すように、ネットワークを経由して他のネットワーク装置のプロセッサコアの死活監視をする場合、各プロセッサコアから返信されるヘルスチェックパケットと統計カウンタ１２１から取得したパケットの処理数を併用すると、他のネットワーク装置とネットワークとを同時に監視することができる。
【０１０７】
図７は、第２の実施例のネットワークプロセッサ１２０がヘルスチェックパケットを処理するフローチャートである。
【０１０８】
プロセッサコア１２２は、受信したパケットがヘルスチェックパケットであるかを判定する（Ｓ１２１）。受信したパケットがヘルスチェックパケットであれば、統計カウンタ１２１に格納された統計情報（カウント値）を更新する（Ｓ１２２）。具体的には、プロセッサコア毎に処理したヘルスチェックパケットの数を更新する。
【０１０９】
なお、プロセッサコア１２２は、パケット受信時に統計カウンタ１２１を更新せず、パケットの処理完了時に統計カウンタ１２１を更新してもよい。
【０１１０】
その後、宛先検索部１２３は、宛先アドレス３０１を参照して、受信したヘルスチェックパケットの宛先を判定する（Ｓ１２３）。
【０１１１】
プロセッサコア１２２は、検索された宛先が自装置であれば（Ｓ１２４でＹｅｓ）、ヘルスチェックパケットを装置内回線ポート１２７から送信する（Ｓ１２５）。
【０１１２】
なお、制御部１００は、受信したヘルスチェックパケットが、自装置（制御部１００）から送信されたヘルスチェックパケットであれば、ヘルスチェックパケットの種別がタイプ０に該当するため、返信するヘルスチェックパケットを生成する必要は無い。受信したヘルスチェックパケットが他のパケット転送装置から送信されたヘルスチェックパケットであれば、ヘルスチェックパケットの種別がタイプ２に該当するため、他のパケット転送装置に返信するヘルスチェックパケット（宛先アドレスと送信元アドレスを入れ替えたもの）を生成する。
【０１１３】
一方、プロセッサコア１２２は、検索された宛先が他のネットワーク装置であれば（Ｓ１２４でＮｏ）、ヘルスチェックパケットの種別がタイプ１又はタイプ３に該当するため、受信したヘルスチェックパケットを、当該他のネットワーク装置に対応するネットワーク回線ポート１５０から送信する（Ｓ１２６）。
【０１１４】
一方、ステップＳ１２１で受信したパケットがヘルスチェックパケットではない（ユーザパケットである）と判定されれば、当該ユーザパケットの宛先に対応するネットワーク回線ポート１５０からユーザパケットを送信する（Ｓ１２７）。
【０１１５】
このように、プロセッサコア１２２は、所定時間間隔で送信されるヘルスチェックパケットを処理している。
【０１１６】
第２の実施例の障害検出・判定処理は、前述した第１の実施例の障害検出・判定処理（図５）を採用することができる。また、第２の実施例では、以下に説明する障害検出・判定処理の変形例を採用してもよい。第２の実施例の障害検出・判定処理の変形例では、前述した第１の実施例の障害検出・判定処理とステップＳ１１１〜Ｓ１１３の処理が異なる。
【０１１７】
なお、第１の実施例の障害検出・判定処理は、第２の実施例において１台のネットワーク装置が自装置のプロセッサコアの死活監視をする場合（図８）に適用できるが、ネットワークを経由して他のネットワーク装置のプロセッサコアの死活監視をする場合（図９）に適用できない。ネットワークを経由して他のネットワーク装置のプロセッサコアの死活監視をする場合は、以下に説明する変形例の障害検出・判定処理を適用することができる。
【０１１８】
図５を用いて、第２の実施例の障害検出・判定処理の変形例について説明する。
【０１１９】
まず、ＮＰ内コア監視プログラム１０２２は、各プロセッサコア１２２の障害を判定する（Ｓ１１１）。具体的には、プロセッサコア１２２からヘルスチェックパケットが返信されたか否かを判定する（Ｓ１１２）。その結果、ヘルスチェックパケットを返信したプロセッサコアは障害でないと判定し、ステップＳ１１１に戻る。一方、所定時間経ってもヘルスチェックパケットが返信されない場合、当該プロセッサコアは障害であると判定し、ステップＳ１１３に進む。
【０１２０】
ステップＳ１１３では、所定時間内で３回目の障害が検出されたかを判定する。その結果、３回連続してヘルスチェックパケットが返信されない場合、ステップＳ１１５に進み、部分回復／部分縮退プログラム１０２３を起動し、部分縮退処理を実行する。一方、ヘルスチェックパケットが返信されない回数が３回連続まで至っていない場合、ステップＳ１１４に進み、部分回復／部分縮退プログラム１０２３を起動し、部分回復処理を実行する。
【０１２１】
すなわち、第２の実施例の障害検出・判定処理の変形例では、制御部１００は、一つのプロセッサコアから３回連続してヘルスチェックパケットが返信されるかを判定し、一つのプロセッサコアから３回連続してヘルスチェックパケットが返信されない（所定時間（４Ｔ）にヘルスチェックパケットが返信されない）場合、障害であると判定し、当該プロセッサコアを停止する。一方、所定時間（４Ｔ）内で１回でも当該プロセッサコアからヘルスチェックパケットが返信されれば、正常と判定し、当該プロセッサコアを再起動する。
【０１２２】
図８は、第２の実施例のネットワーク装置１のヘルスチェックを説明する図である。
【０１２３】
制御部１００（ヘルスチェックパケット送受信プログラム１０２１）は、宛先アドレスが自装置宛のヘルスチェックパケットを生成し、装置内回線ポート１０６、１２７を経由して、ネットワークプロセッサ１２０に送る。
【０１２４】
ネットワークプロセッサ１２０の宛先検索部１２３は、ヘルスチェックパケットの宛先アドレス３０１が自装置のＭＡＣアドレスなので、このヘルスチェックパケットは制御部１００に返信するものと判定する。そして、プロセッサコア１２２は、ヘルスチェックパケットを制御部１００に送る。
【０１２５】
制御部１００（ＮＰ内コア監視プログラム１０２２）は、返信されたヘルスチェックパケットを受信することによって、プロセッサコア１２２の死活監視をする。
【０１２６】
図９は、第２の実施例のネットワーク装置を含むネットワークにおけるヘルスチェックを説明する図である。
【０１２７】
ネットワーク装置＃１（１１）、ネットワーク装置＃２（１２）及びネットワーク装置＃３（１３）が接続され、ユーザパケットを転送している。
【０１２８】
プロセッサコアの死活監視において、ネットワーク装置＃１（１１）がマスター装置として機能し、ヘルスチェックパケットを生成し、ターゲット装置宛に送信する。ネットワーク装置＃２（１２）は、トランジット装置として機能し、ネットワーク装置＃１（１１）から送信されたヘルスチェックパケットをターゲット装置宛に転送する。ネットワーク装置＃３（１３）は、ターゲット装置として機能し、ネットワーク装置＃１（１１）から送信されたヘルスチェックパケットを処理する。
【０１２９】
具体的には、マスター装置であるネットワーク装置＃１（１１）のネットワークプロセッサ１２０は、ヘルスチェックパケットの宛先アドレス３０１が他のネットワーク装置なので、ヘルスチェックパケットをネットワーク回線ポート１５０から出力する。次の、トランジット装置であるネットワーク装置＃２（１２）のネットワークプロセッサ１２０は、ヘルスチェックパケットの宛先アドレス３０１が他のネットワーク装置なので、ヘルスチェックパケットをネットワーク回線ポート１５０から出力する。
【０１３０】
次の、ターゲット装置であるネットワーク装置＃３（１３）のネットワークプロセッサ１２０は、ヘルスチェックパケットの宛先アドレス３０１が自装置なので、ヘルスチェックパケットを制御部１００に転送する。ネットワーク装置＃３（１３）の制御部１００は、ヘルスチェックパケットの宛先アドレスと送信元アドレスとを入れ替えたヘルスチェックパケットを生成し、ネットワークプロセッサ１２０に送る。ネットワークプロセッサ１２０は、返信用のヘルスチェックパケットの宛先アドレス３０１が他のネットワーク装置なので、ヘルスチェックパケットをネットワーク回線ポート１５０から出力する。
【０１３１】
なお、制御部１００が返信用のヘルスチェックパケットを生成せず、ネットワークプロセッサ１２０が生成してもよい。
【０１３２】
次の、トランジット装置であるネットワーク装置＃２（１２）のネットワークプロセッサ１２０は、ヘルスチェックパケットの宛先アドレス３０１が他のネットワーク装置なので、ヘルスチェックパケットをネットワーク回線ポート１５０から出力する。次の、マスター装置であるネットワーク装置＃１（１１）のネットワークプロセッサ１２０は、ヘルスチェックパケットの宛先アドレス３０１が自装置なので、ヘルスチェックパケットを制御部１００に転送する。ネットワーク装置＃１（１１）の制御部１００は、返信されたヘルスチェックパケットによって、ネットワーク装置＃３（１３）のプロセッサコア１２２の死活監視をする。
【０１３３】
なお、マスター装置であるネットワーク装置＃１（１１）及びトランジット装置であるネットワーク装置＃２（１２）に第１の実施例を適用し、マスター装置又は当該装置が統計カウンタ１２１のカウント値を取得することによって、プロセッサコア１２２の死活監視をすることができる。
【０１３４】
以上に説明したように、本発明の第２の実施例によると、制御部１００は、各プロセッサコアから返信されるヘルスチェックパケットによって、各プロセッサコアの状態を監視するので、確実に各プロセッサコアの障害を検出することができる。
【０１３５】
また、制御部１００は、監視されるプロセッサコアを指定したヘルスチェックパケットを生成するので、全てのプロセッサコアに確実にヘルスチェックパケットを振り分けることができる。さらに、ネットワークプロセッサ１２０は、ヘルスチェックパケットを最高優先キューに格納し、各プロセッサコアに振り分けるので、ヘルスチェックパケットの廃棄を防止することができる。
【０１３６】
また、制御部１００は、他のネットワーク装置に送信するヘルスチェックパケットを他のネットワーク装置に転送し、各プロセッサコアから返信されるヘルスチェックパケットによって、他のネットワーク装置のプロセッサコアの状態を監視するので、ネットワークを経由して他のネットワーク装置を監視することができるので、他のネットワーク装置のプロセッサコアの障害を検出することができる。
【０１３７】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【０１３８】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１３９】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１４０】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１４１】
１  ネットワーク装置
１００  制御部
１０１  制御用プロセッサ
１０２  メモリ
１０３  制御バスブリッジ
１０４  制御バス
１０５  メモリバス
１０６  装置内回線ポート
１１０  転送制御部
１２０、１４０  ネットワークプロセッサ
１２１  統計カウンタ
１２２  プロセッサコア
１２３  宛先検索部
１２４  コア振分部
１２５  優先キュー
１２６  キュー振分部
１２７  装置内回線ポート
１５０  ネットワーク回線ポート
【図１】
0005968841.tif 000002
【図２】
0005968841.tif 000003
【図３】
0005968841.tif 000004
【図４】
0005968841.tif 000005
【図５】
0005968841.tif 000006
【図６】
0005968841.tif 000007
【図７】
0005968841.tif 000008
【図８】
0005968841.tif 000009
【図９】
0005968841.tif 000010