以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明のパケットリングネットワークシステムの例を示す説明図である。図1に例示するパケットリングネットワークシステムは、第1から第3までの各パケットリングネットワーク5001,5002,5003がリンクを介して接続された構成となっている。第1から第3までの各パケットリングネットワーク5001,5002,5003は、それぞれRPRネットワークである。第1から第3までの各パケットリングネットワーク5001,5002,5003では、いずれも複数のRPRノードがリング状に接続されている。以下、第1から第3までの各パケットリングネットワークをそれぞれ第1のリング、第2のリング、第3のリングと記す。
第1のリング5001および第2のリング5002はインタリンク5012を介して接続される。同様に、第1のリング5001および第3のリング5003もインタリンク5011を介して接続される。インタリンクは、パケットリングネットワーク間のクライアントパケット転送に用いられるパケット転送経路である。また、第2のリング5002および第3のリング5003は、第1のリングと他のリングとを接続させるインタリンクに障害が発生したときにクライアントパケット転送に用いられる障害発生時用パケット転送経路(以下、バイパス経路と記す。)5010によって接続される。バイパス経路は、そのバイパス経路によって接続されている2つのパケットリングネットワークのいずれか一方と第1のリングとの間のインタリンクに障害が発生したときに、クライアントパケットの転送に用いられる。
以下、インタリンクを介して接続されているノードをインタリンクノードと記す。バイパス経路を介して接続されているノードをバイパス経路ノードと記す。また、他のノードを基本ノードと記す。図1等では、インタリンクノードを黒色で示し、バイパス経路ノードを斜線で示し、基本ノードを白色で示す。
第1のリング5001では、インタリンクノード1a,1bおよび基本ノード1c〜1eがリング状に接続されている。第2のリング5002では、インタリンクノード2aと、バイパス経路ノード2dと、基本ノード2b,2cとがリング状に接続されている。同様に、第3のリング5003では、インタリンクノード3aと、バイパス経路ノード3bと、基本ノード3c,3dとが、リング状に接続されている。
第1のリングのインタリンクノード1aと第2のリングのインタリンクノード2aはトリビュタリポート同士を接続することによりインタリンク接続を構成している。第1のリングのインタリンクノード1bと第3のリングのインタリンクノード3aについても同様である。第2のリングのバイパス経路ノード2dと第3のリングのバイパス経路ノード3bはトリビュタリポート同士を接続することにより、バイパス接続を構成している。
図1に示すすべてのノード(RPRノード)1a〜1e,2a〜2d,3a〜3dは、IEEE802.17に準拠したRPR機能を具備しており、インタリンクノードおよびバイパス経路ノードは、それぞれ標準RPR機能に加えてインタリンクノード、バイパス経路ノードとして動作するための構成要素を備えている。また、図1に示すネットワークシステムは、第1のリングと他のリングとを接続させるインタリンク5012,5011のいずれかに障害が発生したときに、バイパス経路5010によるパケット通信を開始する。バイパス経路による通信開始動作は本発明の動作とは別に行われるので、バイパス経路による通信開始動作を行うためのノードの構成や動作フロー等については説明を省略する。
次に、リングIDおよびリングの呼称について説明する。
リングIDは、個々のリングの識別情報である。パケットリングネットワークシステムに含まれる各パケットリング(以下リング)は、全てリングIDを有する。例えば図1において、第1のリングに対して#1というように、個々のリングに対してリングIDが割り振られている。
複数のリングとインタリンクを介して直接接続されているリングであって、それら複数のリングのうち少なくとも1組のリング同士がバイパス経路で接続されているリングをハブリングと称する。ハブリングは、複数のインタリンクを有する。図1に示す例では、第1のリングがハブリングとなる。
ハブリングにインタリンクを介して直接接続されているリングであって、そのハブリングとインタリンクを介して直接接続されている他のリングとの間にバイパス経路が設けられているリングを、サブリングと称する。図1に示す例では、第2のリングおよび第3のリングが、第1のリング(ハブリング)に対するサブリングとなる。共通のハブリングに接続性のある複数のサブリングは、それらのサブリングの間でパイパス経路が設定されている。図1に示す例では、第2のリングおよび第3のリングの間にバイパス経路が設けられている。
ハブリングおよびサブリングの呼称は、相対的な関係を示すものであり、注目するインタリンク(障害が発生することによりバイパス経路での通信に代替されるインタリンク)によって決定される。例えば、図16に例示するようなパケットリングネットワークシステムにおいて、インタリンク0003に注目し、第1のリングをハブリングに指定した場合、上記の定義に照らし合わせてバイパス経路0004接続されている第2のリングおよび第3のリングがサブリングとなる。一方、インタリンク0001に注目し、第2のリングをハブリングと指定した場合、バイパス経路0002で接続されている第4のリングおよび第5のリングがサブリングとなる。
本発明は、インタリンク障害の発生により代替経路となるバイパス経路で接続される2つのサブリングとそれらのハブリングを含む3つのリングで構成されるパケットリングネットワークシステムに関するものである。
第1の実施形態では、図16に例示するような多層の構成にはなっておらず、サブリングの下層に、そのサブリングをハブリングとする他のサブリングは接続されていないものとする。換言すると、第1の実施形態のパケットリングネットワークシステムは、パケットリングネットワークとして、1つのハブリングと、その1つのハブリングに接続される複数のサブリングのみを含む。この点は、後述する第2の実施形態でも同様である。
また、あるインタリンクとハブリングに注目し、インタリンク障害の発生後にハブリングとインタリンクを介した接続性を失うサブリングを孤立リングと記す。すなわち、インタリンクに障害が発生したことにより、そのインタリンクを介してハブリングと直接パケットの送受信を行えないサブリングを孤立リングと記す。例えば図1において、ハブリングを第1のリングに指定し、インタリンク5011の障害発生を想定した場合、ハブリングである第1のリングとインタリンク5011を介した接続性が失われる第3のリングが孤立リングとなる。また図16において、ハブリングを第1のリングに指定し、インタリンク0003の障害発生を想定した場合、第3のリングが孤立リングとなる。実際には第6のリングおよび第7のリングを含む各リングの集合が第1のリングとのインタリンクを介した接続性を失うことになるが、孤立リングの呼称定義としては障害インタリンクと直接接続性のある第3のリングのみを孤立リングと称する。また第2のリングをハブリングに指定し、インタリンク0001の障害発生を想定した場合、孤立リングは第5のリングである。
図2は、インタリンクノードの構成例を示すブロック図である。図2に示すインタリンクノード3030が、図1に示すインタリンクノード1a,1b,2a,3aとして配置される。
インタリンクノード3030は、IEEE802.17標準プロトコルに従って動作する基本構成部3019と、孤立リング判定回路3020と、パケットリング情報テーブル記憶部3021と、孤立リング通知パケット生成回路3022と、孤立リング通知パケット送信回路3023と、孤立リング通知パケット受信回路3024と、無効化FDBエントリ判定回路3025と、インタリンク障害検出回路3026と、リングID PUSH/POP回路3027を備えている。
RPR基本ノード部3019は、インタリンクノードだけでなく、RPRネットワーク内に配置される各ノードにそれぞれ設けられている。
まず、RPR基本ノード部3019について説明する。RPR基本ノード部3019は、リングレット3013−1に応じたフォワーディング回路3001および多重化回路3003と、リングレット3013−2に応じたフォワーディング回路3002および多重化回路3004と、制御パケット処理回路3017と、トポロジ管理回路3007と、多重化回路3005と、リングレット選択回路3006と、パケット変換回路3011と、アドレステーブル記憶部3010と、MAC/PHY回路3015とを備える。
フォワーディング回路3001は、リングレット3013−1から転送されてきたRPRパケットのRPR MAC DAを参照する。そして、そのRPR MAC DAが、自ノードのRPR MACアドレスと一致しているならば、そのRPRパケットをリングレット3013−1から取り出し、クライアントに転送するために多重化回路3005に送る。同様に、フォワーディング回路3002は、リングレット3013−2から転送されてきたRPRパケットのRPR MAC DAを参照し、そのRPR MAC DAが、自ノードのRPR MACアドレスと一致しているならば、そのRPRパケットをリングレット3013−2から取り出し、多重化回路3005に送る。なお、リングレットから転送されてきたパケットをリング内から取り出し(削除し)、クライアントに転送することを“Strip”と記す。また、クライアントとは、トリビュタリポートを介して接続されている装置である。インタリンクノードのクライアントは、他のRPRネットワークに配置されたインタリンクノードである。
また、転送されてきたRPRパケットがブロードキャストパケットである場合、フォワーディング回路3001,3002は、ブロードキャストパケットを多重化回路3005に送るとともに、リングレットにも転送する。なお、リングレットから転送されてきたパケットをそのリングレットに転送することを“Transit”と記す。また、リングレットから転送されてきたパケットをそのリングレットに転送しつつ、そのパケットをクライアントにも転送することを“Copy”と記す。フォワーディング回路3001,3002は、転送されてきたRPRパケットが上記の何れにも当てはまらない場合(アドレスが一致せず、ブロードキャストパケットでもない場合)、転送されてきたパケットを同一リングレットに送信する(Transit)。
また、フォワーディング回路3001,3002は、制御パケットを受信した場合、その制御パケットを制御パケット処理回路3017に出力する。
ポート3922−1は、フォワーディング回路3001がリングレット3013−1からパケットを受信するポートであり、ポート3014−2は、フォワーディング回路3002がリングレット3013−2からパケットを受信するポートである。ポート3014−1は、多重化回路3003がリングレット3013−1にパケットを送信するポートであり、ポート3922−2は、多重化回路3004がリングレット3013−2にパケットを送信するポートである。
また、インタリンクノードのクライアントポート3012−1,3012−2はインタリンクを介して接続される他のインタリンクノードのクライアントポートと接続される。
MAC/PHY回路3015は、ポート3012−1からクライアントパケットを受信し、そのクライアントパケットをパケット変換回路3011に送る。また、MAC/PHY回路3015は、パケット変換回路3011から送られるクライアントパケットをポート3012−2から送信する。
また、本発明のインタリンクノードが備えるMAC/PHY回路3015は、孤立リング通知パケット生成回路3022が生成した孤立リング通知パケットを送信する。また、インタリンクノードが備えるMAC/PHY回路3015は、インタリンクを介して接続されているインタリンクノードから孤立リング通知パケットが送信された場合、その孤立リング通知パケットを受信する。
多重化回路3005は、各リングレット(各フォワーディング回路3001,3002)からクライアントに転送されるパケットを多重し、パケット変換回路3011に送る。
アドレステーブル記憶部3010は、アドレステーブルを記憶する記憶装置である。図3は、アドレステーブルの例を示す説明図である。本発明において学習されるアドレステーブルは、ユーザ端末(図1において図示せず。)のMACアドレスと、リング内のノードのRPR MACアドレスと、リングIDとを対応付けた情報である。このリングIDは、自リングとその自リングに対してインタリンクを介してクライアントパケットを送信したリングとを含むハブリングおよびサブリングの組み合わせに属するリングの中で、最初にそのクライアントパケットを他のリングに送信するリングのリングIDである。アドレステーブルは、FDBとして用いられる。
パケット変換回路3011は、各リングレット(各フォワーディング回路3001,3002)からクライアントに転送されるパケットを、多重化回路3005を介して受け取る。パケット変換回路3011は、RPRパケットの状態のパケットを受け取り、そのRPRパケットからクライアントパケットを取り出す(すなわち、デカプセル化を行う)。パケット変換回路3011は、そのクライアントパケットをポート3012−2からクライアントに転送する。また、パケット変換回路3011は、受け取ったRPRパケットにおけるRPR MAC SAと、取り出したクライアントパケットにおけるMAC SAおよびリングIDとの対応関係を学習し、アドレステーブル記憶部3010に記録する。なお、取り出したクライアントパケットにおけるMAC SAは、クライアントパケットを送信したユーザ端末のMACアドレスである。リングIDは、上記のように、自リングとその自リングに対してインタリンクを介してクライアントパケットを送信したリングとを含むハブリングおよびサブリングの組み合わせに属するリングの中で、最初にそのクライアントパケットを他のリングに送信するリングのリングIDである。例えば、図1に示す第3のリングの基本ノード3cがユーザ端末(図1において図示せず。)からクライアントパケットを受信し、そのクライアントパケットをブロードキャスト送信し、その結果第2のリング内の各ノードがそのクライアントパケットをカプセル化したRPRパケットを受信したとする。第2のリング内の各ノードは、自リング(第2のリング)とその自リングに対してインタリンクを介してクライアントパケットを送信した第1のリングとを含むハブリングおよびサブリングの組み合わせ(すなわち第1ないし第3のリングの組み合わせ)に属するリングの中で、最初にクライアントパケットを他のリングに送信するリングIDを学習する。本例では、最初に第3のリングが第1のリングにクライアントパケットを送信することになるので、第2のリング内の各ノードは、RPR MAC SAおよびMAC SAとともに第3のリングのリングIDをアドレステーブル記憶部3010に記憶させる。
また、パケット変換回路3011は、クライアントポート3012−1を介して、クライアントからクライアントパケットを受け取る。このとき、パケット変換回路3011は、アドレステーブル記憶部3010に記憶されているアドレステーブルを参照して、受け取ったクライアントパケットにおけるMAC DAに対応するRPR MACアドレスを検索する。エントリがあれば(すなわち、検索に成功すれば)、パケット変換回路3011は、検索したRPR MACアドレスをRPR MAC DAとして、クライアントパケットをカプセル化する。
また、エントリがなければ(すなわち、検索に失敗したならば)、ブロードキャストアドレスをRPR MAC DAとして、クライアントパケットをカプセル化する(この場合、 Unknownユニキャストパケットを作成することになる)。パケット変換回路3011は、RPR MAC DAを設定してカプセル化したパケットをリングレット選択回路3006に出力する。
リングレット選択回路3006は、パケット変換回路3011から送られてきたパケットがユニキャストパケットである場合、トポロジ管理回路3007を参照して、最短経路で宛先ノードへ到達可能なリングレットを選択し、TTLを設定してパケットを出力する。また、リングレット選択回路3006は、パケット変換回路3011から送られてきたパケットがブロードキャストパケット( Unknownユニキャストパケットも含む。)である場合、予め定められた転送方法(片方向フラッディングもしくは双方向フラッディング)に従ってリングレットを選択し、TTLを設定してパケットを出力する。
トポロジ管理回路3007は、自ノードを含むリングにおいて時計回り方向に並ぶ各ノードのRPR MACアドレスと、反時計回り方向に並ぶ各ノードのRPR MACアドレスを記憶し、管理する。
制御パケット処理回路3017は、各種制御パケットを生成し、そのパケットの送信対象リングレットに応じた多重化回路を介して、制御パケットを送信する。また、フォワーディング回路3001,3002から制御パケットを受信した場合、その制御パケットに応じた処理を行う。
多重化回路3003は、ポート3012−1からのパケットと、リングからのパケット(フォワーディング回路3001が出力したパケット)を多重化して、リングレット3013−1に送信する。同様に、多重化回路3004は、ポート3012−1からのパケットと、リングからのパケット(フォワーディング回路3002が出力したパケット)を多重化して、リングレット3013−2に送信する。
次に、RPR基本ノード部3019以外の構成要素について説明する。
パケットリング情報テーブル記憶部3021は、パケットリング情報テーブルを記憶する。パケットリング情報テーブルは、自ノード(ここではパケットリンク情報テーブルを保持するインタリンクノード自身)が属するパケットリングのリングID情報と、バイパス経路接続先リングID情報と、自ノードが属するパケットリング内の全てのインタリンクノードアドレス情報とそれぞれのインタリンクノードの接続先であるリングのリングID情報とを含む。ただし、その一部のエントリがない状態であってもよい。例えば、ハブリング内のインタリンクノードはバイパス経路によって他のリングに接続されていないので、バイパス経路接続先リングID情報のエントリはない。
パケットリング情報テーブル記憶部3021が記憶するパケットリング情報テーブルは、システム起動時に管理者により手動で設定されてもよい。また、パーソナルコンピュータやサーバなどにより設定されてもよい。同一リング内の複数のインタリンクノードのパケットリング情報テーブルの内容は同一である。
図4は、パケットリング情報テーブルのデータ構造を示す説明図である。「自リングID」は、自ノード(ここではパケットリンク情報テーブルを保持するインタリンクノード自身)が属するパケットリングのリングIDである。例えば、図4に示す例では、第1のリングに属するインタリンクノード1a,1bが保持するパケットリンク情報テーブルでは、自リングIDは#1である(図4(a)参照)。また、第2のリングに属するインタリンクノード2a、第3のリングに属するインタリンクノード3aが保持するパケットリンク情報テーブルでは、自ノードIDは、それぞれ#2,#3である(図4(b),(c)参照)。
「バイパス経路接続先リングID」は、自ノードが属するパケットリングとバイパス経路を介して接続されている他のリングのリングIDである。例えば、第2のリングに属するインタリンクノード2aが保持するパケットリンク情報テーブルでは、「バイパス経路接続先リングID」は#3である(図4(b)参照)。自ノードが属するパケットリングがバイパス経路を介して他のパケットリングに接続されていなければ、「バイパス経路接続先リングID」は、エントリなしとする(図4(a)参照)。
「インタリンクノードアドレス」は、自ノードが属するパケットリング内の全てのインタリンクノードのアドレスである。「インタリンクノードアドレス」には、そのインタリンクノードがインタリンクを介して接続される接続先リングのリングIDが対応付けられる。「インタリンクノードアドレス」に対応付けられる接続先リングのリングIDは、その接続先リングが下位層リングであるか上位層リングであるか区別される。図4に示すように、「インタリンクノードアドレス」に対応する項目として、「上位層リングID」および「下位層リングID」が設けられ、接続先リングが下位層リングである場合、そのリングIDは「下位層リングID」として設定される。また、接続先リングが上位層リングである場合、そのリングIDは「上位層リングID」として設定される。
ここで、自ノードの属するリングをハブリングとして見たときにサブリングに相当するリングが存在する場合は、それらを下位層リングと定義し、それらの下位層リングに接続性のあるインタリンクノードの接続先リングのリングIDを「下位層リングID」として定める。すなわち、パケットリング情報テーブルを設定するRPRノードがハブリングに属し、そのハブリング内のインタリンクノードがサブリングに接続されているならば、パケットリング情報テーブルにおいて、「インタリンクノードアドレス」に対応する「下位層リングID」にそのサブリングのリングIDを設定する。サブリングに相当するリングが存在しない場合または自ノードが属するリング内のインタリンクノードの接続先リングがサブリングに成り得ない場合、「インタリンクノードアドレス」に対応する「下位層リングID」はエントリなしとする。
また、自ノードの属するリングをサブリングとして見たときにハブリングに相当するリングが存在する場合は、それを上位層リングと定義し、その上位層リングに接続性のあるインタリンクノードの接続先リングのリングIDを「上位層リングID」として定める。すなわち、パケットリング情報テーブルを設定するRPRノードがサブリングに属し、そのサブリング内のインタリンクノードがハブリングに接続されているならば、パケットリング情報テーブルにおいて、「インタリンクノードアドレス」に対応する「上位層リングID」にそのサブリングのリングIDを設定する。ハブリングに相当するリングが存在しない場合または自ノードが属するリング内のインタリンクノードの接続先リングがハブリングに成り得ない場合、「インタリンクノードアドレス」に対応する「上位層リングID」はエントリなしとする。
以下に具体例を示す。例えば、ハブリングである第1のリングに属するインタリンクノード1a,1bはそれぞれ、インタリンクを介してサブリングである第2のリング、第3のリングに接続されている。従って、第1のリング内のRPRノードでは、パケットリンク情報テーブルにおいて、第1のリング内のインタリンクノードのアドレス(例えば1b)とともに、その接続リングのリングID(例えば#3)が「下位層リングID」として設定される(図4(a)参照)。また、第2のリングに属するインタリンクノード2aは、インタリンクを介してハブリングである第1のリングに接続されている。従って、第2のリング内のRPRノードでは、パケットリンク情報テーブルにおいて、第2のリング内のインタリンクノードのアドレス2aとともに、その接続リングのリングID(#1)が「上位層リングID」として設定される(図4(b)参照)。
パケットリング情報テーブル記憶部3021に記憶されたパケットリング情報テーブルの内容は、無効化FDBエントリ判定回路3025、孤立リング判定回路3020およびリングID PUSH/POP回路3027によって参照される。
インタリンク障害検出回路3026について説明する。
インタリンク障害検出回路3026は、MAC/PHY回路3015よりインタリンク接続しているトリビュタリポートのリンク断の通知を受け、インタリンク障害を検出する。また、インタリンク障害の検出により孤立リング判定回路3020へ通知する。なお、
MAC/PHY回路3015は、トリビュタリポートから入力される光が断となったことにより、インタリンクに障害が発生したことを検知し、インタリンク障害検出回路3026に通知すればよい。ただし、この障害検知態様は一例であり、インタリンク障害の検知態様は、ここで述べた方法に限定されるわけではない。
孤立リング通知パケット生成回路3022について説明する。孤立リング通知パケット生成回路3022は、孤立リング判定回路3020から孤立リングID(孤立リングとなったリングのリングID)の通知を受けると、自ノード以外のノードに孤立リングIDを告知するための孤立リングIDを格納した孤立リング通知パケットを生成する。孤立リング通知パケット生成回路3022は、生成した孤立リング通知パケットを孤立リング通知パケット送信回路3023に出力する。
孤立リング通知パケット送信回路3023について説明する。孤立リング通知パケット送信回路3023は、孤立リング通知パケット生成回路3022より孤立リング通知パケットの入力を受け、孤立リング通知パケットを制御パケット処理回路3017へ出力する。このとき、制御パケット処理回路3017は、孤立リング通知パケットを多重回路3003,3004のいずれか一方または両方からパケットリングに送信する。また、孤立リング通知パケット送信回路3023は、孤立リング通知パケットをMAC/PHY回路3015に出力する。このとき、MAC/PHY回路3015はトリビュタリポートよりインタリンクへ孤立リング通知パケットを送信する。
孤立リング通知パケット受信回路3024について説明する。孤立リング通知パケット受信回路3024は、制御パケット処理回路3017およびMAC/PHY回路3015により、自ノード以外から自ノード宛に送信される孤立リング通知パケットを受信する。すなわち、制御パケット処理回路3017は、自ノード以外から自ノード宛に送信される孤立リング通知パケットをフォワーディング回路3001,3002から受信すると孤立リング通知パケット受信回路3024に出力し、孤立リング通知パケット受信回路3024はその孤立リング通知パケットを受信する。同様に、MAC/PHY回路3015は、自ノードに対して送信された孤立リング通知パケットを受信すると孤立リング通知パケット受信回路3024に出力し、孤立リング通知パケット受信回路3024はその孤立リング通知パケットを受信する。
また、孤立リング通知パケット受信回路3024は、受信した孤立リング通知パケットから孤立リングIDを読み出し、孤立リング判定回路3020および無効化FDBエントリ判定回路3025に出力する。
孤立リング判定回路3020について説明する。孤立リング判定回路3020は、孤立リング通知パケット受信回路3024より孤立リングIDを取得する。また、孤立リング判定回路3020は、インタリンク障害検出回路3026より自インタリンクノードのインタリンク障害状態の情報を取得する。孤立リング判定回路3020は、その孤立リングIDおよびインタリンク障害状態の情報と、パケットリング情報テーブルとを参照し、孤立リングを唯一に特定する。孤立リングを特定する処理については後述する。
孤立リング判定回路3020は、孤立リングを特定すると、その孤立リングのリングID(孤立リングID)を孤立リング通知パケット生成回路3022に通知し、孤立リング通知パケット生成回路3022に孤立リング通知パケットを生成させる。この結果、孤立リング通知パケット生成回路3022は、その孤立リングIDを含む孤立リング通知パケットを生成し、孤立リング通知パケット送信回路3023がその孤立リング通知パケットを他のノードに送信する。
また、孤立リング判定回路3020は、孤立リングを特定すると、その孤立リングIDを無効化FDBエントリ判定回路3025に通知する。
無効化FDBエントリ判定回路3025について説明する。無効化FDBエントリ判定回路3025は、孤立リング判定回路3020より孤立リングIDの通知を受け、さらにパケットリング情報テーブルを参照して無効化すべきFDBエントリを特定し、アドレステーブルにうち、特定したエントリを無効化(例えば削除)する。無効化すべきFDBエントリを特定する処理については後述する。
リングID PUSH/POP回路3027について説明する。リングID PUSH/POP回路3027は、多重化回路3005からパケット変換回路3011にRPRパケットが入力され、パケット変換回路3011においてデカプセル化されてクライアントパケットとしてMAC/PHY回路3015を経由してトリビュタリポートへ出力されるパケットの処理において、クライアントパケットのペイロードの直前に挿入されているリングIDシムヘッダを削除(POP)する。リングID PUSH/POP回路3027は、例えばパケット変換回路3011がRPRパケットからクライアントパケットをデカプセル化したときに、そのクライアントパケットからリングIDシムヘッダを削除する。
なお、本実施形態では、クライアントパケットにリングIDの情報を追加する場合にはシムヘッダとして追加し、新たに追加されるリングIDシムヘッダをクライアントパケットのペイロード直前に挿入する場合を例にする。
また、リングID PUSH/POP回路3027は、トリビュタリポートからMAC/PHY回路3015を介してクライアントパケットがパケット変換回路3011へ入力され、RPRカプセル化の後、多重化回路3005に出力する処理において、クライアントパケットのペイロードの直前にリングIDシムヘッダを挿入(PUSH)する。例えば、パケット変換回路3011にクライアントパケットが入力されたときに、クライアントパケットのペイロード直前にリングIDシムヘッダを挿入する。リングID PUSH/POP回路3027は、パケットリング情報テーブルに含まれる「自リングID」を参照し、そのリングをシムヘッダとして挿入する。
リングID PUSH/POP回路3027によるシムヘッダの追加および削除の動作については、図6を用いて後述する。
次に、基本ノードおよびバイパス経路ノードの構成について説明する。なお、バイパス経路ノードは、基本ノードと同様の構成要素のほかに、インタリンク障害の通知を受けたときにトリビュタリポートを閉塞状態から開放状態に遷移し、バイパス経路を待機状態からリンクアップさせるための構成要素も備えているが、それらの動作は本発明の動作とは別に行われるので、それらの動作を行うバイパス経路ノードの構成要素については説明を省略する。ここでは、基本ノードを例にして説明するが、基本ノードが有する構成要素は全てバイパス経路ノードにも設けられており、基本ノードに関する以下の説明はバイパス経路ノードについても当てはまる。
図5は、基本ノードの構成例を示すブロック図である。図1に示す基本ノードおよびバイパス経路ノードは、図4に示す基本ノード4030と同様の構成を有している。
基本ノード4030は、RPR基本ノード部3019と、パケットリング情報テーブル記憶部4021と、孤立リング通知パケット受信回路4024と、無効化FDBエントリ判定回路4025と、リングID PUSH/POP回路3027とを備える。
基本ノードのRPR基本ノード部3019の構成は、インタリンクノードのRPR基本ノード部3019の構成と同様である。RPR基本ノード部3019が備える各構成要素は、図2と同一の符号で表し、説明を省略する。また、基本ノードが備えるリングID PUSH/POP回路3027の動作も、インタリンクノードが備えるリングID PUSH/POP回路3027の動作と同様である。
基本ノードのパケットリング情報テーブル記憶部4021は、インタリンクノードのパケットリング情報テーブル記憶部3021と同様に、パケットリング情報テーブルを記憶する記憶装置である。基本ノードおよびバイパス経路ノードのパケットリング情報テーブル記憶部4021に記憶されるパケットリング情報テーブルは、「自リングID(自ノードが属するパケットリングのリングID)」と「バイパス経路接続先リングID(自ノードが属するパケットリングとバイパス経路を介して接続されている他のリングのリングID)」とを含んでいればよい。自ノードが属するパケットリングがバイパス経路を介して他のパケットリングに接続されていなければ、「バイパス経路接続先リングID」はエントリなしとする。同一リング内の複数の基本ノードおよびバイパス経路ノードのパケットリング情報テーブルの内容は同一のである。パケットリング情報テーブル記憶部4021が記憶するパケットリング情報テーブルは、システム起動時に管理者により手動で設定されてもよい。また、パーソナルコンピュータやサーバなどにより設定されてもよい。
孤立リング通知パケット受信回路4024について説明する。孤立リング通知パケット受信回路4024は、制御パケット処理回路3017により、自ノード以外から自ノード宛に送信される孤立リング通知パケットを受信する。すなわち、制御パケット処理回路3017は、自ノード以外から自ノード宛に送信される孤立リング通知パケットをフォワーディング回路3001,3002から受信すると孤立リング通知パケット受信回路4024に出力し、孤立リング通知パケット受信回路4024はその孤立リング通知パケットを受信する。また、孤立リング通知パケット受信回路4024は、受信した孤立リング通知パケットから孤立リングIDを読み出し、無効化FDBエントリ判定回路3025に出力する。
無効化FDBエントリ判定回路4025について説明する。無効化FDBエントリ判定回路4025は、孤立リング通知パケット受信回路4024より孤立リングIDの通知を受け、さらにパケットリング情報テーブルを参照して無効化すべきFDBエントリを特定し、アドレステーブルのうち、特定したエントリを無効化(例えば削除)する。無効化すべきFDBエントリを特定する処理については後述する。
なお、1つのノードに、基本ノード、インタリンクノード等の構成要素を全て設けて、その一つのノードを、基本ノード、インタリンクノード等のいずれとしても用いることができるようにしてもよい。例えば、インタリンクノード動作モード、基本ノード動作モード等の設定を行えるようにし、基本ノード動作モードとしたときには、ノードが備える構成要素のうち、インタリンクノードでのみ使用する構成要素を動作させないようにすることで基本ノードとして動作させてもよい。インタリンクノード動作モードとしたときには、インタリンクノードとして要求される各構成要素(図2参照)を動作させればよい。
次に、動作について説明する。
まず、各ノードが、隣接するRPRノードから受信したRPRパケットを次のRPRノードに転送する動作について説明する。フォワーディング回路3001は、RPR MAC DAが自ノード以外のアドレスまたはブロードキャストアドレスであるRPRパケットを受信した場合、多重化回路3003を介して次のRPRノードに送信する。フォワーディング回路3002も同様である。なお、RPR MAC DAがブロードキャストアドレスであるRPRパケットについては、COPYとするため、多重化回路3005にも出力する。この場合の動作については、後述する。
次に、各ノードが、トリビュタリポートから受信したクライアントパケットをカプセル化してリング内に送信する動作について説明する。
MAC/PHY回路3015は、トリビュタリポートからクライアントパケットを受信すると、そのクライアントパケットをパケット変換回路3011に出力する。パケット変換回路3011は、そのクライアントパケットをリングID PUSH/POP回路3027に出力する。
図6(a)は、リングIDシムヘッダの追加処理の例を示すフローチャートである。上記の動作は、図6(a)に示すステップS1に該当する。リングID PUSH/POP回路3027は、トリビュタリポートが受信したクライアントパケットを受け取ると、クライアントパケットの直前にリングID(リングIDシムヘッダ)が付与(挿入)されているか否かを判定する(ステップS2)。リングIDが挿入されている場合には、リングID PUSH/POP回路3027は、パケットリング情報テーブルに含まれる「自リングID」をリングIDシムヘッダとして追加する。本実施形態では、最後の追加するリングIDシムヘッダは、ペイロードの直前に挿入するので、既に挿入されているリングIDとペイロードとの間に自リングIDを挿入する(ステップSS3)。また、本実施形態では、トリビュタリポートで受信するクライアントパケットに2個以上のリングIDが付与されていることはない。よって、ステップS3の処理の結果、2個のリングIDがクライアントパケットに付与された状態になる。また、ステップS2の判定の結果、リングIDがクライアントパケットに付与されていない場合、リングID PUSH/POP回路3027は、パケットリング情報テーブルに含まれる「自リングID」をリングIDシムヘッダとしてクライアントパケットのペイロードの直前に挿入する(ステップS4)。この結果、1個のリングIDがクライアントパケットに付与された状態になる。リングID PUSH/POP回路3027は、リングIDを付与したクライアントパケットをパケット変換回路3011に送出する(ステップS5)。
パケット変換回路3011は、アドレステーブルを参照し、クライアントパケットの宛先アドレス(MAC DA)を検索キーとして、その宛先アドレスに対応するRPRノードのアドレスを検索する。検索に成功した場合、そのRPRノードのアドレスをRPR MAC DAとして、クライアントパケットをカプセル化する。検索に失敗した場合、ブロードキャストアドレスをRPR MAC DAとして、クライアントパケットをカプセル化する。次に、リングレット選択回路3006は、パケット変換回路3011によってカプセル化されたRPRパケットのRPR MAC DAとトポロジ管理回路3007が記憶する情報とに基づいて、送信に用いるリングレットを決定し、そのリングレットに応じて多重化回路3003,3004のいずれか一方または両方に、RPRパケットを出力する。多重化回路3003,3004は、リングレット選択回路3006から入力されたRPRパケットをリングレットに送信する。
次に、各ノードが受信したRPRノードをデカプセル化して、トリビュタリポートから送信する動作(COPY等の場合の動作)について説明する。フォワーディング回路3001は、RPR MAC DAが自ノードアドレスまたはブロードキャストアドレスであるRPRパケットを受信した場合、そのRPRパケットを多重化回路3005を介してパケット変換回路3011に出力する。パケット変換回路3011は、RPRパケットからクライアントパケットをデカプセル化して、クライアントパケットを抽出し、リングID PUSH/POP回路3027に出力する。
また、パケット変換回路3011は、受信したRPRパケットのRPR MAC SAと、デカプセル化したクライアントパケットのMAC SAと、クライアントパケットに付与されているリングIDの中で最初に挿入されたリングID(クライアントパケットに付与されているリングIDが一つの場合にはそのリングID)とを対応付けて、アドレステーブル記憶部に記憶させる。このようにして記憶された情報の集合がアドレステーブルとなる。クライアントパケットに2つのリングIDが付与されている場合、その2つのうち最初に挿入されたリングIDは、ペイロードに近接していない方のリングIDである。クライアントパケットに付与されているリングIDの中で最初に挿入されたリングIDをアドレステーブルに登録するということは、クライアントパケットに2つのリングIDが付与されている場合には、その2つのリングIDのうち、自ノードが属するリング以外のリングのリングIDをアドレステーブルに登録することを意味する。さらに、自ノードが属するリング(すなわち自リング)とその自リングに対してインタリンクを介してそのクライアントパケットを送信したリングとを含むハブリングおよびサブリングの組み合わせに属するリングの中で、最初にクライアントパケットを他のリングに送信したリングのIDを登録することを意味する。
パケット変換回路3011は、クライアントパケットに1つのリングIDしか付与されていない場合、そのリングIDをRPR MAC SAおよびMAC SAとともにアドレステーブルに登録すればよい。
図6(b)は、リングIDシムヘッダの削除処理の例を示すフローチャートである。リングID PUSH/POP回路3027は、パケット変換回路3011からデカプセル化されたクライアントパケットを受信する(ステップS11)。自ノードがインタリンクノードでない場合(ステップS12のN)、リングID PUSH/POP回路3027は、クライアントパケットに挿入されている全てのリングIDシムヘッダを削除し(ステップS13)、ステップS18に移行する。
また、自ノードがインタリンクノードである場合(ステップS12のY)、クライアントパケット中に挿入されたリングIDシムヘッダ(すなわちペイロード直前に順次付与されているリングIDシムヘッダ)の数を判定する(ステップS14)。その数が1個であればステップS18に移行する。
ステップS14で判定した数が2個である場合、本実施の形態では、インタリンクノードである自ノードの接続先リンクは下位層リングでとなっている。この場合、リングID PUSH/POP回路3027は、ペイロードに近接している側の一方のリングIDを削除し、他方のリングIDをそのまま保持する(ステップS17)。本実施の形態におけるステップS17では、クライアントパケットに付与されているリングIDの中で後に挿入された方のリングIDシムヘッダを削除することになる。ステップS17のようにリングIDを削除するということは、自ノードが属するリング(自リング)、および自ノードとインタリンクを介して接続されるリングを含むハブリングおよびサブリングの組み合わせに属するリングの中で最初にクライアントパケットを他のリングに送信したリングのリングID以外のリングIDを削除することを意味する。
ステップS17の後、ステップS18に移行する。ステップS18では、リングID PUSH/POP回路3027は、クライアントパケットをパケット変換回路3011に出力し、パケット変換回路3011はそのクライアントパケットをMAC/PHY回路3015を介してトリビュタリポートから送信する。
次に、インタリンクノードがインタリンク障害を検出したときの動作を説明する。図7は、インタリンクノードがインタリンク障害を検出したときの処理経過の例を示すフローチャートである。インタリンクに障害が発生するとMAC/PHY回路3015がインタリンク障害を検知し、インタリンク障害検出回路3026に通知する。インタリンク障害検出回路3026は、この通知を受けると、インタリンク障害発生を、孤立リング判定回路3020に通知する(ステップS21)。
孤立リング判定回路3020は、パケットリング情報テーブルを参照し(ステップS22)、インタリンク障害を検出したインタリンクノード(すなわち自ノード)の接続先リングが上位層リングであるか否かを判定する(ステップ23)。孤立リング判定回路3020は、自ノードのアドレスに対応する接続先リングのリングIDが「上位層リングID」として記憶されているならば、接続先リングが上位層リングであると判定し、「下位層リングID」として記憶されているならば、接続先リングが下位層リングであると判定する。そして、孤立リング判定回路3020は、自ノードの接続先リングが上位層リングであるならば(ステップS23のY)、自ノードが属するリングが孤立リングであると判定し、自リングIDをパケットリング情報テーブルから抽出する(ステップS24)。また、自ノードの接続先リングが上位層リングでなければ(ステップS23のN)、インタリンク障害を検出したインタリンクノード(すなわち自ノード)の接続先リングとなる下位層リングが孤立リングであると判定し、そのリングIDをパケットリング情報テーブルから抽出する(ステップS25)。
孤立リング判定回路3020は、孤立リングを判定すると孤立リングID(ステップS24,S25で抽出したリングID)を、無効化FDBエントリ判定回路3025および孤立リング通知パケット生成回路3022に通知する。
無効化FDBエントリ判定回路3025は、パケットリング情報テーブルを参照し、孤立リングIDが自リングを指しているのか下位層リングを指しているのかを判定する(ステップS26)。無効化FDBエントリ判定回路3025は、孤立リングIDが自リングIDとしてパケットリング情報テーブルに登録されているならば、孤立リングIDが自リングを指していると判定する。また、孤立リングIDが下位層リングIDとしてパケットリング情報テーブルに登録されているならば、孤立リングIDが下位層リングを指していると判定する。
無効化FDBエントリ判定回路3025は、孤立リングIDが自リングを指しているならば、自ノードが属するリングの上位層リングのリングID、および、自ノードが属するリングとバイパス経路を介して接続されるリングのリングIDを、アドレステーブルで無効化するエントリのリングIDとして定め、そのリングIDに対応するエントリをアドレステーブル内で無効化する(ステップS27a)。また、無効化FDBエントリ判定回路3025は、孤立リングIDが下位層リングを指しているならば、エントリをアドレステーブルにおいて、孤立リングIDに対応するエントリを無効化する(ステップS27b)。
また、孤立リング通知パケット生成回路3022は、孤立リングIDを通知されるとその孤立リングIDを含む孤立リング通知パケットを生成し、孤立リング通知パケット送信回路3023に出力する(ステップS28)。孤立リング通知パケット送信回路3023は、制御パケット処理回路3017を介して、多重化回路3003,3004から孤立リング通知パケットを送信する(ステップS29)。このとき、パケットリング内の全てのノード宛に孤立リング通知パケットが到達するように、例えば、宛先アドレスをブロードキャストアドレスとして、孤立リング通知パケットを送信する。
次に、インタリンク障害を検出したインタリンクノード以外のインタリンクノードが孤立リング通知パケットを受信したときの動作を、図8に示すフローチャートを参照して説明する。自身でインタリンク障害を検出していないインタリンクノードの孤立リング通知パケット受信回路3024は、インタリンク障害を検出したインタリンクノードを送信元とする孤立リング通知パケットを受信すると(ステップS31)、孤立リング通知パケットから孤立リングIDを読みとり、孤立リング判定回路3020に通知する(ステップS32)。
孤立リング判定回路3020は、孤立リング通知パケット受信回路3024から孤立リングIDが通知されると、パケットリング情報テーブルにおいて、その孤立リングIDが自ノードの属するリング内のいずれかのインタリンクノードの「下位層リングID」として定められているか、バイパス経路接続先リングIDとして定められているか、あるいは「自リングID」として定められているかを判定する(ステップS33)。
孤立リングIDが自ノードの属するリング内のいずれかのインタリンクノードの「下位層リングID」として定められている場合、以下の動作を行う。孤立リング判定回路3020は、孤立リングIDを孤立リング通知パケット生成回路3022および無効化FDBエントリ判定回路3025に孤立リングIDを通知する。孤立リング通知パケット生成回路3022は、その孤立リングIDを含む孤立リング通知パケットを生成し(ステップS34)、孤立リング通知パケット送信回路3023に出力する。孤立リング通知パケット送信回路3023は、その孤立リング通知パケットをMAC/PHY回路3015を介してトリビュタリポートから送信する(ステップS35)。また、無効化FDBエントリ判定回路3025は、エントリをアドレステーブルにおいて、孤立リング判定回路3020から通知された孤立リングIDに対応するエントリを無効化する(ステップS36)。
孤立リングIDがバイパス経路接続先リングIDとして定められている場合、以下の動作を行う。孤立リング判定回路3020は、孤立リングIDを孤立リング通知パケット生成回路3022および無効化FDBエントリ判定回路3025に孤立リングIDを通知する。孤立リング通知パケット生成回路3022は、その孤立リングIDを含む孤立リング通知パケットを生成し(ステップS37)、孤立リング通知パケット送信回路3023に出力する。孤立リング通知パケット送信回路3023は、パケットリング内の全てのノード宛に孤立リング通知パケットが到達するように、例えば、宛先アドレスをブロードキャストアドレスとして、孤立リング通知パケットを送信する(ステップS38)。この動作はステップS29と同様である。また、無効化FDBエントリ判定回路3025は、エントリをアドレステーブルにおいて、孤立リング判定回路3020から通知された孤立リングIDに対応するエントリを無効化する(ステップS36)。
孤立リングIDが「自リングID」として定められている場合、以下の動作を行う。孤立リング判定回路3020は、孤立リングIDを無効化FDBエントリ判定回路3025に孤立リングIDを通知する。無効化FDBエントリ判定回路3025は、自ノードが属するリングの上位層リングのリングID、および、自ノードが属するリングとバイパス経路を介して接続されるリングのリングIDを、アドレステーブルで無効化するエントリのリングIDとして定め、そのリングIDに対応するエントリをアドレステーブル内で無効化する(ステップS39)。
次に、インタリンクノード以外のノード(基本ノードおよびバイパス経路ノード)が孤立リング通知パケットを受信したときの動作を、図9に示すフローチャートを参照して説明する。ここでは、基本ノードを例にして説明するが、バイパス経路ノードの動作も同様である。基本ノードの孤立リング通知パケット受信回路4024は、孤立リング通知パケットを受信すると孤立リング通知パケットから孤立リングIDを読みとり、無効化FDBエントリ判定回路4025に通知する(ステップS41)。
無効化FDBエントリ判定回路4025は、孤立リング通知パケット受信回路4024から通知された孤立リングIDが、パケットリング情報テーブル内の「自リングID」と合致していなければ、アドレステーブルにおいて、その孤立リングIDに対応するエントリを無効化する(ステップS42)。また、通知された孤立リングIDが「自リングID」と合致していれば、無効化FDBエントリ判定回路4025は、自ノードが属するリングの上位層リングのリングID、および、自ノードが属するリングとバイパス経路を介して接続されるリングのリングIDを、アドレステーブルで無効化するエントリのリングIDとして定め、そのリングIDに対応するエントリをアドレステーブル内で無効化する(ステップS43)。
図10は、FDB(アドレステーブル)に含まれるリングID等を学習する状況を示す説明図である。以下、図6から図9のフローチャートおよび図10等を参照して、本発明におけるクライアントパケット送信元リングIDのFDB学習、インタリンク障害発生時の孤立リングの特定および通知、ならびに孤立リング特定および認知後のFDBエントリ消去の動作について具体例を挙げて説明する。
図10に例示するパケットリングネットワークシステムは、図1に例示するパケットリングネットワークシステムと同様であり、第1のリングと第2のリングと第3のリングとを含む。そして、インタリンクノード1a,2aおよびインタリンク5012により第1のリングと第2のリングが接続される。インタリンクノード1b,3aおよびインタリンク5011により第1のリングと第3のリングが接続される。また、バイパス経路ノード2d,3bおよびバイパス経路5010により第2のリングと第3のリングが接続されているが、インタリンクに障害が発生していない正常時においては、バイパス経路はリンクダウンしており、バイパス経路を経由して転送されるクライアントパケットは存在しない。すなわち、正常時では、パケットリングネットワークシステムはバイパス経路5010でパケット転送を行わない。インタリンク5011,5012のいずれかに障害が発生した場合、パケットリングネットワークシステムはバイパス経路5010でのパケット転送を開始し、バイパス経路5010は障害が発生したインタリンクの代替経路となる。図11は、インタリンク5011に障害が発生した場合のパケット転送経路の変更を示す説明図である。図11(a)に示すようにインタリンク5011に障害が発生した場合、図11(b)に示すようにバイパス経路5010がパケット転送経路として使用され始める。
また、各リングの各ノードは、図4に例示するパケットリング情報テーブルを保持しているものとする。
クライアントパケット送信元リングIDのFDB学習に関する動作の具体例を説明する。図10において、第3のリングのノード3cのトリビュタリポートに接続されているクライアント装置Aより、DA=FF、SA=Aのクライアントパケットが送信され、第2のリングの2cのトリビュタリポートに接続されているクライアント装置Bによりクライアントパケットが受信されるまでのパケット転送処理を例にして説明する。DA,SAは送信先、送信元を意味する。第2のリングのノード2cが自ノードのアドレステーブルにRPRパケットのSA(RPR MAC SA)、クライアントパケットのSA(MAC SA)およびクライアントパケット送信元リングIDを学習し、テーブルを構築するまでの動作は以下のようになる。
基本ノード3cがクライアント装置Aからクライアントパケットを受信すると、基本ノード3cのリングID PUSH/POP回路3027は、図6(a)に示す動作により、リングIDシムヘッダのPUSH(挿入)動作を行う。基本ノードはクライアント装置からトリビュタリポートにてクライアントパケット受信するため、受信するクライアントパケットに既にリングIDシムヘッダが付与されていることはない。よって、リングID PUSH/POP回路3027は、パケットリング情報テーブル内の自リングID(自ノードの属するパケットリングのリングID)を参照し、そのリングID=#3をクライアントパケットのペイロードの直前に挿入し(ステップS4、図6(a)参照。)、1つのリングIDシムヘッダが付与されたクライアントパケットを生成し、パケット変換回路3011へ出力する(ステップS5)。
ここでは、クライアント装置Aから受信したクライアントパケットをカプセル化してブロードキャスト送信する場合を例にして説明する。基本ノード3cは、リングID=#3が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード3aに到達する。インタリンクノード3aは、受信したRPRパケットをCopyし、通常のRPRパケット受信処理によりデカプセル化し、リングID=#3が付与されたクライアントパケットをトリビュタリポートから出力する。このとき、インタリンクノード3aのリングID PUSH/POP回路3027は、図6(b)に示す動作を行う。ここではクライアントパケットに付与されているリングIDは1個なので、リングIDをPUSH/POPせずにそのままトリビュタリポートへ送出する(ステップS14からステップS18に移行)。インタリンクノード1bのトリビュタリポートは、このクライアントパケットをインタリンク5011を介して受信する。
インタリンクノード1bのリングID PUSH/POP回路3027は、図6(a)に示す動作により、リングIDシムヘッダをPUSH(挿入)する。本例では、トリビュタリポート(インタリンク)から入力されたクライアントパケットにリングIDシムヘッダ(#3)が既に付与されていることを確認し、既に付与されているリングIDシムヘッダとペイロードとの間に自リングのリングID=#1のリングIDシムヘッダをPUSHする(ステップS3)。よって2つのリングIDシムヘッダが付与されたクライアントパケットが生成される。
インタリンクノード1bは、リングID=#3および#1が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード1aに到達する。インタリンクノード1aは、受信したRPRパケットをCopyし、通常のRPRパケット受信処理によりデカプセル化し、そのクライアントパケットをトリビュタリポートから出力する。このとき、インタリンクノード1aのリングID PUSH/POP回路3027は、図6(b)に示す動作によりリングIDを削除する。ここでは、クライアントパケットに付与されているリングIDは2個である。この場合、インタリンクノード1aの接続先が下位層リングであり(すなわち第1のリングがハブリングであり第2のリングがサブリングであるという関係であり)、ペイロードに近接している側の一方のリングID(#1)を削除し、他方のリングID(#3)をそのまま保持する(ステップS17)。そして、インタリンクノード1aは、そのクライアントパケットをトリビュタリポートへ送出する(ステップS18)。インタリンクノード2aのトリビュタリポートは、このクライアントパケットをインタリンク5012を介して受信する。
インタリンクノード2aのリングID PUSH/POP回路3027は、図6(a)に示す動作により、リングIDシムヘッダを挿入する。本例では、トリビュタリポート(インタリンク)から受信したクライアントパケットにリングID=#3のシムヘッダが既に付与されていることを確認し、既に付与されているリングID=#3のシムヘッダとペイロードとの間に自リングのリングID=#2のリングIDシムヘッダをPUSHする(ステップS3)。よって2つのリングIDシムヘッダ(リングID=#3および#2)が付与されたクライアントパケットが生成される。
インタリンクノード2aは、リングID=#3および#2が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットは基本ノード2cに到達する。基本ノード2cは、受信したRPRパケットをCopyし、通常のRPRパケット受信処理によりデカプセル化する。そのとき、基本ノード2cのパケット変換回路3011は、RPRパケットの送信元(RPR MAC SA)と、クライアントパケットの送信元(MAC SA)との対応を学習し、アドレステーブル記憶部3010に学習内容を記録する。さらに、パケット変換回路3011は、クライアントパケットのペイロード側に近接して付与されているシムヘッダ(リングID=#2)ではない方のシムヘッダ(リングID=#3)を参照する。すなわち、クライアントパケットに先に挿入されたリングIDを参照する。そして、そのリングIDを、RPRパケットの送信元(RPR MAC SA)およびクライアントパケットの送信元(MAC SA)と対応付けて、アドレステーブル記憶部3010に記憶させる。
また、リングID PUSH/POP回路3027は、図6(b)に示す動作により、リングIDシムヘッダを削除する。ここでは、自ノードは基本ノード2cでありインタリンクノードではないので(ステップS12のN)、リングID PUSH/POP回路3027は、リングIDシムヘッダを全てPOPしたのちにクライアントパケットをトリビュタリポートへ出力する(ステップS13,S18)。クライアント装置Bは、クライアント装置Aが送信したクライアントパケットを受信する。
以上の動作により、クライアント装置A、基本ノード3cより送信され、クライアント装置B、基本ノード2cで受信されるクライアントパケットについて、受信側の基本ノード2cにおいて、RPRパケットの送信元(RPR MAC SA)、クライアントパケットの送信元(MAC SA)およびクライアントパケットの送信元リングIDを学習する。
上記の説明ではRRPパケットおよびクライアントパケットについてブロードキャスト転送を例に説明したが、ユニキャスト転送でRPRパケットの送信元、クライアントパケットの送信元、およびリングIDを学習する動作も同様である。また、Unknownユニキャストパケットを受信して学習を行う場合の動作も同様である。
次に、インタリンク障害が発生した場合に、孤立リングを特定し、特定された孤立リングの孤立リングIDを通知する動作を説明する。この通知動作により、インタリンク障害の発生の通知、インタリンク障害の発生によるFDBエントリ無効化が必要であることの通知、ならびに各ノードにおいて無効化が必要なFDBエントリの特定が可能になる。
インタリンクノード3aは、インタリンク障害を直接検出するインタリンクノードであり、インタリンク5011に障害が発生すると、インタリンクノード3aのMAC/PHY回路3015およびインタリンク障害検出回路3026がインタリンク障害を検出し(ステップS21、図7参照。)、孤立リング判定回路3020はインタリンク障害検出回路3026からインタリンク障害が発生の通知を受け、パケットリング情報テーブルを参照する(ステップS22)。孤立リング判定回路3020は、インタリンク障害を検出したインタリンクノード3aの接続先を参照し、#1が上位層リングとして登録されているため(ステップS23のY)、孤立リングは自リング(第3のリング)であると判定し、孤立リングのリングIDを#3と決定する(ステップS24)。
さらにインタリンク障害を検出したインタリンクノード3aの孤立リング通知パケット生成回路3022は、孤立リングID=#3を通知する孤立リング通知パケットを生成し、孤立リング通知パケット送信回路3023に出力する(ステップS28)。孤立リング通知パケット送信回路3023は、その孤立リング通知パケットを自ノードが属するパケットリング(第3のリング)内の全ノードに対して送信する(ステップS29)。
インタリンクノード1bは、インタリンク障害を直接検出するインタリンクノードであり、インタリンク5011に障害が発生すると、インタリンクノード1bのMAC/PHY回路3015およびインタリンク障害検出回路3026がインタリンク障害を検出し(ステップS21、図7参照。)、孤立リング判定回路3020はインタリンク障害検出回路3026からインタリンク障害が発生の通知を受け、パケットリング情報テーブルを参照する(ステップS22)。孤立リング判定回路3020は、インタリンク障害を検出したインタリンクノード1bの接続先を参照し、#3が下位層リングとして登録されているため(ステップS23のN)、孤立リングは下位層リング(第3のリング)であると判定し、孤立リングのリングIDを#3と決定する(ステップS25)。
さらにインタリンク障害を検出したインタリンクノード1bの孤立リング通知パケット生成回路3022は、孤立リングID=#3を通知する孤立リング通知パケットを生成し、孤立リング通知パケット送信回路3023に出力する(ステップS28)。孤立リング通知パケット送信回路3023は、その孤立リング通知パケットを自ノードが属するパケットリング(第1のパケットリング)内の全ノードに対して送信する(ステップS29)。
インタリンクノード1aは、直接的にインタリンク5011のインタリンク障害を検知できないが、インタリンクノード1bより孤立リング通知パケットを受信することにより、障害を検知することができる。このインタリンクノード1aは、図8に示す処理を行う。インタリンクノード1aの孤立リング通知パケット受信回路3024は、制御パケット処理回路3017を介して孤立リング通知パケットを受信し(ステップS31)、孤立リングのリングID=#3を読み取る(ステップS32)。そして、その孤立リングIDを孤立リング判定回路3020に通知する。孤立リング判定回路3020は、自ノードのパケットリング情報テーブル(図4(a))を参照し(ステップS33)、孤立リングである第3のリングが、障害を検出したインタリンクノードの下位層リングとして登録されていることを確認する。障害を検出したインタリンクノードは、孤立リング通知パケットの送信元アドレス(本例では1b)から判断すればよい。図4(a)に示すように、障害を検出したインタリンクノード1bに対応するリングID=#3は、下位層リングとして登録されている。この場合、孤立リング判定回路3020は、孤立リング通知パケット生成回路3022に対して孤立リングのリングID=#3を通知する。孤立リング通知パケット生成回路3022は孤立リングのリングID=#3と設定して孤立リング通知パケットを生成する(ステップS34)。孤立リング通知パケット送信回路3023は、その孤立リング通知パケットをインタリンクノード1aのトリビュタリポートへ出力し、インタリンク5012を介して第2のリングへ送信する(ステップS35)。
インタリンクノード2aは、直接的にインタリンク5011のインタリンク障害を検知できないが、インタリンクノード1aよりトリビュタリポートを介して孤立リング通知パケットを受信することにより、障害を検知することができる。このインタリンクノード2aは、図8に示す処理を行う。インタリンクノード2aの孤立リング通知パケット受信回路3024は、MAC/PHY回路3015を介して孤立リング通知パケットを受信し(ステップS31)、孤立リングのリングID=#3を読み取る(ステップS32)。そして、その孤立リングIDを孤立リング判定回路3020に通知する。孤立リング判定回路3020は、パケットリング情報テーブルを参照し(ステップS33)、孤立リングである第3のリングが、自ノードの所属しているパケットリングのバイパス経路接続先リングとして登録されていることを確認する(図4(b)参照)。この場合、孤立リング判定回路3020は、孤立リング通知パケット生成回路3022に対して孤立リングのリングID=#3を通知する。孤立リング通知パケット生成回路3022は、孤立リングのリングID=#3と設定して孤立リング通知パケットを生成する(ステップS37)。孤立リング通知パケット送信回路3023は、その孤立リング通知パケットを自ノードが属するパケットリング(第2のリング)内の全ノードに対して送信する。
以上の通知動作により、孤立リングを特定し、FDB無効化が必要なノードを含むすべてのリングに対して、孤立リングIDを通知することができる。
次に、FDB無効化が必要なノードを含むそれぞれのリング内のノードにおけるFDBエントリ無効化の動作について説明する。
まず、インタリンクノード3aおよび、第3のリング内のインタリンクノード3a以外のノードについて説明する。
インタリンクノード3aはインタリンク5011のインタリンク障害を直接的に検知できるインタリンクノードであり、図7に示すステップS26以降の処理により無効化を行う。すなわち、インタリンクノード3aの無効化FDBエントリ判定回路3025は、孤立リング判定回路3020から孤立リングID=#3の通知を受けると、自ノードのパケットリング情報テーブル(図4(c))を参照してリングID=#3が自ノードの属するリングIDと一致することを確認する(ステップS26)。この場合、無効化FDBエントリ判定回路3025は、自ノードのアドレステーブルにおいて、上位層リングID=#1およびバイパス経路接続先リングID=#2のFDBエントリ、すなわちリングID=#3以外のエントリを、消去するなどして無効化する。
第3のリング内のインタリンクノード3a以外のノードは、図9に示す動作を行う。孤立リング通知パケット受信回路4024は、インタリンクノード3aより送信された孤立リング通知パケットを、制御パケット処理回路3017を介して受信する。そして、孤立リング通知パケット受信回路4024は、孤立リング通知パケットから孤立リングID=#3の読み取り、孤立リングIDを無効化FDBエントリ判定回路4025に通知する(ステップS41)。無効化FDBエントリ判定回路4025は、自ノードのパケットリング情報テーブル(図4(c))を参照し、孤立リングID(#3)が自ノードの所属するリングのリングIDと一致することを確認する。すると、無効化FDBエントリ判定回路4025は、自ノードのアドレステーブルにおいて、上位層リング(第1のリング)のリングID=#1およびバイパス経路接続先リング(第2のリング)のリングID=#2のFDBエントリ、すなわちリングID=#3以外のエントリを、消去するなどして無効化する(ステップS43)。
次に、インタリンクノード1b,1aおよび、第1のリング内のインタリンクノード1b,1a以外のノードについて説明する。
インタリンクノード1bは、インタリンク5011のインタリンク障害を直接的に検知できるインタリンクノードであり、図7に示すステップS26以降の処理により無効化を行う。すなわち、インタリンクノード1bの無効化FDBエントリ判定回路3025は、孤立リング判定回路3020から孤立リングID=#3の通知を受けると、自ノードのパケットリング情報テーブル(図4(a))を参照して、孤立リングID=#3が、障害を検出したインタリンクノード1bの接続先リングであり、なおかつ下位層リングであることを確認する(ステップS26)。この場合、無効化FDBエントリ判定回路3025は、自ノードのアドレステーブルにおいて、孤立リングID=#3のFDBエントリのみを、消去するなどして無効化する。
インタリンクノード1aは、インタリンク5011のインタリンク障害を直接的に検知できるインタリンクノードではなく、図8に示す無効化処理を行う。インタリンクノード1aの孤立リング通知パケット受信回路3024は、インタリンクノード1bより送信された孤立リング通知パケットを、制御パケット処理回路3017を介して受信し、孤立リングID=#3を読み取る(ステップS31,S32)。孤立リング判定回路3020は、自ノードのパケットリング情報テーブル(図4(a))を参照し(ステップS33)、孤立リングである第3のリングが、障害を検出したインタリンクノード1bの接続先リングであり、なおかつ下位層リングであることを確認する。なお、障害を検出したインタリンクノード1bは、孤立リング通知パケットの送信元アドレスから判断すればよい。この場合、無効化FDBエントリ判定回路3025は、自ノードのアドレステーブルにおいて、孤立リングID=#3のFDBエントリのみを、消去するなどして無効化する。
第1のリング内のインタリンクノード1a,1b以外のノードは、図9に示す動作を行う。孤立リング通知パケット受信回路4024は、インタリンクノード1bより送信された孤立リング通知パケットを、制御パケット処理回路3017を介して受信する。そして、孤立リング通知パケット受信回路4024は、孤立リング通知パケットから孤立リングID=#3の読み取り、孤立リングIDを無効化FDBエントリ判定回路4025に通知する(ステップS41)。無効化FDBエントリ判定回路4025は、自ノードのパケットリング情報テーブル(図4(a))を参照し、孤立リングID(#3)が自ノードの所属するリングのリングIDと一致しないことを確認する。すると、無効化FDBエントリ判定回路4025は、自ノードのアドレステーブルにおいて、孤立リングID=#3のFDBエントリのみを、消去するなどして無効化する(ステップS42)。
次に、インタリンクノード2aおよび、第2のリング内のインタリンクノード2a以外のノードについて説明する。
インタリンクノード2aは、インタリンク5011のインタリンク障害を直接的に検知できるインタリンクノードではなく、図8に示す無効化処理を行う。インタリンクノード2aの孤立リング通知パケット受信回路3024は、インタリンクノード1aより送信された孤立リング通知パケットを、MAC/PHY回路3015を介して受信し、孤立リングID=#3を読み取る(ステップS31,S32)。孤立リング判定回路3020は、自ノードのパケットリング情報テーブル(図4(b))を参照し(ステップS33)、孤立リングである第3のリングが、自ノードが属するリングのバイパス経路接続先リングであることを確認する。この場合、無効化FDBエントリ判定回路3025は、自ノードのアドレステーブルにおいて、孤立リングID=#3のFDBエントリのみを、消去するなどして無効化する。
第2のリング内のインタリンクノード2a以外のノードは、図9に示す動作を行う。孤立リング通知パケット受信回路4024は、インタリンクノード2aより送信された孤立リング通知パケットを、制御パケット処理回路3017を介して受信する。そして、孤立リング通知パケット受信回路4024は、孤立リング通知パケットから孤立リングID=#3の読み取り、孤立リングIDを無効化FDBエントリ判定回路4025に通知する(ステップS41)。無効化FDBエントリ判定回路4025は、自ノードのパケットリング情報テーブル(図4(b))を参照し、孤立リングID(#3)が自ノードの所属するリングのリングIDと一致しないことを確認する。すると、無効化FDBエントリ判定回路4025は、自ノードのアドレステーブルにおいて、孤立リングID=#3のFDBエントリのみを、消去するなどして無効化する(ステップS42)。
以上のように、図11に示すようなパケットリングネットワークシステムにおいて、インタリンク5011に障害が発生した場合、第1のリングおよび第2のリングにおいては孤立リングであるリングを送信元とするエントリのみを無効化する。また、孤立リングとなる第3のリングにおいては、第3のリング以外のリング(第1、第2のリング)を送信元とするエントリを消去する。孤立リングを認識して、インタリンクノードとインタリンクノード以外のノードにおけるFDBエントリ消去をパケットリングごとに選択的に行うことにより、バイパス経路を用いるようになったときでも利用可能なエントリを残すことができる。よって、インタリンク障害発生時のフラッディング発生を減少させ、また、インタリンク障害時のFDB再学習時間を短縮することができる。
実施形態2.
第1の実施形態では、リングID PUSH/POP回路3027がリングIDシムヘッダをスタック(多重に付与すること)する場合がある(図6に示すステップS3)。ハブリングと、ハブリングに直接インタリンクで接続される複数のサブリングとから構成されるパケットリングネットワーク(サブリングにさらにサブリングが多段にインタリンク接続される構成を除く。)では、クライアントパケットに付与するリングIDシムヘッダの数を最大1個としてもよい。図12は、クライアントパケットに付与するリングIDシムヘッダの数を最大1個とする場合のリングID PUSH/POP回路3027の動作を示すフローチャートである。図12(a)はリングIDシムヘッダの挿入動作を表し、図12(b)はリングIDシムヘッダの削除動作を表す。
まず、リングIDシムヘッダの挿入動作について説明する(図12(a)参照)。MAC/PHY回路3015がトリビュタリポートからクライアントパケットを受信すると、リングID PUSH/POP回路3027は、パケット変換回路3011を介してそのクライアントパケットを受信する(ステップS51)。リングID PUSH/POP回路3027は、クライアントパケットを受け取ると、クライアントパケットの直前にリングID(リングIDシムヘッダ)が付与されているか否かを判定する(ステップS52)。ステップS51,S52は、図6に示すステップS1,S2と同様である。リングIDが挿入されている場合には(ステップS52のY)、リングID PUSH/POP回路3027は、リングIDシムヘッダをそのままの状態にしたまま、パケット変換回路3011に送出する(ステップS53,S55)。また、リングIDがクライアントパケットに付与されていない場合(ステップS52のN)、リングID PUSH/POP回路3027は、パケットリング情報テーブルに含まれる「自リングID」をリングIDシムヘッダとしてクライアントパケットのペイロードの直前に挿入し(ステップS54)、クライアントパケットをパケット変換回路3011に送出する(ステップS55)。
。
次に、リングIDシムヘッダの削除動作について説明する(図12(b)参照)。リングID PUSH/POP回路3027は、パケット変換回路3011からデカプセル化されたクライアントパケットを受信する(ステップS61)。自ノードがインタリンクノードでない場合(ステップS62のN)、リングID PUSH/POP回路3027は、クライアントパケットに挿入されている全てのリングIDシムヘッダを削除し(ステップS63)、ステップS65に移行する。自ノードがインタリンクノードである場合(ステップS62のY)、リングIDシムヘッダをそのままの状態にしたままステップS65に移行する(ステップS64)。ステップS65では、リングID PUSH/POP回路3027は、クライアントパケットをパケット変換回路3011に出力し、パケット変換回路3011はそのクライアントパケットをMAC/PHY回路3015を介してトリビュタリポートから送信する。
図12に示す処理は、図6に示す処理からリングIDシムヘッダのスタックPUSH処理およびスタック数に関する判定分岐を取り除いたものである。この場合、パケットリング内のクライアントパケットに付与されるリングIDシムヘッダは常に1つだけであるため、帯域利用効率が向上するという効果がある。
その他の点に関しては、第1の実施の形態と同様である。
図13は、第2の実施形態におけるFDB学習の例を示す説明図である。以下、図13を参照して、本実施形態におけるリングIDシムヘッダの挿入や削除の例を示す。クライアント端末Aが、自信のアドレス“A”を送信元として、クライアント端末B宛のクライアントパケットを第3のリング内の基本ノード3cに送信する。ここでは、基本ノード3cがクライアントパケットをブロードキャスト送信する場合を例にする。ただし、ユニキャスト送信する場合やUnknownユニキャストパケットを送信する場合も同様である。基本ノード3cは、受信したクライアントパケットにリングIDシムヘッダが付与されていないので、そのペイロード直前に自ノードのリングID=#3を示すシムヘッダを追加し(ステップS54)、カプセル化の後、基本ノード3cは第3のリング内の各ノードにRPRパケットを送信する。このRPRパケットは、インタリンクノード3aに到達する。
インタリンクノード3aは、受信したRPRパケットをデカプセル化し、クライアントパケットを抽出する。インタリンクノード3aは、付与されているリングIDシムヘッダを変化させずに(ステップS64)、第1のリング内のインタリンク1bにそのクライアントパケットを送信する。
インタリンク1bがインタリンクノード3aから受信したクライアントパケットにはリングIDシムヘッダ(#3)が付与されているので(ステップS52のY)、インタリンク1bは、そのクライアントパケットをそのままカプセル化して、RPRパケットを第1のリング内の各ノードに送信する。このRPRパケットは、インタリンクノード1aに到達する。
インタリンクノード1aは、受信したRPRパケットをデカプセル化し、クライアントパケットを抽出する。インタリンクノード1aは、付与されているリングIDシムヘッダを変化させずに(ステップS64)、第2のリング内のインタリンク2aにそのクライアントパケットを送信する。
インタリンク2aがインタリンクノード1aから受信したクライアントパケットにはリングIDシムヘッダ(#3)が付与されているので(ステップS52のY)、インタリンク2aは、そのクライアントパケットをそのままカプセル化して、RPRパケットを第2のリング内の各ノードに送信する。このRPRパケットは、基本ノード2cに到達する。
基本ノード2cは、受信したRPRパケットをデカプセル化し、クライアントパケットを抽出する。基本ノード2cは、インタリンクノードではないので(ステップS62のN)、クライアントパケットに付与されている全てのリングIDシムヘッダ(ここでは#3)を削除する。また、基本ノード2cは、受信したRPRパケットのRPR MAC SA(送信元アドレス、ここでは2a)と、RPRパケットに格納されていたクライアントパケットのMAC SA(送信元アドレス、ここではA)と、クライアントパケットに付与されていたリングID(ここでは#3)とを対応付けて、アドレステーブル記憶部3010に記憶させる。
次に、本発明の実施形態の変形例について説明する。
上記の第1、第2の実施形態では、第1のリングに対して2つのリングをハブ接続したパケットリングネットワークシステムを示した。第1のリングに対して3つ以上のリングをハブ接続した構成であってもよい。すなわち、1つのリングに対して、バイパス経路ノードを含むリングを3つ以上接続した構成であってもよい。サブリングはすべて直接第1のリングにインタリンク接続され、バイパス経路は任意の2つのサブリングの間に形成されている。
各インタリンクノード、各バイパス経路ノードおよび各基本ノードの構成及び動作は、第1の実施形態で説明した構成および動作と同様である。また、第2の実施形態で説明した動作と同様であってもよい。
図14は、第1のリングに対して、第2のリングから第5のリングまでの4つのサブリングを接続したパケットリングネットワークシステムの例を示している。第1のリングは、インタリンクノード1a〜1dと、基本ノード1e〜1gを含んでいる。第2のリングは、インタリンクノード6aと、バイパス経路ノード6dと、基本ノード6b,6cとを含んでいる。第3のリングは、インタリンクノード3aと、バイパス経路ノード3dと、基本ノード3b,3cとを含んでいる。第4のリングは、インタリンクノード4aと、バイパス経路ノード4fと、基本ノード4b〜4eとを含んでいる。第5のリングは、インタリンクノード5aと、バイパス経路ノード5fと、基本ノード5b〜5eとを含んでいる。
インタリンクノード1a,6aは、インタリンク8004を介して接続され、インタリンクノード1b,5aは、インタリンク8006を介して接続される。バイパス経路ノード6d,5fは、バイパス経路8001を介して接続される。インタリンク8004,8006のいずれかに障害が生じたときに、バイパス経路ノード8001がリンクアップされる。すなわち、クライアントパケットの転送経路として利用され始める。また、インタリンクノード1c,4aは、インタリンク8005を介して接続され、インタリンクノード1d,3aは、インタリンク8003を介して接続される。バイパス経路ノード4f,3dは、バイパス経路8002を介して接続される。インタリンク8005,8003のいずれかに障害が生じたときに、バイパス経路ノード8002がリンクアップされる。インタリンクに障害が発生したときの各ノードの動作は、第1の実施形態と同様である。
ハブリングに接続されるサブリングの個数に制限はなく、サブリングの個数が偶数である場合には、任意の2つのサブリングをそれぞれ一組として、各組とした2つのサブリング間にバイパス経路を配備すればよい。
また、サブリングの個数が奇数である場合、1つ以上のサブリングに対して複数のバイパス経路ノードを設ける必要がある。図15は、サブリングが3つの場合の構成例を示す説明図である。第1のリングは、インタリンクノード1a〜1cと、基本ノード1d〜1fを含んでいる。第2のリングは、インタリンクノード2aと、バイパス経路ノード2dと、基本ノード2b,2cとを含んでいる。第3のリングは、インタリンクノード3aと、バイパス経路ノード3bと、基本ノード3c,3dとを含んでいる。第4のリングは、インタリンクノード4aと、バイパス経路ノード4b,4fと、基本ノード4c〜4eとを含んでいる。インタリンクノード1a,2aはインタリンク9004を介して接続される。インタリンクノード1b,4aはインタリンク9003を介して接続される。インタリンクノード1c,3aはインタリンク9005を介して接続される。また、バイパス経路ノード2d,4fはバイパス経路ノード9001を介して接続され、バイパス経路ノード3b,4bはバイパス経路ノード9002を介して接続される。
図15に示すように、サブリングの個数が奇数個である場合、1つ以上のサブリング(図15に示す例では第4のリング)に複数のバイパス経路ノードを設け、他のサブリングとの間に複数のバイパス経路を設ける。インタリンク9004のインタリンク障害に対してはバイパス経路9001、インタリンク9005のインタリンク障害に対してはバイパス経路9002を代替経路として適用し、インタリンク9003のインタリンク障害に対してはバイパス経路9001または9002のいずれか一方を代替経路として適用する。この場合、複数のバイパス経路ノードが設けられるリング内のインタリンクノード(図15に示す例では、第4のリングのインタリンクノード4a)は、以下に示す点で、第1の実施形態で示したインタリンクノードと異なる。他のノード(インタリンクノード4a以外の各ノード)の構成および動作は第1の実施形態または第2の実施形態と同様である。
インタリンクノード4aのパケットリング情報テーブル記憶部3021に記憶されるパケットリング情報テーブルは、バイパス経路接続先リングIDを複数含んでいる。すなわち、複数のバイパス経路ノード4f,4bに応じた複数のバイパス経路接続先リングIDをエントリとして設定する必要がある。その他の構成および動作は第1の実施形態または第2の実施形態と同様である。
実施形態3.
第1の実施形態および第2の実施形態では、サブリングをハブリングとするようなさらに下層のサブリングが存在しない場合を説明した。サブリングをハブリングとして、そのサブリングの下層にさらにサブリングを接続させる構成であってもよい。この場合、インタリンクノードおよびインタリンクノード以外のノードの構成は、第1の実施形態と同様である(図2および図5参照)。ただし、リングID PUSH/POP回路3027によるリングIDシムヘッダの挿入および削除動作が第1の実施形態とは異なる。また、クライアントパケットに複数のリングIDが付与されている場合に、アドレステーブルに学習すべきリングIDを特定する動作が第1の実施形態と異なる。その他の動作については、第1の実施形態と同様である。
図16は、サブリングに対してさらにサブリングを接続させた構成例を示す説明図である。図16に示す例では、第1のリングに対して、第2のリングおよび第3のリングがサブリングとして接続される。そして、第2のリングに対して、さらに第4のリングおよび第5のリングがサブリングとして接続されている。同様に、第3のリングに対して、さらに第6のリングおよび第7のリングがサブリングとして接続されている。バイパス経路を介して接続されてペアとなるサブリングが同一のハブリングに直接インタリンク接続されていれば、リング数およびサブリングの接続段数に制限はない。
図16に示す例では、第1のリングは、インタリンクノード1a,1bと、基本ノード1d〜1fとを含む。第2のリングは、インタリンクノード2a,2c,2dと、バイパス経路ノード2eと、基本ノード2bとを含む。第3のリングは、インタリンクノード3a,3c,3dと、バイパス経路ノード3eと、基本ノード3bとを含む。インタリンクノード1a,2aはインタリンクを介して接続される。同様に、インタリンクノード1b,3aはインタリンクを介して接続される。また、バイパス経路ノード2e,3eはバイパス経路を介して接続される。また、第4のリングは、インタリンクノード2a’と、バイパス経路ノード2e’と、基本ノード2b’〜2d’とを含む。第5のリングは、インタリンクノード2a’’と、バイパス経路ノード2b’’と、基本ノード2c’’〜2e’’とを含む。インタリンクノード2c,2a’はインタリンクを介して接続される。同様に、インタリンクノード2d,2a’’ はインタリンクを介して接続される。また、バイパス経路ノード2e’,2b’’は、バイパス経路を介して接続される。また、第6のリングは、インタリンクノード3a’’と、バイパス経路ノード3b’’と、基本ノード3c’’〜3e’’とを含む。第7のリングは、インタリンクノード3a’と、バイパス経路ノード3e’と、基本ノード3b’〜3d’とを含む。インタリンクノード3d,3a’’はインタリンクを介して接続される。同様に、インタリンクノード3c,3a’はインタリンクを介して接続される。また、バイパス経路ノード3e’,3b’’は、バイパス経路を介して接続される。
図16に示すインタリンク0001にインタリンク障害が発生した場合、バイパス経路ノード0002がリンクアップされる。すなわち、クライアントパケットの転送経路として利用され始める。このとき、アドレステーブル無効化によるRPRネットワークのフラッディングが生じるリングは第2、第4、第5の3つのリングのみであり、その他のリングへの影響はない。
図17は、第3の実施形態における各ノードのリングID PUSH/POP回路3027の動作を示すフローチャートである。図17(a)はリングIDシムヘッダの挿入動作を示し、図17(b)はリングIDシムヘッダの削除動作を示す。図6と同様の動作に関しては、図6と同様のステップ番号を付す。
まず、本実施形態におけるリングIDシムヘッダの挿入動作について説明する。ただし、ステップS2までの動作および、ステップS4以降の動作は第1の実施形態と同様であり、説明を省略する。ステップS2において、リングIDが挿入されていると判定した場合(ステップS2のY)、そのノードはインタリンクノードとなっている。この場合、リングID PUSH/POP回路3027は、自ノードのパケットリング情報テーブルを参照し、自ノード(自インタリンクノード)が接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS71)。リングID PUSH/POP回路3027は、パケットリング情報テーブルを参照し、自ノードのアドレスに対応する接続先リングのリングIDが「上位層リングID」として記憶されているならば、接続先リングが上位層リングであると判定し、「下位層リングID」として記憶されているならば、接続先リングが下位層リングであると判定する。
接続先リングが上位層リングである場合、リングID PUSH/POP回路3027は、既に挿入されているリングIDシムヘッダのペイロードとは反対側に自リングIDを挿入する(ステップS73)。第1の実施の形態では、後から追加されるリングIDシムヘッダはペイロードの直前に順次追加されていくが、第3の実施の形態のステップS73では、既に挿入されているリングIDシムヘッダのペイロードとは反対側(すなわち、ペイロードの直前に既に挿入されているリングIDシムヘッダのさらに前)に、自リングIDを挿入する。自リングIDはパケットリング情報テーブルから抽出すればよい。
ステップS73の後、リングID PUSH/POP回路3027は、クライアントパケットの所定位置に学習リングID識別子を付与する(ステップS74)。学習リングID識別子は、クライアントパケットに付与されている2つのリングIDのうち、どちらのリングIDシムをRPR MAC SA(RPRパケットの送信元アドレス)およびMAC SA(クライアントパケットの送信元)とともに学習すべきかを示す情報である。ステップS74では、クライアントに付与された2つのリングIDのうち、ペイロードに近接している方のリングIDを学習すべきことを示す学習リングID識別子(以下、“U”と記す。)をクライアントパケットに付与する。リングID PUSH/POP回路3027は、例えば、クライアントパケットのMAC SAと既に付与されているリングIDシムヘッダとの間に学習リングID識別子を挿入する。
また、接続先リングが上位層リングである場合、リングID PUSH/POP回路3027は、既に挿入されているリングIDシムヘッダとペイロードとの間(すなわちペイロードの直前)に、自リングIDを挿入する(ステップS76)。自リングIDはパケットリング情報テーブルから抽出すればよい。
ステップS76の後、リングID PUSH/POP回路3027は、クライアントパケットの所定位置に学習リングID識別子を付与する(ステップS77)。ステップS77では、、リングID PUSH/POP回路3027は、クライアントに付与された2つのリングIDのうち、ペイロードに近接していない方のリングIDを学習すべきことを示す学習リングID識別子(以下、“D”と記す。)を付与する。学習リングID識別子を挿入する位置は、既に説明したように、例えば、クライアントパケットのMAC SAと既に付与されているリングIDシムヘッダとの間である。
ステップS4,S74,S77の後、リングID PUSH/POP回路3027は、クライアントパケットをパケット変換回路3011に送出する(ステップS5)。なお、ステップS4では、学習リングID識別子を挿入しない。
次に、本実施形態におけるリングIDシムヘッダの削除動作について説明する。ただし、ステップS11〜ステップS12までの動作およびステップS14の動作は、第1の実施形態と同様であり、説明を省略する。ステップS12で、自ノードがインタリンクノードでないと判定した場合、リングID PUSH/POP回路3027は、クライアントパケットに挿入されている全てのリングIDシムヘッダを削除し(ステップS13)、ステップS18に移行する。ただし、本実施形態では、学習リングID識別子が付与されている場合、リングID PUSH/POP回路3027はステップS13において、リングIDシムヘッダとともに学習リングID識別子も削除する。ステップS13の後、第1の実施形態と同様にステップS18に移行する。
また、ステップS14で判定したリングIDシムヘッダの数が1個である場合、第1の実施形態と同様にステップS18に移行する。
ステップS14で判定したリングIDシムヘッダの数が2個である場合、リングID PUSH/POP回路3027は、パケットリング情報テーブルを参照して、自ノード(自インタリンクノード)が接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS15)。ステップS15の動作は、ステップS71(図17(a)参照)と同様である。
接続先リングが上位層リングである場合、リングID PUSH/POP回路3027は、ペイロードに近接している一方のリングIDを保持し、他方のリングIDを削除する(ステップS16)。すなわち、2つのリングIDのうち、ペイロードに近接していない方のリングIDを削除する。
接続先リングが下位層リングである場合、リングID PUSH/POP回路3027は、接続先リングが下位層リングある場合、ペイロードに近接している側の一方のリングIDを削除し、他方のリングIDをそのまま保持する(ステップS17)。
また、リングID PUSH/POP回路3027は、ステップS16,S17において、学習リングID識別子も削除する。
ステップS16,S17の後、ステップS18に移行する。ステップS18の動作は第1の実施形態と同様である。ステップS16,S17のようにリングIDを削除するということは、自ノードが属するリング(自リング)、および自ノードとインタリンクを介して接続されるリングを含むハブリングおよびサブリングの組み合わせに属するリングの中で最初にクライアントパケットを他のリングに送信したリングのリングID以外のリングIDを削除することを意味する。
次に、第3の実施形態において、各ノード(インタリンクノード、基本ノードおよびバイパス経路ノード)がアドレステーブルに学習すべきリングIDを特定する動作について説明する。図18は、第3の実施形態において、これらの各ノードがFDB学習を行う動作のフローチャートである。
多重化回路3005は、CopyまたはStripの対象となるRPRパケットをフォワーディング回路から入力されると、そのRPRパケットをパケット変換回路3011に出力する(ステップS81)。パケット変換回路3011には多重化回路3005からRPRパケットが入力される。パケット変換回路3011は、RPRパケットからクライアントパケットとデカプセル化し、クライアントパケットに学習リングID識別子が付与されているか否かを判定する(ステップS82)。
学習リングID識別子が付与されていない場合、パケット変換回路3011は、RPRパケットのRPR MAC SAと、クライアントパケットのMAC SAと、自リングのリングIDとを対応付けて、アドレステーブル記憶部3010に記憶させる(ステップS84)。
また、学習リングID識別子が付与されている場合、パケット変換回路3011は、その学習リングID識別子が“U”であるか“D”であるかを判定する(ステップS85)。
学習リングID識別子が“U”である場合、パケット変換回路3011は、RPRパケットのRPR MAC SAと、クライアントパケットのMAC SAと、クライアントパケットのペイロード側に付加されているリングIDとを対応付けて、アドレステーブル記憶部3010に記憶させる(ステップS86)。
学習リングID識別子が“D”である場合、パケット変換回路3011は、RPRパケットのRPR MAC SAと、クライアントパケットのMAC SAと、クライアントパケットに挿入されている2つのリングIDのうちペイロードに近接していない方のリングID(学習リングID識別子側に挿入されているリングID)とを対応付けて、アドレステーブル記憶部3010に記憶させる(ステップS87)。
ステップS86,S87では、クライアントパケットに付与された2個のリングIDのうち自リングIDでない方のリングIDを、アドレステーブル記憶部3010に記憶させるリングIDとして定めていることになる。
以上のFDB学習では、自リングとその自リングに対してインタリンクを介してそのクライアントパケットを送信したリングとを含むハブリングおよびサブリングの組み合わせに属するリングの中で、最初にクライアントパケットを他のリングに送信したリングのIDを登録していることになる。
以下、サブリングの下層にさらにサブリングが設けられている場合のFDB学習の動作の例について述べる。図19は、サブリングの下層にさらにサブリングが設けられている場合のFDB学習の例を示す説明図である。図19に示すパケットリングネットワークシステムにおいて、第7のリングのノード3c’のトリビュタリポートに接続されているクライアント装置Aより、DA=FF、SA=Aのクライアントパケットが送信され、第4のリングのノード2c’のトリビュタリポートに接続されているクライアント装置Bによりクライアントパケットが受信されるまでのパケット転送処理を例にして説明する。第4のリングのノード2c’が自ノード内のアドレステーブルに、RPRパケットのSA(RPR MAC SA)、クライアントパケットのSA(MAC SA)およびクライアントパケット送信元リングIDを学習し、テーブルを構築するまでの動作は以下のようになる。
基本ノード3c’がクライアント装置Aからクライアントパケットを受信すると、基本ノード3c’のリングID PUSH/POP回路3027は、図17(a)に示す動作により、リングIDシムヘッダのPUSH動作を行う。基本ノードはクライアント装置からトリビュタリポートにてクライアントパケットを受信するため、受信するクライアントパケットに既にリングIDシムヘッダが付与されていることはない。よって、リングID PUSH/POP回路3027は、パケットリング情報テーブル内の自リングIDを参照し、そのリングID=#31をクライアントパケットのペイロードの直前に挿入し(ステップS4、図17(a)参照。)、1つのリングIDシムヘッダが付与されたクライアントパケットを生成し、パケット変換回路3011へ出力する(ステップS5)。
ここでは、クライアント装置Aから受信したクライアントパケットをカプセル化してブロードキャスト送信する場合を例にして説明する。基本ノード3c’は、リングID=#3が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード3a’に到達する。インタリンクノード3a’は、受信したRPRパケットをCopyし、通常RPRパケット受信処理によりデカプセル化し、リングID=#31が付与されたクライアントパケットをトリビュタリポートから出力する。このとき、インタリンクノード3a’ のリングID PUSH/POP回路3027は、図17(b)に示す動作を行う。ここではクライアントパケットに付与されているリングIDは1個なので、リングIDをPUSH/POPせずにそのままトリビュタリポートへ送出する(ステップS14からステップS18に移行)。インタリンクノード3cのトリビュタリポートは、このクライアントパケットをインタリンクを介して受信する。
インタリンクノード3cのリングID PUSH/POP回路3027は、図17(a)に示す動作により、リングIDシムヘッダをPUSHする。本例では、トリビュタリポート(インタリンク)から入力されたクライアントパケットにリングIDシムヘッダ(#31)が既に付与されているので(ステップS2のY)、リングID PUSH/POP回路3027は、パケットリング情報テーブルを参照して、自ノードが接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS71)。本例では、自ノード(インタリンクノード3c)の接続先は下位層リングであるので、既に付与されているリングIDシムヘッダとペイロードとの間に自リングのリングID=#3のリングIDシムヘッダをPUSHする(ステップS76)。また、リングID PUSH/POP回路3027は、クライアントパケットに学習リングID識別子“D”を付与する(ステップS77)。すなわち、#3および#31の2つのリングIDシムヘッダと“D”が付与されたクライアントパケットを生成し、パケット変換回路3011へ出力する。
インタリンクノード3cは、リングID=#31および#3が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード3aに到達する。インタリンクノード3aは、受信したRPRパケットをCopyし、通常RPRパケット受信処理によりデカプセル化し、そのクライアントパケットをトリビュタリポートから出力する。このとき、インタリンクノード3aのリングID PUSH/POP回路3027は、図17(b)に示す動作によりリングIDを削除する。ここでは、クライアントパケットに付与されているリングIDは2個なので、インタリンクノード3aのリングID PUSH/POP回路3027は、自ノードのパケットリング情報テーブルを参照して、自ノードの接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS15)。自インタリンクノード3aの接続先リングが上位層リングであるので(すなわち第3のリングにとって第1のリングがハブリングであるという関係であるので)、クライアントパケットのペイロードに近接している一方のリングIDシムヘッダ(#3)は保持し、他方のリングIDシムヘッダ(#31)と学習リングID識別子をPOPした後、トリビュタリポートへ送出する(ステップS16,S18)。インタリンクノード1bのトリビュタリポートは、このクライアントパケットを受信する。
このクライアントパケットには1つのリングIDシムヘッダ(#3)が付与されているので(ステップS2のY)、インタリンクノード1bのリングID PUSH/POP回路3027は、パケットリング情報テーブルを参照して、自ノードが接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS71)。ここでは、自ノード(インタリンクノード1b)の接続先は下位層リングである。よって、リングID PUSH/POP回路3027は、既に挿入されているリングIDシムヘッダとペイロードとの間に自リングIDを挿入する(ステップS76)。また、リングID PUSH/POP回路3027は、クライアントパケットに学習リングID識別子“D”を付与する(ステップS77)。インタリンクノード1bは、リングID=#3および#1と“D”が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード1aに到達する。インタリンクノード1aは、受信したRPRパケットをCopyし、通常のRPRパケット受信処理によりデカプセル化し、そのクライアントパケットをトリビュタリポートから出力する。このとき、インタリンクノード1aのリングID PUSH/POP回路3027は、図17(b)に示す動作によりリングIDを削除する。ここでは、クライアントパケットに付与されているリングIDは2個なので、インタリンクノード1aのリングID PUSH/POP回路3027は、自ノードのパケットリング情報テーブルを参照して、自ノードの接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS15)。インタリンクノード1aの接続先が下位層リングであるので(すなわち第1のリングがハブリングであり第2のリングがサブリングであるという関係であるので)、ペイロードに近接している一方のリングID=#1をPOPし、他方のリングID(#3)は保持した状態のままとする(ステップS17)。このとき学習リングID識別子も削除する。そして、インタリンクノード1aは、そのクライアントパケットをトリビュタリポートへ送出する(ステップS18)。インタリンクノード2aのトリビュタリポートは、このクライアントパケットをインタリンクを介して受信する。
インタリンクノード2aのリングID PUSH/POP回路3027は、図17(a)に示す動作により、リングIDシムヘッダを挿入する。本例では、トリビュタリポート(インタリンク)から受信したクライアントパケットにリングID=#3のシムヘッダが既に付与されているので(ステップS2のY)、インタリンクノード2aのリングID PUSH/POP回路3027は、パケットリング情報テーブルを参照して、自ノードが接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS71)。ここでは、自ノード(インタリンクノード2a)の接続先は上位層リングである。よって、リングID PUSH/POP回路3027は、既に挿入されているリングIDシムヘッダのペイロードとは反対側に自リングID(#2)を挿入する(ステップS73)。また、リングID PUSH/POP回路3027は、クライアントパケットに学習リングID識別子“U”を付与する(ステップS74)。インタリンクノード2aは、2つのリングID(#2,#3)と“U”が付与されたクライアントパケットを通常のRPRパケット送信処理によりRPRカプセル化してフラッディングする。このRPRパケットはインタリンクノード2cに到達する。
インタリンクノード2cのリングID PUSH/POP回路3027は、図17(b)に示す動作によりリングIDを削除する。ここでは、クライアントパケットに付与されているリングIDは2個なので、インタリンクノード2cのリングID PUSH/POP回路3027は、自ノードのパケットリング情報テーブルを参照して、自ノードの接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS15)。自ノード(インタリンクノード2c)の接続先リングは下位層リングであるので、リングID PUSH/POP回路3027は、ペイロード側のリングID(#3)を削除して、ペイロードに近接していない方のリングID(#2)を保持したままとする(ステップS17)。このとき、学習リングID識別子も削除する。インタリンクノード2cは、このクライアントパケットをインタリンクを介して第4のリングのインタリンクノード2a’に送信する。
インタリンクノード2a’のリングID PUSH/POP回路3027は、図17(a)に示す動作により、リングIDシムヘッダを挿入する。本例では、受信したクライアントパケットにリングID(#2)が付与されている(ステップS2のY)。よって、インタリンクノード2a’のリングID PUSH/POP回路3027は、パケットリング情報テーブルを参照して、自ノードが接続されている接続先リングが上位層リングであるか下位層リングであるのかを判定する(ステップS71)。自ノード(インタリンクノード2a’)の接続先リングは上位層リングであるので、リングID PUSH/POP回路3027は、既に付与されているリングID(#2)のペイロードとは反対側に自リングID(#21)を付与する(ステップS73)。さらに、リングID PUSH/POP回路3027は、学習リング識別子“U”を付与する。インタリンクノード2a’は、このクライアントパケットをカプセル化してフラッディングする。
フラッディングされたRPRパケットは基本ノード2c’に到達する。基本ノード2c’は、通常のRPRパケット受信処理によりRPRパケットをデカプセル化する。また、図18に示す処理によってFDB学習を行う。基本ノード2c’のパケット変換回路3011は、RPRパケットを受信すると、学習リングID識別子が付与されているか否かを判定し、付与されている場合にはその種別(“U”か“D”か)を判定する(ステップS82)。本例では、リングID“U”が付与されているので、基本ノード2c’のパケット変換回路3011は、受信したRPRパケットのRPR MAC SAと、デカプセル化されるクライアントパケットのMAC SAと、ペイロードに近接して挿入されているリングID(#2)とを対応付けて、アドレステーブル記憶部3010に記憶させる。
また、基本ノード2c’のリングID PUSH/POP回路3027は、図17(b)に示す動作により、リングIDを削除する。基本ノード2c’のリングID PUSH/POP回路3027は、自ノードがインタリンクノードではないので、ステップS13の処理を行う。すなわち、クライアントパケットに付与されている全てのリングIDシムヘッダを削除する。本実施形態では、ステップS13において、学習リングID識別子も削除する。基本ノード2c’は、そのクライアントパケットをクライアント装置Bに送信する。
以上の動作により、クライアント装置A、基本ノード3c’より送信され、クライアント装置B、基本ノード2c’で受信されるクライアントパケットについて、受信側基本ノード2c’において、RPRパケットの送信元アドレス(RPR MAC SA)、クライアントパケット送信元アドレス(MAC SA)およびクライアントパケットの送信元リングID=#2を学習する。
なお、第4のリングの基本ノードにとっては、クライアントパケットの送信元リングはインタリンク接続されている第2のリングもしくはバイパス経路接続されている第5のリング(図15では図示略)であり、上記の動作例で送信元リングIDは、第7のリングID(#31)ではない。
以上の説明では、基本ノード2c’を例にして、RPRパケットの送信元アドレスとクライアントパケットの送信元アドレスとリングIDとを対応付けてアドレステーブル記憶部3010に記憶させる場合を例にしたが、各パケットリング内の各ノードもそれぞれ、図18に示す処理により、FDB学習を行う。例えば、図19に例示する基本ノード3dは、2個のリングID(#31,#3)と学習リングID識別子“D”とが付与されたクライアントパケットを格納したRPRパケットを受信する。この場合、学習リングID識別子“D”が付与されているので、ステップS81,S82,S85,S87の順に処理を行い、基本ノード3dのパケット変換回路3011は、RPRパケットの送信元アドレスと、クライアントパケット送信元アドレスと、2個のリングIDのうちペイロードに近接していない方のリングID(#31)とを対応付けてアドレステーブル記憶部3010に記憶させる。
また、上記の例では、第7のリング内の各ノードは、学習リングID識別子が付与されていないクライアントパケットを格納したRPRパケットを受信する。従って、ステップS81,S82,S84の順に処理を行い、RPRパケットの送信元アドレスと、クライアントパケット送信元アドレスと、自リングIDとを対応付けてアドレステーブル記憶部3010に記憶させる。
上記の説明ではRRPパケットおよびクライアントパケットについてブロードキャスト転送を例に説明したが、ユニキャスト転送でRPRパケットの送信元、クライアントパケットの送信元、およびリングIDを学習する動作も同様である。また、Unknownユニキャストパケットを受信して学習を行う場合の動作も同様である。
また、上記の第3の実施形態では、クライアントパケットに学習リングID識別子を付与している。これは、ステップS86,S87で、クライアントパケットに付与された2個のリングIDのうち自リングIDでない方のリングIDを、アドレステーブル記憶部3010に記憶させるリングIDとして定められるようにするためである。第3の実施形態において、パケット変換回路3011は、パケットリング情報テーブル内の自リングIDを参照し、クライアントパケットに付与された2個のリングIDのうち自リングIDと一致していない方のリングIDをRPR MAC SAおよびMAC SAと対応付けてアドレステーブル記憶部3010に記憶させてもよい。この場合、予め記憶している自リングIDを参照して、学習するリングIDを定めるので、学習リングID識別子を付与しなくてもよい。すなわち、ステップS74,S77(図14(a)参照)を行わなくてもよい。
第3の実施形態においても、ハブリングとなるリングに対して、図14や図15に例示する態様でサブリングが接続されていてもよい。
第3の実施の形態では、図19に例示するように、あるサブリング(第2のリングや第3のリング)がハブリングとなり、そのハブリングに対してさらにサブリング(第4のリングないし第7のリング)が接続される構成を例にして説明した。第3の実施の形態の動作は、図1に示すように、ハブリングに対してサブリングが接続され、そのサブリングが他のリングのハブリングとならない構成においても適用可能である。
上記の各実施形態では、本発明の各種ノードが、RPR基本ノード部3019等の各種処理部を備える構成として説明した。インタリンクノードは、記憶装置を備えたコンピュータによって実現され、そのコンピュータが記憶装置に記憶されたインタリンクノード用プログラムに従って、RPR基本ノード部3019、孤立リング判定回路3020、孤立リング通知パケット生成回路3022、孤立リング通知パケット送信回路3023、孤立リング通知パケット受信回路3024、無効化FDBエントリ判定回路3025、インタリンク障害検出回路3026、リングID PUSH/POP回路3027としての動作を行う構成であってもよい。。
同様に、インタリンク以外のノード(基本ノードおよびバイパス経路ロード)は、記憶装置を備えたコンピュータによって実現され、そのコンピュータが記憶装置に記憶されたノード用プログラムに従って、RPR基本ノード部3019、孤立リング通知パケット受信回路4024、無効化FDBエントリ判定回路4025、リングID PUSH/POP回路3027としての動作を行う構成であってもよい。
次に、本発明の概要を説明する。図20は、本発明の概要(特にノードの構成の概要)を示す説明図である。本発明のパケットリングネットワークシステムは、ノードがリング状に接続されたパケットリングネットワークを複数有し、パケットリングネットワーク外の端末が送信したクライアントパケットをカプセル化したリング内パケットをパケットリングネットワーク内で送受信する。
そして、パケットリングネットワークシステムは、パケットリングネットワーク間のクライアントパケット転送に用いられるパケット転送経路であるインタリンクを介して複数のパケットリングネットワークと接続され、その複数のパケットリングネットワークうち少なくとも一組が、インタリンク障害発生時にクライアントパケット転送に用いられるパケット転送経路であるバイパス経路を介して接続された状態となっているハブリング(例えば図1に例示する第1のリング)を有する。
また、パケットリングネットワークシステムは、インタリンクを介してハブリングに接続されるパケットリングネットワークであって、ハブリングにインタリンクを介して接続されている他のパケットリングネットワークにバイパス経路を介して接続されるパケットリングネットワークであるサブリングを複数有する。例えば、図1に示す例では、第2のリングおよび第3のリングを有する。
ハブリングおよび各サブリングは、インタリンクに接続されるノードであるインタリンクノードを備える。
図20に示すように、各パケットリングネットワーク内の各ノード4030,3030は、パケットリング情報テーブル記憶手段91と、アドレステーブル記憶手段92と、自リングID挿入手段93と、学習手段95とを備える。また、各ノードのうち、インタリンクノード303は、リングID削除手段94を備える。
パケットリング情報テーブル記憶手段91は、自ノードが属するパケットリングネットワークのIDである自リングIDと、自ノードが属するパケットリング内のインタリンクノードのアドレスと、そのインタリンクノードに接続されるパケットリングネットワークのIDである接続先リングIDと、そのインタリンクノードに接続されるパケットリングネットワークが自ノードから見てサブリングに該当するかハブリングに該当するかを示す情報とを含み、自ノードが属するパケットリングネットワークがバイパス経路を介して他のパケットリングネットワークに接続される場合には他のパケットリングネットワークのIDであるバイパス経路接続先リングIDをさらに含む情報であるパケットリング情報テーブルを記憶する。
アドレステーブル記憶手段92は、パケットリングネットワーク内のノードのアドレスと、端末のアドレスと、パケットリングネットワークのIDとを対応付けたフォワーディングデータベースを記憶する。
自リングID挿入手段93は、自ノードがクライアントパケットを受信した場合に、そのクライアントパケットに自リングIDを挿入する。
学習手段95は、クライアントパケットをカプセル化したリング内パケットを受信したときに、自ノードが属するパケットリングネットワークと当該パケットリングネットワークに対してインタリンクを介して前記クライアントパケットを送信したパケットリングネットワークとを含むハブリングおよびサブリングの組み合わせに属するパケットリングネットワークの中で最初にそのクライアントパケットを他のパケットリングネットワークに送信したパケットリングネットワークのリングIDと、そのリング内パケットの送信元アドレスと、そのクライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させる。
インタリンクノードのリングID削除手段94は、自ノードが属するパケットリングネットワーク内のノードから受信したリング内パケットからデカプセル化したクライアントパケットをインタリンクを介して送信するときに、そのクライアントパケットに挿入されているリングIDから、自ノードが属するパケットリングネットワークおよび自ノードと前記インタリンクを介して接続されるパケットリングネットワークを含むハブリングおよびサブリングの組み合わせに属するパケットリングネットワークの中で最初にそのクライアントパケットを他のパケットリングネットワークに送信したパケットリングネットワークのリングID以外のリングIDを削除する。
以上のような構成によって、フォワーディングデータベースのエントリをリングIDとともに管理することができる。その結果、リングID毎に(パケットリングネットワーク毎に)フォワーディングデータベースのエントリを削除できる。すなわち、インタリンク障害が発生した場合に、フォワーディングデータベース全体を削除する必要はなく、リングIDを指定してそのリングIDに応じたエントリのみを削除することが可能となる。よって、フォワーディングデータベースの再学習量が少なくなり、インタリンク障害発生時のフラッディング発生を減少させ、また、インタリンク障害時のFDB再学習時間を短縮することが可能となる。
また、本発明の実施形態では、各パケットリングネットワーク内の各インタリンクノードが、自ノードが接続されているインタリンクの障害を検出する障害検出手段と、障害検出手段が障害を検出したときに、パケットリング情報テーブルを参照し、インタリンクを介して自ノードに接続されるパケットリングネットワークが自ノードから見てハブリングである場合には、自ノードIDを、インタリング障害の発生によりハブリングとインタリンクを介してパケット送受信を行えない孤立リングのIDとし、インタリンクを介して自ノードに接続されるパケットリングネットワークが自ノードから見てサブリングである場合には、自ノードに接続されるパケットリングネットワークのIDである接続先リングIDを孤立リングIDとして定める孤立リングID判定手段と、孤立リングIDを含む孤立リングID通知パケットをブロードキャスト送信する孤立リングID通知手段と、孤立リングID判定手段によって孤立リングIDが定められた場合または孤立リングIDを含む孤立リングID通知パケットを受信した場合に、孤立リングIDが自リングIDと一致するならば、アドレステーブル記憶手段からハブリングのリングIDまたはバイパス経路接続先リングIDに対応するエントリを無効化し、孤立リングIDが自リングIDと一致していないならば、アドレステーブル記憶手段から孤立リングIDに対応するエントリを無効化するインタリンクノード内無効化手段とを備え、各パケットリングネットワーク内のインタリンクノード以外の各ノードが、孤立リングID通知パケットを受信した場合に、孤立リングIDが自リングIDと一致するならば、アドレステーブル記憶手段からハブリングのリングIDまたはバイパス経路接続先リングIDに対応するエントリを無効化し、孤立リングIDが自リングIDと一致していないならば、アドレステーブル記憶手段から孤立リングIDに対応するエントリを無効化する無効化手段を備える構成が開示されている。
また、本発明の実施形態(第1の実施形態)では、パケットリングネットワークとして1つのハブリングと当該ハブリングに接続される複数のサブリングのみを含み、各インタリンクノードのリングID削除手段が、クライアントパケットに2つのリングIDが挿入されている場合、後から挿入された方のリングIDを削除し、クライアントパケットにリングIDが1つだけ挿入されている場合、当該リングIDをそのまま保持させ、各ノードの学習手段が、クライアントパケットをカプセル化したリング内パケットを受信したときに、前記クライアントパケットに2つのリングIDが挿入されている場合、当該2つのリングIDのうち自リングIDでない方のリングIDと、前記リング内パケットの送信元アドレスと、前記クライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させ、前記クライアントパケットに自リングIDのみが挿入されている場合、当該自リングIDと、前記リング内パケットの送信元アドレスと、前記クライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させる構成が開示されている。
また、本発明の実施形態(第2の実施形態)では、パケットリングネットワークとして1つのハブリングと当該ハブリングに接続される複数のサブリングのみを含み、各ノードの自リングID挿入手段が、受信したクライアントパケットにリングIDが挿入されていない場合のみ、当該クライアントパケットに自リングIDを前記クライアントパケットに挿入し、各ノードの学習手段が、クライアントパケットをカプセル化したリング内パケットを受信したときに、前記クライアントパケットに挿入されているリングIDと、前記リング内パケットの送信元アドレスと、前記クライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させる構成が開示されている。
また、本発明の実施形態(第3の実施形態)では、各ノードの自リングID挿入手段が、受信したクライアントパケットにリングIDが挿入されていない場合、ペイロードの直前に自リングIDを挿入し、受信したクライアントパケットのペイロードの直前にリングIDが付与されている場合、自ノードに接続されるパケットリングネットワークが自ノードから見てハブリングに該当するときに、既に挿入されているリングIDの直前に自リングIDを挿入し、自ノードに接続されるパケットリングネットワークが自ノードから見てサブリングに該当するときに、ペイロードの直前に自リングIDを挿入し、各インタリンクノードのリングID削除手段が、クライアントパケットに2個のリングIDが挿入されている場合、自ノードに接続されるパケットリングネットワークが自ノードから見てハブリングに該当するときに、ペイロードに近接していない方のリングIDを削除し、自ノードに接続されるパケットリングネットワークが自ノードから見てサブリングに該当するときに、ペイロードに近接している方のリングIDを削除し、クライアントパケットに挿入されているリングIDが1つである場合、当該リングIDをそのまま保持させ、各ノードの学習手段が、クライアントパケットをカプセル化したリング内パケットを受信したときに、前記クライアントパケットに2つのリングIDが挿入されている場合、当該2つのリングIDのうち自リングIDでない方のリングIDと、前記リング内パケットの送信元アドレスと、前記クライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させ、前記クライアントパケットに自リングIDのみが挿入されている場合、当該自リングIDと、前記リング内パケットの送信元アドレスと、前記クライアントパケットの送信元アドレスとを対応付けてアドレステーブル記憶手段に記憶させる構成が開示されている。