(57)【特許請求の範囲】
【請求項１】
ネットワークパケットを処理するネットワークノードであって、
前記ネットワークパケットを処理する複数の処理モジュールと、
前記ネットワークパケットの一部又は全部を格納するバッファメモリと、
前記ネットワークパケットを制御するための制御情報を前記ネットワークパケットから分離し、前記ネットワークパケットのデータ部分を含む一部又は前記ネットワークパケットの全部を前記バッファメモリに書き込むデータ分離モジュールと、
前記バッファメモリに格納されたネットワークパケットの一部又は全部を読み出し、前記制御情報と結合するデータ結合モジュールと、
前記処理モジュール、前記データ分離モジュール及び前記データ結合モジュールの間の接続を切り替え可能なスイッチと、
前記複数の処理モジュールを接続するための情報を前記スイッチに設定するノード管理部と、を備え、
前記複数の処理モジュールの少なくとも一つが、前記ネットワークパケットから分離された制御情報を用いて前記ネットワークパケットを処理し、
前記データ結合モジュールは、前記バッファメモリに格納されたネットワークパケットの一部又は全部と前記制御情報とを結合することによって、前記処理の結果を前記ネットワークパケットに反映し、
前記ノード管理部は、入力された前記ネットワークノードの設計情報に基づいて、前記複数の処理モジュールから必要な処理モジュールを選択し、前記選択された処理モジュールの接続を決定することを特徴とするネットワークノード。
【請求項２】
前記複数の処理モジュールは、前記ネットワークパケットから分離された制御情報を用いて前記ネットワークパケットを処理し、
前記データ分離モジュールは、前記複数の処理モジュールによって処理される前記制御情報を、前記ネットワークパケットから分離し、
前記データ結合モジュールは、前記複数の処理モジュールによって処理された前記制御情報を、前記バッファメモリに格納されたネットワークパケットの一部又は全部と結合し、
前記複数の処理モジュール間では、各処理モジュールによって処理された制御情報のみが転送されることを特徴とする請求項１に記載のネットワークノード。
【請求項３】
前記複数の処理モジュールは、前記ネットワークパケットの全体を用いて処理を行う少なくとも一つの第１の処理モジュールと、前記ネットワークパケットの制御情報を用いて処理を行う少なくとも一つの第２の処理モジュールとを含み、
前記スイッチは、
前記第１の処理モジュールが前記データ分離モジュールより前段、又は、前記データ結合モジュールより後段に位置するように、前記各モジュールを接続し、
前記第２の処理モジュールが前記データ分離モジュールより後段、かつ、前記データ結合モジュールより前段に位置するように、前記各モジュールを接続することを特徴とする請求項１に記載のネットワークノード。
【請求項４】
前記スイッチは、前記第１処理モジュール、前記データ分離モジュール及び前記データ結合モジュールの間を接続する第１のスイッチと、前記第２処理モジュール、前記データ分離モジュール及び前記データ結合モジュールの間を接続する第２のスイッチと、を含むことを特徴とする請求項３に記載のネットワークノード。
【請求項５】
前記スイッチ内で接続される入出力端子を対応付けたスイッチ設定管理情報を格納することを特徴とする請求項１に記載のネットワークノード。
【請求項６】
ネットワークパケットを処理するネットワークノードを設定するノード管理部において実行されるネットワークノードの設定方法であって、
前記ネットワークノードは、前記ネットワークパケットを処理する複数の処理モジュールと、前記ネットワークパケットの一部又は全部を格納するバッファメモリと、前記ネットワークパケットを制御するための制御情報を前記ネットワークパケットから分離し、前記ネットワークパケットのデータ部分を含む一部又は前記ネットワークパケットの全部を前記バッファメモリに書き込むデータ分離モジュールと、前記バッファメモリに格納されたネットワークパケットの一部又は全部を読み出し、前記制御情報と結合するデータ結合モジュールと、前記処理モジュール、前記データ分離モジュール及び前記データ結合モジ
ュールの間の接続を切り替え可能なスイッチと、を有し、
前記ノード管理部は、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を有し、
前記方法は、
前記ネットワークノードの設計情報の入力を受け付ける第１の手順と、
前記入力された設計情報に基づいて、前記複数の処理モジュールから必要な処理モジュールを選択する第２の手順と、
前記選択された処理モジュールの接続を決定する第３の手順と、
前記決定された接続を前記スイッチに設定するための情報を生成する第４の手順と、を含むネットワークノードの設定方法。
【請求項７】
前記第３の手順では、前記処理モジュールの種類に基づいて、前記データ分離モジュール及び前記データ結合モジュールを接続する位置を決定することを特徴とする請求項６に記載のネットワークノードの設定方法。
【請求項８】
前記第３の手順では、
前記複数の処理モジュールが、前記ネットワークパケットから分離された制御情報を用いて前記ネットワークパケットを処理し、
前記データ分離モジュールが、前記複数の処理モジュールによって処理される前記制御情報を、前記ネットワークパケットから分離し、
前記データ結合モジュールが、前記複数の処理モジュールによって処理された前記制御情報を、前記バッファメモリに格納されたネットワークパケットの一部又は全部と結合し、
前記複数の処理モジュール間では、各処理モジュールによって処理された制御情報のみが転送されるように、前記処理モジュールの接続を決定することを特徴とする請求項７に記載のネットワークノードの設定方法。
【請求項９】
前記複数の処理モジュールは、前記ネットワークパケットの全体を用いて処理を行う少なくとも一つの第１の処理モジュールと、前記ネットワークパケットの制御情報を用いて処理を行う少なくとも一つの第２の処理モジュールとを含み、
前記第３の手順では、
前記第１の処理モジュールが前記データ分離モジュールより前段、又は、前記データ結合モジュールより後段に位置するように、前記各モジュールを接続し、
前記第２の処理モジュールが前記データ分離モジュールより後段、かつ、前記データ結合モジュールより前段に位置するように、前記各モジュールを接続するように、前記処理モジュールの接続を決定することを特徴とする請求項７に記載のネットワークノードの設定方法。
【請求項１０】
前記複数の処理モジュールは、前記ネットワークパケットの全体を用いて処理を行う少なくとも一つの第１の処理モジュールと、前記ネットワークパケットの制御情報を用いて処理を行う少なくとも一つの第２の処理モジュールとの二つの種類に分類され、
前記第３の手順では、
前段の処理モジュールの種類と後段の処理モジュールの種類とが同一であるか否かを判定し、
両処理モジュールの種類が同一である場合、前記データ分離モジュール及び前記データ結合モジュールを挟まずに、前記前段の処理モジュールと前記後段の処理モジュールとを接続することを特徴とする請求項７に記載のネットワークノードの設定方法。
【請求項１１】
前記複数の処理モジュールは、前記ネットワークパケットの全体を用いて処理を行う少なくとも一つの第１の処理モジュールと、前記ネットワークパケットの制御情報を用いて処理を行う少なくとも一つの第２の処理モジュールとの二つの種類に分類され、
前記第３の手順では、
前段の処理モジュールの種類と後段の処理モジュールの種類とが同一であるか否かを判定し、
前記前段の処理モジュールが第１の処理モジュールであり、前記後段の処理モジュールが第２の処理モジュールである場合、前記前段の処理モジュールと前記後段の処理モジュールとを前記データ分離モジュールを挟んで接続し、
前記前段の処理モジュールが第２の処理モジュールであり、前記後段の処理モジュールが第１の処理モジュールである場合、前記前段の処理モジュールと前記後段の処理モジュールとを前記データ結合モジュールを挟んで接続することを特徴とする請求項７に記載のネットワークノードの設定方法。
【請求項１２】
前記第３の手順では、
前段の処理モジュールの出力の仕様と、当該処理モジュールに直接接続される後段の処理モジュールの入力の仕様とが整合するかを判定し、
前記出力の仕様と前記入力の仕様とが整合しない場合、当該接続に警告情報を付すことを特徴とする請求項６に記載のネットワークノードの設定方法。
【請求項１３】
前記ノード管理部は、前記処理モジュールの代替となる処理モジュールの情報を含む代替情報を管理し、
前記第２の手順では、前記入力された設計情報に基づいて選択されるべき処理モジュールが使用できない場合、前記代替情報を参照して、当該選択されるべき処理モジュールの代替となる処理モジュールを提案する情報を生成することを特徴とする請求項６に記載のネットワークノードの設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内でデータを転送するネットワークノードに関係し、特に、機能モジュールを組み合わせて構成されるネットワークノードに関する。
【背景技術】
【０００２】
近年、ネットワーク上では、インターネット、電話、モバイル、企業網等の種々のサービスが実施されている。このような異なるサービスに対応するネットワークを、一つのインフラでサポートし、各サービスに必要な機能を実現するために、物理的なネットワーク上に、複数の論理ネットワーク（スライス）を生成する仮想化ネットワーク技術が使用される。
【０００３】
ネットワークを仮想化するためには、インフラとなるネットワーク内のノードにおいて、仮想ネットワークのスライス特有の処理、さらには、スライス間のアイソレーション等を実現する必要がある。これらの機能への要求はスライス毎に異なり、さらにスライスが動的に生成又は消滅すると、ノードの機能を動的に変更する必要がある。このため、ソフトウェア（汎用サーバやネットワークプロセッサ上のプログラム）の処理によって、これらの機能を実現する方法が提案されている。しかし、ソフトウェアで実現する方法は、ハードウェアで実現する方法より、処理速度及び処理量が劣るため、ノードが有する機能をプログラマブルなモジュール又は構成要素として提供する必要がある。
【０００４】
特に、ネットワーク仮想化をサポートするノードでは、動的、精密かつスケーラブルなリソース・アイソレーション機能を実現するために、ノードが有するシェーピング機能（ＱｏＳ機能）、ポリサ、ＶＬＡＮタグ交換機等の機能をモジュールとして仮想化基盤の管理者（システム・インテグレータ）に提供する必要がある。
【０００５】
現在のネットワークノード（ルータ）においては、これらのシェーパ等のモジュールは、ネットワークへのインタフェース・カードと一体となって提供されている。従って、他のモジュールと組み合わせて使用するためには、ノードの外部において、モジュール間をケーブル（ループ）によって接続する必要がある。
【０００６】
例えば、従来のノードにおいて複数のモジュールを組み合わせて図２０の設計図に示す機能のノードを実現する場合について説明する。すなわち、入出力ポート１（９５０１）から入力されたトラヒックは、モジュールＡ（９５１１）及びモジュールＢ（９５１２）を通り、入出力ポート２（９５０２）から出力される。これに対して、入出力ポート２（９５０２）から入力されたトラヒックは、モジュールＣ（９５１３）を経由して、入出力ポート１（９５０１）から出力される。このように、往きと復りで異なる機能を経由することは、通信の方向により、ポリサやシェーパを使い分ける際に必要である。
【０００７】
図２０に示す機能を、モジュール間のケーブル（ループ）接続によって実現する場合の実装例を図２１に示す。
【０００８】
ノード（ルータ）９１００は、図２０に示す機能を実現するために必要となるモジュールＡ９０１１、モジュールＢ９０１２、モジュールＣ９０１３のハードウェアが、各々、外部インタフェース（９１１２、９１１４、９１１６）に搭載されている。従って、図示するように、モジュール間を接続するためにインタフェース間をノードの外部でネットワークケーブル９１２１、９１２２によって接続して、トラヒックが必要な機能を経由するようにする。
【０００９】
この場合、物理ルータを複数の論理的なスイッチに分割し、一台の物理ルータを複数回トラヒックが通過できるようにする。また、モジュール間をノードの外部でケーブルによって接続した場合、往復のトラヒックが同一の経路、すなわち、往復のトラヒックがモジュールＡ、Ｂ、Ｃを経由する（往路又は復路において使用しないモジュールは通過するだけとなる）。
【００１０】
前述した構成では、モジュールを組み合わせる際に外部結線を必要とするため、スライスの構成が変更され、ノードの機能を変更し、必要なモジュールが変更になる場合は、管理者が物理的にケーブルの接続を変更しなければならない。このような、ケーブルによる接続の変更は、運用の自動化、構成変更の早期実現において大きな障害となる。
【００１１】
この問題を解決するために、モジュール間の外部ケーブルに代えて、ネットワークスイッチで接続する方式が提案されている。しかし、モジュール間の接続はスライスの構成が決定された後は変更する必要がないが、ネットワークスイッチはパケット毎に高速に宛先を切り替えることができるので、オーバースペックであり、コストが増大し、消費電力が増大する可能性がある。
【００１２】
この課題を解決するための技術として、特許文献１は、スイッチマトリックスを用いた電子パッチパネルを開示する。このパッチパネルは、任意のネットワーク機器の間の接続の回線交換を実現する機器である。従来のパッチパネルでは、人間がパッチパネル上の接続を物理的に切り替えたが、電子パッチパネルにおいては、クロスポイントスイッチＬＳＩによって、電子的に回線交換を行い、人手による配線変更を不要としている。
【００１３】
また、電子パッチパネルを使用することによって、オーバースペックなパケットスイッチを使用することなく、モジュール間の接続を柔軟に変更できる。
【００１４】
また、特許文献２は、シェーパにおけるモジュールの実装方式を開示する。特許文献２に記載されたモジュールの実装方式では、入力されたパケットは、パケットバッファ書込み制御回路で、データ部と制御信号（ヘッダ部等）に分離され、データ部はパケットバッファに格納され、制御信号は制御判断ロジックに送られる。そして、モジュールにてシェーピングが行われ、パケットが出力可能と判断されると、出力されるパケットの制御信号が、パケットバッファ読出し制御回路に送られる。その結果、パケットバッファからパケットのデータが読み出され、パケットが再構成され、出力される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】米国特許第６２４３５１０号明細書
【特許文献２】特許第３７１１７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
特許文献１に開示されるようにノード内にクロスポイントスイッチを設け、複数のモジュールを柔軟に組み合わせてノードを構成し、特許文献２に開示されたような制御信号のみを処理するモジュールをクロスポイントスイッチを挟んで複数連続して設けた場合、図２２に示すように、データと制御信号の分離、バッファへのデータの書き込み、バッファからデータの読み出し、及び、データと制御信号との結合を繰り返すことになり、処理の遅延が増加し、消費電力が増加し、分離機能、結合機能及びバッファの重複によるモジュールのコストが増加する。
【課題を解決するための手段】
【００１７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークパケットを処理するネットワークノードであって、前記ネットワークパケットを処理する複数の処理モジュールと、前記ネットワークパケットの一部又は全部を格納するバッファメモリと、前記ネットワークパケットを制御するための制御情報を前記ネットワークパケットから分離し、前記ネットワークパケットのデータ部分を含む一部又は前記ネットワークパケットの全部を前記バッファメモリに書き込むデータ分離モジュールと、前記バッファメモリに格納されたネットワークパケットの一部又は全部を読み出し、前記制御情報と結合するデータ結合モジュールと、前記処理モジュール、前記データ分離モジュール及び前記データ結合モジュールの間の接続を切り替え可能なスイッチと、前記複数の処理モジュールを接続するための情報を前記スイッチに設定するノード管理部と、を備え、前記複数の処理モジュールの少なくとも一つが、前記ネットワークパケットから分離された制御情報を用いて前記ネットワークパケットを処理し、前記データ結合モジュールは、前記バッファメモリに格納されたネットワークパケットの一部又は全部と前記制御情報とを結合することによって、前記処理の結果を前記ネットワークパケットに反映し、前記ノード管理部は、入力された前記ネットワークノードの設計情報に基づいて、前記複数の処理モジュールから必要な処理モジュールを選択し、前記選択された処理モジュールの接続を決定することを特徴とする。
【発明の効果】
【００１８】
本発明の代表的な実施の形態によれば、ネットワークノード内で、複数のモジュールを柔軟に組み合わせた場合に、処理のオーバヘッドやハードウェア量を削減することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態のノードの特徴を示す概念図である。
【図２】第１の実施形態のノードが設けられるネットワークの構成を示すブロック図である。
【図３】第１の実施形態のノードの構成を示すブロック図である。
【図４】第１の実施形態のコンソールに表示される設計図の入力画面の例である。
【図５】第１の実施形態のノードの設計図の例の説明図である。
【図６】図５に示す設計図に従って構築されたノード内のデータフローの説明図である。
【図７】第１の実施形態のノード管理部のトップレベルの処理のフローチャートである。
【図８】第１の実施形態のモジュール選択処理の詳細なフローチャートである。
【図９Ａ】第１の実施形態のモジュール選択処理の詳細なフローチャートである。
【図９Ｂ】第１の実施形態のモジュール選択処理の詳細なフローチャートである。
【図１０】第１の実施形態のモジュール設定情報変更処理の詳細なフローチャートである。
【図１１】第１の実施形態のモジュールスペック管理表の構成の一例を説明する図である。
【図１２】第１の実施形態のモジュール管理表の構成の一例を説明する図である。
【図１３】第１の実施形態のデータ分離／結合機能管理表の構成の一例を説明する図である。
【図１４】第１の実施形態の接続管理表の構成の一例を説明する図である。
【図１５】第１の実施形態のスイッチ設定情報作成処理の詳細なフローチャートである。
【図１６】第１の実施形態のスイッチ接続情報管理表の構成の一例を説明する図である。
【図１７】第１の実施形態のスイッチ設定管理表の構成の一例を説明する図である。
【図１８】第２の実施形態のモジュール選択処理の詳細なフローチャートである。
【図１９】第２の実施形態の代替モジュール管理表の構成の一例を説明する図である。
【図２０】従来のノードの設計図の例の説明図である。
【図２１】従来のモジュール間をケーブル（ループ）によって接続する場合の実装例の説明図である。
【図２２】従来技術によって、クロスポイントスイッチを挟んでモジュールを複数連続して設けた場合ノードの構成の説明図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態のノードは、スイッチによって接続されたモジュール間で、バッファメモリを共通化し、前記接続されたモジュール間で制御情報を受け渡して処理を実行し、前記処理の結果をバッファメモリのデータに反映することを特徴とする。
【００２１】
図１は、本発明の実施形態のノードの特徴を示す概念図であり、モジュールＣ及びＤを接続した場合のノードの構成を示す。
【００２２】
図１に示す構成では、モジュールを通過するデータは、一連のモジュールに入力される前にデータ／制御情報分離部８０６１を、一連のモジュールから出力された後に出た後データ／制御情報分離部８１６３を、各々一回のみ通過する。データのバッファ８３６３はモジュール間で共通に使用される。
【００２３】
すなわち、入力されたパケットは、データ／制御分離部８０６１で制御情報が分離された後、制御系８３０１で処理される。データ／制御結合部８１６３は、処理結果に基づいて出力された制御情報に従って、パケットを再構築して出力する。制御系８３０１の中では、制御情報処理モジュールを接続するスイッチ８０３０が、制御情報を扱う制御判断ロジック（モジュールＣ（８０５１）、モジュールＤ（８１５１））を接続する。その結果、モジュール間では制御情報のみが転送される。
【００２４】
このように構成することによって、制御系８３０１の内部では、スイッチ８０３０により任意のモジュールを接続し、バッファメモリを共通化することによって、データの分離及び結合のオーバヘッドを削減することができる。
【００２５】
さらに、本発明においては、ノード内に、制御情報処理モジュール間を接続するスイッチの他、全データを処理するモジュール間を接続するスイッチを設けることによって、制御情報処理モジュール間、及び、全データ処理モジュール間を接続することができ、ノードを柔軟に構成することができる。
【００２６】
＜実施形態１＞
（ネットワークの構成）
図２は、本発明の第１の実施形態のノードが設けられるネットワークの構成を示すブロック図である。
【００２７】
第１の実施形態のネットワーク７０００は、互いに接続された複数のノード７１０１、７２０１、７３０１、７４０１によって構成される。各ノード７１０１、７２０１、７３０１、７４０１には、それぞれ、端末７９０１、７９０２、９０７３、７９０４が接続される。
【００２８】
各ノード７１０１、７２０１、７３０１、７４０１は、他のノードのと間及び端末との間でパケットを転送する。
【００２９】
ノード７１０１は、スイッチ２０、３０、モジュールプール４０、５０及びデータ分離／結合部６０を有する。ノードの構成の詳細は図３を用いて後述する。なお、各ノード７１０１、７２０１、７３０１、７４０１は同じ構成を有する。
【００３０】
（ノードの構成）
図３は、第１の実施形態のノードの構成を示すブロック図である。
【００３１】
ノード１は、入出力ポート１０〜１１、往復分離部１５〜１６、モジュールプール４０、５０、スイッチ２０、３０、データ分離／結合部６０及び構成情報ストレージ７０を有する。
【００３２】
入出力ポート１０〜１１は、ノード１にデータを入出力する。往復分離部１５〜１６は、各々、入出力ポート１０〜１１に入出力されるデータを入力データと出力データとに分離する。
【００３３】
モジュールプール４０は、全パケットを処理する複数のモジュール４１〜４３を含み、モジュールプール５０は、制御情報を処理する複数のモジュール５１〜５２を含む。全パケット処理をするモジュールは、パケットの本体（ユーザデータ）を含めて処理するモジュールであり、通常、パケットのデータを保持するバッファを内蔵する。例えば、全パケット処理をするモジュールは、暗号化機能、圧縮機能、負荷分散装置（Ｌ７−ＳＷ）である。一方、制御情報を処理するモジュールは、パケットの制御情報（ヘッダ情報）のみを取り扱い、データはモジュールの外部に設けられ、他のモジュールと共通に用いられるバッファに格納される。例えば、制御情報を処理するモジュールは、各種シェーパ、タグ交換機、カプセリング機能である。
【００３４】
スイッチ２０、３０は、例えば、クロスポイントスイッチによって構成される。スイッチ２０は、入出力ポート１０〜１１及び全パケット処理モジュール４１〜４３との間、及び、全パケット処理モジュール４１〜４３間を接続し、スイッチ３０は、制御情報処理モジュール間を接続する。なお、本実施形態では、二つのスイッチを有するが、後述するように、スイッチ２０、３０を一つのスイッチで構成してもよい。
【００３５】
二つのスイッチ２０、３０の間には、データ分離／結合部６０が設けられる。各スイッチ２０、３０は、データ分離／結合部６０とモジュール間を接続する。データ分離／結合部６０は、データ／制御情報分離部６１、バッファメモリ６２及びデータ／制御結合部６３を有する。
【００３６】
データ／制御情報分離部６１は、受信したパケットの本体部（ユーザデータ）と制御情報（ヘッダ部）とを分離し、本体部をバッファメモリ６２に書き込む。データ／制御情報結合部６３は、バッファメモリ６２から読み出した本体部を制御情報と結合する。
【００３７】
各往復分離部１５〜１６、モジュールプール４０、５０及びデータ分離結合部６０の入出力端子と、スイッチ２０、３０の入出力端子とは、データバス２１０、２２０、２３０、２４０、２５０、２６０、３１０、３２０、３３０、３４０で接続されている。これらのデータバスは単方向のバスである。
【００３８】
入出力ポート１０〜１１と往復分離部１５〜１６とは、各々、データバス１１０で接続されている。データバス１１０は双方向のバスである。
【００３９】
本実施形態では、モジュールＡ、Ｂは全パケット処理をするモジュールであり、モジュールＣ、Ｄは制御情報のみを処理するモジュールである。モジュールＡ（４１、４２）のように、同種の複数のモジュールを設けることができる。前述したＡ、Ｂ、Ｃ、Ｄはモジュールの種類を示すモジュール種別ＩＤ（図１１参照）である。
【００４０】
構成情報ストレージ７０は、スイッチ２０、３０に設定されるスイッチ設定管理表２０６０（図１７参照）を保持する不揮発性記憶装置（例えば、フラッシュメモリなど）である。構成情報ストレージ７０に保持されたスイッチ設定管理表２０６０に従って、スイッチ２０、３０が設定され、モジュール４１〜４３、５１〜５２が接続される。ノード１の電源が投入された際に、構成情報ストレージ７０からスイッチ設定管理表２０６０が読み出され、管理者が入力した設計情報に従ってノード１が構成される。
【００４１】
なお、構成情報ストレージ７０は、モジュール管理表２０２０（図１２参照）を保持してもよい。この場合、モジュール管理表２０２０の帯域設定情報２０２４に従って、モジュールの帯域が設定される。
【００４２】
ノード１は、さらに、ノードの構成を管理するノード管理部８０を有する。ノード管理部８０は、プロセッサ（ＣＰＵ）８１、主記憶メモリ８２、ストレージ（不揮発性記憶装置）８３及び通信インターフェースを有する計算機であり、いわゆる組み込みプロセッサによって構成することができる。なお、ノード管理部８０は、ノード１の内部ではなく、外部に設けてもよい。
【００４３】
管理者は、ノード１に接続されたコンソール９０を通して、ノード管理部８０にノード１の設計図９５を入力する。ノード管理部８０は、管理者が入力した設計図９５に基づき、所定のプログラムを実行することにより行われる後述する手順に従って、ノードの構成情報を生成し、生成したノードの構成情報を構成情報ストレージ７０に格納する。
【００４４】
コンソール９０は、プロセッサ（ＣＰＵ）、主記憶メモリ、ストレージ（不揮発性記憶装置）、ユーザインターフェース及び通信インターフェースを有する計算機である。コンソール９０は、ノード１から出力される結果を表示し、かつ、ユーザからの入力を受け付けるためのアプリケーション（例えば、ｗｅｂブラウザ）が動作すればよい。
【００４５】
図４は、第１の実施形態のコンソール９０に表示される設計図の入力画面の例である。
【００４６】
コンソール９０に表示される画面は、ＧＵＩによりノードの設計図９５を入力する設計入力領域９１、ノード管理部８０から出力されるメッセージを表示するのメッセージ出力領域９２、設計図を入力するためのコマンドを選択するメニュー領域９７及びパラメータを入力するウィンドウ９８を含む。
【００４７】
ＧＵＩによるコンソール９０からの設計図の入力は、イベントドリブンで実現される。管理者は、カーソル９６を移動し、メニュー領域９７からコマンドを選択し、選択されたコマンドに対応するパラメータを入力ウィンドウ９８に入力する。
【００４８】
以下に、ノード内のモジュール及びスイッチで実現される処理について説明する。
【００４９】
図５は、第１の実施形態のノードの設計図の例の説明図である。
【００５０】
入出力ポートＰ１（５１０）と、入出力ポートＰ２（５１１）との間には、複数のモジュールＣ（５５１）、Ｄ（５５２）、Ａ（５４１）及びＢ（５４３）が配置される。入出力ポートＰ１からＰ２へのパケットはモジュールＣ、Ｄ、Ａを順に経由し、逆向きに入出力ポートＰ２からＰ１へのパケットはモジュールＢを経由する。ここで、モジュールＣ及びＤは制御情報のみを処理するモジュールであり、モジュールＡ及びＢは全パケットを処理するモジュールである。モジュールに括弧にて図示したラベル（Ｌ００１〜Ｌ００６）は、論理モジュールＩＤであり、ＧＵＩ上でモジュールを区別するために、設計図の入力時にノード管理部８０が付与する。
【００５１】
以下に、本実施形態のノード管理部８０の処理、及び、各種管理表について、図３で示す構成のノード１に、図５の設計図で示すシステムを構成する例について説明する。
【００５２】
図６は、図５に示す設計図に従って構築されたノード１内のデータフローの説明図である。
【００５３】
スイッチ２０、３０内では、入力端子と出力端子とが黒丸の箇所で接続されている。モジュールプール４０、５０内の各モジュールには、括弧内に示した物理的なモジュールの識別子である物理モジュールＩＤが付されている。例えば、ノード１には、物理モジュールＡ１及びＡ２の複数のモジュールＡが実装される。物理モジュールＩＤはモジュール間の接続を識別するために使用される。データ分離／結合部６０内の特別なモジュールも、物理モジュールＩＤを持ち、データ／制御情報分離部６１の物理モジュールＩＤはＭ１であり、データ制御情報結合部６３の物理モジュールＩＤはＭ２である。また、入出力ポート１（１０）及び入出力ポート２（１１）に接続されている往復分離部１５、１６の物理モジュールＩＤは、それぞれ、Ｐ１及びＰ２であり、スイッチ２０及び３０の物理モジュールＩＤは、それぞれ、Ｘ１及びＸ２である。
【００５４】
各モジュールの入力ポートにはＩ１、Ｉ２、…、出力ポートにはＯ１、Ｏ２、…、の識別子が付与される。データ／制御情報分離部６１及びデータ／制御情報結合部６３では、識別子の数字が同じ入力ポートと出力ポートとが対応している（Ｉ１とＯ１、Ｉ１０とＯ１０等）。スイッチ２０及び３０の入力端子及び出力端子には、各端子を一意に識別可能なように、重複しない番号が付けられている。具体的には、スイッチ２０及び３０の入力端子には１から３０の間の識別子が付与され、スイッチ２０及び３０の出力端子には５１から８０の間の識別子が付与される。
【００５５】
ノード１の入出力ポート１（１０）に入力されたパケットは、往復分離部１５の出力端子Ｏ１から出力され、スイッチ２０の端子１に入力される。スイッチ２０は、端子１と端子７１とが接続されるように設定されているので、パケットはリンク２６０ａを経由してデータ／制御情報分離部６１の入力端子Ｉ１に入力される。そこで、パケットのデータ部分は６１ａを経由してバッファメモリ６２格納され、制御情報（例えば、パケットのヘッダ部）が出力端子Ｏ１から出力される。
【００５６】
その後、パケットから分離された制御情報は、スイッチ３０の端子１に入力され、端子５１から出力され、リンク３３０ａを経由してモジュールＣ１（５１）の入力端子Ｉ１に入力される。モジュールＣ１（５１）で処理された制御情報は、スイッチ３０の入力端子１１に入力され、出力端子６０から出力され、モジュールＤ１（５２）の入力端子Ｉ１から入力され、モジュールＤ１（５２）で処理された後に、出力端子Ｏ１から出力される。
【００５７】
モジュールＤ１（５２）の出力端子Ｏ１から出力された制御情報は、更に、スイッチ３０の入力端子２０から入力され、出力端子６１から出力された後、リンク３４０ａを介してデータ／制御情報結合部６３の入力端子Ｉ１に入力される。データ／制御情報結合部６３では、該当するパケットのデータをバッファメモリ６２から読み出した後、処理された制御情報と読み出されたパケットのデータと結合し、処理された制御情報と結合されたパケットを出力端子Ｏ１から出力する。
【００５８】
データ／制御情報結合部６３から出力されたパケットは、スイッチ２０の入力端子２１に入力され、出力端子５１から出力された後、モジュールＡ１（４１）の入力端子Ｉ１に入力される。モジュールＡ１（４１）で処理されたパケットは、出力端子Ｏ１から出力され、スイッチ２０の入力端子１１に入力され、出力端子６１から出力された後、リンク２５０ａを介して往復分離部Ｐ２（１６）の入力端子Ｉ１に入力され、入出力ポート２（１１）から出力される。
【００５９】
また、入出力ポート２（１１）から入力されたパケットは、往復分離部Ｐ２（１６）の出力端子Ｏ１から出力され、スイッチ２０の入力端子１０に入力され、出力端子６０から出力され、モジュールＢ１（４３）の入力端子Ｉ１に入力され、出力端子Ｏ１から出力された後、スイッチ２０の入力端子２０に入力され、出力端子７０から出力され、往復分離部Ｐ１（１５）の入力端子Ｉ１に入力され、最終的に、入出力ポート１（１０）から出力される。
【００６０】
図６に示す様に、スイッチがモジュールを接続して実現されるデータフローによって、図５の設計図で示す機能がノード１内部に実現される。
【００６１】
本実施形態のノード１は、パケット全体が通過するスイッチ２０及び制御情報が通過する（制御情報を処理するモジュール間を接続する）スイッチ３０を有し、両スイッチ２０、３０間に、データ分離／結合部６０が設けられている。
【００６２】
（ノードの設定手順）
以下では、具体的な設計情報を例に、本ノードの設定手順を詳細に述べる。以下で述べる設計情報は、ノード管理部８０のプロセッサ８１で処理される。また、
以下で述べる処理を行うプログラムは、ノード管理部８０のストレージ８３に格納され、主記憶８２にロードされて実行される。また、これらの処理によって生成される管理表は、ノード管理部８０のストレージ８３に格納され、プログラムの実行時に主記憶８２にロードされる。
【００６３】
図７は、第１の実施形態のノード管理部８０のトップレベルの処理のフローチャートである。
【００６４】
まず、管理者がノードで実現される機能の設計図をＧＵＩを用いて入力すると、ノード管理部８０は当該入力を受け付ける（ステップ１００１）。
【００６５】
入力された設計図は、接続管理表２０４０（図１４）に変換される。その後、接続管理表の内容に基づいて、スイッチの接続情報（図１６に示すスイッチ接続情報管理表２０５０）を作成し、前記接続を実現するためにスイッチに設定される情報（図１７に示すスイッチ設定管理表２０６０）を作成する（ステップ１００２）。
【００６６】
その後、ノード管理部８０は、各モジュールの設定情報（帯域や、各モジュール固有の設定）を設定し（ステップ１００３）、スイッチを設定する（ステップ１００４）。実際には、生成された情報を設定情報ストレージ７０に格納することによって、モジュール及びスイッチが設定される。
【００６７】
以下、本実施形態のノード１において特徴的な処理である、ステップ１００１及び１００２について詳細に説明する。
【００６８】
（設計図入力）
設計図入力（ステップ１００１）は、コンソール９０に表示されるＧＵＩ上のイベントドリブン処理によって実現され、以下の三つの処理によって構成される。
（１）モジュール選択（図８）
（２）モジュール間接続（図９）
（３）モジュール設定情報作成、変更（図１０）
以下では、前述した各処理の詳細について、図を用いて説明する。
【００６９】
（１）モジュール選択
図８は、第１の実施形態のモジュール選択処理の詳細なフローチャートである。
【００７０】
図８に示すモジュール選択処理では、モジュールスペック管理表２０１０（図１１）及びモジュール管理表２０２０（図１２）を使用する。
【００７１】
図１１に示すように、モジュールスペック管理表２０１０は、ノードが持つモジュール種別毎に、モジュールの種類及びスペックの情報を示し、具体的には、モジュール種別ＩＤ２０１１、モジュール名２０１２、処理区分２０１３、入力帯域２０１４及び出力帯域２０１５の情報を含む。なお、モジュールスペック管理表２０１０は表形式で説明するが、他の形式で構成してもよい。
【００７２】
モジュール種別ＩＤ２０１１は、システム内でモジュールの種類を区別するための識別子である。モジュール名２０１２は、モジュールの名称を人間が理解できる形式で表示したものである。処理区分２０１３は、モジュールが全パケット処理を実行するか、制御情報のみの処理を実行するかを示す。処理区分２０１３は、説明を容易にするために、「全パケット処理」、「制御情報処理」の文字で示すが、実際は１ビットの情報でよい。入力帯域２０１４及び出力帯域２０１５は、それぞれ、モジュールの入力帯域及び出力帯域の処理能力（初期値）である。
【００７３】
例えば、モジュールＡは暗号化器であり、全パケット処理を実行し、入力帯域及び出力帯域は１０Ｇｂｐｓである。また、モジュールＤは階層化シェーパであり、制御情報のみの処理を実行し、入力帯域及び出力帯域は５Ｇｂｐｓである。モジュールＰは、ノードの入出力ポートを表す特別なモジュールである。
【００７４】
図１２に示すように、モジュール管理表２０２０は、各物理モジュールの状態を表し、具体的には、モジュール種別ＩＤ２０２１、物理モジュールＩＤ２０２２、モジュールの使用有無２０２３、帯域設定情報２０２４及び論理モジュールＩＤ２０２５の情報を含む。なお、モジュール管理表２０２０は表形式で説明するが、他の形式で構成してもよい。
【００７５】
モジュール種別ＩＤ２０２１は、システム内でモジュールの種類を区別するための識別子であり、モジュールスペック管理表（図１１）のモジュール種別ＩＤ２０１１と同じものを使用する。
【００７６】
物理モジュールＩＤ２０２２は、システム内でモジュールを一意に識別するための識別子であり、同一種別の複数のモジュールの各々に一意の識別子が付与される。使用有無２０２３は、このモジュールが使用されているか否かを示す情報であり、例えば、使用中の場合は「１」、未使用の場合は「０」が付与されるフラグである。帯域設定情報２０２４は、モジュールの入出力帯域が設定により、初期値から変更されているかを示す情報であり、モジュール間を接続する際の帯域チェックのために使用される。論理モジュールＩＤ２０２５は、ＧＵＩ上でモジュールを一意に識別するための識別子であり、ノード管理部８０が割り当てる。
【００７７】
例えば、物理モジュールＩＤがＡ１のモジュールの種別はＡであり、現在使用中で、帯域は初期値であり、論理モジュールＩＤはＬ００４である。物理モジュールＩＤがＡ２のモジュールの種別はＡであり、未使用である。物理モジュールＩＤがＣ１のモジュールの種別はＣ１であり、現在使用中で、帯域は初期値（１０Ｇｂｐｓ）から５Ｇｂｐｓに変更されており、論理モジュールＩＤはＬ００２である。
【００７８】
次に、図８を用いて、モジュール選択処理について説明する。
【００７９】
モジュール選択時には、モジュール管理表２０２０を参照し、使用可能な（物理モジュールの一つ以上が未使用である）モジュールの一覧（例えば、モジュール種別ＩＤ）を取得する（ステップ１１０１）。
【００８０】
次に、モジュール管理表２０２０から取得したモジュール種別ＩＤに対応するモジュール名をモジュールスペック管理表２０１０から取得し（ステップ１１０２）、取得した使用可能なモジュール名の一覧をメニュー（図４の９７）に表示する（ステップ１１０３）。これにより、管理者は使用可能なモジュールのみを選択可能になる。管理者が使用したいモジュールが使用不可能な場合は、以下の何れかを行ってもよい。
（１）使用可能なモジュールから代替可能なモジュールを選択する。
（２）該当するモジュールを使用しないように設計を変更する。
（３）モジュールが不足するため、ノードの構築を断念する（別途、ハードウェアを増強する必要がある）。
【００８１】
その後、管理者がＧＵＩ上でメニューからモジュール名を選択すると、ノード管理部８０は当該選択を受け付け（ステップ１１０４）、モジュールスペック管理表２０１０を参照して、選択されたモジュールのモジュール種別ＩＤを取得する（ステップ１１０５）。
【００８２】
その後、取得したモジュール種別ＩＤのモジュールのうち未使用の物理モジュールを一個、モジュール管理表２０２０から選択し（ステップ１１０６）、選択された物理モジュールの使用有無２０２３を使用中に変更する（ステップ１１０７）。さらに、ノード管理部８０が割り当てた論理モジュールＩＤをモジュール管理表２０２０の論理モジュールＩＤ２０２５に登録し（ステップ１１０８）、ＧＵＩ上にモジュールを表示する（ステップ１１０９）。
【００８３】
以上の処理を繰り返すことによって、必要な物理モジュールを選択し、選択されたモジュールをＧＵＩ上に表示することができる。
【００８４】
ここで、ノードの入出力ポートは、前述と異なる方法によって選択される。通常のモジュールについては、モジュール名を選択すると、未使用の物理モジュールが自動的に選択される。これに対して、入出力ポートについては、管理者が物理的なポート番号をＧＵＩで直接指定して、入出力ポートを接続する。これは、ノードの入出力ポートと、ノードの外部に接続されているネットワークとのリンクが、設計時に決まっていることが多いためである。
【００８５】
（２）モジュール間接続
図９Ａ及び図９Ｂは、第１の実施形態のモジュール選択処理の詳細なフローチャートである。
【００８６】
第１の実施形態のモジュール間接続処理では、モジュール間を単に接続するだけでなく、接続されるモジュールの仕様や性能（例えば、帯域）を検査し、両者の仕様や性能が整合しない場合には警告を発生する。これにより、管理者が正しいモジュールを選択し、接続できるように補助することができる。
【００８７】
例えば、前段モジュールの出力帯域が後段モジュールの入力帯域より大きい場合には、前段モジュールからの出力が後段モジュールへ受け入れられないことがあり、後段モジュールがボトルネックになる可能性がある。この場合、管理者が不整合を承知で接続する場合もあり得るので、直ちにエラーにはしないで、接続における帯域の不整合を警告する。
【００８８】
具体的には、モジュール管理表２０２０（図１２）に設定された帯域を、図５で示す設計図に適用した場合、入力ポート１（５１０）とモジュールＣ（５５１）の間のリンクが、出力側が１０Ｇｂｐｓ、入力側が５Ｇｂｐｓとなり、この接続をした段階で、警告が出力される（図９Ａのステップ１２０９）。モジュール間接続処理では、前述した各表の他に、データ分離／結合機能管理表２０３０（図１３）及び接続管理表２０４０（図１４）を使用する。
【００８９】
図１３に示すように、データ分離／結合機能管理表２０３０は、データ分離／結合部６０の各ポートの使用状況を示し、区分２０３１、ポート番号２０３２及び使用有無２０３３の情報を含む。なお、データ分離／結合機能管理表２０３０は表形式で説明するが、他の形式で構成してもよい。
【００９０】
区分２０３１は、データ分離／結合部６０内のモジュールを区別するための情報である。すなわち、データ分離／結合部６０は、前述したように、データ／制御情報分離部６１及びデータ／制御情報結合部６３を含むので、区分２０３１によって、データ／制御情報分離部６１か、データ／制御情報結合部６３かを区別する。区分２０３１は、説明を容易にするために、「分離」、「結合」の文字で示すが、実際は１ビットの情報でよい。
【００９１】
ポート番号２０３２は、モジュール内のポート番号である。なお、入力ポートと出力ポートとは組で使用されるので、ポート番号２０３２は入出力共通である。例えば、ポート１は、入力Ｉ１及び出力Ｏ１を示す。使用有無２０３３は、ポートが使用されているかを示す情報であり、例えば、使用中の場合は「１」、未使用の場合は「０」が付与されるフラグである。
【００９２】
例えば、データ／制御情報分離部６１のポート１は使用中であり、ポート２は未使用である。
【００９３】
図１４に示すように、接続管理表２０４０は、モジュール間接続処理（図９）によって作成されるモジュール間の接続の定義を示し、接続ＩＤ２０４１、始点２０４２、終点２０４３及び接続区分２０４４の情報を含む。なお、接続管理表２０４０は表形式で説明するが、他の形式で構成してもよい。
【００９４】
接続ＩＤ２０４１は、ノード管理部８０が接続を一意に識別するための識別子であり、モジュール間接続処理において自動的に生成される。始点２０４２は、接続の始点となる物理モジュールＩＤとモジュールの端子番号の組である。終点２０４３は、接続の終点となる物理モジュールＩＤとモジュールの端子番号の組である。接続区分２０４４は、接続が全パケット処理モジュールを接続するスイッチ２０を経由して接続されるか、制御情報処理モジュールを接続するスイッチ３０を経由して接続されるかを示す。
【００９５】
例えば、接続ＩＤがＬ１のリンクは、モジュールＰ１（ノードの入力ポート１に接続された往復分離部１５）の出力Ｏ１から、モジュールＭ１（データ／制御情報分離部６１）の入力Ｉ１への、全パケット処理モジュールを接続するスイッチ２０を経由した接続である。また、接続ＩＤがＬ２のリンクは、モジュールＭ１（データ／制御情報分離部６１）の出力Ｏ１から、物理モジュールＣ１の入力Ｉ１への、制御情報処理モジュールを接続するスイッチ３０を経由した接続である。
【００９６】
次に、図９Ａ及び図９Ｂを用いて、モジュール間接続処理について説明する。
【００９７】
まず、管理者が、作成する接続の始点（モジュールの出力）と終点（モジュールの入力）とを指定すると、ノード管理部８０は当該指定を受け付ける（ステップ１２０１）。
【００９８】
その後、モジュール管理表２０２０の帯域設定情報２０２４を参照し（ステップ１２０２）、帯域を変更する設定がされているかを判定する（ステップ１２０３）。その結果、帯域が変更されていない場合は、モジュールスペック管理表２０１０の入力帯域２０１４又は出力帯域２０１５に登録された帯域の初期値を取得する（ステップ１２０４）。一方、帯域が変更されている場合は、モジュール管理表２０２０の帯域設定情報２０２４に設定されている帯域情報を取得する（ステップ１２０５）。
【００９９】
ステップ１２０４及び１２０５においては、リンクの前段モジュールの出力帯域と、後段モジュールの入力帯域とを取得する。取得した帯域情報から、接続するモジュール間で帯域が整合するかを検査する（ステップ１２０６）。具体的には、前段モジュールの出力帯域が、後段モジュールの入力帯域以下であれば、両モジュールの帯域が整合すると判定する。
【０１００】
その結果、前段モジュールと後段モジュールとの帯域が整合する場合、ＧＵＩ上に当該リンクを通常表示する（ステップ１２０８）。一方、前段モジュールと後段モジュールとの帯域が整合しない場合、ＧＵＩ上に当該リンクを別の態様で表示し（例えば、赤色で、強調表示し）、警告情報をメッセージ領域９２に出力する（ステップ１２０９）。
【０１０１】
ここまで、前段モジュールの仕様と後段モジュールの仕様との整合について、帯域を例にして説明したが、モジュールの他の仕様が整合するかを判定してもよい。
【０１０２】
その後、モジュールスペック管理表２０１０より、前段モジュールの処理区分及び後段モジュールの処理区分を取得する（ステップ１２０９）。処理区分は、そのモジュールが全パケット処理を実行するか、制御情報のみの処理を実行するかを示す情報である。その後、前段モジュールの処理区分及び後段モジュールの処理区分が同一であるかを判定する（ステップ１２１０）。
【０１０３】
その結果、処理区分が同一である場合、前段モジュールと後段モジュールとを同一のスイッチで接続できるので、接続管理表２０４０に、このリンクの始点の情報（前段モジュールの物理モジュールＩＤと出力端子番号の組）、終点の情報（後段モジュールの物理モジュールＩＤと入力端子番号の組）、接続区分（全パケット処理モジュール間の接続か、制御情報処理モジュール間の接続か）を登録する（ステップ１２１２）。
【０１０４】
一方、前後のモジュールの処理区分が異なる場合には、データ分離／結合部６０を介してモジュール間を接続する必要がある。つまり、前段モジュールからデータ分離／結合部６０までのリンク及びデータ／分離結合部６０から終点モジュールまでのリンクの、二つのサブリンクを作成する必要がある。この場合、まず、ステップ１２１２で、接続の向きが検査される。具体的には、全パケット処理モジュールから制御情報処理モジュールへの接続であるかが判定される。その結果、前段モジュールが全パケット処理モジュールであり、後段モジュールが制御情報処理モジュールである場合、ステップ１２１４に進む。一方、前段モジュールが制御情報処理モジュールであり、後段モジュールが全パケット処理モジュールである場合、ステップ１２１３に進む。
【０１０５】
ステップ１２１４では、まず、データ分離／結合機能管理表２０３０を参照し、分離側の未使用のポート番号を取得し（ステップ１２１４）、取得した番号のポートを使用状態に変更する（ステップ１２１６）。これにより、データ／制御情報分離部６１のポートが割り当てられる。その後、前段モジュールの出力からデータ／制御情報分離部６１の入力ポートへのサブリンクの始点及び終点の情報を、接続管理表２０４０に登録する（ステップ１２１８）。この場合、終点のモジュールはデータ／制御情報分離部６１であり、物理モジュールＩＤはＭ１であり、端子番号は先に割り当てたしたポートの番号であり、接続区分は「全パケット」である。
【０１０６】
さらに、ステップ１２２１でサブリンクの残りの部分、すなわち、データ／制御情報分離部６１の出力から後段モジュールの入力へのサブリンクの始点及び終点情報が、同様に、接続管理表２０４０の別の接続として登録される。この場合の接続区分は「制御情報」である。
【０１０７】
一方、ステップ１２１２において、制御情報処理モジュールから全パケット処理モジュールへの接続である場合、前述と同様の手順でリンクが作成される。ステップ１２１３では、まず、データ分離／結合機能管理表２０３０を参照し、結合側の未使用ポートを取得し（ステップ１２１３）、取得した番号のポートを使用状態に変更して、データ／制御情報結合部６３のポートを割り当てる（ステップ１２１５）。その後、前段モジュールの出力からデータ／制御情報結合部６３の入力ポートへのサブリンクの始点及び終点の情報を接続管理表２０４０に登録し（ステップ１２１７）、データ／制御情報結合部６３の出力ポートから後段モジュールの入力へのサブリンクの始点及び終点の情報を接続管理表２０４０に登録する（ステップ１２１９）。この場合、前者の接続区分は「制御情報」、後者の接続区分は「全パケット」となる。
【０１０８】
以上に説明した処理によって、全パケット処理モジュール、制御情報処理モジュールを有するノードにおいて、同一の処理区分のモジュール間だけでなく、異なる処理区分のモジュール間についても、モジュール間の任意の接続を実現することができる。
【０１０９】
（３）モジュール設定情報作成、変更
図１０は、第１の実施形態のモジュール設定情報変更処理の詳細なフローチャートである。
【０１１０】
まず、管理者が設定情報を入力すると、ノード管理部８０は、当該入力を受け付け（ステップ１３０１）、入力された設定情報をモジュール管理表２０２０に登録する（ステップ１３０２）。その後、モジュール間の帯域が整合するかを検査し、必要な場合は警告が表示される（ステップ１３０３〜１３０９）。この処理は、モジュール間接続処理のステップ１２０２〜１２０８と同じである。なお、変更されるモジュールに接続されている前段のモジュール及び後段のモジュールの両方について、帯域が検査される。なお、モジュール間が接続される前に、設定情報の変更が指示された場合は、帯域は検査しなくてもよい。
【０１１１】
（スイッチ設定情報作成）
図１５は、第１の実施形態のスイッチ設定情報作成処理の詳細なフローチャートであり、メインフローのステップ１００２の詳細を示す。図１５に示すスイッチ設定情報作成処理では、接続管理表２０４０（図１４）からスイッチ設定管理表２０６０（図１７）を作成する。
【０１１２】
まず、ステップ１００２の前のステップ１００１において、管理者により、設計図（必要なモジュールの選択、モジュールの設定、モジュール間の接続）が入力され、必要なモジュール間接続の一覧を示す接続管理表２０４０が作成されている。ステップ１００２では、スイッチの入力端子と出力端子との接続を示す情報を作成し、スイッチ設定管理表２０６０に格納する。
【０１１３】
図１７に示すように、スイッチ設定管理表２０６０は、接続管理表２０４０で示す各接続毎にスイッチの設定が登録され、接続ＩＤ２０６１、スイッチ区分２０６２、始点２０６３及び終点２０６４の情報を含む。なお、スイッチ設定管理表２０６０は表形式で説明するが、他の形式で構成してもよい。
【０１１４】
接続ＩＤ２０６１は、ノード管理部８０が接続を一意に識別するための識別子であり、接続管理表２０４０の接続ＩＤ２０４１と同じ識別子を使用する。スイッチ区分２０６２は、接続が全パケット処理を行うスイッチ２０を経由して接続されるか、制御情報処理を行うスイッチ３０を経由して接続されるかを示し、接続管理表２０４０の接続区分２０４４と同じ情報を使用する。始点２０６３は、接続の始点となる物理モジュールＩＤとモジュールの端子番号の組であり、終点２０６４は、接続の終点となる物理モジュールＩＤとモジュールの端子番号の組であり、この入力と出力とがスイッチ内で接続される。
【０１１５】
例えば、接続ＩＤがＬ１のリンクは全パケット処理モジュール接続用のスイッチ２０の入力端子１と出力端子２０１とをスイッチ内で接続することにより実現される。接続ＩＤがＬ２のリンクは制御情報処理モジュール接続用のスイッチ３０の入力端子１と出力端子５１とをスイッチ内で接続することにより実現される。
【０１１６】
スイッチの各入出力端子に接続されているモジュールの情報は、スイッチ設定管理表２０６０を作成するために必要であり、この情報はスイッチ接続情報管理表２０５０（図１６）が提供する。
【０１１７】
図１６に示すように、スイッチ接続情報管理表２０５０は、スイッチ区分２０５１、番号２０５２、分類２０５３及び接続モジュール２０５４の情報を含む。なお、スイッチ接続情報管理表２０５０は表形式で説明するが、他の形式で構成してもよい。
【０１１８】
スイッチ区分２０５１は、全パケット処理モジュール間を接続するスイッチ２０を経由して接続されるか、制御情報処理モジュール間を接続するスイッチ３０を経由して接続されるかを示し、接続管理表２０４０の接続区分２０４４と同じ情報を使用する。番号２０５２は、スイッチの入出力端子の番号である。分類２０５３は、データが入力されるか、データが出力されるかを区別する。接続モジュール２０５４は、スイッチの入出力端子に接続されているモジュールの入出力端子を示し、物理モジュールＩＤとモジュールの端子番号の組で表される。
【０１１９】
例えば、全パケット処理モジュール接続用のスイッチ２０の端子１は入力であり、物理モジュールＰ１の出力Ｏ１（入出力ポート１番の往復分離器Ｐ１の出力Ｏ１、すなわち、ポート１への入力信号）に接続されていることを示す。図１６の一番下のエントリでは、制御情報処理モジュール接続用のスイッチ３０の端子５１は出力であり、物理モジュールＣ１の入力Ｉ１に接続されていることを示す。
【０１２０】
このスイッチ接続情報管理表２０５０は、ノードのベンダ等がノードハードウェア構成（入出力ポート、各モジュールプールの構成）を決める際に作成される。ノードの各モジュールがオプションカードにより提供され、増設可能な構成になっている場合は、ノード管理部８０は、Ｉ／Ｏカードの自動認識と同様の技術によって、モジュールプールの構成を自動的に認識し、スイッチ接続情報管理表２０５０を自動的に作成することもできる。
【０１２１】
次に、図１５を用いて、スイッチ設定情報作成処理について説明する。
【０１２２】
まず、ノード管理部８０は、接続管理表２０４０より、今回スイッチを設定する接続を選択する（ステップ１４０１）。選択された接続の始点及び終点（物理モジュールＩＤとモジュールの端子番号の組）の情報と、スイッチ接続情報管理表２０５０の情報とを比較し、選択された接続の始点及び終点が接続されているスイッチの端子番号を取得する（ステップ１４０２）。そして、取得した端子番号の組み合わせをスイッチ設定管理表２０６０に登録する（ステップ１４０３）。そして、接続管理表２０４０の全エントリについて処理が完了するまで、ステップ１４０１〜１４０３の処理を繰り返し実行する（ステップ１４０４）。
【０１２３】
以上の処理によって、管理者が入力した設計図を実現するためのスイッチの接続を設定するための設定情報を生成することができる。そして、生成されたスイッチの設定情報（スイッチ設定管理表２０６０）と、管理者が入力したモジュールの設定情報（モジュール管理表２０２０）は、構成情報ストレージ７０に保持され、さらに、ノード１の電源投入時に各モジュール及びスイッチに設定される（ステップ１００３、１００４）。以上の処理によって、ノード１の設定が終了する。
【０１２４】
以上に説明したように、第１の実施形態では、複数のモジュールを柔軟に組み合わせてノードを構成し、制御情報のみを取り扱うモジュール間でバッファメモリを共有し、パケットのデータと制御情報との分離及び結合を共通化することによって、処理のオーバヘッド及びハードウェア量を削減することができる。
【０１２５】
さらに、ノード内に設けたスイッチがモジュール間を接続することによって、ノード単体でモジュール間を柔軟に接続することができる。また、モジュール間をケーブルで接続するための入出力インタフェースが不要になるため、消費電力を低減することができる。
【０１２６】
＜実施形態２＞
前述した第１の実施形態では、スイッチの設計図入力時に、必要なモジュールに空きが無い場合は、モジュール選択メニューに表示されない。このため、管理者が使用可能なモジュールの中から代替モジュールを選択する必要があった。第２の実施形態では、ノード管理部８０が、代替可能なモジュールを自動的に選択することによって、設計時の管理者の負担を低減する。このため、第２の実施形態のノード管理部８０は代替モジュール管理表２０７０を有する。
【０１２７】
図１９は、第２の実施形態の代替モジュール管理表２０７０の構成の一例を説明する図である。
【０１２８】
代替モジュール管理表２０７０は、モジュール種別ＩＤ２０７１及び代替モジュールのモジュール種別ＩＤ２０７２の情報を含み、モジュール種別ＩＤ毎に代替モジュールとして使用可能なモジュールの種別ＩＤを示す。例えば、モジュール種別ＩＤがＦのモジュールの代替モジュールとして、モジュール種別ＩＤがＤ又はＥのモジュールが使用できることが示されている。
【０１２９】
次に、図１８を用いて、第２の実施形態のモジュール選択処理について説明する。第２の実施形態において、図１８に示すモジュール選択処理が、図８に示すモジュール選択処理の代わりに実行される。
【０１３０】
モジュール選択時には、モジュール管理表２０２０を参照し、使用可能な（物理モジュールの一つ以上が未使用である）モジュールの一覧（例えば、モジュール種別ＩＤ）を取得する（ステップ１１０１）。
【０１３１】
次に、モジュール管理表２０２０から取得したモジュール種別ＩＤに対応するモジュール名をモジュールスペック管理表２０１０から取得し（ステップ１１０２）、取得した使用可能なモジュール名の一覧をメニュー（図４の９７）に表示する（ステップ１１０３）。これにより、管理者は使用可能なモジュールのみを選択可能になる。管理者が使用したいモジュールが使用不可能な場合は、以下の何れかを実施してもよい。
（１）使用可能なモジュールから代替可能なモジュールを選択する。
（２）該当するモジュールを使用しないように設計を変更する。
（３）モジュールが不足するため、ノードの構築を断念する（別途、ハードウェアを増強する必要がある）。
【０１３２】
その後、管理者がＧＵＩ上でメニューからモジュール名を選択すると、ノード管理部８０は当該選択を受け付け（ステップ１１０４）、モジュールスペック管理表２０１０を参照して、選択されたモジュールのモジュール種別ＩＤを取得する（ステップ１１０５）。
【０１３３】
その後、モジュール管理表２０２０を参照し、未使用の物理モジュールを検索する（ステップ１５０１）。未使用のモジュールがある場合は（ステップ１５０１でＹｅｓ）、この未使用の物理モジュールを一個、モジュール管理表２０２０から選択し（ステップ１１０６）、選択された物理モジュールの使用有無２０２３を使用中に変更する（ステップ１１０７）。さらに、ノード管理部８０が割り当てた論理モジュールＩＤをモジュール管理表２０２０の論理モジュールＩＤ２０２５に登録し（ステップ１１０８）、ＧＵＩ上にモジュールを表示する（ステップ１１０９）。
【０１３４】
一方、ステップ１５０７において、未使用のモジュールが見つからなかった場合は（ステップ１５０１でＮｏ）、代替モジュールを選択する必要がある。そのため、代替モジュール管理表２０７０を検索し、該当するモジュールの代わりに使用可能な代替モジュールのモジュール種別ＩＤを取得する（ステップ１５０２）。未検索の代替モジュールがある場合は（ステップ１５０３）、該当するモジュールを未使用モジュールの検索対象に追加し（ステップ１５０４）、ステップ１５０１の未使用モジュールの検索に戻る。
【０１３５】
未検索の代替モジュールについて、ステップ１５０１〜１５０４の処理を繰り返す。ステップ１５０２において、未検索の代替モジュールが見つからなかった場合（例えば、図１９に示す代替モジュール管理表２０７０において、モジュール種別ＩＤがＤ及びＥの物理モジュールに未使用モジュールがなかった場合）、要求されたモジュールが無いことを示すエラーメッセージを出力する（ステップ１５０５）。その後、管理者は、以下の何れかを実施してもよい。
（１）使用可能なモジュールから代替可能なモジュールを選択する。
（２）該当するモジュールを使用しないように設計を変更する。
（３）モジュールが不足するため、ノードの構築を断念する。
【０１３６】
前述した処理によって、ノード内でモジュールを割り当てる際に、管理者が指定したモジュールが使用中である場合にも、代替として使用できるモジュールを推奨することができる。
【０１３７】
次に、本発明の実施形態の変形例について説明する。
【０１３８】
＜変形例１＞
前述した実施形態では、データ分離／結合部６０がパケットのデータ部と制御情報（ヘッダ部）とを分離し、データ部をバッファメモリ６２に格納した、しかし、データ部と制御情報とを分離することなく、制御情報を含めた全パケットのデータをバッファメモリ６２に格納してもよい。このようにすると、データ／制御情報結合部６３は、制御情報に対応するパケットをバッファメモリ６２から読み出せばよく、データと制御情報を結合する処理を省略することができる。
【０１３９】
さらに、単に制御情報を分離するのではなく、制御情報に付随させてデータ部の最初の部分を出力してもよい。このようにすると、Ｌ７負荷分散装置等、データ部の一部を使用して処理を行うモジュールを、制御情報処理側のモジュールとして扱うことができる。
【０１４０】
＜変形例２＞
前述した実施形態では、データ分離／結合部６０が、パケットのデータ部と制御情報（ヘッダ部）とを分離する処理を実行している。この分離処理は、ネットワークの任意のレイヤのデータを分離する処理によって、行うことができる。また、ＥｏＥ（Ｅｔｈｅｒ  ｏｎ  Ｅｔｈｅｒ）において、ペイロード部分を抽出する処理によって、分離処理を実行することもできる。換言すると、本実施形態において前述したノードの処理は、異なるレイヤの処理を行うモジュールを持つノードにおいて、モジュール間を柔軟に接続するための機能として使用することがきる。
【０１４１】
なお、データ分離／結合部６０をレイヤ毎に設けることによって、各レイヤの制御情報を抽出することができ、複数のレイヤの制御情報を処理することができる。
【０１４２】
＜変形例３＞
前述した実施形態では、制御情報のみを処理するモジュール間で、パケット本体を格納するバッファメモリを共有し、パケットのデータ／制御情報の分離及び結合を共通化している。このため、処理のオーバヘッド及びハードウェア量を削減するためには、制御情報処理モジュールを、複数連続して接続することが望ましい。すなわち、制御情報処理モジュールが連続して配置されない場合は、従来と同等のオーバヘッドになるが、連続して接続される制御情報処理モジュールが多い場合は、オーバーヘッド削減の効果が大きくなる。
【０１４３】
例えば、図５に示す設計図において、モジュールＣ（制御情報処理）、モジュールＤ（制御情報処理）及びモジュールＡ（全パケット処理）が、入出力ポート１から入出力ポート２へのパス上に配置され、モジュールＣ及びＤの制御情報処理モジュールが連続して配置されている。このため、モジュールＣ及びＤの間でパケット分離・結合をする必要がなく、オーバヘッドを削減することができる。
【０１４４】
なお、例えば、モジュールの接続順序がＣ、Ａ、Ｄである場合は、データ／制御情報の分離及び結合のオーバヘッドを削減することができない。この場合、モジュールの接続順序をＣ、Ｄ、Ａに変更することができれば、オーバヘッドを削減するうえで望ましい。しかし、モジュールの順序の変更可否を判定するためにはノードの処理内容の知識が必要なので、管理者がモジュールの順序を変更する必要がある。このため、上記のように、処理順序の変更によって処理が効率化する場所を、管理者に警告できるとよい。
【０１４５】
前述した警告機能を実現するために、ノード管理部８０は、接続管理表２０４０を検査し、制御情報処理モジュールが連続して接続されていない部分及び全パケット処理モジュールが連続して接続されていない部分を指摘する。
【０１４６】
具体的には、下記ステップを行う。
（１）物理モジュールを一個選択する。
（２）選択した物理モジュールの入力側に接続されている前段のモジュールの物理モジュールＩＤを取得する。
（３）選択した物理モジュールの出力側に接続されている後段のモジュールの物理モジュールＩＤを取得する。
（４）（２）（３）で取得した前段及び後段のモジュールの物理モジュールＩＤの両方が、データ分離／結合部６０内のモジュールである場合、（１）で選択したモジュールについて「モジュールの種別が連続していない」旨を警告する。
（５）全ての物理モジュールについて、（１）〜（４）の処理を繰り返す。
【０１４７】
前述した処理によって、データ分離／結合部６０に挟まれ、同一の処理区分（全パケット処理、制御情報処理）が連続していないモジュールについて警告を出力することができる。
【０１４８】
＜変形例４＞
前述した実施形態では、スイッチ２０、３０は入力端子と出力端子とを一対一で接続している。しかし、スイッチは、一つの入力を複数の出力端子に出力することが可能である。本発明は、このような一対多又は多対一の接続もサポートできる。その場合、接続管理表２０４０、スイッチ設定管理表２０６０において、一つの始点と複数の終点とを対応させ、又は、複数の始点と一つの終点とを対応させる。これにより、例えば、信頼性を向上するために、パケットのデータを複数のモジュールに送ったり、マルチキャストしたりする機能を実現することができる。
【０１４９】
＜変形例５＞
前述した実施形態では、全パケット処理モジュール間を接続するスイッチ２０と、制御情報処理モジュール間を接続するスイッチ３０とを、物理的に異なるスイッチによって構成した。しかし、二つのスイッチ２０、３０を物理的に一つのスイッチで実現することもできる。その場合、データ分離／結合部６０を含む全てのモジュールが一つのスイッチに接続され、スイッチ接続情報管理表２０５０及びスイッチ設定管理表２０６０において、スイッチ区分の情報が不要になる。なお、一つのスイッチで実現した場合でも、モジュール間のデータフローは同一である。
【符号の説明】
【０１５０】
１０、１１  入出力ポート
１５、１６  往復分離部
２０、３０  スイッチ
４０、５０  モジュールプール
６０  データ分離／結合部
７０  構成情報ストレージ
８０  ノード管理部
９０  コンソール
【図１】
0005760252.tif 000002
【図２】
0005760252.tif 000003
【図３】
0005760252.tif 000004
【図４】
0005760252.tif 000005
【図５】
0005760252.tif 000006
【図６】
0005760252.tif 000007
【図７】
0005760252.tif 000008
【図８】
0005760252.tif 000009
【図９Ａ】
0005760252.tif 000010
【図９Ｂ】
0005760252.tif 000011
【図１０】
0005760252.tif 000012
【図１１】
0005760252.tif 000013
【図１２】
0005760252.tif 000014
【図１３】
0005760252.tif 000015
【図１４】
0005760252.tif 000016
【図１５】
0005760252.tif 000017
【図１６】
0005760252.tif 000018
【図１７】
0005760252.tif 000019
【図１８】
0005760252.tif 000020
【図１９】
0005760252.tif 000021
【図２０】
0005760252.tif 000022
【図２１】
0005760252.tif 000023
【図２２】
0005760252.tif 000024