(57)【要約】【課題】パケット量、パケット種別に応じて必要最低限のパケット処理回路で通信装置を構成する。【解決手段】通信装置のネットワークインタフェースは、パケットの少なくとも一部に任意の処理を実行する複数のパケット処理モジュールと、モジュール振分管理テーブルと、モジュール振分管理テーブルを参照してパケットの種別に対応するパケット処理モジュール群のうち１つのパケット処理モジュールにパケットの少なくとも一部を振分ける複数のモジュール振分部と、モジュール追加設定を受信するとモジュール追加先のパケット処理モジュールに追加すべき種別のパケット処理回路プログラムを更新させモジュール振分管理テーブルで管理する追加した種別のパケット処理モジュール群に当該パケット処理モジュールの情報を追加するネットワークインタフェース管理部、とを有する。【選択図】図２
2016010017.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される通信装置であって、
前記ネットワークから送信されるパケットを送受信する複数のネットワークインタフェースを備え、
前記各ネットワークインタフェースは、
前記受信したパケットの少なくとも一部に任意の処理を実行する複数のパケット処理モジュールと、
前記パケット処理モジュールが処理可能なパケット種別毎に前記複数のパケット処理モジュールをパケット処理モジュール群として管理するモジュール振分管理テーブルと、
前記モジュール振分管理テーブルを参照して、パケットの種別に対応するパケット処理モジュール群のうち１つのパケット処理モジュールに前記パケットの少なくとも一部を振分ける前記複数のモジュール振分部と、
モジュール追加設定を受信すると、モジュール追加先のパケット処理モジュールに、追加すべき種別のパケット処理回路プログラムを更新させ、前記モジュール振分管理テーブルで管理する追加した種別のパケット処理モジュール群に当該パケット処理モジュールの情報を追加する、ネットワークインタフェース管理部と、
を備えることを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記各ネットワークインタフェースは、
前記パケットの種別の識別方法を指定するパケット振分管理テーブルと、
前記パケット振分管理テーブルを参照して前記パケットの種別を識別し、前記識別したパケット種別に対応するモジュール振分部に前記パケットの少なくとも一部を振分けるパケット振分部を備え、
前記モジュール振分部は、
前記モジュール振分管理テーブルを参照して、前記識別したパケットの種別に対応するパケット処理モジュール群のうち前記パケットの少なくとも一部に処理を実行するパケット処理モジュールを順番に選択し、選択された１つのパケット処理モジュールに前記パケットの少なくとも一部を振分けることを特徴とする通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記ネットワークインタフェース管理部は、モジュール削減設定を受信すると、
削減対象のパケット処理モジュールの情報を、前記モジュール振分テーブルから削除することを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
前記ネットワークインタフェース管理部は、
前記削減対象のパケット処理モジュールの情報を、前記モジュール振分テーブルから削除した後に、当該パケット処理モジュールのパケット処理回路プログラムをアンインストールすることを特徴とする通信装置。
【請求項５】
請求項１に記載の通信装置であって、
前記ネットワークインタフェース管理部は、モジュールグループ追加設定を受信すると、
新たに追加すべき種別のパケット処理回路プログラムを追加先のパケット処理モジュールにインストールし、
前記モジュール振分テーブルに前記追加先のパケット処理モジュールの情報を含む新たなパケット処理モジュール群を追加することを特徴とする通信装置。
【請求項６】
前記各ネットワークインタフェースは、
前記パケットを格納するパケットバッファと、
前記パケット処理モジュールで処理されたパケットの一部と前記パッファから読み出したパケットを多重するパケット多重部と、
を備え、
前記パケット振分部は、
前記パケット振分管理テーブルを参照して識別したパケットの種別に応じて、前記パケットから少なくとも一部を抜き出して前記モジュール振分部へ振分け、
前記パケットをパケットバッファに格納し、
前記各パケット処理モジュールは、
前記抜き出された前記パケットの一部を用いてパケットを処理することを特徴とする請求項１に記載の通信装置。
【請求項７】
前記パケットを格納する複数のパケットバッファと、を有し、
前記複数のモジュール振分部は、
前記パケット振分部から受信した前記パケットの少なくとも一部を抜き出して前記パケット処理モジュール群へ振分け、
前記パケットの情報全てをパケットバッファに格納し、
前記複数のパケット処理モジュール群は、
前記抜き出されたパケットの少なくとも一部の情報を用いてパケットを処理することを特徴とする請求項１に記載の通信装置。
【請求項８】
前記パケット処理モジュールは、
パケット処理回路の故障を検出すると、前記モジュール振分部に故障情報を通知し、
前記モジュール振分部は、
前記故障情報を通知している前記パケット処理モジュールへパケットの振分けを実施しないことを特徴とする請求項１に記載の通信装置。
【請求項９】
請求項１に記載の通知装置であって、
前記モジュール振分部は、
前記パケットの種別に応じて、抜き出すパケットのデータ量を変更することを特徴とする通信装置。
【請求項１０】
ネットワークに接続される通信装置における通信方法であって、
複数のネットワークインタフェースを備え、前記各ネットワークインタフェースは、
ネットワークインタフェース上のパケット処理モジュールが処理可能なパケット種別毎に複数のパケット処理モジュールをパケット処理モジュール群として管理するモジュール振分管理テーブルを備え、
前記ネットワークインタフェースにおいて前記ネットワークから送信されるパケットを送受信するステップと、
前記複数のパケット処理モジュールが、前記受信したパケットの少なくとも一部に任意の処理を実行するステップと、
各モジュール振分部が、前記モジュール振分管理テーブルを参照して、識別したパケットの種別に対応するパケット処理モジュール群のうち１つのパケット処理モジュールに前記パケットの少なくとも一部を振分けるステップと、
ネットワークインタフェース管理部が、モジュール追加設定を受信すると、モジュール追加先のパケット処理モジュールに、追加すべき種別のパケット処理回路プログラムを更新させ、前記モジュール振分管理テーブルで管理する追加した種別のパケット処理モジュール群に当該パケット処理モジュールの情報を追加するステップとを備えることを特徴とする通信装置を備えることを特徴とする通信方法。
【請求項１１】
請求項１０に記載の通信方法であって、
前記各ネットワークインタフェースは、
前記パケットの種別の識別方法を指定するパケット振分管理テーブルを備え、
パケット振分部が、前記パケット振分管理テーブルを参照して前記パケットの種別を識別し、前記識別したパケット種別に対応するモジュール振分部に前記パケットの少なくとも一部を振分けるステップと、
前記モジュール振分部が、前記モジュール振分管理テーブルを参照して、前記識別したパケットの種別に対応するパケット処理モジュール群のうち前記パケットの少なくとも一部に処理を実行するパケット処理モジュールを順番に選択し、選択された１つのパケット処理モジュールに前記パケットの少なくとも一部を振分けるステップと、を備えることを特徴とする通信方法。
【請求項１２】
請求項１０に記載の通信方法であって、
前記ネットワークインタフェース管理部は、
モジュール削減設定を受信すると、削減対象のパケット処理モジュールの情報を、前記モジュール振分テーブルから削除するステップと
前記削減対象のパケット処理モジュールの情報を、前記モジュール振分テーブルから削除した後に、当該パケット処理モジュールのパケット処理回路プログラムをアンインストールするステップと、を備えることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、及び、通信方法に関し、特に、機能及び性能を変更してパケットを通信する通信装置、及び、通信方法に関する。
【背景技術】
【０００２】
近年、通信帯域の急増により、トランスポート装置のラインカードあたりの処理性能の向上が期待されている。さらに、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）やＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）などの新しいＩＴ技術の出現により、新規通信サービスの発生周期の短期化やロングテール化の加速が予測されている。
【０００３】
このような時代には、トランスポート装置に接続するサービスノードが多様化（サーバー化）し、ダイナミックにその機能（例えばプロトコル）、及び、性能（例えばスループット）等が変化するようになる。ネットワークインフラを支えるトランスポート装置においても、収容する複数のサービスノードの通信サービス変化に追随し、機能あるいは性能を柔軟に変更する必要性が出てくる。
【０００４】
複数の通信サービスを収容する場合、一般的に通信装置は、収容する各通信サービスの機能に応じてその処理性能を割り当てる。具体的には、通信装置は、到着したパケットの情報を解析して機能（プロトコル等）を識別し、各機能用に配備されたパケット処理回路にパケットを転送して処理をする。
【０００５】
特許文献１には、「ある実施形態に係る通信装置は、パケット振り分け部、パケットの処理量が異なる複数の処理回路、選択部を備える。パケット振り分け部は、受信したパケットをパケットの種類を表すパケット種別に応じて振り分ける。選択部は、振り分けられたパケットと同じパケット種別のパケットの過去の通信量に基づいて、パケットの処理量が過去の通信量以上の処理回路のうち、パケットの処理量が相対的に小さい処理回路を、複数の処理回路から選択する。さらに、選択部は、選択した処理回路に振り分けられたパケットを出力する。」ことが記載されている（要約参照）。すなわち、特許文献１には、パケット種別毎にパケットを振り分けて、パケット種別毎の複数の処理性能が異なるパケット処理回路でパケットを処理する技術が提案されている。
【０００６】
特許文献２には、「ネットワークに接続されるパケット処理装置であって、前記パケット処理装置は、複数のプロセッサ・コアと、前記複数のプロセッサ・コアに接続されるメモリと、を備え、プログラムのロード要求を受信すると、前記複数のプロセッサ・コアのうち、まだプログラムがロードされていないプロセッサ・コアを選択し、前記選択されたプロセッサ・コアに前記プログラムをロードし、前記ロード要求によって指定された属性情報と、前記プログラムがロードされたプロセッサ・コアと、を対応付ける第１の対応付け情報を保持し、パケットを受信すると、前記受信したパケットに対応する属性情報を特定し、前記受信したパケットを、前記特定された属性情報に対応するプロセッサ・コアに転送する。」ことが記載されている（要約参照）。すなわち、特許文献２には、新たな通信サービスを収容する場合、そのパケット種別に対応したパケット処理プログラムをパケット処理回路にロードし、パケット種別毎にパケットを振り分けて処理する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−０９７３１９号公報
【特許文献２】特開２０１０−１９３３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載された技術は、処理性能を変更するために、その変更したい分の低速から高速までの処理回路を予め備えておく必要がある。このため、回路規模は増加し、低速処理時には必要十分以上の処理性能を有するという課題がある。さらに、特許文献１に記載の技術は、予め決められた方法に従ってパケットを振り分けるため、新規機能を追加する場合にはパケットを振分けられず、パケットを処理できないという問題がある。
【０００９】
特許文献２に記載の技術は、新たな通信サービスの追加に柔軟に対応することができる。しかしながら、特許文献２に記載された技術によれば、追加するサービス毎に予め定めた１個または複数個のパケット処理コアにパケット処理プログラムをロードするため、処理性能を変更することができないという問題がある。さらに、特許文献２に記載された技術によれば、複数個のパケット処理コアにパケットを振分ける場合、乱数などを使用して任意の１個のパケット処理コアを選択してパケットを振分けるため、１つのパケット処理コアの処理速度が速度ネックとなる、あるいは、パケットの順序制御が複雑になるという問題がある。
【００１０】
本発明は、前述の問題を鑑みてなされたものであり、受信するパケットの量を処理するだけに必要十分な処理回路を備え、新規通信サービスで利用する通信プロトコルの処理回路を通信装置に追加導入することができ、かつ、通信装置が備える利用中の通信サービスの処理回路を増減設することができる方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の代表的な一例を示せば以下のとおりである。通信装置の各ネットワークインタフェースは、受信したパケットの少なくとも一部に任意の処理を実行する複数のパケット処理モジュールと、パケット処理モジュールが処理可能なパケット種別毎に前記複数のパケット処理モジュールをパケット処理モジュール群として管理するモジュール振分管理テーブルと、モジュール振分管理テーブルを参照してパケットの種別に対応するパケット処理モジュール群のうち１つのパケット処理モジュールにパケットの少なくとも一部を振分ける複数のモジュール振分部と、モジュール追加設定を受信すると、モジュール追加先のパケット処理モジュールに、追加すべき種別のパケット処理回路プログラムを更新させ、モジュール振分管理テーブルで管理する追加した種別のパケット処理モジュール群に当該パケット処理モジュールの情報を追加する、ネットワークインタフェース管理部、を有することを特徴とする。
【発明の効果】
【００１２】
本発明の一実施形態によれば、通信装置に流れ込むパケット量、または、パケット種別に応じて、必要最低限のパケット処理回路で通信装置を構成することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の通信装置の物理的な構成及び論理回路を示すブロック図である。
【図２】実施例１の入力パケット制御部の論理的な構成を示すブロック図である。
【図３】実施例１のパケット振分管理テーブルを示す説明図である。
【図４】実施例１のモジュール振分管理テーブルを示す説明図である。
【図５】実施例１のモジュール振分部の論理的な構成を示すブロック図である。
【図６】実施例１のパケット振分部が実行するパケット振分処理を示すフローチャートである。
【図７Ａ】実施例１のモジュール振分部が実行するバッファ格納処理を示すフローチャートである。
【図７Ｂ】実施例１のモジュール振分部が実行するスケジューリング処理を示すフローチャートである。
【図８】実施例１のパケット多重部が実行するパケット多重処理を示すフローチャートである。
【図９】実施例１の通信装置における同一モジュールグループ内のモジュール拡張の例を示すシーケンス図である。
【図１０】実施例１の通信装置における同一モジュールグループ内のモジュール縮退の例を示すシーケンス図である。
【図１１】実施例１の通信装置におけるプロトコル（モジュールグループ）の追加の例を示すシーケンス図である。
【図１２】実施例１の通信装置におけるプロトコル（モジュールグループ）の削減の例を示すシーケンス図である。
【図１３】実施例１の通信装置における障害検出及び復旧時のモジュール自動縮退及び自動拡張の例を示すシーケンス図である。
【図１４】実施例２の入力パケット制御部の論理的な構成を示すブロック図である。
【図１５】実施例２のモジュール振分部の論理的な構成を示すブロック図である。
【図１６】実施例２のモジュール多重部の論理的な構成を示すブロック図である。
【図１７】実施例２のパケット振分部が実行するパケット振分処理を示すフローチャートである。
【図１８Ａ】実施例２のモジュール振分部が実行するバッファ格納処理を示すフローチャートである。
【図１８Ｂ】実施例２のモジュール振分部が実行するスケジューリング処理を示すフローチャートである。
【図１９】実施例２のモジュール多重部が実行するモジュール多重処理を示すフローチャートである。
【図２０】実施例２のモジュール多重管理テーブルを示す説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施例について、図面を参照して説明する。以下に述べる実施例は本発明の一例であって、本発明を制限するものではない。
【００１５】
（実施例１）
以下、実施例１について図１〜図１３を用いて説明する。
【００１６】
＜通信装置の構成例＞
図１は、実施例１の通信装置１の物理的な構成及び論理回路（１０２）を示すブロック図である。通信装置１は、パケットを他の通信装置へ転送する装置である。通信装置１は、複数のネットワークインタフェースボード（ＮＩＦ）（１００−１〜１００−Ｋ、１５０−１〜１５０−Ｌ）（Ｋ、及び、Ｌは任意の自然数）、スイッチ部１０６、及び、装置管理部１１１を備える。
【００１７】
ＮＩＦ１００（１００−１〜１００−Ｋ）及びＮＩＦ１５０（１５０−１〜１５０−Ｌ）は、それぞれ、ネットワークからパケットを受信し、ネットワークへパケットを送信するためのインタフェースである。スイッチ部１０６は、各ＮＩＦ１００及び各ＮＩＦ１５０に接続される装置であり、ＮＩＦ１００及びＮＩＦ１５０から受信したパケットを、パケットを送信すべきＮＩＦ１００あるいはＮＩＦ１５０に振り分ける装置である。
【００１８】
装置管理部１１１は、制御ネットワーク経由でネットワーク管理システム（保守者）等に接続され、制御情報を通信する。また、装置管理部１１１は、各ＮＩＦ（１００−１〜１００−Ｋ、１５０−１〜１５０−Ｌ）及びスイッチ部１０６からの情報を収集する。さらに、装置管理部１１１は、ネットワーク管理システム（保守者）からの指示に従って、各ＮＩＦ（１００−１〜１００−Ｋ、１５０−１〜１５０−Ｌ）及びスイッチ部１０６へのパラメータ設定（後述するＮＩＦ管理部１１０を経由してレジスタ１０９や各種テーブルを設定）や、各ＮＩＦ（１００−１〜１００−Ｋ、１５０−１〜１５０−Ｌ）のパケット処理モジュールへの処理回路のインストール処理等を実施する。
【００１９】
各ＮＩＦ１００は、複数の入出力回線インタフェース１０１（１０１−１〜１０１−Ｊ）（Ｊは任意の自然数）、論理回路１０２、ＳＷインタフェース１０５、及び、ＮＩＦ管理部１１０を備える。
【００２０】
各ＮＩＦ１５０は、入出力回線インタフェース１０１、論理回路１０２、ＳＷインタフェース１０５、及び、ＮＩＦ管理部１１０を備える。
【００２１】
入出力回線インタフェース１０１は、通信ポート（以後、入出力回線インタフェースのことを「ポート」と記載）である。通信装置１は、ポート１０１及びネットワークを介して、他の通信装置と接続する。実施例１におけるポート１０１は、例えば、イーサネット（登録商標）用の回線インタフェースである。
【００２２】
ＳＷインタフェース１０５は、スイッチ部１０６に接続するための装置である。ＮＩＦ管理部１１０は、例えば、ＣＰＵ等のプロセッサである。ＮＩＦ管理部１１０は、装置管理部１１１の設定に従って、論理回路１０２における処理を制御する。論理回路１０２は、実施例１のパケットに対する処理を行う回路である。論理回路１０２は、少なくとも一つのメモリ及び少なくとも一つの演算装置（例えば、プロセッサ）を備える。
【００２３】
論理回路１０２は、ＭＵＸ１０３、入力パケット制御部１０４、出力パケット制御部１０７、及び、ＤＭＸ１０８等のパケット処理部を有し、設定レジスタ１０９を備える。
【００２４】
ここで、ＮＩＦ１５０は、１つのポート１０１を備えるのみであるため、論理回路１０２にはＭＵＸ１０３及びＤＭＸ１０８の記載を省略している。以降では、ＮＩＦ１００を中心に説明するが、ＮＩＦ１５０においても同様である。
【００２５】
ＮＩＦ１００が受信するパケットは、ポート１０１、ＭＵＸ１０３、入力パケット制御部１０４、ＳＷインタフェース１０５、及び、スイッチ部１０６の順に転送され、ＮＩＦ１００から送信されるパケットは、スイッチ部１０６、ＳＷインタフェース１０５、出力パケット制御部１０７、ＤＭＸ１０８、及び、ポート１０１の順に転送される。
【００２６】
ＮＩＦ管理部１１０は、レジスタ１０９を制御する。レジスタ１０９は、データを一時的に格納する記憶領域を有し、論理回路１０２に備わる各処理部のレジスタ値を保持する。
【００２７】
レジスタ１０９は、論理回路１０２を介して論理回路１０２に備わる各処理部と接続する。論理回路１０２が有する処理部は、レジスタ１０９の設定用のレジスタ値を用いて処理を実行する。また、論理回路１０２が有する処理部は、処理結果をレジスタ１０９の通知用のレジスタ値に格納する。
【００２８】
ポート１０１は、受信したパケットに後述する装置内ヘッダを付加する。
【００２９】
ここで、パケットのフォーマットの一例を示す。イーサネットのパケット（フレーム）は、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＶＬＡＮヘッダ、イーサタイプ値、ペイロード、及び、フレームチェックシーケンス（ＦＣＳ）を含む。宛先ＭＡＣアドレス、又は、送信元ＭＡＣアドレスには、通信装置１のＭＡＣアドレスが設定される。イーサタイプ値には、パケットが運ぶ上位層のプロトコルの識別子が設定される。ＶＬＡＮヘッダには、フローの識別子となるＶＬＡＮ  ＩＤが設定される。フレームチェックシーケンス（ＦＣＳ）には、フレームの誤りを検出するための値が設定される。なお、パケットには、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）ヘッダ、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ、あるいは、他のプロトコルのヘッダがパケットに使用されてもよい。
【００３０】
次に、パケットに付加される装置内ヘッダのフォーマットについて説明する。装置内ヘッダは、出力ＮＩＦ  ＩＤ、受信ポートＩＤ、送信ポートＩＤ、フローＩＤ、ＷＲアドレス、及び、パケット長を含む。
【００３１】
出力ＮＩＦ  ＩＤは、内部ルーティング情報であり、通信装置１が受信したパケットを、通信装置１のいずれのＮＩＦ１００（あるいはＮＩＦ１５０）から出力するかを示す情報である。スイッチ部１０６は、この内部ルーティング情報に従い、スイッチ部１０６に送信された入力パケットを特定のＮＩＦ１００（あるいは１５０）の特定のＳＷインタフェース１０５に転送する。
【００３２】
受信ポートＩＤは、通信装置１がどのポート１０１からパケットを受信したかを示す識別子である。送信ポートＩＤは、スイッチ部１０６から転送されてきたパケットを、ＮＩＦ１００（あるいは１５０）のどのポート１０１から送信するかを示す識別子である。
【００３３】
フローＩＤは、パケットのフローの識別子であり、ＶＬＡＮ  ＩＤやＭＰＬＳラベルの値から識別される。
【００３４】
ＷＲアドレスは、後述する入力パケットバッファ２０５にパケット情報を書き込んだアドレスを示す識別子である。
【００３５】
装置内ヘッダは、受信したパケットを通信装置１において処理するため、ポート１０１により受信したパケットに付加される。装置内ヘッダが付加され、ポート１０１からスイッチ部１０６に向けて送信されるパケットを、以降において、「入力パケット」と記載する。
【００３６】
ポート１０１は、受信したパケットに装置内ヘッダを付加する際、出力ＮＩＦ  ＩＤ、送信ポートＩＤ、フローＩＤ、及び、ＷＲアドレスにｎｕｌｌ値等の値を格納する（すなわち、格納される値を決定しない）。出力ＮＩＦ  ＩＤ、送信ポートＩＤ、フローＩＤ、及び、ＷＲアドレスには、入力パケット制御部１０４によって値が格納される。なお、送信ポートＩＤ、フローＩＤ、及び、ＷＲアドレス等には、出力パケット制御部１０７によって値が格納されても良い。
【００３７】
ポート１０１は、受信したパケットのパケット長を取得し、装置内ヘッダのフレーム長に、取得されたパケット長を格納する。その後、ポート１０１は、パケットをＭＵＸ１０３に送信する。
【００３８】
ＭＵＸ１０３は、複数のポート１０１から受信したパケットを多重し、入力パケット制御部１０４に送信する。
【００３９】
入力パケット制御部１０４は、ＭＵＸ１０３から受信したパケットに関して、後述するパケット処理を実行する。本パケット処理時に、装置内ヘッダの出力ＮＩＦ  ＩＤ、送信ポートＩＤ、フローＩＤ、及び、ＷＲアドレスを追加する。パケット処理後、入力パケット制御部１０４は、入力パケットをＳＷインタフェース１０５に送信する。ＳＷインタフェース１０５は、受信した入力パケットをスイッチ部１０６に転送する。
【００４０】
スイッチ部１０６は、各ＮＩＦ１００（及び各ＮＩＦ１５０）のＳＷインタフェース１０５から入力パケットを受信した後、入力パケットの出力ＮＩＦ  ＩＤを参照することによって、受信した入力パケットの転送先であるＮＩＦ１００（あるいはＮＩＦ１５０）を特定する。次に、スイッチ部１０６は、特定されたＮＩＦ１００（あるいはＮＩＦ１５０）に対応するＳＷインタフェース１０５に、受信した入力パケットを、出力パケットとして転送する。なお、実施例１において、スイッチ部１０６からポート１０１へ送信されるパケットを出力パケットと記載する。
【００４１】
ＳＷインタフェース１０５は、受信した出力パケットを出力パケット制御部１０７に転送する。前述の例では、入力パケット制御部１０４がパケット処理を実行したが、出力パケット制御部１０７が、入力パケット制御部１０４の代わりにパケット処理を実行してもよい。
【００４２】
出力パケット制御部１０７がパケット処理を実行する場合、パケット処理後、出力パケット制御部１０７は、出力パケットをＤＭＸ１０８に送信する。出力パケット制御部１０７がパケット処理を実施しない場合、出力パケット制御部１０７は、ＳＷインタフェース１０５から受信した出力パケットを、そのままＤＭＸ１０８に転送する。
【００４３】
ＤＭＸ１０８は、出力パケット制御部１０７から受信したパケットを、装置内ヘッダの送信ポートＩＤに従って、各ポート１０１に振分けて送信する。
【００４４】
ポート１０１は、受信した出力パケットから装置内ヘッダを除去し、出力パケットを他の装置へ転送する。
【００４５】
＜入力パケット制御部１０４の構成例＞
図２は、実施例１の入力パケット制御部１０４の論理的な構成を示すブロック図である。
【００４６】
入力パケット制御部１０４は、パケット振分部２０１、Ｍ個のモジュール振分部２０２（２０２−１〜２０２−Ｍ）（Ｍは１〜Ｎの自然数）（Ｎは任意の自然数）、Ｎ個のパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）（Ｐ、Ｑは１〜Ｎの自然数）、パケット多重部２０４、及び、入力パケットバッファ２０５を備える。
【００４７】
パケット振分部２０１は、入力パケット制御部１０４がＭＵＸ１０３から入力パケットを受信した場合、後述するパケット振分管理テーブル３を参照して、パケット種別を識別し、パケット種別毎に備えるモジュール振分部２０２（２０２−１〜２０２−Ｍ）にパケットのヘッダ情報を切り出して振分ける。また、パケット振分部２０１は、入力パケットバッファ２０５にパケット情報を転送する。詳細は、後述するパケット振分処理Ｓ６５０（図６参照）に示す。
【００４８】
ここで、実施例１では、パケット振分部２０１は、パケットのヘッダ情報を切り出してモジュール振分部２０２に振分けたが、これにより、振分けるヘッダ情報が少ないパケット種別においては、後述するパケット処理モジュール２０３が処理する量が少なくなるため、１つのパケット処理モジュール２０３あたりの処理量（例えばパケット／秒）を増やすことができる。言い換えれば、パケット種別毎に同じ性能とする場合に、振分けるヘッダ情報が少ないパケット種別においては、必要はパケット処理モジュール２０３の数が少なくて良い。
【００４９】
なお、パケット振分部２０１は、ヘッダ情報のみではなく、ペイロードまで情報を切り出してモジュール振分部２０２に転送しても良い。また、パケット振分部２０１は、識別したパケット種別に関わらず、一定サイズのデータ量を切り出してモジュール振分部２０２に転送しても良い。
【００５０】
モジュール振分部２０２（２０２−１〜２０２−Ｍ）は、パケット振分部２０１からヘッダ情報を受信した場合、後述するモジュール振分管理テーブル４を参照して、パケット処理を実行するパケット処理モジュール２０３を、複数のパケット処理モジュール２０３の中から決定し、決定したパケット処理モジュール２０３にヘッダ情報を振分ける。
【００５１】
例えば、モジュール振分部２０２−１がパケット処理モジュール２０３−１１〜パケット処理モジュール２０３−１Ｐを利用している場合、モジュール振分部２０２−１は、パケット処理モジュール２０３−１１〜パケット処理モジュール２０３−１Ｐの中からパケット処理を実行するパケット処理モジュール２０３を決定する。同様に、モジュール振分部２０２−Ｍがパケット処理モジュール２０３−Ｍ１〜パケット処理モジュール２０３−ＭＱを利用している場合、モジュール振分部２０２−Ｍは、パケット処理モジュール２０３−Ｍ１〜パケット処理モジュール２０３−ＭＱの中からパケット処理を実行するパケット処理モジュール２０３決定する。詳細は、後述するモジュール振分部２０２の論理構成（図５参照）、及び、モジュール振分部２０２のスケジューリング処理Ｓ７５１（図７Ｂ参照）に示す。
【００５２】
パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）は、任意のパケット処理機能を有するパケット処理回路であり、ＮＩＦ管理部１１０を経由してインストールが実施される。
【００５３】
パケット処理モジュール２０３は、モジュール振分部２０２からヘッダ情報を受信した場合、インストールされているパケット処理回路ごとに異なる処理を実施し、パケット多重部２０４にヘッダ情報を転送する。
【００５４】
一例として、パケット処理モジュール２０３にインストールされたパケット処理回路がＶＬＡＮ回路の場合の動作を説明する。
【００５５】
パケット処理モジュール２０３は、受信したヘッダ情報のＶＬＡＮヘッダに基づいて、パケットのフローＩＤを識別し、識別したフローＩＤによって、出力ＮＩＦ  ＩＤ及び送信ポート等の転送先を決定する。また、パケット処理モジュール２０３は、装置内ヘッダの出力ＮＩＦ  ＩＤ、送信ポート、及び、フローＩＤに値を格納する。さらに、パケット処理モジュール２０３は、ポリシング（Ｐｏｌｉｃｉｎｇ）やカラーリング（Ｃｏｌｏｒｉｎｇ）等のトラヒック制御を行うこともできる。
【００５６】
パケット処理モジュール２０３は、ヘッダ情報に上記の一例で示したパケット処理を実施し、受信した順番に、ヘッダ情報をパケット多重部２０４に転送する。
【００５７】
また、パケット処理モジュール２０３は、ヘッダ情報の処理中（あるいはヘッダ情報をこれ以上処理できない場合）は、バックプレッシャ（ＢＰ）をモジュール振分部２０２に出力し、モジュール振分部２０２のヘッダ情報の転送処理を抑制する。
【００５８】
また、パケット処理モジュール２０３は、故障を検出した場合、その故障検出情報をモジュール振分部２０２に出力し、モジュール振分部２０２がヘッダ情報を故障中のパケット処理モジュール２０３に転送しないように抑制する。パケット処理モジュール２０３は、故障が復旧した場合、その復旧情報をモジュール振分部２０２に出力する。
【００５９】
なお、パケット処理モジュール２０３は、一度インストールされたパケット処理回路をアンインストールすることができる。また、パケット処理モジュール２０３は、パケット処理回路を更新（上書き）しても良い。
【００６０】
パケット多重部２０４は、Ｎ個の各パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）から受信したヘッダ情報と、入力パケットバッファ２０５から読み出したパケット情報を多重し、ヘッダ情報の到着順にＳＷインタフェース１０５に送信する。詳細は、後述するパケット多重処理Ｓ８５０（図８参照）に示す。
【００６１】
入力パケットバッファ２０５は、パケット振分部２０１から受信するパケット情報を格納し、パケット多重部２０４からの読み出しに従って、パケット情報をパケット多重部２０４に出力する。
【００６２】
通信装置１が複数のパケット種別を収容する場合、各パケット処理モジュール２０３には異なるパケット処理回路がインストールされ、処理するヘッダ情報量等に応じてパケット処理モジュール２０３がヘッダ情報の処理に要する時間は異なる。このため、実施例１においては、入力パケットバッファ２０５は、ランダムアクセス用にバッファを構成し、パケット多重部２０４から任意のタイミングで読み出し出来ることが望ましい。
【００６３】
なお、通信装置１が、１つのパケット種別を収容する場合や、全パケット種別でヘッダ情報処理に要する時間を同じにする場合は、パケット処理モジュール２０３がヘッダ情報の処理に要する時間があらかじめ定められるため、入力パケットバッファ２０５をシフトレジスタ（固定の遅延時間だけパケット情報を格納）のように使用しても良い。
【００６４】
＜パケット振分管理テーブル３の記憶内容例＞
図３は、実施例１の各パケット振分部２０１が保持するパケット振分管理テーブル３を示す説明図である。パケット振分管理テーブル３は、通信装置１が受信したパケットに関して、パケットを振分ける方法を示す振分識別ＩＤと、パケットの振分け先のモジュール振分部２０２を示すパケット処理モジュールのグループＩＤ（モジュールグループＩＤ）の情報を有するテーブルである。
【００６５】
パケット振分管理テーブル３は、ＮＩＦ管理部１１０から設定される。図３では、受信ポートＩＤを設定してパケットを振分ける場合と、イーサタイプを設定してパケットを振分ける場合との２つの例を示す。
【００６６】
受信ポートＩＤでパケットを振分ける場合、パケット振分管理テーブル３は、ポートＩＤフィールド３０１、及び、モジュールグループＩＤフィールド３０２を含み、ポートＩＤごとに、各フィールド３０１、３０２の値を記憶する。ポートＩＤフィールド３０１は、入力パケットを受信するポートＩＤを含む。モジュールグループＩＤフィールド３０２は、ポートＩＤフィールド３０１にしたがって振分けたパケットを処理するモジュールグループＩＤの情報を含む。
【００６７】
イーサタイプでパケットを振分ける場合、パケット振分管理テーブル３は、イーサタイプフィールド３５１、及び、モジュールグループＩＤフィールド３０２を含み、イーサタイプごとに、各フィールド３５１、３０２の値を記憶する。イーサタイプフィールド３５１は、入力パケットのイーサタイプを含む。
【００６８】
＜モジュール振分管理テーブル４の記憶内容例＞
図４は、実施例１の各モジュール振分部２０２が保持するモジュール振分管理テーブル４を示す説明図である。モジュール振分管理テーブル４は、モジュール振分部２０２がパケット処理に利用するパケット処理モジュール２０３のＩＤ一覧と、モジュール振分部２０２に転送されたパケット数、及び、そのバイト数を利用帯域情報として有するテーブルである。モジュール振分管理テーブル４は、利用モジュールＩＤフィールド４０１（４０１−１〜４０１−Ｎ）、及び、モジュールグループ利用帯域フィールド（受信パケットフィールド４０２及び受信バイト数４０３フィールド）を含み、モジュール振分部２０１ごとに各フィールド４０１、４０２、４０３の値を記憶する。なお、利用モジュールＩＤ４０１（４０１−１〜４０１−Ｎ）は、ＮＩＦ管理部１１０から設定される。受信パケット数４０２及び受信バイト数４０３は、後述する図７ＡのＳ７０３において更新される。
【００６９】
＜モジュール振分部２０２の構成例＞
図５は、実施例１のモジュール振分部２０２の論理的な構成を示すブロック図である。ここでは、図２に示したモジュール振分部２０２−１を一例として、モジュール振分部２０２（２０２−１〜２０２−Ｍ）の詳細を説明する。
【００７０】
モジュール振分部２０２−１は、待合せバッファ５０１、スケジューラ５０２、及び、前述のモジュール振分管理テーブル４を備える。
【００７１】
待合せバッファ５０１は、パケット振分部２０１から転送されるヘッダ情報を格納し、スケジューラ５０２からの読み出しに従って、ヘッダ情報をスケジューラ５０２に出力する。スケジューラ５０２は、待合せバッファ５０１からヘッダ情報を読み出し、モジュール振分管理テーブル４の利用モジュールＩＤ４０１に従って、利用するパケット処理モジュール２０３にラウンドロビンで順番にヘッダ情報を転送する。
【００７２】
ここで、図２では、便宜上、モジュール振分部２０２−１は、利用するパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）とのみ接続するように示したが、実際には、図５に示すように、Ｎ個の全てのパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）と接続される。モジュール振分部２０２−１は、スケジューラ５０２において、ヘッダ情報の振分け対象となる利用パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）を決定する。同様に、モジュール振分部２０２−１は、利用するパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）からの受信情報（ＢＰ、故障情報、及び、復旧情報）のみを受け付ける。
【００７３】
以下に、パケット振分部２０１が実行するパケット振分処理Ｓ６５０について説明する。
【００７４】
＜パケット振分処理Ｓ６５０＞
図６は、実施例１のパケット振分部２０１が実行するパケット振分処理Ｓ６５０を示すフローチャートである。実施例１では、パケット振分部２０１は、受信ポートＩＤを用いてモジュール振分部２０２（２０２−１〜２０２−Ｍ）にパケットを振分ける例を示す。
【００７５】
パケット振分部２０１は、ＭＵＸ１０３からパケットを受信した場合（Ｓ６００）、装置内ヘッダから受信ポートＩＤを取得する（Ｓ６０１）。Ｓ６０１の後、パケット振分部２０１は、受信ポートＩＤを検索キーとしてパケット振分管理テーブル３を検索し、モジュールグループＩＤを取得する（Ｓ６０２）。Ｓ６０２の後、パケット振分部２０１は、受信したパケットを入力パケットバッファ２０５に格納する（Ｓ６０３）。なお、ここでは詳細な記載は省略するが、Ｓ６０３において、入力パケットバッファ２０５にパケットを格納出来ない場合は、オーバフローを検出してレジスタ１０９に通知し、以降の処理を終了する。
【００７６】
Ｓ６０３の後、パケット振分部２０１は、取得したモジュールグループＩＤに対応するモジュール振分部２０２に装置内ヘッダ及びパケットのヘッダ部分をヘッダ情報として転送する。また、この際、パケット振分部２０１は、装置内ヘッダのＷＲアドレスフィールドに、パケットを入力パケットバッファ２０５に格納したＷＲアドレスを付与し（Ｓ６０４）、パケット振分処理Ｓ６５０を終了する（Ｓ６０５）。
【００７７】
以下に、モジュール振分部２０２が実行するバッファ格納処理Ｓ７５０、及び、スケジューリング処理Ｓ７５１について説明する。
【００７８】
＜バッファ格納処理Ｓ７５０＞
図７Ａは、実施例１のモジュール振分部２０２が実行するバッファ格納処理Ｓ７５０を示すフローチャートである。
【００７９】
モジュール振分部２０２は、パケット振分部２０１からヘッダ情報を受信した場合（Ｓ７００）、受信したヘッダ情報の装置内ヘッダからパケット長情報を取得する（Ｓ７０１）。Ｓ７０１の後、モジュール振分部２０２は、モジュール振分管理テーブル４を検索し、受信パケット数及び受信バイト数を取得する（Ｓ７０２）。Ｓ７０２の後、モジュール振分部２０２は、Ｓ７００において受信したヘッダ情報の数、及び、Ｓ７０１において取得したパケット長情報を用いて受信パケット数及び受信バイト数を更新し、モジュール振分管理テーブル４に書き戻す（Ｓ７０３）。Ｓ７０３の後、モジュール振分部２０２は、受信したヘッダ情報を待合せバッファ５０１に格納し（Ｓ７０４）、バッファ格納処理Ｓ７５０を終了する（Ｓ７０５）。なお、Ｓ７０４において、待合せバッファ５０１にパケットを格納出来ない場合は、モジュール振分部２０２は、オーバフローを検出してレジスタ１０９に通知し、バッファ格納処理Ｓ７５０を終了する（Ｓ７０５）。
【００８０】
＜スケジューリング処理Ｓ７５１＞
図７Ｂは、実施例１のモジュール振分部２０２が実行するスケジューリング処理Ｓ７５１を示すフローチャートである。
【００８１】
モジュール振分部２０２は、周期毎（例えば１クロック毎）に（Ｓ７２０）、モジュール振分管理テーブル４を検索して利用モジュールＩＤ一覧の情報を取得する（Ｓ７２１）。Ｓ７２１の後、モジュール振分部２０２は、利用するモジュールＩＤを内部カウンタで管理し、次にヘッダ情報を送信するパケット処理モジュール２０３をラウンドロビンで順番に選択する（Ｓ７２２）。ラウンドロビンでヘッダ情報を振分けることにより、パケット処理モジュール２０３の処理負荷を分散することができる。
【００８２】
Ｓ７２２の後、選択したパケット処理モジュール２０３から故障を検出している場合、モジュール振分部２０２は、内部カウンタを更新し、次の順番のパケット処理モジュール２０３を選択する（Ｓ７２３）。すなわち、故障しているパケット処理モジュール２０３は選択の対象外であり、モジュール振分部２０２は、復旧指示を受信するまでそのパケット処理モジュール２０３を選択しない。
【００８３】
Ｓ７２３の後、モジュール振分部２０２は、選択したパケット処理モジュール２０３からＢＰを受信しているか否かを判定する（Ｓ７２４）。
【００８４】
Ｓ７２４において、選択したパケット処理モジュール２０３からＢＰを受信していると判定された場合（ステップＳ７２４：Ｙｅｓ）、次にヘッダ情報を送信するべきパケット処理モジュール２０３は、本処理以前に送信したヘッダ情報の処理を実行中であるため、モジュール振分部２０２は、スケジューリング処理Ｓ７５１を終了し、ＢＰが解除されるのを待つ（Ｓ７２７）。
【００８５】
また、Ｓ７２４において、選択したパケット処理モジュール２０３からＢＰを受信していないと判定された場合（ステップＳ７２４：Ｎｏ）、モジュール振分部２０２は、待合せバッファ５０１にヘッダ情報が格納されているか否かを判定する（Ｓ７２５）。
【００８６】
Ｓ７２５において、待合せバッファ５０１にヘッダ情報が格納されていないと判定された場合（ステップＳ７２５：Ｎｏ）、次に処理するべきヘッダ情報がないため、モジュール振分部２０２は、スケジューリング処理Ｓ７５１を終了する（Ｓ７２７）。
【００８７】
また、Ｓ７２５において、待合せバッファ５０１にヘッダ情報が格納されていると判定された場合（ステップＳ７２５：Ｙｅｓ）、モジュール振分部２０２は、待合せバッファ５０１からヘッダ情報を読み出し、Ｓ７２２あるいはＳ７２３において選択したパケット処理モジュール２０３にヘッダ情報を転送する。さらに、転送後、モジュール振分部２０２は、内部カウンタを更新して次のパケット処理モジュール２０３を選択し、次のヘッダ情報の転送に備える（Ｓ７２６）。Ｓ７２６の後、モジュール振分部２０２は、スケジューリング処理Ｓ７５１を終了する（Ｓ７２７）。
【００８８】
以下に、パケット多重部２０４が実行するパケット多重処理Ｓ８５０について説明する。
【００８９】
＜パケット多重処理Ｓ８５０＞
図８は、実施例１のパケット多重部２０４が実行するパケット多重処理Ｓ８５０を示すフローチャートである。
【００９０】
パケット多重部２０４は、パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）からヘッダ情報を受信した場合（Ｓ８００）、装置内ヘッダからＷＲアドレスを取得する（Ｓ８０１）。Ｓ８０１の後、パケット多重部２０４は、取得したＷＲアドレスをＲＤアドレスとして入力パケットバッファ２０５からパケット情報を読み出す（Ｓ８０２）。Ｓ８０２の後、パケット多重部２０４は、受信したヘッダ情報と、入力パケットバッファ２０５から読み出したパケット情報を組み合わせてパケットを再構成し、ＳＷインタフェース１０５にパケットを転送する（Ｓ８０３）。Ｓ８０３の後、パケット多重部２０４は、パケット多重処理Ｓ８５０を終了する（Ｓ８０４）。
【００９１】
以下に、実施例１の通信装置１が機能あるいは性能を柔軟に変更する例を、図９から図１３を用いて説明する。
【００９２】
＜同一モジュールグループ内のモジュール拡張シーケンス＞
図９は、実施例１の通信装置１における同一モジュールグループ内のモジュール拡張の例を示すシーケンス図である。図９では、モジュール振分部２０２がオーバフローを検出した場合において、同一モジュールグループに利用するパケット処理モジュール２０３の数を拡張するまでのシーケンスを示す。
【００９３】
はじめに、モジュール振分部２０２は、バッファ格納処理Ｓ７５０（図７Ａ参照）に示したように、オーバフローを検出すると（Ｓ９０１）、レジスタ１０９にオーバフローの検出を通知する（Ｓ９０２）。
【００９４】
次に、レジスタ１０９は、オーバフローレジスタを検出に設定し（Ｓ９０３）、ＮＩＦ管理部１１０にオーバフローの検出を通知する（Ｓ９０４）。なお、Ｓ９０４において、ＮＩＦ管理部１１０が、レジスタ１１０に周期的にアクセスしてオーバフローの検出情報を読み出しても良い。
【００９５】
次に、ＮＩＦ管理部１１０は、装置管理部１１１にオーバフローの検出を通知する（Ｓ９０５）。なお、Ｓ９０５において、装置管理部１１１が、ＮＩＦ管理部１１０に周期的にアクセスしてオーバフローの検出情報を読み出しても良い。
【００９６】
次に、装置管理部１１１は、制御ネットワーク経由でネットワーク管理システム（保守者）にオーバフロー検出情報を付与した制御情報を通知する（Ｓ９０６）。制御情報は、例えば、当該通信装置１を示す装置ＩＤ、オーバフローを検出したＮＩＦＩＤを含む。オーバフローを検出したモジュールグループのモジュールグループＩＤを含んでもよい。
【００９７】
ここで、保守者は、オーバフローを検出している通信サービス（同一モジュールグループ）の処理性能を高めてオーバフローが起きないようにするため、通信装置１が同通信サービスに利用するパケット処理モジュール２０３を追加する指示を入力する（Ｓ９０７）。
【００９８】
次に、装置管理部１１１は、利用するパケット処理モジュール２０３の追加指示を付与した制御情報を受信する（Ｓ９０８）。制御情報には、例えば、通信装置１を示す装置ＩＤ、パケット処理モジュール２０３を追加すべきＮＩＦのＮＩＦＩＤ、パケット処理モジュール２０３を追加すべきモジュールグループのモジュールグループＩＤを含む。パケット処理回路プログラムをインストールすべきパケット処理モジュール２０３を識別するパケット処理モジュールＩＤを含んでもよい。なお、Ｓ９０８において、追加インストールするパケット処理回路プログラムを同時にダウンロードしても良い。装置管理部１１１は、制御情報に含まれるＮＩＦＩＤに対応するＮＩＦにパケット処理モジュール２０３の追加設定を送信する。
【００９９】
次に、ＮＩＦ管理部１１０は、利用するパケット処理モジュール２０３の追加設定を受信する（Ｓ９０９）。なお、Ｓ９０９において、追加インストールするパケット処理回路プログラムを同時に受信しても良い。
【０１００】
次に、ＮＩＦ管理部１１０は、パケット処理モジュール２０３のうち、追加設定に含まれるモジュールグループＩＤに対応するモジュールグループとして管理するパケット処理モジュール２０３の数を追加し（Ｓ９１０）、追加先のパケット処理モジュール２０３のパケット処理回路プログラムの更新を開始する（Ｓ９１１）。追加先のパケット処理モジュール２０３は、パケット処理回路プログラムを更新する（Ｓ９１２）。
【０１０１】
次に、ＮＩＦ管理部１１０は、追加したパケット処理モジュール２０３に対する設定をレジスタ１０９に施す（Ｓ９１３）。ここで、追加したパケット処理モジュール２０３にヘッダ情報を振分ける準備が完了する。
【０１０２】
そして、ＮＩＦ管理部１１０は、オーバフローを検出している同一モジュールグループに該当するモジュール振分部２０２が備えるモジュール振分管理テーブル４の利用モジュールＩＤ一覧の情報に、追加したパケット処理モジュール２０３のＩＤを追加するよう設定する（Ｓ９１４）。Ｓ９１４以降、モジュール振分部２０２は、スケジューリング処理Ｓ７５１（図７Ｂ参照）を実施することで、追加したパケット処理モジュール２０３を振分対象に追加する（Ｓ９１５）。
【０１０３】
通信装置１は、前述したように、同一モジュールグループに利用するパケット処理モジュール２０３の数を追加することで、通信サービスの運用を継続したまま、その通信サービスの処理性能を拡張することができる。
【０１０４】
なお、図９では、追加インストールするパケット処理回路を保守者サイドから受信したが、装置管理部１１１やＮＩＦ管理部１１０にパケット処理回路を予め格納しておいても良い。
【０１０５】
＜同一モジュールグループ内のモジュール縮退シーケンス＞
図１０は、実施例１の通信装置１における同一モジュールグループ内のモジュール縮退の例を示すシーケンス図である。図１０では、モジュール振分部２０２のモジュールグループ利用帯域が少ないことを検出した場合において、同一モジュールグループに利用するパケット処理モジュール２０３の数を縮退するまでのシーケンスを示す。
【０１０６】
はじめに、ＮＩＦ管理部１１０は、モジュール振分管理テーブル４に周期的にアクセスし、モジュール振分部２０２がバッファ格納処理Ｓ７５０（図７Ａ参照）で更新するモジュールグループ利用帯域の受信パケット数４０２及び受信バイト数４０３を読み出す（Ｓ１００１）。
【０１０７】
次に、ＮＩＦ管理部１１０は、読み出した受信パケット数４０２及び受信バイト数４０３から利用帯域（スループット）を計算し（Ｓ１００２）、装置管理部１１１に通知する（Ｓ１００３）。
【０１０８】
次に、装置管理部１１１は、制御ネットワーク経由でネットワーク管理システム（保守者）に利用帯域情報を付与した制御情報を通知する（Ｓ１００４）。制御情報は、例えば、通信装置１を示す装置ＩＤ、ＮＩＦＩＤ、モジュールグループＩＤ、及び、計算した利用帯域を含む。
【０１０９】
ここで、保守者が、受信した利用帯域情報からサービスの利用量が少ない（つまり、必要十分以上のパケット処理回路を使用している）と判断した場合、保守者は、通信装置１が利用するサービス（同一モジュールグループ）のパケット処理モジュール２０３数を削減する指示を入力する（Ｓ１００５）。
【０１１０】
次に、装置管理部１１１は、利用するパケット処理モジュール２０３の削減指示を付与した制御情報を受信する（Ｓ１００６）。制御情報は、例えば、通信装置１を示す装置ＩＤ、ＮＩＦＩＤ、モジュールグループＩＤを含む。削除対象のパケット処理モジュール２０３を示すパケット処理モジュールＩＤを含んでもよい。装置管理部１１１は、制御情報に含まれるＮＩＦＩＤに対応するＮＩＦのＮＩＦ管理部１１０へ利用するパケット処理モジュール２０３の削減設定を通知する（Ｓ１００７）。削減設定は、例えばパケット処理モジュール２０３数を削減すべきモジュールグループのモジュールグループＩＤ及び削除対象のパケット処理モジュール２０３を示すパケット処理モジュールＩＤを含む。
【０１１１】
次に、ＮＩＦ管理部１１０は、削減設定に含まれるモジュールグループＩＤのパケット処理モジュール２０３を特定し（Ｓ１００８）、同一モジュールグループに該当するモジュール振分部２０２が備えるモジュール振分管理テーブル４の利用モジュールＩＤ一覧の情報に、削減するパケット処理モジュール２０３の情報を除くよう設定する（Ｓ１００９）。Ｓ１００９以降、モジュール振分部２０２は、スケジューリング処理Ｓ７５１（図７Ｂ参照）を実施することで、削減したパケット処理モジュール２０３を振分対象から除去する（Ｓ１０１０）。
【０１１２】
なお、ここでは、削減対象のパケット処理モジュール２０３をモジュール振分部２０２の振分対象から除去するまでを説明したが、Ｓ１０１０の後、削減対象のパケット処理モジュール２０３からパケット処理回路プログラムをアンインストールしても良い。ＮＩＦ管理部１１０は、Ｓ１０１０の後、削減対象のパケット処理モジュール２０３からパケット処理回路プログラムをアンインストールさせるため、通信サービスの運用を継続したまま、その通信サービスの処理性能を縮退することができる。
【０１１３】
以上の通り、通信装置１は、同一モジュールグループに利用するパケット処理モジュール２０３の数を削減することで、通信サービスの運用を継続したまま、その通信サービスの処理性能を縮退することができる。
【０１１４】
また、通信装置１は、各パケット処理モジュール２０３にインストールされたパケット処理回路プログラムの有効/無効を切り替えることで、パケット処理モジュール２０３の拡張及び縮退を行ってもよい。その場合、通信装置１は、各パケット処理モジュール２０３にインストールされたパケット処理回路プログラムが有効か無効かの状態を管理する。ＮＩＦ管理部１１０は、Ｓ９０９において追加設定を受信すると、Ｓ９１１の処理において、追加対象のパケット処理モジュール２０３のパケット処理回路を有効に設定する。また、ＮＩＦ管理部１１０は、Ｓ１００７において削減設定を受信すると、Ｓ１００８乃至Ｓ１０１０の処理を行い、その後、削除対象のパケット処理モジュール２０３のパケット処理回路を無効に設定する。
【０１１５】
＜プロトコル（モジュールグループ）の追加シーケンス＞
図１１は、実施例１の通信装置１におけるプロトコル（モジュールグループ）の追加の例を示すシーケンス図である。図１１では、ネットワーク管理システム（保守者）が、通信サービスを追加するために、新しいプロトコル（モジュールグループ）を追加するシーケンスを示す。
【０１１６】
はじめに、保守者が通信サービスを追加すると判断した場合、保守者は、通信装置１が利用するその通信サービスに該当するプロトコル（モジュールグループ）を追加する指示を入力する（Ｓ１１０１）。なお、この指示には、追加するプロトコルの処理性能が含まれていても良い。
【０１１７】
次に、装置管理部１１１は、利用するモジュールグループの追加指示を付与した制御情報を受信する（Ｓ１１０２）。制御情報には、例えば、通信装置１を示す装置ＩＤ、パケット処理モジュール２０３を追加すべきＮＩＦのＮＩＦＩＤ、パケット処理モジュール２０３を追加すべきモジュールグループのモジュールグループＩＤが含まれる。パケット処理回路プログラムをインストールすべきパケット処理モジュール２０３を識別するパケット処理モジュールＩＤを含んでもよい。なお、Ｓ１１０２において、追加するモジュールグループ用にインストールするパケット処理回路プログラムを同時にダウンロードしても良い。装置管理部１１１は、制御情報に含まれるＮＩＦＩＤに対応するＮＩＦのＮＩＦ管理部１１０に利用するモジュールグループの追加設定を送信する。
【０１１８】
次に、ＮＩＦ管理部１１０は、利用するモジュールグループの追加設定を受信する（Ｓ１１０３）。なお、Ｓ１１０３において、追加するモジュールグループ用にインストールするパケット処理回路プログラムを同時に受信しても良い。
【０１１９】
次に、ＮＩＦ管理部１１０は、管理する各モジュールグループに新たにモジュールグループを作成する（Ｓ１１０４）。また、ＮＩＦ管理部１１０は、新たに作成されるモジュールグループに含まれるパケット処理モジュール２０３のパケット処理回路プログラムの更新を開始し（Ｓ１１０５）、各パケット処理モジュール２０３は、パケット処理回路プログラムを更新する（Ｓ１１０６）。
【０１２０】
次に、ＮＩＦ管理部１１０は、新たに作成されるモジュール振分部２０２及びパケット処理モジュール２０３に対する設定をレジスタ１０９に施す（Ｓ１１０７）。
【０１２１】
次に、ＮＩＦ管理部１１０は、新たに作成するモジュールグループに該当するモジュール振分部２０２に備えるモジュール振分管理テーブル４の利用モジュールＩＤ一覧の情報に、追加するパケット処理モジュール２０３の情報を設定する（Ｓ１１０８）。Ｓ１１０８以降、モジュール振分部２０２は、スケジューリング処理Ｓ７５１（図７Ｂ参照）を実施することで、追加するパケット処理モジュール２０３を振分対象に追加する（Ｓ１１０９）。ここで、新たに作成したモジュールグループにヘッダ情報を振分ける準備が完了する。
【０１２２】
そして、ＮＩＦ管理部１１０は、パケット振分部２０１が備えるパケット振分管理テーブル３の振分識別ＩＤ（ポートＩＤ３０１あるいはイーサタイプ３５１等）の情報に、新たに追加するモジュールグループＩＤ３０２の情報を設定する（Ｓ１１１０）。Ｓ１１１０以降、パケット振分部２０１は、パケット振分処理Ｓ６５０（図６参照）を実施することで、追加したモジュールグループＩＤ３０２に該当する振分識別ＩＤ（ポートＩＤ３０１あるいはイーサタイプ３５１等）をもったパケットを振分対象に追加する（Ｓ１１１１）。
【０１２３】
通信装置１は、前述したように、新たにモジュールグループを追加することで、その他の通信サービスの運用は継続したまま、新たなサービスを追加することができる。
【０１２４】
なお、図１１では、追加インストールするパケット処理回路を保守者サイドから受信したが、装置管理部１１１やＮＩＦ管理部１１０にパケット処理回路を予め格納しておいても良い。
【０１２５】
＜プロトコル（モジュールグループ）の削減シーケンス＞
図１２は、実施例１の通信装置１におけるプロトコル（モジュールグループ）の削減の例を示すシーケンス図である。図１２では、ネットワーク管理システム（保守者）が、通信サービスを停止するために既存のプロトコル（モジュールグループ）を削減するシーケンスを示す。
【０１２６】
はじめに、保守者が通信サービスを停止すると判断した場合、保守者は、通信装置１が利用するその通信サービスに該当するプロトコル（モジュールグループ）を削減する指示を入力する（Ｓ１２０１）。
【０１２７】
次に、装置管理部１１１は、利用するモジュールグループの削減指示を付与した制御情報を受信し（Ｓ１２０２）する。制御情報は、例えば、通信装置１を示す装置ＩＤ、ＮＩＦＩＤ、モジュールグループＩＤを含む。装置管理部１１１は、制御情報に含まれるＮＩＦＩＤに対応するＮＩＦのＮＩＦ管理部１１０へ利用するモジュールグループの削減設定を通知する（Ｓ１２０３）。
【０１２８】
そして、ＮＩＦ管理部１１０は、管理する各モジュールグループから削減対象であるモジュールグループを除去し（Ｓ１２０４）、パケット振分部２０１が備えるパケット振分管理テーブル３の振分識別ＩＤ（ポートＩＤ３０１あるいはイーサタイプ３５１等）の情報から、削減するモジュールグループＩＤ３０２の情報を除くよう設定する（Ｓ１２０５）。Ｓ１２０５以降、パケット振分部２０１は、パケット振分処理Ｓ６５０（図６参照）を実施することで、削減したモジュールグループＩＤ３０２に該当する振分識別ＩＤ（ポートＩＤ３０１あるいはイーサタイプ３５１等）をもったパケットを振分対象から除去する（Ｓ１２０６）。
【０１２９】
なお、ここでは、削減対象のモジュールグループＩＤ３０２をパケット振分部２０１の振分対象から除去するまでを説明したが、Ｓ１２０６の後、削減対象のモジュールグループＩＤ３０２で管理していた各パケット処理モジュール２０３からパケット処理回路プログラムをアンインストールしても良い。
【０１３０】
通信装置１は、前述したように、該当するモジュールグループのみを削減することで、その他の通信サービスの運用は継続したまま、既存の通信サービスを停止することができる。
【０１３１】
＜障害検出及び復旧時のモジュール自動縮退及び自動拡張シーケンス＞
図１３は、実施例１の通信装置１における障害検出及び復旧時のモジュール自動縮退及び自動拡張の例を示すシーケンス図である。図１３では、モジュール振分部２０２がパケット処理モジュール２０３の故障あるいは復旧を検出した場合において、同一モジュールグループに利用するパケット処理モジュール２０３の数を縮退あるいは拡張するまでのシーケンスを示す。
【０１３２】
はじめに、パケット処理モジュール２０３は、故障を検出すると（Ｓ１３０１）、モジュール振分部２０２に故障を通知する（Ｓ１３０２）。モジュール振分部２０２は、スケジューリング処理Ｓ７５１（図７Ｂ参照）を実施することで、故障を検出したパケット処理モジュール２０３を振分対象から除去する（Ｓ１３０４）。
【０１３３】
また、パケット処理モジュール２０３は、レジスタ１０９に故障の検出を通知し（Ｓ１３０３）、レジスタ１０９は、装置故障レジスタに検出を設定する（Ｓ１３０５）。
【０１３４】
次に、詳細な説明は省略するが、レジスタ１０９からＮＩＦ管理部１１０及び装置管理部１１１を経由してネットワーク管理システム（保守者）に故障の検出情報を通知する（Ｓ１３０６〜１３０８）。故障の検出情報は、例えば、通信装置１を識別する装置ＩＤ、ＮＩＦＩＤ、及び、故障が検出されたパケット処理モジュール２０３の属するモジュールグループのモジュールグループＩＤを含む。故障を検出したパケット処理モジュール２０３を識別するパケット処理モジュールＩＤを含んでもよい。
【０１３５】
ここで、保守者は、故障を検出している通信サービスのパケット処理回路を復旧するため、通信装置１が利用するパケット処理モジュール２０３を復旧する指示を入力する（Ｓ１３０９）。指示には、例えば、通信装置１を識別する装置ＩＤ、ＮＩＦＩＤ、及び、復旧が指示されたパケット処理モジュール２０３の属するモジュールグループのモジュールグループＩＤを含む。復旧が指示されたパケット処理モジュール２０３を識別するパケット処理モジュールＩＤを含んでもよい。
【０１３６】
次に、詳細な説明は省略するが、保守者は、装置管理部１１１を経由してＮＩＦ管理部１１０に復旧指示を通知する（Ｓ１３１０〜Ｓ１３１１）。ＮＩＦ管理部１１０は、パケット処理モジュール２０３のパケット処理回路プログラムを更新するなどにより、パケット処理モジュール２０３の復旧作業を実施する（Ｓ１３１２）。
【０１３７】
そして、パケット処理モジュール２０３は、故障から復旧すると（Ｓ１３１３）、モジュール振分部２０２に故障からの復旧を通知（Ｓ１３１４）する。モジュール振分部２０２は、スケジューリング処理Ｓ７５１（図７Ｂ参照）を実施することで、故障から復旧したパケット処理モジュール２０３を振分対象に追加する（Ｓ１３１６）。
【０１３８】
また、パケット処理モジュール２０３は、レジスタ１０９に故障の復旧を通知し（Ｓ１３１５）、レジスタ１０９には、装置故障レジスタが未検出に設定される（Ｓ１３１７）。
【０１３９】
なお、詳細な説明は省略するが、レジスタ１０９からＮＩＦ管理部１１０及び装置管理部１１１を経由してネットワーク管理システム（保守者）に故障の復旧情報を通知しても良い（Ｓ１３１８〜１３２０）。
【０１４０】
通信装置１は、前述したように、故障状況あるいは復旧状況に応じて同一モジュールグループに利用するパケット処理モジュール２０３の数を増減することで、通信サービスの運用を継続したまま、その通信サービスの処理性能を縮退あるいは拡張することができる。
【０１４１】
前述のとおり、実施例１によれば、通信装置１は、受信するパケットの量を処理するだけに必要十分な処理回路を備えるために、通信装置１が備える処理回路を増減設することが可能である。また、通信装置１は、新サービスを提供する場合に、利用中のサービスには影響を与えることなく、その新サービスで利用する通信プロトコルの処理回路を通信装置に追加導入することが可能である。
【０１４２】
従って、実施例１によれば、通信装置に流れ込むパケット量、パケット種別に応じて、必要最低限のパケット処理回路で通信装置を構成することができる。
【０１４３】
（実施例２）
実施例１におけるパケット制御部１０４は、全てのパケット種別のパケットに対して入力パケットバッファ２０５を共用した。実施例２におけるパケット制御部１４４は、モジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）に振分けたパケット種別ごとのパケットに対して、それぞれ入力パケットバッファ１４０５（１４０５−１〜１４０５−Ｍ）を備える。
【０１４４】
以下、実施例２について図１４から図２０を用いて説明する。
【０１４５】
＜入力パケット制御部の構成例＞
図１４は、実施例２の入力パケット制御部１４４の論理的な構成を示すブロック図である。入力パケット制御部１４４は、パケット振分部１４０１、Ｍ個のモジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）、Ｎ個のパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）、パケット多重部１４０４、Ｍ個の入力パケットバッファ１４０５（１４０５−１〜１４０５−Ｍ）、及び、Ｍ個のモジュール多重部１４０６（１４０６−１〜１４０６−Ｍ）を備える。実施例２におけるパケット処理モジュール２０３は、実施例１におけるパケット処理モジュール２０３と同じである。
【０１４６】
パケット振分部１４０１は、入力パケット制御部１４４がＭＵＸ１０３から入力パケットを受信した場合、実施例１と同様にパケット振分管理テーブル３を参照してパケット種別を識別し、パケット種別毎に備えるモジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）にパケットを振分ける。詳細は、後述するパケット振分処理Ｓ１７５０（図１７参照）に示す。
【０１４７】
モジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）は、パケット振分部１４０１からパケットを受信した場合、実施例１と同様に、モジュール振分管理テーブル４を参照して、パケット処理を実行するパケット処理モジュール２０３を、複数のパケット処理モジュール２０３の中から決定し、決定したパケット処理モジュール２０３にヘッダ情報を振分ける。また、モジュール振分部１４０２は、入力パケットバッファ１４０５にパケット情報を転送する。詳細は、後述するモジュール振分部１４０２の論理構成（図１５参照）、及び、モジュール振分部１４０２のスケジューリング処理Ｓ１８５１（図１８Ｂ参照）に示す。
【０１４８】
なお、モジュール振分部１４０２は、実施例１と同様に、ヘッダ情報のみではなく、ペイロードまで情報を切り出してパケット処理モジュール２０３に転送しても良い。また、モジュール振分部１４０２は、識別したパケット種別に関わらず、一定サイズのデータ量を切り出してパケット処理モジュール２０３に転送しても良い。また、モジュール振分部１４０２は、パケット種別に応じて、切り出すパケットのデータ量を変更してもよい。例えば、ＮＩＦ管理部１１０は、モジュール追加時（Ｓ９１０）やプロトコル追加時（Ｓ１１０）に、モジュールト振分部１４０２に、パケット種別に応じて、切り出すパケットのデータ量を設定する。切り出すパケットのデータ量は、例えば、外部から受信する制御情報に含まれる。パケット処理モジュール２０３で処理するデータ量が少ない方が、処理時間を短縮できる。
【０１４９】
モジュール多重部１４０６は、例えばモジュール多重部１４０６−１の場合、Ｐ個の各パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）から受信したヘッダ情報と、入力パケットバッファ１４０５−１から読み出したパケット情報を多重し、ヘッダ情報の到着順にパケット多重部１４０４に送信する。この際、モジュール多重部１４０６−１は、後述するモジュール多重管理テーブル２０を参照し、多重処理を施す対象のパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）からヘッダ情報を受信しているかどうかを確認する。詳細は、後述するモジュール多重処理Ｓ１９５０（図１９参照）に示す。
【０１５０】
パケット多重部１４０４は、Ｍ個の各モジュール多重部１４０６（１４０６−１〜１４０６−Ｍ）から受信したパケット情報を多重し、到着順にＳＷインタフェース１０５に送信する。
【０１５１】
ここで、実施例２では、パケット種別ごとのパケットに対して、それぞれの入力パケットバッファ１４０５を備えており、例えばＰ個の各パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）は同じパケット処理回路であるため、パケット処理に要する時間はあらかじめ定められる。そのため、入力パケットバッファ１４０５は、シフトレジスタで構成され、モジュール振分部１４０２から受信するパケット情報を格納し、格納順にパケット情報をモジュール多重部１４０６に出力する。なお、入力パケットバッファ１４０５は、実施例１と同様に、ランダムアクセスを構成してパケット情報を管理しても良い。
【０１５２】
＜モジュール多重管理テーブル２０の記憶内容例＞
図２０は、実施例２のモジュール多重管理テーブル２０を示す説明図である。モジュール多重管理テーブル２０は、モジュール多重部１４０６がパケット処理に利用するパケット処理モジュール２０３のＩＤ一覧を有するテーブルである。モジュール多重管理テーブル２０は、利用モジュールＩＤフィールド２００１（２００１−１〜２００１−Ｎ）を含み、モジュール多重部１４０６ごとに各フィールド２００１の値を記憶する。なお、利用モジュールＩＤ２００１（２００１−１〜２００１−Ｎ）は、ＮＩＦ管理部１１０から設定される。
【０１５３】
＜モジュール振分部１４０２の構成例＞
図１５は、実施例２のモジュール振分部１４０２の論理的な構成を示すブロック図である。ここでは、実施例１と同様に、図１４に示したモジュール振分部１４０２−１を一例として、モジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）を説明する。
【０１５４】
モジュール振分部１４０２−１は、待合せバッファ１５０１、スケジューラ１５０２、及び、モジュール振分管理テーブル４を備える。
【０１５５】
待合せバッファ１５０１は、パケット振分部１４０１から転送されるパケット情報を格納し、スケジューラ１５０２からの読み出しに従って、パケットのヘッダ情報をスケジューラ１５０２に出力する。この際、読み出されたパケット情報は、入力パケットバッファ１４０５に格納される。スケジューラ１５０２は、待合せバッファ５０１からパケット情報を読み出してヘッダ情報を取得し、モジュール振分管理テーブル４の利用モジュールＩＤ４０１に従って、利用するパケット処理モジュール２０３にラウンドロビンで順番にヘッダ情報を転送する。
【０１５６】
実施例１と同様に、実際には、モジュール振分部１４０２−１は、Ｎ個の全てのパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）と接続される。モジュール振分部１４０２−１は、スケジューラ１５０２において、ヘッダ情報の振分け対象となる利用パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）を決定する。同様に、モジュール振分部１４０２−１は、利用するパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）からの受信情報（ＢＰ、故障情報、及び、復旧情報）のみを受け付ける。
【０１５７】
＜モジュール多重部１４０６の構成例＞
図１６は、実施例２のモジュール多重部１４０６の論理的な構成を示すブロック図である。ここでは、図１４に示したモジュール多重部１４０６−１を一例として、モジュール多重部１４０６（１４０６−１〜１４０６−Ｍ）を説明する。
【０１５８】
モジュール多重部１４０６−１は、多重論理１６０１、及び、前述のモジュール多重管理テーブル２０を備える。
【０１５９】
多重論理１６０１は、モジュール多重管理テーブル２０の利用モジュールＩＤ２００１に従って、利用するパケット処理モジュール２０３から受信したヘッダ情報と、入力パケットバッファ１４０５から読み出したパケット情報を多重し、再構成したパケットをパケット多重部１４０４に転送する。
【０１６０】
ここで、図１４では、便宜上、モジュール多重部１４０６−１は、利用するパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）、及び、入力パケットバッファ１４０５−１とのみ接続するように示したが、実際には、モジュール多重部１４０６−１は、Ｎ個の全てのパケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）、及び、Ｍ個の入力パケットバッファ１４０５（１４０５−１〜１４０５−Ｍ）と接続される。モジュール多重部１４０６−１は、多重論理１６０１において、ヘッダ情報及びパケット情報の多重対象となる利用パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ）及び入力パケットバッファ１４０５（１４０５−１〜１４０５−Ｍ）を決定する。
【０１６１】
以下に、パケット振分部１４０１が実行するパケット振分処理Ｓ１７５０について説明する。
【０１６２】
＜パケット振分処理Ｓ１７５０＞
図１７は、実施例２のパケット振分部１４０１が実行するパケット振分処理Ｓ１７５０を示すフローチャートである。実施例２では、パケット振分部１４０１は、パケットのイーサタイプを用いてモジュール振分部１４０２（１４０２−１〜１４０２−Ｍ）にパケットを振分ける例を示す。
【０１６３】
パケット振分部１４０１は、ＭＵＸ１０３からパケットを受信した場合（Ｓ１７００）、パケットヘッダからイーサタイプを取得する（Ｓ１７０１）。Ｓ１７０１の後、パケット振分部１４０１は、イーサタイプを検索キーとしてパケット振分管理テーブル３を検索し、モジュールグループＩＤを取得する（Ｓ１７０２）。Ｓ１７０２の後、パケット振分部１４０１は、受信したパケットを取得したモジュールグループＩＤに対応するモジュール振分部１４０２に転送し（Ｓ１７０３）、パケット振分処理Ｓ１７５０を終了する（Ｓ１７０４）。
【０１６４】
以下に、モジュール振分部１４０２が実行するバッファ格納処理Ｓ１８５０、及び、スケジューリング処理Ｓ１８５１について説明する。
【０１６５】
＜バッファ格納処理Ｓ１８５０＞
図１８Ａは、実施例２のモジュール振分部１４０２が実行するバッファ格納処理Ｓ１８５０を示すフローチャートである。
【０１６６】
モジュール振分部１４０２は、パケット振分部１４０１からパケットを受信した場合（Ｓ１８００）、受信したパケット情報の装置内ヘッダからパケット長情報を取得する（Ｓ１８０１）。Ｓ１８０１の後、モジュール振分部１４０２は、モジュール振分管理テーブル４を検索し、受信パケット数及び受信バイト数を取得する（Ｓ１８０２）。Ｓ１８０２の後、モジュール振分部１４０２は、Ｓ１８００において受信したパケットの数、及び、Ｓ１８０１において取得したパケット長情報を用いて受信パケット数及び受信バイト数を更新し、モジュール振分管理テーブル４に書き戻す（Ｓ１８０３）。Ｓ１８０３の後、モジュール振分部１４０２は、受信したパケット情報を待合せバッファ１５０１に格納し（Ｓ１８０４）、バッファ格納処理Ｓ１８５０を終了する（Ｓ１８０５）。なお、Ｓ１８０４において、待合せバッファ１５０１にパケットを格納出来ない場合は、モジュール振分部１４０２は、オーバフローを検出してレジスタ１０９に通知し、バッファ格納処理Ｓ１８５０を終了する（Ｓ１８０５）。
【０１６７】
＜スケジューリング処理Ｓ１８５１＞
図１８Ｂは、実施例２のモジュール振分部１４０２が実行するスケジューリング処理Ｓ１８５１を示すフローチャートである。実施例２におけるＳ１８２１〜Ｓ１８２４は、実施例１におけるＳ７２１〜Ｓ７２４（図７Ｂ参照）と処理が同様であるため、説明は省略する。
【０１６８】
Ｓ１８２４において、選択したパケット処理モジュール２０３からＢＰを受信していないと判定された場合（ステップＳ１８２４：Ｎｏ）、モジュール振分部１４０２は、待合せバッファ１５０１にパケット情報が格納されているか否かを判定する（Ｓ１８２５）。
【０１６９】
Ｓ１８２５において、待合せバッファ１５０１にパケット情報が格納されていないと判定された場合（ステップＳ１８２５：Ｎｏ）、モジュール振分部１４０２は、スケジューリング処理Ｓ１８５１を終了する（Ｓ１８２７）。
【０１７０】
また、Ｓ１８２５において、待合せバッファ１５０１にパケット情報が格納されていると判定された場合（ステップＳ１８２５：Ｙｅｓ）、モジュール振分部１４０２は、待合せバッファ１５０１からヘッダ情報を読み出し、Ｓ１８２２あるいはＳ１８２３において選択したパケット処理モジュール２０３にヘッダ情報（装置内ヘッダ及びパケットのヘッダ部分を含む）を転送する。また、モジュール振分部１４０２は、各モジュール振分部１４０２に対応する入力パケットバッファ１４０５にパケット情報を格納する。さらに、上記処理後、モジュール振分部１４０２は、内部カウンタを更新して次のパケット処理モジュール２０３を選択し、次のヘッダ情報の転送に備える（Ｓ１８２６）。Ｓ１８２６の後、モジュール振分部１４０２は、スケジューリング処理Ｓ１８５１を終了する（Ｓ１８２７）。
【０１７１】
ここで、実施例２では、入力パケットバッファ１４０５はシフトレジスタで構成されるため、モジュール振分部１４０２は、パケット処理モジュール２０３にヘッダ情報を転送する時、入力パケットバッファ１４０５にパケット情報を格納したＷＲアドレスを装置内ヘッダに付与していない。なお、モジュール振分部１４０２は、装置内ヘッダにＷＲアドレスを付与しても良い。
【０１７２】
以下に、モジュール多重部１４０６が実行するモジュール多重処理Ｓ１９５０について説明する。
【０１７３】
＜モジュール多重処理Ｓ１９５０＞
図１９は、実施例２のモジュール多重部１４０６が実行するモジュール多重処理Ｓ１９５０を示すフローチャートである。
【０１７４】
モジュール多重部１４０６は、パケット処理モジュール２０３（２０３−１１〜２０３−１Ｐ、・・・、２０３−Ｍ１〜２０３−ＭＱ）からヘッダ情報を受信した場合（Ｓ１９００）、モジュール多重管理テーブル２０を検索し、利用モジュールＩＤ一覧の情報を取得する（Ｓ１９０１）。Ｓ１９０１の後、モジュール多重部１４０６は、Ｓ１９００において受信したヘッダ情報が、Ｓ１９０１において取得した利用モジュールＩＤが示すパケット処理モジュール２０３から受信しているか否かを判定する（Ｓ１９０２）。
【０１７５】
Ｓ１９０２において、利用モジュールＩＤが示すパケット処理モジュール２０３からヘッダ情報を受信していないと判定された場合（ステップＳ１９０２：Ｎｏ）、多重非対象のパケットであるため、モジュール多重部１４０６は、処理を終了する（Ｓ１９０５）。
【０１７６】
Ｓ１９０２において、利用モジュールＩＤが示すパケット処理モジュール２０３からヘッダ情報を受信していると判定された場合（ステップＳ１９０２：Ｙｅｓ）、多重対象のパケットであるため、モジュール多重部１４０６は、入力パケットバッファ１４０５の先頭からパケット情報を読み出す（Ｓ１９０３）。Ｓ１９０３の後、モジュール多重部１４０６は、受信したヘッダ情報と、入力パケットバッファ１４０５から読み出したパケット情報を組み合わせてパケットを再構成し、パケット多重部１４０４にパケットを転送する（Ｓ１９０４）。Ｓ１９０４の後、モジュール多重部１４０６は、モジュール多重処理Ｓ１９５０を終了する（Ｓ１９０５）。
【０１７７】
前述のとおり、実施例２によれば、実施例１と同様に、通信装置１は、受信するパケットの量を処理するだけに必要十分な処理回路を備えるために、通信装置１が備える処理回路を増減設することが可能である。また、通信装置１は、新規通信サービスを提供する場合に、利用中の通信サービスには影響を与えることなく、その新規通信サービスで利用する通信プロトコルの処理回路を通信装置に追加導入することが可能である。
【０１７８】
従って、実施例２によれば、通信装置に流れ込むパケット量、パケット種別に応じて、必要最低限のパケット処理回路で通信装置を構成することができる。
【０１７９】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【０１８０】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１８１】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１８２】
１  通信装置
３  パケット振分管理テーブル
４  モジュール振分管理テーブル
２０  モジュール多重管理テーブル
１０４  入力パケット制御部
１４４  入力パケット制御部
２０２  モジュール振分部
１４０２  モジュール振分部
１４０６  モジュール多重部
【図１】
2016010017.tif 000003
【図２】
2016010017.tif 000004
【図３】
2016010017.tif 000005
【図４】
2016010017.tif 000006
【図５】
2016010017.tif 000007
【図６】
2016010017.tif 000008
【図７Ａ】
2016010017.tif 000009
【図７Ｂ】
2016010017.tif 000010
【図８】
2016010017.tif 000011
【図９】
2016010017.tif 000012
【図１０】
2016010017.tif 000013
【図１１】
2016010017.tif 000014
【図１２】
2016010017.tif 000015
【図１３】
2016010017.tif 000016
【図１４】
2016010017.tif 000017
【図１５】
2016010017.tif 000018
【図１６】
2016010017.tif 000019
【図１７】
2016010017.tif 000020
【図１８Ａ】
2016010017.tif 000021
【図１８Ｂ】
2016010017.tif 000022
【図１９】
2016010017.tif 000023
【図２０】
2016010017.tif 000024