以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1〜図8を用いて、本発明の実施の形態1の中継装置について説明する。
[通信システム]
図1は、本発明の実施の形態1の中継装置を含む通信システムの構成例を示す。通信システムは、実施の形態1の中継装置である4台の中継装置100A〜100Dにより構成されるリング型ネットワークである。なお、リング型ネットワークをリングと称する場合がある。
実施の形態1の中継装置は、レイヤ2のフレームを中継するスイッチであり、プロトコルに応じた制御機能として、リング冗長機能を備える。リング冗長機能は、冗長の経路を含むリングの構成に基づいて、リングの状態を制御する機能であり、障害時の経路の切り替えを高速に実現する。リング冗長機能は、リングの各中継装置の各ポートを所定の状態に制御することにより、通常時の経路や、障害時の代替の経路を構成する。リング冗長機能は、データのループが発生しない経路を設定する。
中継装置100Aは、ポート4a,4bを含む複数のポートを有する。中継装置100Bは、ポート4c,4dを含む複数のポートを有する。中継装置100Cは、ポート4e,4fを含む複数のポートを有する。中継装置100Dは、ポート4g,4hを含む複数のポートを有する。
4台の中継装置100A〜100Dは、ポート間がリンク9a〜9dで接続される。中継装置100Aのポート4aと中継装置100Bのポート4cはリンク9aで接続される。中継装置100Bのポート4dと中継装置100Cのポート4fはリンク9bで接続される。中継装置100Cのポート4eと中継装置100Dのポート4gはリンク9cで接続される。中継装置100Dのポート4hと中継装置100Aのポート4bはリンク9dで接続される。
各中継装置100A〜100Dは、各ポートでフレームの送受信を行う。フレームは、制御フレームやユーザデータフレームがある。なお、図1中、破線の矢印は制御フレームを示し、実線の矢印はユーザデータフレームを示す。
各中継装置100A〜100Dは、リング冗長機能に係わるフィルタ6a〜6dを有する。例えば、フィルタ6aは、中継装置100Aのポート4a,4bを含む複数のポートに関するフィルタリングを規定する設定情報である。フィルタには、ポート毎にフレームに関する開閉状態が設定される。各フィルタ6a〜6dには、リング冗長機能による制御状態に応じたそれぞれの内容が設定される。
通常時の経路に対応したフィルタの設定例は以下である。フィルタ6aにより、中継装置100Aのポート4aがフォワーディングポート、ポート4bがブロッキングポートに設定される。フィルタ6b〜6dにより、中継装置100Bのポート4c及びポート4d、中継装置100Cのポート4e及びポート4f、中継装置100Dのポート4g及びポート4hは、それぞれ、フォワーディングポートに設定される。
フォワーディングポートは、制御フレーム及びユーザデータフレームに関して開状態である。ブロッキングポートは、制御フレームに関して開状態、ユーザデータフレームに関して閉状態である。開状態は、ポートでフレームを通過させる状態である。閉状態は、ポートでフレームを通過させない状態、言い換えるとフレームを破棄する状態である。
通常時の経路では、中継装置100Aのポート4bがブロッキングポートであるため、ポート4bでユーザデータフレーム106,108の送受信が禁止される。これにより、リングにおけるデータのループが防止される。
[リング冗長機能]
リング冗長機能は、リングの障害を検出する機能、リングの障害を他の中継装置へ通知する機能、リングの障害やその復旧に応じて経路を切り替える機能、等を含む。経路を切り替える機能は、フィルタの設定を切り替える機能や、転送DBを更新する機能を含む。リング冗長機能は、障害検出時、リングの各中継装置の各ポートの状態を切り替えることにより、通常時の経路から代替の経路へ切り替える。リング冗長機能は、障害復旧時、リングの各中継装置の各ポートの状態を切り替えることにより、代替の経路から通常時の経路へ切り替える。
実施の形態1では、リング冗長機能は、フィルタを用いる機能として、機能51及び機能52を含む。
機能51は、隣接する中継装置間においてポートでリンクの障害を検出し、リンクの正常または障害の状態に応じて、フィルタを用いて、中継装置のポート毎のフレームに関する開閉状態を切り替える機能である。
機能51による処理例は以下である。中継装置100Dのフィルタ6dに着目して説明する。通常時の経路において、中継装置100Dは、隣接する中継装置100Cとのリンク9cの状態を、開状態のポート4gで監視する。中継装置100Dは、ポート4gからリンク9cへ定期的に制御フレーム101を送信する。同様に、中継装置100Cは、ポート4eからリンク9cへ定期的に制御フレーム103を送信する。
図1で、リングに障害110が発生しているとする。中継装置100Dは、ポート4gでリンク9cからの制御フレーム103が受信できない場合、リンク9cの障害110として検出する。中継装置100Dは、リンク9cの障害110を検出した場合、ポート4gを開状態から閉状態へ切り替えるように、フィルタ6dの設定を切り替える。これにより、中継装置100Dは、リンク9cに対するフレームの送受信を停止する状態となる。
機能52は、リングの障害やその復旧の通知に基づいて、リングの状態に応じて、フィルタを用いて、経路を切り替える機能である。機能52は、経路の切り替えにおいて、所定の経路を含むリングの制御状態になるように、中継装置のポート毎の各種フレームに関する開閉状態を切り替える。この各種フレームは、制御フレームとユーザデータフレームとが区別される。すなわち、機能52は、制御フレームに関する制御機能と、ユーザデータフレームに関する制御機能とを含む。それらの制御機能による制御は、独立に実行可能である。
機能52による処理例は以下である。中継装置100Aのフィルタ6aに着目して説明する。通常時の経路では、ポート4bがブロッキングポートである。図1で、リングに障害110が発生しているとする。中継装置100Dは、中継装置100Cとのリンク9cにおける障害110を、例えば前述の機能51を用いて検出する。中継装置100Dは、障害110を検出した場合、障害を通知するための制御フレーム107を、ポート4hからリンク9dへ送信する。中継装置100Aは、ポート4bで制御フレーム107を受信すると、リングの障害を認識し、フィルタ6aの設定の切り替えにより、通常時の経路から代替の経路へ切り替える。すなわち、中継装置100Aは、ポート4bをブロッキングポートからフォワーディングポートへ切り替えることにより、リンク9dに対するユーザデータフレーム106,108の送受信を可能な状態にする。
同様に、中継装置100Aは、リングの障害復旧が通知された場合、フィルタ6aの設定の切り替えにより、代替の経路から通常時の経路へ切り替える。すなわち、中継装置100Aは、ポート4bをフォワーディングポートからブロッキングポートへ切り替えることにより、リンク9dに対するユーザデータフレーム106,108の送受信を禁止の状態にする。
上記例のように、リング冗長機能による制御のため、中継装置100A〜100D間では制御フレームが送受信される。そして、各中継装置100A〜100Dは、内部では、リング冗長機能による制御状態に応じて、制御パケットを用いて、フィルタの設定を切り替える。
[中継装置]
図2は、本発明の実施の形態1の中継装置の構成を示す。図2の実施の形態1の中継装置は、いわゆるボックス型の中継装置である。実施の形態1の中継装置は、制御LSI1、インタフェースLSI2、及び複数のポート4を備える。制御LSI1とインタフェースLSI2とは、端子間がパス211で接続され、パス211を通じて通信可能である。制御LSI1と複数のポート4とは、図示を省略するが、端子間がパス212により接続され、パス212を通じて通信可能である。インタフェースLSI2と複数のポート4とは、端子間がパス213により接続され、パス213を通じて通信可能である。
制御LSI1は、中継装置の特有の機能が実装された機能実装部である。制御LSI1は、インタフェースLSI2と連携して中継制御処理を行う。実施の形態1では、制御LSI1に実装される機能は、図1のリング冗長機能を含む。制御LSI1は、第1制御部10、及びパケットメモリ30を含む。制御LSI1は、制御パケットを用いてインタフェースLSI2の内部の設定情報を書き替える機能を有する。
第1制御部10は、機能に係わる制御処理を行う。第1制御部10は、ハードウェア回路により構成され、ハードウェア処理を行う。第1制御部10は、例えばASIC(Application Specific IC)やFPGA(Field Programmable Gate Array)で構成される。第1制御部10の処理は、パケットメモリ30のリスト7に格納されている制御パケットを読み出してインタフェースLSI2の第2制御部20へ送信する処理を含む。この制御パケットは、インタフェースLSI2の第2制御部20に対する制御用のパケットであり、より詳しくはメモリ40のフィルタ6の設定の切り替えの制御用のパケットである。
パケットメモリ30は、第1制御部10から直接アクセス可能な第1記憶部であり、複数のリスト7が格納される。パケットメモリ30は、所定の容量を有し、複数のリスト7を格納するために一定の容量が使用される。リスト7は、グループ毎のリストである。グループは、機能に対応付けられたグループである。パケットメモリ30の複数のリスト7には、リング冗長機能に係わる複数の全ての制御状態に対応するための、複数の種類の制御パケットが格納される。制御パケットは、制御状態に応じたフィルタ6の設定状態にするためのパケットである。複数のリスト7には、重複しないように分類及び整理された、必要最小限の複数の種類の制御パケットが格納される。複数の種類の制御パケットは、フィルタ6に設定する要素の組合せにより構成される。
インタフェースLSI2は、ハードウェア回路の処理により複数のポート4間でのフレームの転送を制御する転送部である。インタフェースLSI2は、第2制御部20、メモリ40、及び転送DB5を含む。インタフェースLSI2は、ポート4で受信するフレーム203や、ポート4から送信するフレーム204について、転送DB5の情報を読み書きしながら、複数のポート4間での転送を制御する。フレーム203,204は、制御フレームやユーザデータフレームがある。
第2制御部20は、フレームの転送に関する制御処理を行う。第2制御部20は、ハードウェア回路により構成され、ハードウェア処理を行う。第2制御部20は、例えばASICやFPGAで構成される。第2制御部20の処理は、メモリ40に格納されているフィルタ6を含む設定情報を読み書きする処理を含む。第2制御部20は、第1制御部10から受信した制御パケットに従い、フィルタ6の情報を書き替える。
メモリ40は、第2制御部20から直接アクセス可能な第2記憶部であり、フィルタ6を含む各種の設定情報が格納される。メモリ40は、例えばレジスタやRAMで構成される。
フィルタ6は、後述の図7に示すが、リング冗長機能による制御状態に応じて、ポート4毎に、入口及び出口における各種フレームに関する開閉状態が設定される。フィルタ6は、例えば特定のレジスタまたは表で構成される。
複数のポート4は、イーサネット(登録商標)等の外部インタフェースに対応しており、フレームを送受信する機能を有し、図1のようにリンクを通じて他の中継装置のポートに接続される。
転送DB5は、ポートとMACアドレスとの対応関係の情報が学習情報として格納されるデータベースである。インタフェースLSI2は、転送DB5に対する学習情報の書き込み、検索、消去、等を行う機能を有する。
インタフェースLSI2は、外部からのフレーム203をポート4で受信すると、転送DB5に、フレーム203を受信したポート4のポートIDと、フレーム203の送信元MACアドレスとの対応関係の情報を格納して学習する。インタフェースLSI2は、フレーム203の宛先MACアドレスをキーに転送DB5を検索し、宛先MACアドレスに対応付けられたポートIDが得られた場合、当該ポートIDのポート4へフレーム203を転送し、当該ポート4から外部へ送信する。
また、インタフェースLSI2や制御LSI1は、内部で生成した制御フレームを、パス212,213を通じてポート4から外部へ送信する。また、インタフェースLSI2や制御LSI1は、ポート4で受信した制御フレームを、パス212,213を通じて受け取り、制御フレームの内容に従い、処理を行う。
インタフェースLSI2は、ポート4で受信するフレーム203やポート4から送信するフレーム204について、フィルタ6を参照して所定のフィルタリングを適用する処理を行う。インタフェースLSI2は、フィルタ6の設定内容において例えば当該ポート4の入口側が閉状態の場合、当該ポート4で受信するフレーム203を破棄し、当該ポート4の出口側が閉状態の場合、当該ポート4から送信するフレーム204を破棄する。
中継装置の内部での処理概要は以下である。制御LSI1の第1制御部10は、リング冗長機能による制御状態に応じて、パケットメモリ30のリスト7から、フィルタ6の設定の切り替えのために必要な、複数の制御パケットからなるセットを選択して読み出す。第1制御部10は、読み出したセットを、要求のパケット201として、パス211を通じて、インタフェースLSI2の第2制御部20へ送信する。この要求は、制御状態に応じた設定の切り替えのためにフィルタ6の表の情報を書き替える指示に相当する。
インタフェースLSI2の第2制御部20は、制御LSI1の第1制御部10から、パス211を通じて、要求のパケット201を受信する。第2制御部20は、受信した要求のパケット201における、セットの複数の制御パケットに従い、メモリ40のフィルタ6の情報を書き替えることにより、制御状態に応じた設定状態へ切り替える。
第2制御部20は、フィルタ6の設定の切り替えの処理を成功した場合、成功を示す応答のパケット202を、パス211を通じて、制御LSI1の第1制御部10へ送信する。第1制御部10は、成功を示す応答のパケット202を受信し、一連の処理の完了を認識する。
第2制御部20は、フィルタ6の設定の切り替えの処理を失敗した場合、失敗を示す応答のパケット202を、パス211を通じて、制御LSI1の第1制御部10へ送信する。第1制御部10は、失敗を示す応答のパケット202を受信した場合、あるいは、応答のパケット202を受信できない場合、要求のパケット201の再送によるリトライを行う。第2制御部20は、リトライの要求のパケット201を受信した場合、設定の切り替えの処理をリトライする。
中継装置は、その他、図示しないが、設定機能に対応したユーザインタフェースを有する。例えば、管理者は、運用管理保守用の端末から中継装置にアクセスし、設定機能により提供される画面において、中継装置の設定の状態の確認や、設定の変更が可能である。
上記のように、実施の形態1の中継装置は、制御LSI1のパケットメモリ30から読み出した制御パケットにより、インタフェースLSI2のフィルタ6の情報を書き替える構成である。これにより、実施の形態1の中継装置は、リング冗長機能に対応して、設定及び動作を高速に切り替え可能である。
[制御LSI]
図3は、実施の形態1の中継装置の制御LSI1の構成を示す。制御LSI1は、第1制御部10、パケットメモリ30、及びリング冗長機能処理部15を有する。
リング冗長機能処理部15は、図1のリング冗長機能に対応した処理が実装された部分である。リング冗長機能処理部15は、中継装置の外部から受信した制御フレームや、中継装置の内部で生成された情報に従い、リング冗長機能に対応した制御処理を行う。リング冗長機能処理部15は、制御状態301の情報を出力する。制御状態301の情報は、リング冗長機能のうちのどの機能によるどのような制御状態であるかを表す情報である。
制御状態は、独立な機能ごとに複数のグループに分割される。実施の形態1では、次の3つの機能を3つのグループGR0〜GR2に分割する。第1グループGR0は、機能51に関するグループである。第2グループGR1は、機能52のうち制御フレームに関するグループである。第3グループGR2は、機能52のうちユーザデータフレームに関するグループである。
実施の形態1では、パケットメモリ30には、3つのリスト71〜73が格納されている。3つのリスト71〜73は、3つのグループGR0〜GR2に対応付けられる。リスト71は、第1グループGR0に対応した複数の種類の制御パケットを格納する。リスト72は、第2グループGR1に対応した複数の種類の制御パケットを格納する。リスト73は、第3グループGR2に対応した複数の種類の制御パケットを格納する。
実施の形態1の中継装置は、リング冗長機能及びその制御状態に応じて、対応するグループのリスト7を選択して、複数の制御パケットからなるセットを読み出し、フィルタ6の設定を切り替える。各グループのリスト7を用いた設定の切り替えは、独立に実行可能である。
第1制御部10は、送信制御部11、送信部12、及び設定部13を有する。送信制御部11は、グループ分割部11A、検出部11B、及び優先度制御部11Cを含む。送信部12は、選択信号生成部12A、選択表8、及びパケット送信部12Cを含む。
第1制御部10は、リング冗長機能処理部15からの制御状態301の情報を送信制御部11に入力する。送信制御部11は、制御状態301の情報をグループ分割部11Aに入力する。
グループ分割部11Aは、制御状態301を所定のグループに分割し、グループ毎の状態を表す変換信号302として出力する。この変換は、送信部12での処理のために必要な変換であり、制御状態301に応じて選択表8の情報を選択するためのマッピングを含む。変換信号302は、検出部11Bに入力される。
検出部11Bは、変換信号302に基づいて、グループ毎に状態変化を検出し、変換信号302及びそのグループを指定するグループ信号306を出力する。
優先度制御部11Cには、変換信号302及びグループ信号306が入力される。優先度制御部11Cは、グループ信号306及び所定の優先度に応じて、変換信号302から最優先のグループの信号を選択して、その変換信号302を出力する。所定の優先度として、具体的には、グループGR0,GR1,GR2の順に優先度が高い。例えば、グループGR0の方が、グループGR1よりも優先される。送信制御部11は、変換信号302及びグループ信号306を、送信部12へ出力する。
送信部12は、制御状態301に応じた変換信号302及びグループ信号306を選択信号生成部12Aに入力する。選択信号生成部12Aは、変換信号302及びグループ信号306に基づいて、選択表8のインデックスを表す選択信号304を生成する。
また、第1制御部10は、外部から、機能あるいはグループの指定に関する指示310が入力された場合、指示310に従い、設定部13により、選択信号生成部12A(後述の図4の設定レジスタ12B)に、特定の機能に対応するグループを指定する設定ができる。指示310は、リング冗長機能処理部15からの指示、中継装置内の他の部位からの指示、管理者による指示、等が挙げられる。
送信部12は、選択信号304により選択表8を参照し、選択表8からパケットメモリ30のリスト7のアドレスを得る。そして、送信部12は、リスト7のアドレスから、複数の制御パケットからなるセット305を選択して読み出す。
パケット送信部12Cは、読み出されたセット305を、図2の要求のパケット201として構成し、パス211を通じて、インタフェースLSI2の第2制御部20へ送信する。
実施の形態1の中継装置は、パケットメモリ30の構成に合わせて、選択表8を設けている。選択表8には、制御状態301に応じてパケットメモリ30のリスト7から制御パケットを選択して読み出すための対応付けの情報が設定されている。選択表8の対応付けの情報は、機能に応じたグループのリスト7を選択し、そのリスト7から制御状態に応じた必要な制御パケットのセットを選択するための情報である。
更に、実施の形態1の中継装置は、パケットメモリ30及び選択表8の内容を可変に設定する設定機能を提供する。設定部13は、この設定機能に対応した処理機能も備える。設定部13は、パケットメモリ30のリスト7に登録する制御パケット、及びそれに合わせた選択表8の情報の設定が可能である。例えば、リング冗長機能やフィルタ6の構成が更新される場合、それに合わせて、フィルタ6の設定の切り替えのために必要な制御パケットの構成も変わる場合がある。その場合、管理者は、設定機能を利用する。管理者は、端末から中継装置にアクセスし、設定機能により提供される画面で、パケットメモリ30のリスト7の制御パケット及び選択表8の情報を表示して確認できる。そして、管理者は、画面で、パケットメモリ30のリスト7に登録する制御パケット、及び選択表8の情報を変更し、設定更新を実行する。これに従い、設定部13は、パケットメモリ30のリスト7の制御パケット及び選択表8の情報の設定を更新する処理を行う。
[第1制御部の処理例(1)]
図4は、第1制御部10の処理例として、選択表8を参照するまでの処理例を示す。本処理例では、制御状態301は、図1の機能51による、中継装置100Dの2個のポート4g,4hの制御状態とし、「第1状態」から「第2状態」へ変化する場合とする。「第1状態」は、通常時、リンク9cの正常の状態に応じて、ポート4gを開状態にする制御状態である。「第2状態」は、リンク9cの障害110の状態に応じて、ポート4gを閉状態にする制御状態である。なお、ポート4gの開閉状態の制御に合わせて、ポート4hも開閉状態が制御される。本処理例では、「第1状態」は、ポート4gを開状態、かつポート4hを開状態とし、「第2状態」は、ポート4gを閉状態、かつポート4hを開状態とする。
送信制御部11には、リング冗長機能処理部15から、制御状態301として、機能51による「第2状態」が入力される。送信制御部11は、グループ分割部11Aにより「第2状態」を変換信号302へ変換し、検出部11Bへ出力する。このとき、「第1状態」から「第2状態」への変化により、機能51に対応付けられるグループにおける第1グループGR0のみが変化するとする。検出部11Bは、この第1グループGR0の変化を検出し、第1グループGR0を指定するグループ信号306を出力する。また、検出部11Bは、変換信号302をそのまま出力する。変換信号302及びグループ信号306は、優先度制御部11Cへ入力される。このグループ信号306が第1グループGR0を示しているため、優先度制御部11Cにより、変換信号302のうちの第1グループGR0の変換信号302のみが送信部12へ出力される。また、それに合わせて第1グループGR0を示すグループ信号306も送信部12へ出力される。
送信部12の選択信号生成部12Aは、設定レジスタ12B及び加算部12Dを含む。
送信部12の選択信号生成部12Aには、「第2状態」に応じた変換信号302及びグループ信号306が入力される。この変換信号302は、ポート制御状態に対応し、「GRn_REF_STAT(P2,P1)」といった形式である。P1,P2は、ポートIDを示す。例えば、図1の中継装置100D内において、ポート4gのポートIDが「P1」、ポート4hのポートIDが「P2」とする。ポート毎の状態の値として、例えば、値0を開状態、値1を閉状態とする。「STAT(P2,P1)」の各ポートIDの位置には、ポート毎の状態の値が格納される。「第1状態」の場合、「P1」の状態が値0、「P2」の状態が値0である。「第2状態」の場合、「P1」の状態が値1、「P2」の状態が値0である。「第2状態」の場合の変換信号302は、「GRn_REF_STAT(0,1)」のようになり、この値は十進数で例えば1になる。
グループ信号306は、「GRn」で示すグループIDを含む。グループIDは、GR0〜GR2とする。グループ信号306は、GR0〜GR2のうち1つが指定される。本例では、グループ信号306は、機能51に応じた第1グループGR0が指定される。
送信部12は、入力されたグループ信号306に応じて、設定レジスタ12Bから、第1グループGR0に応じた選択表8のインデックスのオフセット信号303を読み出す。オフセット信号303は、「GRn_SEL_TBL_OFFSET」といった形式である。例えば、第1グループGR0に応じたオフセット信号303の値は十進数で0であり、第2グループGR1に応じたオフセット信号303の値は十進数で4である。
選択信号生成部12Aの設定レジスタ12Bには、予め、設定部13により、グループの指定に応じたオフセット信号303が設定可能である。第1制御部10は、例えば中継装置の起動時あるいは必要な時に、設定部13により、設定レジスタ12Bに、特定の機能に対応するグループを指定する設定を行う。
選択表8には、制御状態301及びグループに応じた選択信号304の値と、パケットメモリ30のリスト7のアドレスとの対応付けがビットマップで設定されている。選択表8は、インデックス81の列と、パケット選択ビット82の列とを含む。インデックス81毎の1行は、1つの制御状態に対応する情報である。インデックス81を十進数で示す。選択信号304の値は、インデックス81を選択する値となっている。パケット選択ビット82は、パケットメモリ30のリスト7の複数のアドレスを指し示す情報である。
選択表8は、カバーする必要がある複数の制御状態に応じた分の情報が、インデックス81毎の行の情報として設定される。複数の制御状態は、選択表8のインデックス81の複数の値にマッピングされる。送信制御部11での変換は、このマッピングを含む。例えば、機能51に関して4つの制御状態がある。これら4つの制御状態は、機能51に対応するグループGR0の表401におけるインデックス81が「0」〜「3」の行にマッピングされている。
選択表8は、グループ毎の表が連結された構成である。図4の選択表8は、第1グループGR0の表401と第2グループGR1の表402との2つの表の部分を示す。オフセット信号303の値は、選択表8の中のグループ毎の表の先頭のインデックス81を指す値となっている。送信部12は、変換信号302とオフセット信号303とを加算部12Dで加算することにより、各グループにおける変換信号に対する、選択表8のインデックスを生成し、選択信号304とする。
送信部12は、選択信号304の値により、選択表8のインデックス81を検索し、該当するインデックス81の行から、パケット選択ビット82の値を読み出す。本例では、「第2状態」に応じて、変換信号302の値が1、オフセット信号303の値が0、選択信号304の値が1である。その選択信号304の値に応じて、第1グループGR0の表401におけるインデックス81が「1」の行が選択され、パケット選択ビット82の値(0,1,0,1)が読み出される。
[パケットメモリの構成]
図5は、実施の形態1におけるパケットメモリ30の構成を示す。図5の(a)は、第1グループGR0に対応したリスト71の構成を示す。図5の(b)は、第2グループGR1に対応したリスト72の構成を示す。パケットメモリ30は、アドレス31毎の記憶領域に、制御パケット32を格納している。格納される制御パケット32のサイズは、制御内容及びフィルタ6の構成に応じた所定のサイズである。
リスト71には、4つのブロック511〜514に、パケット「A」〜「H」で示す8種類の8個の制御パケットが格納されている。第1のブロック511において、アドレス31が「0−0」の記憶領域には、パケット「A」が格納され、「0−1」の記憶領域には、パケット「B」が格納されている。パケット「A」とパケット「B」とは、関係する2種類の制御パケットである。パケット「A」は、「設定の無効化」の制御パケット501であり、パケット「B」は、「設定の有効化」の制御パケット502である。この「設定」とは、実施の形態1では、フィルタ6の所定の設定であり、具体的にはポートでのフレームの廃棄を指す。「設定の無効化」とは、廃棄を無効の状態にすること、すなわち開状態にすることに相当する。「設定の有効化」とは、廃棄を有効の状態にすること、すなわち閉状態にすることに相当する。
同様に、他のブロック512〜514には、他のパケット「C」〜「H」が格納されている。これらのパケット「A」〜「H」は、それぞれ、「設定の無効化」の制御パケットと「設定の有効化」の制御パケットとの2種類に大別される。なお、「設定の無効化」の制御パケットを実線の四角、「設定の有効化」の制御パケットを破線の四角で示す。
リスト72には、4つのブロック515〜518に、パケット「I」〜「P」で示す8種類の8個の制御パケットが格納されている。図示しないが、同様に、リスト73には、4つのブロックに、8種類の8個の制御パケットが格納されている。それらのパケットは、同様に、「設定の無効化」の制御パケットと「設定の有効化」の制御パケットとの2種類に大別される。
図5の(c)は、第1グループGR0のリスト71の場合における、複数の種類の制御パケット32の内容の具体例を表で示す。この表は、列として、「パケット」、「ポートID」、「イングレス/イーグレス」、「設定の無効化/設定の有効化」がある。「パケット」は、パケット「A」〜「H」を示す。「ポートID」は、例えば中継装置の2個のポート「P1」「P2」の区別を示す。「イングレス/イーグレス」は、当該ポートにおける、イングレスとイーグレスとの区別を示す。イングレスは入口及び受信側に対応し、イーグレスは出口及び送信側に対応する。「設定の無効化/設定の有効化」は、「設定の無効化」を値0で示し、「設定の有効化」を値1で示す。
パケット「A」〜「H」は、中継装置の2個のポート「P1」「P2」の入口及び出口におけるフレームに関する開閉状態の組合せによる、8種類の制御パケットである。「P1」/「P2」、入口/出口、開状態(0)/閉状態(1)、という3つの要素の組合せで、2×2×2=8通りの状態がある。フレームは、制御フレーム及びユーザデータフレームを区別せずに含む。
パケット「A」は、「P1」の入口側の廃棄の無効化、パケット「B」は、「P1」の入口側の廃棄の有効化の制御パケットである。パケット「C」は、「P2」の入口側の無効化、パケット「D」は、「P2」の入口側の有効化の制御パケットである。パケット「E」は、「P1」の出口側の無効化、パケット「F」は、「P1」の出口側の有効化の制御パケットである。パケット「G」は、「P2」の出口側の無効化、パケット「H」は、「P2」の出口側の有効化の制御パケットである。
同様に、リスト72,73についても、機能52の制御内容に応じた複数の種類の制御パケットが格納される。第2グループGR1のリスト72は、中継装置の2個のポート「P1」「P2」の入口及び出口における、制御フレームに関する開閉状態(廃棄の無効化または有効化)の組合せによる、8種類のパケット「I」〜「P」を格納する。第3グループGR2のリスト73は、中継装置の2個のポート「P1」「P2」の入口及び出口における、ユーザデータフレームに関する開閉状態の組合せによる、8種類のパケットを格納する。
パケットメモリ30の使用容量は、必要な制御パケットの数に応じて決まる。リスト71の場合の使用容量は、[1個の制御パケットのサイズ]×8、の分の容量である。
[第1制御部の処理例(2)]
図6は、図4に続く第1制御部10による処理例として、選択表8に基づいてパケットメモリ30から制御パケットのセット305を読み出す処理例を示す。
第1制御部10の送信部12は、図4のように選択表8から読み出したパケット選択ビット82の値(0,1,0,1)により、パケットメモリ30のリスト71から、複数の制御パケットを選択して読み出す。送信部12は、リスト71の開始位置のブロックSBであるブロック511から、終了位置のブロックEBであるブロック514までの記憶領域において、パケット選択ビット82の各ビットの値で指し示す各アドレス31に格納されている制御パケット32を読み出す。
パケット選択ビット82は、それぞれ有効無効選択ビット83である複数のビットにより構成される。実施の形態1では、パケット選択ビット82は、リスト7から4個のパケットを選択することに対応した、4ビットの構成である。各ビットは、リスト7のブロックを指し示す。パケット選択ビット82の右端列の第1ビットは、リスト7の開始位置のブロックSBである第1のブロックを指し示し、左端列の第4ビットは、終了位置のブロックEBである第4のブロックを指し示す。
有効無効選択ビット83は、1つのブロックの2種類の制御パケットである「設定の無効化」の制御パケットと「設定の有効化」の制御パケットとの一方を選択するための情報である。有効無効選択ビット83における値0は、アドレス32の下位が「0」である奇数行の「設定の無効化」の制御パケットを指し、値1は、アドレス32の下位が「1」である偶数行の「設定の有効化」の制御パケットを指す。
本例では、表401の「1」の行のパケット選択ビット82のうち、第1ビットは、リスト71の第1のブロック511を指す。第1ビットは、値1であるため、第1のブロック511のうちのアドレス31が「0−1」の記憶領域に格納されたパケット「B」を指す。同様に、第2ビットの値0は、第2のブロック512の「1−0」のパケット「C」を指す。第3ビットの値1は、第3のブロック513の「2−1」のパケット「F」を指す。第4ビットの値0は、第4のブロック514の「3−0」のパケット「G」を指す。
送信部12は、パケットメモリ30のリスト71から、セット305として、4個のパケット「B」「C」「F」「G」を、順に読み出す。このセット305は、「第2状態」に応じてフィルタ6の設定を切り替えるために必要なセットである。すなわち、このセット305は、中継装置100Dのフィルタ6dの設定として、「P1」の入口及び出口で閉状態にし、かつ、「P2」の入口及び出口で開状態にするためのセットである。
なお、インデックス81が「0」の行が選択された場合、パケット選択ビット82の値が(0,0,0,0)であり、パケット「A」「C」「E」「G」が選択される。このセットは、「P1」及び「P2」を開状態にする。「2」の行が選択された場合、パケット選択ビット82の値が(1,0,1,0)であり、パケット「A」「D」「E」「H」が選択される。このセットは、「P1」を開状態、「P2」を閉状態にする。「3」の行が選択された場合、パケット選択ビット82の値が(1,1,1,1)であり、パケット「B」「D」「F」「H」が選択される。このセットは、「P1」及び「P2」を閉状態にする。
他のリスト72,73が選択される場合も処理は同様である。例えば、機能52を用いた制御フレームに関する所定の制御状態に応じて、第2グループGR1の表402のインデックス81が「4」の行が選択される。この行のパケット選択ビット82の値は(1,1,0,0)であり、リスト72からパケット「I」「K」「N」「P」が選択される。このセットは、「P1」及び「P2」の入口側の制御フレームに関して開状態、出口側の制御フレームに関して閉状態にする。
なお、選択表8のサイズは、パケットメモリ30の制御パケットの数やグループの数に応じる。例えば、1つのグループのリスト7で8個の制御パケットを用いる場合、パケット選択ビット82は、4ビットが必要である。インデックス81のサイズは、カバーする制御状態の数に応じる。第1グループGR0の表401の場合、制御状態の数が4つであり、インデックス81として2ビットが必要であり、パケット選択ビット82として4×4=16ビットが必要である。また、グループの数が3つ、各グループで4つの制御状態がある場合、選択表8は、パケット選択ビット82として3×16=48ビットが必要である。選択表8のサイズは、パケットメモリ30のサイズに比べて十分に小さい。
パケット送信部12Cは、読み出されたセット305の各制御パケットにトランザクションIDを付与する。トランザクションIDは、中継装置の内部での制御用のIDであり、例えばインクリメントによる連番である。例えば、第1パケットであるパケット「B」にはトランザクションID=「1」、第4パケットであるパケット「G」にはトランザクションID=「4」が付与される。パケット送信部12Cは、トランザクションIDが付与された複数の制御パケットからなるセット305を、図2の1つの要求のパケット201としてまとめた形として、インタフェースLSI2の第2制御部20へ送信する。第2制御部20は、トランザクションIDの順序で複数の制御パケットを受信し、設定情報の書き替えに使用する。
なお、変形例として、中継装置は、要求のパケット201の送信において、セット305のうちの各制御パケットを、個別の要求のパケット201として順に送信してもよい。また、中継装置は、トランザクションIDの付与を省略してもよい。
[フィルタの構成例]
図7は、実施の形態1におけるフィルタ6の構成例である表を示す。図7の(a)は、中継装置100Dのフィルタ6dの設定例、図7の(b)は、中継装置100Aのフィルタ6aの設定例を示す。図7のフィルタ6の表は、列として、「ポートID」、「FP/BP」、「イングレス/イーグレス」、「開閉状態」がある。「開閉状態」列は、「全フレーム」列、「制御フレーム」列、「ユーザデータフレーム」列を含む。「全フレーム」は、制御フレーム及びユーザデータフレームの両方を含む。「FP/BP」は、FPで示すフォワーディングポートとBPで示すブロッキングポートとの区別を示す。なお、「FP/BP」の情報は、説明上わかりやすいように設けているが、省略可能である。「開閉状態」は、「制御フレーム」と「ユーザデータフレーム」とで区別して、それぞれ、フレームの廃棄の無効または有効を示す値が格納される。値0は、廃棄が無効の状態、すなわち開状態に相当する。値1は、廃棄が有効の状態、すなわち閉状態に相当する。
図7の(a)のフィルタ6dの設定例は、前述の機能51に関する「第1状態」に相当する。701の行は、中継装置100DのポートIDが「P1」であるポート4gの設定例を示す。「P1」は、フォワーディングポートの状態であり、入口及び出口の両方において、制御フレーム及びユーザデータフレームの両方について、開状態である。702の行は、ポートIDが「P2」であるポート4hの設定例を示す。「P2」は、同様に、フォワーディングポートの状態である。
図7の(b)のフィルタ6aの設定例は、前述の機能52に関する通常時の経路の状態に対応する。703の行は、中継装置100AのポートIDが「P1」であるポート4aの設定例を示す。「P1」は、フォワーディングポートの状態であり、入口及び出口の両方において、制御フレーム及びユーザデータフレームの両方について、開状態である。704の行は、ポートIDが「P2」であるポート4bの設定例を示す。「P2」は、ブロッキングポートの状態であり、入口及び出口の両方において、制御フレームについては開状態、ユーザデータフレームについては閉状態である。なお、この「P2」の設定状態では、「全フレーム」列では値0、「ユーザデータフレーム」列では値1となっている。このような場合、フィルタリングとしては、ユーザデータフレームに関し、値1による廃棄の方が優先的に適用される。
[フィルタの設定の切り替えの例]
図8は、図7のフィルタ6の設定の切り替えの例を示す。図8の(a)は、機能51による制御に対応した例である。本例は、図1の中継装置100Dのリンク9cの障害110の状態に応じた「第1状態」から「第2状態」への切り替えに相当する。図7の(a)の「第1状態」に対応する設定状態から、第1グループGR0のリスト71の制御パケットのセット810により、801,802の行に示す「第2状態」に対応した設定状態に切り替えられる。セット810は、図6のパケット「B」「C」「F」「G」である。なお、この際、廃棄の無効化/有効化を設定する対象箇所、すなわち値が変更され得る箇所は、「全フレーム」列である。破線枠は、切り替え前後で異なる部分を示す。
801の行のポート「P1」は、入口及び出口の両方において、制御フレーム及びユーザデータフレームの両方について、閉状態である。詳しく言えば、図1のポート4gの入口側で、リンク9cから受信した全フレームが破棄され、かつ、ポート4gの出口側で、リンク9cへ送信する全フレームが破棄される。802の行のポート「P2」の設定状態は、702と同じである。
図8の(b)は、機能52による制御フレームに関する制御に対応した例である。本例は、図1の中継装置100Aにおいて、リングの障害110の状態に応じて、通常時の経路から代替の経路へ切り替える場合に対応する。切り替え前の図7の(b)の設定状態から、第2グループGR1のリスト72の制御パケットのセット820により、803,804の行に示す設定状態に切り替えられる。セット820における4つの制御パケットは、「P1」及び「P2」の入口側及び出口側における制御フレームに関する廃棄の無効化を行うパケットである。対象箇所は、「制御フレーム」列である。
803の行のポート「P1」の設定状態は、703と同じである。804の行のポート「P2」の設定状態は、704と同じである。この処理例では、制御フレームに関して開状態のままであるため、結果的に設定状態は図7の(b)と同じである。
図8の(c)は、機能52によるユーザデータフレームに関する制御に対応した例である。本処理例は、図8の(b)の処理例と同じ場合であり、対象が制御フレームではなくユーザデータフレームである。切り替え前の図7の(b)の設定状態から、第3グループGR2のリスト73の制御パケットのセット830により、805,806の行に示す設定状態に切り替えられる。セット830における4つの制御パケットは、「P1」の入口側の廃棄の無効化、「P2」の入口側の廃棄の有効化、「P1」の出口側の廃棄の無効化、及び「P2」の出口側の廃棄の有効化、を行うパケットである。対象箇所は、「ユーザデータフレーム」列である。
805の行のポート「P1」の設定状態は、703と同じである。806の行のポート「P2」の設定状態は、704のブロッキングポートから、フォワーディングポートに変更されており、入口及び出口の両方で、制御フレーム及びユーザデータフレームの両方について、開状態である。
上記例のように、リングの所定の状態を実現するため、各中継装置は、内部の複数のポートを、所定の関係を持つ所定の制御状態になるように、フィルタ6の設定状態を切り替える。その際、中継装置は、フィルタ6の構成に合わせて、フィルタ6内の情報を書き替える。そのため、中継装置は、1つの制御状態に応じて、複数の制御パケットからなるセットを用いる。
[効果等]
以上説明したように、実施の形態1の中継装置によれば、高速な制御を実現でき、パケットメモリ30の使用容量を削減できる。
実施の形態1の中継装置は、制御LSI1からインタフェースLSI2に対してハードウェア処理により設定の切り替えを行う構成である。これにより、実施の形態1は、従来の中継装置でインタフェースLSIに対してソフトウェア処理により設定の切り替えを行う構成に比べて、高速に設定の切り替えが可能である。実施の形態1は、リング型ネットワークの障害時にも、リング冗長機能による高速な経路の切り替えが可能である。
実施の形態1の中継装置は、制御LSI1のパケットメモリ30において、リング冗長機能に対応するグループのリスト7に、重複しない必要最小限の複数の種類の制御パケットを設けた構成である。リスト7の複数の種類の制御パケットは、必要な複数の全ての制御状態に対応したフィルタ6の設定状態をカバーできるように、フィルタ6の設定の要素の組合せにより構成されている。そして、選択表8には、必要な制御状態に応じた情報が設定されている。これにより、実施の形態1の中継装置は、限られたパケットメモリ30の使用容量を少なくでき、空き容量を多くできる。空き容量を他の機能に使用することも容易になる。
また、実施の形態1は、設定機能により、パケットメモリ30の制御パケット及び選択表8の設定を更新できるので、プロトコルに応じた制御機能や設定情報の更新の際にも柔軟に対応できる。
(比較例)
図9を用いて、実施の形態1に対する比較例の中継装置におけるパケットメモリ30Bに関する構成を説明する。図9は、パケットメモリ30Bにおける複数の制御パケットを格納する構成例を示す。比較例の中継装置は、制御LSIに、パケットメモリ30Bを備える。制御LSIの第1制御部は、機能による制御状態に応じてフィルタの設定状態を切り替える際、パケットメモリ30Bから、設定の切り替えのために必要な複数の制御パケットからなるセットを読み出し、インタフェースLSIの第2制御部へ送信する。比較例の他の構成は、実施の形態1の構成と同様である。
パケットメモリ30Bには、制御状態に対応した「状態」毎に、複数の制御パケットからなるセットが予め格納される。また、パケットメモリ30Bには、機能に対応付けられたグループ毎に、複数のセットが格納される。
第1グループ910において、4つの制御状態として「状態A」〜「状態D」がある。制御状態毎のセットとして、セット901〜904がある。パケット「A」〜「H」は、制御パケットを示す。例えば、「状態A」用のセット901は、アドレス「0」〜「3」に格納される、4個のパケット「A」「E」「C」「G」からなる。「状態B」用のセット902は、パケット「B」「F」「C」「G」からなる。「状態C」用のセット903は、パケット「A」「E」「D」「H」からなる。「状態D」用のセット904は、パケット「B」「F」「D」「H」からなる。なお、このパケット「A」等の内容は、図5のパケット「A」等の内容と対応している。
制御パケットのセットの内容の具体例は以下である。「状態A」用のセット901における4個のパケット「A」「E」「C」「G」は、中継装置の2個のポート「P1」及び「P2」における入口及び出口において開状態にするための制御パケットである。同様に、「状態B」用のセット902における4個のパケット「B」「F」「C」「G」は、「P1」の入口及び出口を閉状態にし、「P2」の入口及び出口を開状態にする。「状態C」用のセット903における4個のパケット「A」「E」「D」「H」は、「P1」の入口及び出口を開状態にし、「P2」の入口及び出口を閉状態にする。「状態D」用のセット904における4個のパケット「B」「F」「D」「H」は、「P1」及び「P2」の入口及び出口において閉状態にする。
第1グループ910において、「状態A」〜「状態D」は、2個のポート「P1」「P2」の入口及び出口の開閉状態の組合せのうちの、必要な4つの制御状態である。パケットメモリ30Bは、第1グループ910において、「状態A」〜「状態D」をカバーするために、4つのセット901〜904、合計16個の制御パケットを格納する。
同様に、第2グループ920において、4つの制御状態として「状態E」〜「状態H」があり、これらをカバーするため、4つのセット905〜908がある。第2グループ920は、パケット「I」〜「P」を用いた合計16個の制御パケットを格納する。
パケットメモリ30B内に格納される制御パケットは、重複する制御パケットが存在する。例えば、「状態A」用のセット901と「状態C」用のセット903とにおいて、パケット「A」「E」は、重複する同じ制御パケットである。「状態A」用のセット901と「状態B」用のセット902とにおいて、パケット「C」「G」は、重複する同じ制御パケットである。制御パケットの重複の分、パケットメモリ30Bの使用容量は多くなる。
上記のように、比較例の中継装置は、予め、制御状態毎に複数の制御パケットからなるセットをパケットメモリ30Bに格納しておく構成である。これにより、比較例は、高速な設定の切り替えを実現できる。ただし、比較例は、カバーする制御状態の数に比例して、必要なセットが増える。これにより、パケットメモリ30Bの使用容量は増大する。
それに対し、実施の形態1の中継装置は、図5のように、パケットメモリ30に、重複しないように分類及び整理された、複数の種類の制御パケットをリスト7として格納する。実施の形態1は、カバーする機能、制御状態及び設定状態の数が増えても、必要な制御パケットは、比例して増大するわけではなく、必要最小限に抑えられる。実施の形態1のパケットメモリ30は、比較例のパケットメモリ30Bに比べて、格納する制御パケットの数が少なく、一定のエントリのみが使用されるので、使用容量を節約できる。
比較例のパケットメモリ30Bの場合、第1グループ910の4つの制御状態に関して、16個の制御パケットを格納する分の使用容量が必要である。それに対し、実施の形態1のパケットメモリ30の場合、第1グループGR0の4つの制御状態に関して、リスト71の8個の制御パケットを格納する分の使用容量で済む。
(実施の形態2)
本発明の実施の形態2の通信システムについて説明する。制御パケットの送受信は、単一の中継装置内に限らず、複数の中継装置間にまたがって行われてもよい。この場合、以下のような実施の形態2の通信システムの構成である。
実施の形態2の通信システムは、第1の中継装置と第2の中継装置とを備える通信システムである。第1の中継装置は、フレームの転送に関する機能が実装された機能実装部を備える。機能実装部は、第1制御部、及び第1記憶部を有する。第2の中継装置は、複数のポート間での前記フレームの転送を行う転送部を備える。転送部は、第2制御部、及び第2記憶部を有する。第1記憶部は、機能に係わる複数の制御状態に対応するための、複数の種類の制御パケットを、リストとして格納する。第2記憶部は、制御状態に応じた設定情報を格納する。第1の中継装置の第1制御部は、制御状態に応じて、第1記憶部のリストから、複数の制御パケットからなるセットを読み出し、第2の中継装置へ送信する。第2の中継装置の第2制御部は、セットの複数の制御パケットに従い、第2記憶部の設定情報を書き替える。
例えば、第1の中継装置は、リングの制御状態に応じて、第2の中継装置のフィルタの設定の切り替えを制御する。その場合、第1の中継装置の第1制御部は、実施の形態1と同様に、パケットメモリから必要な複数の制御パケットからなるセットを読み出し、これによる要求のパケットを、ポートから第2の中継装置へ向けて制御フレームとして送信する。第2の中継装置は、その制御フレームによる要求のパケットをポートで受信する。第2の中継装置の第2制御部は、その要求のパケットにおけるセットの複数の制御パケットに従い、フィルタの情報を書き替えることにより、設定状態を切り替える。そして、第2の中継装置は、応答のパケットを、第1の中継装置へ制御フレームとして送信する。
実施の形態2の通信システムによれば、複数の中継装置間で制御パケットを送受信することにより、高速な制御を実現でき、パケットメモリにおける使用容量を削減できる。
(他の実施の形態)
他の実施の形態の中継装置として、以下が挙げられる。
実施の形態1の技術は、ボックス型の中継装置に限らず、シャーシ型の中継装置にも適用可能である。シャーシ型の中継装置は、ラインカードや管理カードを含む複数のカードが接続される構成である。例えば、ラインカードの内部において、図2と同様の構成を有してもよい。
他の実施の形態の中継装置として、グループ毎のリスト7を設けない構成も可能である。その場合、パケットメモリ30には、1つのリスト7のみが格納され、グループを指定する手段は不要である。
実施の形態1の技術は、中継装置において制御状態に応じて制御パケットを用いて設定状態を切り替える用途に適用可能である。実施の形態1の技術は、図7のフィルタ6の構成に限らず、他のフィルタの構成の場合にも、適用可能である。実施の形態1の技術は、フィルタ6の設定を制御する場合に限らず、他の設定情報の設定を制御する場合にも、適用可能である。
実施の形態1の技術は、リングを構成する中継装置や、リング冗長機能に限らず、適用可能である。実施の形態1の技術は、イーサネットOAMに対応した機能にも適用可能である。イーサネットOAMは、イーサネットの拡張仕様であり、ネットワークの運用管理保守を支援する機能である。
以上、本発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されず、その要旨を逸脱しない範囲で種々変更可能である。