以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
《中継システムの概略構成およびユーザフレーム中継動作》
図1は、本発明の実施の形態1による中継システムにおいて、その構成例およびユーザフレームの中継動作の一例を示す概略図である。図1に示す中継システムは、リングネットワークを構成する複数(ここでは6個)のスイッチ装置SW1〜SW6を備える。複数のスイッチ装置のそれぞれは、ノードとも呼ばれる。図1の例では、複数のスイッチ装置は、ITU−T G.8032に規定されたリングプロトコル(ERP(Ethernet(登録商標) Ring Protection)とも呼ばれる)に基づき、2個のメジャーリング(リングネットワーク)10,11を構成している。
ここでは、メジャーリング10は、スイッチ装置SW1→SW2→SW3→SW4からなる閉路で形成される。メジャーリング11は、スイッチ装置SW1→SW6→SW5→SW2からなる閉路で形成される。スイッチ装置SW1,SW2のそれぞれは、3個のリングポートPr[1]〜Pr[3]を備え、スイッチ装置SW3〜SW6のそれぞれは、2個のリングポートPr[1],Pr[2]を備える。
スイッチ装置SW1,SW2,SW3,SW4のリングポートPr[2]は、それぞれ、通信回線(例えばイーサネット(登録商標)回線)を介してスイッチ装置SW2,SW3,SW4,SW1のリングポートPr[1]に接続される。スイッチ装置SW1,SW2のリングポートPr[3]は、それぞれ、通信回線を介してスイッチ装置SW6,SW5のリングポートPr[1]に接続される。また、スイッチ装置SW5のリングポートPr[2]は、通信回線を介してスイッチ装置SW6のリングポートPr[2]に接続される。
この場合、スイッチ装置SW1のリングポートPr[1]と、スイッチ装置SW2のリングポートPr[2]と、スイッチ装置SW3,SW4のリングポートPr[1],Pr[2]は、メジャーリング10に接続される。スイッチ装置SW1,SW2のリングポートPr[3]と、スイッチ装置SW5,SW6のリングポートPr[1],Pr[2]は、メジャーリング11に接続される。一方、スイッチ装置SW1のリングポートPr[2]とスイッチ装置SW2のリングポートPr[1]は、2個のメジャーリング10,11に共通に接続される。このスイッチ装置SW1とスイッチ装置SW2との間のリンクは、共有リンクと呼ばれる場合がある。
メジャーリング10では、ITU−T G.8032に基づき、スイッチ装置SW1は、オーナーノードに設定され、スイッチ装置SW4は、ネイバーノードに設定される。オーナーノードとネイバーノードとの間のリンクは、RPL(Ring Protection Link)と呼ばれる。本明細書では、当該メジャーリング10上のRPLをRPL1と呼ぶ。メジャーリング10に障害が無い場合、スイッチ装置SW1は、RPL1の一端に位置するリングポートPr[1]を閉塞状態BKに制御し、スイッチ装置SW4は、RPL1の他端に位置するリングポートPr[2]を閉塞状態BKに制御する。閉塞状態BKに制御されたリングポートは、フレームの通過を禁止する。
同様に、メジャーリング11では、スイッチ装置SW1は、オーナーノードに設定され、スイッチ装置SW6は、ネイバーノードに設定され、その間のリンクにRPLが設定される。本明細書では、当該メジャーリング11上のRPLをRPL2と呼ぶ。メジャーリング11に障害が無い場合、スイッチ装置SW1は、RPL2の一端に位置するリングポートPr[3]を閉塞状態BKに制御し、スイッチ装置SW6は、RPL2の他端に位置するリングポートPr[1]を閉塞状態BKに制御する。
なお、RPL1,RPL2の位置は、図1の例に限らない。RPL1は、メジャーリング10を構成するいずれかのリンクに定められればよく、RPL2は、メジャーリング11を構成するいずれかのリンクに定められればよい。また、メジャーリング10を構成するスイッチ装置の数は、4個に限らず2個以上であればよく、メジャーリング11を構成するスイッチ装置の数も、4個に限らず2個以上であればよい。
また、図1の例では、スイッチ装置SW1は、ユーザポートPu[1]〜Pu[4]を備え、スイッチ装置SW3,SW5のそれぞれは、ユーザポートPu[1],Pu[2]を備える。スイッチ装置SW1のユーザポートPu[1],Pu[2],Pu[3],Pu[4]には、それぞれ、ユーザ端末TM1a,TM1b,TM1c,TM1dが接続される。スイッチ装置SW3のユーザポートPu[1],Pu[2]には、それぞれ、ユーザ端末TM3a,TM3bが接続され、スイッチ装置SW5のユーザポートPu[1],Pu[2]には、それぞれ、ユーザ端末TM5c,TM5dが接続される。
ユーザ端末TM1a,TM1b,TM1c,TM1dのMACアドレスは、それぞれ、CA1a,CA1b,CA1c,CA1dである。ユーザ端末TM3a,TM3bのMACアドレスは、それぞれ、CA3a,CA3bであり、ユーザ端末TM5c,TM5dのMACアドレスは、それぞれ、CA5c,CA5dである。特に限定はされないが、ユーザ端末TM1a,TM3aは、会社Aに設けられ、ユーザ端末TM1b,TM3bは、会社Bに設けられ、ユーザ端末TM1c,TM5cは、会社Cに設けられ、ユーザ端末TM1d,TM5dは、会社Dに設けられる。
この場合、例えば、会社Aには、VLAN識別子(以降、VIDと呼ぶ)=1が割り当てられ、会社Bには、VID=2が割り当てられる。会社Aでは、VID=1を用いてメジャーリング10での通信が行われ、会社Bでは、VID=2を用いて同じくメジャーリング10での通信が行われる。また、会社Cには、VID=3が割り当てられ、会社Dには、VID=4が割り当てられる。会社Cでは、VID=3を用いてメジャーリング11での通信が行われ、会社Dでは、VID=4を用いて同じくメジャーリング11での通信が行われる。
その一例として、図1では、ユーザ端末TM1aは、ユーザ端末TM3aに向けて、送信元MACアドレスSA=CA1a、宛先MACアドレスDA=CA3a、VID=1であるユーザフレームUF13aを送信している。当該ユーザフレームUF13aは、スイッチ装置SW1→SW2→SW3の経路で転送される。同様に、ユーザ端末TM1bは、ユーザ端末TM3bに向けて、(SA,DA,VID)=(CA1b,CA3b,2)であるユーザフレームUF13bを送信している。当該ユーザフレームUF13bは、スイッチ装置SW1→SW2→SW3の経路で転送される。
また、ユーザ端末TM1cは、ユーザ端末TM5cに向けて、(SA,DA,VID)=(CA1c,CA5c,3)であるユーザフレームUF15cを送信している。当該ユーザフレームUF15cは、スイッチ装置SW1→SW2→SW5の経路で転送される。同様に、ユーザ端末TM1dは、ユーザ端末TM5dに向けて、(SA,DA,VID)=(CA1d,CA5d,4)であるユーザフレームUF15dを送信している。当該ユーザフレームUF15dは、スイッチ装置SW1→SW2→SW5の経路で転送される。
《中継システムのリングプロトコル動作(障害無し時)》
図2(a)および図2(b)は、図1の中継システムにおいて、障害無し時のリングプロトコル動作の一例を示す説明図である。ITU−T G.8032では、リングネットワークを制御するための制御フレームとして、R−APSフレームが用いられる。メジャーリング10,11を設けた場合、各リングで個別にR−APSフレームの通信が行われる。この際には、制御用VIDは、例えば、R−APSフレーム毎にそれぞれ異なる値に定められ、ユーザフレーム用のVIDとも異なる値に定められる。図2(a)および図2(b)の例では、メジャーリング10で用いる制御用VIDは「10」であり、メジャーリング11で用いる制御用VIDは「11」である。
障害無し時には、図2(a)に示すように、メジャーリング10において、オーナーノードであるスイッチ装置SW1は、R−APS(NR,RB)フレームCF1を、メジャーリング10に属するリングポートPr[1],Pr[2]から定期的に送信する。NRは、要求無し(No Request)を表し、RBは、RPL1の閉塞(RPL Blocked)を表す。R−APSフレームは、例えば、新規に送信される場合には、3.3ms毎に3回送信され、その後は5s毎に送信される。
スイッチ装置SW1のリングポートPr[1]から送信されたR−APS(NR,RB)フレームCF1は、スイッチ装置SW4における閉塞状態BKのリングポートPr[2]で遮断される。一方、スイッチ装置SW1のリングポートPr[2]から送信されたR−APS(NR,RB)フレームCF1は、スイッチ装置SW2→SW3→SW4の経路で転送される。そして、スイッチ装置SW4は、当該R−APS(NR,RB)フレームCF1をリングポートPr[1]で受信したのち、当該フレームを、閉塞状態BKのリングポートPr[2]で遮断する。
同様に、障害無し時には、図2(b)に示すように、メジャーリング11において、オーナーノードであるスイッチ装置SW1は、R−APS(NR,RB)フレームCF2を、メジャーリング11に属するリングポートPr[2],Pr[3]から定期的に送信する。リングポートPr[3]から送信されたR−APS(NR,RB)フレームCF2は、スイッチ装置SW6における閉塞状態BKのリングポートPr[1]で遮断される。一方、リングポートPr[2]から送信されたR−APS(NR,RB)フレームCF2は、スイッチ装置SW2→SW5→SW6の経路で転送され、スイッチ装置SW6における閉塞状態BKのリングポートPr[1]で遮断される。
《中継システムのリングプロトコル動作(障害発生時)》
図3は、図1の中継システムにおいて、障害発生時のリングプロトコル動作の一例を示す説明図である。図3には、メジャーリング10において、スイッチ装置SW2とスイッチ装置SW3との間のリンクに障害が発生した場合(ステップS101)の概略動作例が示される。メジャーリング10上の各スイッチ装置は、イーサネットOAM(Operations Administration and Maintenance)のCC(Continuity Check)機能を用いて自装置のリングポート(当該リングポートに接続されるリンクを含む)の障害有無を監視する。
具体的には、リンクを挟んで隣接する2個のリングポート間を監視区間として、その両端にMEP(Maintenance End Point)と呼ばれる監視ポイントが配置され、MEP間でCCM(Continuity Check Message)と呼ばれる疎通性監視フレームを互いに定期的に送受信することで、監視区間の疎通性が監視される。図3では、代表例として、スイッチ装置SW2のリングポートPr[2]に配置されるMEP(MEPaとする)と、スイッチ装置SW3のリングポートPr[1]に配置されるMEP(MEPbとする)との間で、CCMが互いに定期的に送受信される。
図3に示す障害が発生した場合(ステップS101)、MEPa,MEPbの一方は、他方からのCCMを所定の期間受信できないか、あるいは、CCMを所定の期間受信できなかったことを他方から通知され、このいずれかによって障害発生を検出する。スイッチ装置SW2は、このようにしてMEPaが障害発生を検出した場合、リングポートPr[2]を閉塞状態BKに制御する(ステップS102)。加えて、スイッチ装置SW2は、リングポートPr[1]からR−APS(SF)フレームCF4を送信すると共に、FDBフラッシュを実行する(ステップS103)。SFは、信号故障(Signal Fail)を表し、R−APS(SF)フレームは、障害通知フレームとして機能する。
同様に、スイッチ装置SW3は、MEPbが障害発生を検出した場合、リングポートPr[1]を閉塞状態BKに制御する(ステップS102)。スイッチ装置SW3は、リングポートPr[2]からR−APS(SF)フレームCF3を送信すると共に、FDBフラッシュを実行する(ステップS103)。
一方、オーナーノードであるスイッチ装置SW1は、リングポートPr[2]でR−APS(SF)フレームCF4を受信する。これに応じて、スイッチ装置SW1は、RPL1の一端となるリングポートPr[1]を開放状態に制御すると共に(ステップS104)、FDBフラッシュを実行する(ステップS105)。同様に、ネイバーノードであるスイッチ装置SW4は、リングポートPr[1]でR−APS(SF)フレームCF3を受信し、RPL1の他端となるリングポートPr[2]を開放状態に制御すると共に(ステップS104)、FDBフラッシュを実行する(ステップS105)。開放状態に制御されたリングポートは、フレームの通過を許可する。
その後、スイッチ装置SW2が、2回目のR−APS(SF)フレームCF4をリングポートPr[1]から送信すると、当該フレームは、スイッチ装置SW1→SW4→SW3の経路で転送され、スイッチ装置SW3における閉塞状態BKのリングポートPr[1]で遮断される。同様に、スイッチ装置SW3が、2回目のR−APS(SF)フレームCF3をリングポートPr[2]から送信すると、当該フレームは、スイッチ装置SW4→SW1→SW2の経路で転送され、スイッチ装置SW2における閉塞状態BKのリングポートPr[2]で遮断される。
このように、メジャーリング10で障害が発生した場合、メジャーリング10では、閉塞状態BKのリングポートの切り換えやFDBフラッシュ等が実行される。一方、メジャーリング11では、このようなメジャーリング10の障害による影響は生じず、閉塞状態BKのリングポート(RPL2)の切り換えやFDBフラッシュ等は実行されない。図示は省略するが、メジャーリング11で障害が発生した場合も同様である。すなわち、この場合、メジャーリング11では、閉塞状態BKのリングポートの切り換えやFDBフラッシュ等が実行され、メジャーリング10では、特に何も実行されない。
《中継システムの問題点の一例》
図17は、図1の中継システムにおいて、FDBフラッシュ時の問題点の一例を示す説明図である。図17には、例えば、図1のスイッチ装置SW1が備える一般的なFDBの構成例が示されている。当該FDBは、MACアドレスと、VIDと、ポート識別子(ID)との対応関係を含むエントリを単数または複数保持する。例えば、あるエントリは、MACアドレスCA1aと、VID=1と、ユーザポートPu[1]のポート識別子{Pu[1]}との対応関係を保持する。このように、本明細書では、例えば{AA}は「AA」の識別子(ID)を表すものとする。
また、他のエントリは、MACアドレスCA3aと、VID=1と、リングポートPr[2]のポート識別子{Pr[2]}との対応関係を保持し、さらに他のエントリは、MACアドレスCA5dと、VID=4と、ポート識別子{Pr[2]}との対応関係を保持する。ここで、図3に示したように、メジャーリング10で障害が発生した場合、スイッチ装置SW1は、FDBフラッシュを実行する(ステップS105)。この際に、スイッチ装置SW1は、通常、リングポート(ここではPr[1],Pr[2])の単位でFDBフラッシュを実行する。
その結果、図17のFDBの例では、リングポートPr[2]のポート識別子{Pr[2]}を含む4個のエントリがフラッシュされる。その結果、例えば、MACアドレスCA3aは、FDBフラッシュ後のユーザフレームの中継(具体的にはフラッディングによる中継)を経て、FDBフラッシュ前のポート識別子{Pr[2]}とは異なり、ポート識別子{Pr[1]}に対応付けて所定のエントリに学習されることになる。
しかし、当該フラッシュされた4個のエントリの内、MACアドレスCA5c,CA5dをそれぞれ含む2個のエントリは、メジャーリング11がメジャーリング10の障害に影響されないため、本来、FDBフラッシュの対象である必要はない。例えば、MACアドレスCA5c,CA5dは、FDBフラッシュ後のフラッディングによる中継を経て、FDBフラッシュ前のポート識別子{Pr[2]}と同じ、ポート識別子{Pr[2]}に対応付けて所定のエントリに学習されることになる。このように、本来不要なFDBフラッシュが実行されると、フラッディングの発生頻度が高まり、通信の輻輳等が生じる恐れがある。
なお、ここでは、図1のスイッチ装置SW1を例としたが、例えばスイッチ装置SW2でも同様の問題が生じ得る。また、ここでは、メジャーリング10で障害が発生した場合を例としたが、メジャーリング11で障害が発生した場合も同様の問題が生じ得る。さらに、障害発生時に限らず、障害回復時にも同様の問題が生じ得る。障害回復時には、詳細な説明は省略するが、R−APS(NR)フレームを用いて障害回復が通知され、R−APS(NR)フレームを受信したオーナーノードがR−APS(NR,RB)フレームを送信することで、図1に示したような状態に復旧する。この復旧過程で、各スイッチ装置は、FDBフラッシュを適宜実行する。
《スイッチ装置の概略構成》
図4は、図1の中継システムにおいて、スイッチ装置の主要部の概略構成例を示すブロック図である。図5(a)および図5(b)は、図4のスイッチ装置において、FDBの構成例を示す概略図である。図6(a)および図6(b)は、図4のスイッチ装置において、インスタンス管理テーブルの構成例を示す概略図である。図4に示すスイッチ装置SWは、複数のポートと、各種処理部および各種テーブルと、を有する。複数のポートの中には、リングネットワークに接続されるリングポートPr[1],Pr[2]と、ユーザ網(ユーザ端末等)に接続されるユーザポートPu[1],…とが含まれる。以下、各種処理部および各種テーブルに関して説明する。
インタフェース部20は、受信ポート識別子付加部25と、フレーム判別部26と、VIDフィルタ27と、OAM処理部28とを備え、主に、複数のポートとの間でフレームの送信および受信を行う。受信ポート識別子付加部25は、複数のポートのいずれかでフレームを受信した場合に、その受信ポートを表す受信ポート識別子を当該フレームに付加する。フレーム判別部26は、例えば、受信したフレームがユーザフレームのフォーマットであるか、R−APSフレームのフォーマットであるかといったように、フレームのフォーマットを判別する。
VIDフィルタ27は、設定された条件に基づいて、フレームの通過可否を制御する。例えば、条件として、所定のVIDを持つフレームを所定のポートで受信した場合に、当該フレームを破棄する等の設定が行われ、VIDフィルタ27は、当該条件に基づく処理を行う。リングポートの閉塞状態BKは、VIDフィルタ27によって構築される。OAM処理部28は、図3に示したようなMEPを備え、予め設定されたポートでCCMの送受信を行うことで障害有無を監視する。
インタフェース部20は、フレーム判別部26の判別結果に基づき、受信したフレームがユーザフレームの場合には、当該フレームを中継処理部21へ送信し、R−APSフレームの場合には、当該フレームをERP制御部22へ送信する。また、インタフェース部20は、フレームの宛先ポートを表す宛先ポート識別子が付加されたフレームを、中継実行部24から受信した場合に、当該フレームを当該宛先ポートへ送信する。
FDBは、図5(a)および図5(b)に示すように、MACアドレスと、VIDと、ポート識別子と、インスタンス識別子との対応関係を含むエントリを単数または複数保持する。一例として、図5(a)では、図1のスイッチ装置SW1が備えるFDBの保持内容が示され、図5(b)では、図1のスイッチ装置SW2が備えるFDBの保持内容が示される。
図5(a)に示すFDBは、図17の構成例と比較して、インスタンス識別子を保持する点が異なっている。インスタンス識別子は、リングポート(Pr[1]〜Pr[3])を含むエントリで保持され、ユーザポートPu[1],…を含むエントリでは保持されない。同様に、図5(b)に示すFDBも、リングポート(Pr[1]〜Pr[3])を含むエントリでインスタンス識別子を保持する。
インスタンス管理テーブル23は、図6に示すように、複数のリングポートのそれぞれのポート識別子と、VIDと、インスタンス識別子との対応関係を保持する。当該インスタンス管理テーブル23は、例えば、装置管理者等によって予め定められる。インスタンス識別子は、必ずしも限定はされないが、物理的なリング構成(例えば、メジャーリング10,11)を反映して定められる。一例として、図6(a)では、図1のスイッチ装置SW1が備えるインスタンス管理テーブル23の保持内容が示され、図6(b)では、図1のスイッチ装置SW2が備えるインスタンス管理テーブル23の保持内容が示される。
図6(a)のインスタンス管理テーブル23は、ポート識別子{Pr[1]}と、VID=1およびVID=2とに対応付けてインスタンス識別子「10」を保持する。また、当該インスタンス管理テーブル23は、ポート識別子{Pr[2]}と、VID=1およびVID=2とに対応付けてインスタンス識別子「10」を保持し、ポート識別子{Pr[2]}と、VID=3およびVID=4とに対応付けてインスタンス識別子「11」を保持する。さらに、当該インスタンス管理テーブル23は、ポート識別子{Pr[3]}と、VID=3およびVID=4とに対応付けてインスタンス識別子「11」を保持する。
図6(b)のインスタンス管理テーブル23は、ポート識別子{Pr[1]}と、VID=1およびVID=2とに対応付けてインスタンス識別子「10」を保持し、ポート識別子{Pr[1]}と、VID=3およびVID=4とに対応付けてインスタンス識別子「11」を保持する。また、当該インスタンス管理テーブル23は、ポート識別子{Pr[2]}と、VID=1およびVID=2とに対応付けてインスタンス識別子「10」を保持する。さらに、当該インスタンス管理テーブル23は、ポート識別子{Pr[3]}と、VID=3およびVID=4とに対応付けてインスタンス識別子「11」を保持する。
このように、図6(a)の例では、メジャーリング10で使用される各リングポート(Pr[1],Pr[2])と各VID(VID=1,2)の組合せに、共通のインスタンス識別子(「10」)が設定される。一方、メジャーリング11で使用される各リングポート(Pr[2],Pr[3])と各VID(VID=3,4)の組合せに、メジャーリング10とは異なる共通のインスタンス識別子(「11」)が設定される。図6(b)に関しても、図6(a)の場合と同様である。
中継処理部21は、インスタンスID取得部29を備え、詳細は後述するが、ユーザフレームを受信した場合に、インスタンス管理テーブル23を用いながらFDBの学習および検索を行う。中継処理部21は、FDBの検索結果に基づいて、受信したユーザフレームの宛先ポート識別子を定め、当該宛先ポート識別子を付加したユーザフレームを中継実行部24へ送信する。
ERP制御部(リング制御部)22は、障害検出部30、R−APS生成部31、R−APS受信部32およびフラッシュ実行部33を備え、所定のリングプロトコル(ここでは、ITU−T G.8032)に基づきリングネットワークを制御する。ここでは、ERP制御部22の概略について説明し、その詳細に関しては後述する。障害検出部30は、OAM処理部28を介して自装置のリングポートPr[1],Pr[2]の障害(障害発生/障害回復)を検出する。障害検出部30は、当該障害検出に応じて(言い換えれば所定のリングプロトコルに基づき)FDBフラッシュを実行する場合には、当該フラッシュ対象のインスタンス識別子を定め、フラッシュ実行部33へフラッシュ実行要求を発行する。
R−APS生成部31は、所定のR−APSフレームを生成し、当該R−APSフレームに宛先ポート識別子を付加して中継実行部24へ送信する。R−APS受信部32は、インタフェース部20からのR−APSフレームを受信し、当該R−APSフレームに含まれる各種情報(例えば、前述したNR,RB,SF等)を解釈する。R−APS受信部32は、当該解釈結果に応じて(言い換えれば所定のリングプロトコルに基づき)FDBフラッシュを実行する場合には、当該フラッシュ対象のインスタンス識別子を定め、フラッシュ実行部33へフラッシュ実行要求を発行する。
また、R−APS受信部32は、リングポートPr[1],Pr[2]の一方で受信したR−APSフレームを中継実行部24を介して他方のリングポートへ中継する処理を行う。フラッシュ実行部33は、障害検出部30またはR−APS受信部32からのフラッシュ実行要求に応じてFDBの所定のエントリをフラッシュする。また、ERP制御部22は、所定のリングプロトコルに基づき、リングポートPr[1],Pr[2]の閉塞状態BK/開放状態の制御が必要な場合には、VIDフィルタ27に所定の条件を設定する。ERP制御部22は、このような動作を代表に、所定のリングプロトコルで必要とされる各種制御を全般的に行う。
中継実行部24は、中継処理部21またはERP制御部22からのフレーム(ユーザフレームまたはR−APSフレーム)を、インタフェース部20に向けて送信する。この際に、中継実行部24は、フレームに付加されている不要な情報(例えば、受信ポート識別子等)を削除する。インタフェース部20は、中継実行部24からのフレームを受けて、宛先ポート識別子に対応するポートへフレームを送信する。
なお、ERP制御部22は、プロセッサ(CPU)によるプログラム処理等によって実現される。インタフェース部20および中継実行部24のそれぞれは、例えば、ASIC(Application Specific Integrated Circuit)等に実装される。また、インスタンス管理テーブル23は、RAM等に実装され、FDBは、CAM(Content Addressable Memory)等に実装される。中継処理部21は、例えば、FPGA(Field Programmable Gate Array)等に実装される。ただし、各部の具体的な実装形態は、勿論、これに限定されるものではなく、ハードウェアまたはソフトウェアあるいはその組合せを用いて適宜実装されればよい。
《中継処理部の詳細》
図7は、図4のスイッチ装置において、中継処理部がFDBの学習を行う場合の動作例を示す説明図である。図7では、図1の中継システムのスイッチ装置SW1が図4の構成例を備える場合を例とし、当該スイッチ装置SW1の中継処理部21がFDBの学習を行う場合の動作例が示されている。
図7において、スイッチ装置SW1は、リングポートPr[2]で、ユーザ端末TM3aからユーザ端末TM1aに向けたユーザフレームUF31aと、ユーザ端末TM5dからユーザ端末TM1dに向けたユーザフレームUF51dとを受信している。ユーザフレームUF31aは、送信元MACアドレスSA「CA3a」、宛先MACアドレスDA「CA1a」およびVID「1」を含み、ユーザフレームUF51dは、送信元MACアドレスSA「CA5d」、宛先MACアドレスDA「CA1d」およびVID「4」を含む。
スイッチ装置SW1の中継処理部21は、複数のリングポートPr[1]〜Pr[3]のいずれかでユーザフレームを受信した場合に、まず、インスタンス管理テーブル23に基づき、当該リングポートのポート識別子と当該フレームのVIDとに対応付けられるインスタンス識別子を取得する。そして、当該中継処理部21は、当該フレームの送信元MACアドレスSA、VIDおよび受信ポート識別子を、当該取得したインスタンス識別子に対応付けてFDBのエントリに学習する。
図7の例では、中継処理部21は、リングポートPr[2]でユーザフレームUF31aを受信した場合、図6(a)のインスタンス管理テーブル23に基づき、受信ポート識別子{Pr[2]}およびVID「1」に対応するインスタンス識別子「10」を取得する。そして、中継処理部21は、図5(a)に示されるように、送信元MACアドレスSA「CA3a」、VID「1」および受信ポート識別子{Pr[2]}を、当該インスタンス識別子「10」に対応付けてFDBのエントリに学習する。
同様に、中継処理部21は、リングポートPr[2]でユーザフレームUF51dを受信した場合、インスタンス管理テーブル23に基づき、受信ポート識別子{Pr[2]}およびVID「4」に対応するインスタンス識別子「11」を取得する。そして、中継処理部21は、送信元MACアドレスSA「CA5d」、VID「4」および受信ポート識別子{Pr[2]}を、インスタンス識別子「11」に対応付けてFDBのエントリに学習する。
なお、図示は省略するが、中継処理部21は、FDBの検索に際しては、通常通りの処理を行う。例えば、中継処理部21は、当該ユーザフレームUF31aの反対方向となるユーザフレームUF13a(図1参照)を受信した場合、宛先MACアドレスDA「CA3a」およびVID「1」を検索キーとして図5のFDBを検索し、宛先ポート識別子{Pr[2]}を取得する。
《ERP制御部(リング制御部)の概略動作》
図8、図9(a)および図9(b)は、図4のスイッチ装置において、ERP制御部のFDBフラッシュに関する概略的な動作例を示す説明図である。ここでは、図3におけるスイッチ装置SW1,SW2が図4の構成例を備える場合を想定して説明する。図8において、スイッチ装置SW2のERP制御部22は、MEPaで障害が検出された場合、所定のリングプロトコル(ITU−T G.8032)に基づきFDBフラッシュを実行する(ステップS103)。
この場合に、当該ERP制御部22(具体的には障害検出部30)は、障害を検出したのがリングポートPr[2]を監視するMEPaであるため、メジャーリング10に対応するインスタンス識別子「10」をフラッシュ対象に定め、フラッシュ実行部33を介して当該インスタンス識別子「10」を含むエントリをフラッシュする。障害検出部30は、具体的には、例えば、図6(b)のインスタンス管理テーブル23を参照し、障害が検出されたリングポートPr[2]に対応するインスタンス識別子「10」をフラッシュ対象に定める。なお、当該障害検出部30は、仮に、リングポートPr[1]で障害が検出された場合には、インスタンス管理テーブル23に基づき、インスタンス識別子「10」および「11」をフラッシュ対象に定める。
また、ERP制御部22では、予め、テーブル等によって、インスタンス識別子「10」および「11」が、それぞれ、メジャーリング10の制御用VID「10」およびメジャーリング11の制御用VID「11」に対応付けられている。これにより、ERP制御部22(具体的にはR−APS生成部31)は、当該フラッシュ対象のインスタンス識別子「10」に基づき、制御用VID「10」を含むR−APS(SF)フレームCF4を生成し、メジャーリング10のリングポートPr[1],Pr[2]から送信する(ステップS103)。なお、当該R−APS生成部31は、仮に、フラッシュ対象のインスタンス識別子が「10」および「11」の場合には、制御用VID「10」を含むR−APS(SF)フレームと、制御用VID「11」を含むR−APS(SF)フレームとを生成する。
一方、スイッチ装置SW1のERP制御部22(具体的にはR−APS受信部32)は、リングポートPr[2]で、制御用VID「10」を含むR−APS(SF)フレームCF4を受信する。当該ERP制御部22では、スイッチ装置SW2の場合と同様に、予め、テーブル等によって、インスタンス識別子と制御用VIDとが対応付けられている。当該ERP制御部22(R−APS受信部32)は、受信した制御用VID「10」に基づきインスタンス識別子「10」をフラッシュ対象に定め、フラッシュ実行部33を介して当該インスタンス識別子「10」を含むエントリをフラッシュする(ステップS105)。
なお、ここでは、メジャーリング10,11のR−APSフレームは、それぞれ、専用の制御用VIDを用いる例を示したが、場合によっては、ユーザ用のVID(例えば、図6(a)および図6(b)のVID=1、VID=3等)を用いることも考えられる。この場合、当該R−APSフレームを受信したERP制御部22は、図6(a)および図6(b)に基づき、受信ポートIDとVIDからインスタンス識別子を定めることも可能である。あるいは、予めテーブル等でリングIDとインスタンス識別子との対応関係を定めておき、R−APSフレームに含まれるリングIDからインスタンス識別子を定めるように構成することも可能である。
このような処理の結果、スイッチ装置SW2のFDBでは、ステップS103に伴い、図9(b)に示すように、MACアドレスCA1a,CA1b,CA3a,CA3bをそれぞれ含む4個のエントリがフラッシュされる。一方、スイッチ装置SW1のFDBでは、ステップS105に伴い、図9(a)に示すように、MACアドレスCA3a,CA3bをそれぞれ含む2個のエントリがフラッシュされる。
以上のように、図9(a)では、図17の場合と異なり、メジャーリング11側のMACアドレスCA5c,CA5dを含むエントリはフラッシュされない。同様に、図9(b)でも、メジャーリング11側のMACアドレスCA5c,CA5dを含むエントリはフラッシュされない。その結果、本来不要なFDBフラッシュを防止することが可能になる。また、これにより、フラッディングの発生頻度が低下し、通信の輻輳等を低減することが可能になる。
《ERP制御部(リング制御部)の詳細動作》
図10は、図4のスイッチ装置において、自装置のリングポートの障害が検出された場合のERP制御部の処理内容の一例を示すフロー図である。図10において、ERP制御部22(具体的には障害検出部30)は、OAM処理部28のMEPで障害が検出されたか否かを監視する(ステップS201)。障害が検出された場合、ERP制御部22(障害検出部30)は、図8で述べたように、障害を検出したMEPに対応するインスタンス識別子を定める(ステップS202)。
続いて、障害検出部30は、ステップS202で定めたインスタンス識別子を対象に、フラッシュ実行部33に対して、フラッシュ実行要求を発行する(ステップS203)。これに応じて、フラッシュ実行部33は、対象のインスタンス識別子を含むエントリをフラッシュする(ステップS204)。次いで、ERP制御部22(障害検出部30)は、図8で述べたように、障害を検出したMEPに対応する制御用VIDを定める(ステップS205)。
続いて、ERP制御部22(具体的には、R−APS生成部31)は、ステップS205で定めた制御用VIDを含むR−APS(SF)フレームを生成し、それを中継実行部24を介して所定のリングポートへ送信する(ステップS206)。具体的には、例えば、図8のスイッチ装置SW2のR−APS生成部31は、制御用VID「10」を含むR−APS(SF)フレームを生成した場合、それをリングポートPr[1],Pr[2]へ送信する。一方、当該R−APS生成部31は、制御用VID「11」を含むR−APS(SF)フレームを生成した場合、それをリングポートPr[1],Pr[3]へ送信する。
図11は、図4のスイッチ装置において、リングポートでR−APSフレームを受信した場合のERP制御部の処理内容の一例を示すフロー図である。図11において、ERP制御部22(具体的にはR−APS受信部32)は、受信したR−APSフレームに含まれる各種情報を解析する(ステップS301)。次いで、ERP制御部22(R−APS受信部32)は、当該解析結果(言い換えれば所定のリングプロトコル)に基づき、FDBフラッシュの実行が必要か否かを判別する(ステップS302)。
FDBフラッシュの実行が必要な場合、ERP制御部22(R−APS受信部32)は、図8で述べたように、受信したR−APSフレームの制御用VIDに対応するインスタンス識別子を対象に、フラッシュ実行部33に対して、フラッシュ実行要求を発行する(ステップS303)。これに応じて、フラッシュ実行部33は、対象のインスタンス識別子を含むエントリをフラッシュする(ステップS304)。
また、ERP制御部22は、所定のリングプロトコルに基づき、その他の処理を実行する(ステップS305)。その他の処理として、特に限定はされないが、R−APSフレームの中継処理や、リングポートの閉塞状態BK/開放状態の制御処理等が挙げられる。なお、ステップS302において、FDBフラッシュの実行が不要な場合には、ステップS305の処理が行われる。
以上、本実施の形態1の中継システムおよびスイッチ装置を用いることで、代表的には、本来不要なFDBフラッシュを防止することが可能になる。
(実施の形態2)
《FDBの構成(変形例)》
図12は、本発明の実施の形態2によるスイッチ装置において、図4のFDBの構成例を示す概略図である。図12には、一例として、図1のスイッチ装置SW1が備えるFDBの保持内容が示される。図12に示すFDBは、図5(a)に示した構成例と比較して、図5(a)のポート識別子のビット領域が、ポート識別子またはインスタンス識別子を保持する点と、リングポートフラグが追加された点が異なっている。
図5(a)と図12とを比較すると、図5(a)でリングポートのポート識別子を含む各エントリは、図12では、ポート識別子の代わりにインスタンス識別子を保持している。そうすると、図12におけるポート識別子/インスタンス識別子の領域は、ポート識別子およびインスタンス識別子のどちらを表しているのかが不明となる。そこで、図12では、1ビットのリングポートフラグが設けられる。ポート識別子/インスタンス識別子の領域は、リングポートフラグがフラグ有(ここでは‘1’)の場合にはインスタンス識別子を表し、フラグ無(ここでは‘0’)の場合にはポート識別子を表す。
また、このように、本来、ポート識別子を記憶すべき領域にインスタンス識別子を保持すると、ポート識別子が不明となる。具体的には、FDBの検索に際し、宛先ポート識別子が不明となる。そこで、図12のインスタンス識別子は、図5(a)の場合と異なり、リングポートの位置を示すビットを含んでいる。
具体的には、前述した図6(a)等から判るように、インスタンス識別子が定まると、それに対応付けられる2個のリングポートが定まる。例えば、インスタンス識別子=10が定まると、リングポートPr[1],Pr[2]が定まり、インスタンス識別子=11が定まると、リングポートPr[2],Pr[3]が定まる。したがって、例えば、FDBの検索に際し、宛先ポート識別子の代わりにインスタンス識別子が得られれば、実質的に、2個の宛先ポート識別子が得られることになる。
そこで、インスタンス識別子が、2個の宛先ポート識別子の一方を選択するための1ビットの情報(言い換えればリングポートの位置を示すビット)を含んでいれば、当該インスタンス識別子によって、実質的に1個の宛先ポート識別子を得ることができる。また、このように1ビットの情報でよいため、リングポートの位置を示すビットを含むインスタンス識別子は、ポート識別子のビット数の範囲内で十分に定めることができる。
図12の例では、インスタンス識別子に記載された「E」/「W」が当該1ビットの情報を表している。実質的に、インスタンス識別子「10_W」は、インスタンス識別子=10のポート識別子{Pr[1]}を表し、インスタンス識別子「10_E」は、インスタンス識別子=10のポート識別子{Pr[2]}を表す。また、インスタンス識別子「11_W」は、インスタンス識別子=11のポート識別子{Pr[2]}を表し、インスタンス識別子「11_E」は、インスタンス識別子=11のポート識別子{Pr[3]}を表す。
《インスタンス管理テーブルの構成(変形例)》
図13は、本発明の実施の形態2によるスイッチ装置において、図4のインスタンス管理テーブルの構成例を示す概略図である。図13には、一例として、図1のスイッチ装置SW1が備えるインスタンス管理テーブル23の保持内容が示される。図13に示すインスタンス管理テーブル23は、図6(a)に示した構成例と比較して、インスタンス識別子が、前述したリングポートの位置を示すビットを含むインスタンス識別子に置き換わっている点が異なっている。
具体的には、図13において、ポート識別子{Pr[1]}に対応付けられるインスタンス識別子「10」は「10_W」に置き換わり、ポート識別子{Pr[2]}に対応付けられるインスタンス識別子「10」は「10_E」に置き換わる。また、ポート識別子{Pr[2]}に対応付けられるインスタンス識別子「11」は「11_W」に置き換わり、図示は省略するが、ポート識別子{Pr[3]}に対応付けられるインスタンス識別子「11」は「11_E」に置き換わる。
《中継処理部の詳細(変形例)》
図14は、本発明の実施の形態2によるスイッチ装置において、図4の中継処理部がFDBの学習を行う際の処理内容の一例を示すフロー図である。図14において、中継処理部21は、まず、ユーザフレームを受信したか否かを監視する(ステップS401)。ユーザフレームを受信した場合、中継処理部21は、ユーザフレームに付加されている受信ポート識別子がリングポートのポート識別子であるか否かを判別する(ステップS402)。
受信ポート識別子がリングポートのポート識別子である場合(すなわち、複数のリングポートのいずれかでユーザフレームを受信した場合)、中継処理部21は、インスタンス管理テーブル23に基づき、受信ポート識別子とユーザフレームのVIDとに対応付けられるインスタンス識別子を取得する(ステップS403)。そして、中継処理部21は、ユーザフレームの送信元MACアドレスおよびVIDと、リングポートの位置を示すビットを含むインスタンス識別子とをFDBのエントリに学習する(ステップS404)。また、これと共に、中継処理部21は、当該エントリに含まれるリングポートフラグをフラグ有に定める(ステップS404)。
ここで、当該ステップS404に際し、中継処理部21は、図13に示したインスタンス管理テーブル23を用いる場合には、ステップS403で取得したインスタンス識別子をそのままFDBのエントリに学習すればよい。ただし、必ずしもこれに限定されず、中継処理部21は、図6(a)等のインスタンス管理テーブル23を用いる場合であっても、リングポートの位置を示すビットを含むインスタンス識別子を学習することができる。例えば、中継処理部21は、図6(a)等のインスタンス管理テーブル23から取得したインスタンス識別子に、受信ポート識別子に基づく1ビットの情報を反映させて、リングポートの位置を示すビットを含むインスタンス識別子を生成することができる。
一方、ステップS402で、受信ポート識別子がリングポートのポート識別子ではない場合(すなわち、複数のリングポートを除くポートでユーザフレームを受信した場合)、中継処理部21は、ユーザフレームの送信元MACアドレスおよびVIDと、受信ポート識別子とをFDBのエントリに学習する(ステップS405)。また、これと共に、中継処理部21は、当該エントリに含まれるリングポートフラグをフラグ無に定める(ステップS405)。
図15は、本発明の実施の形態2によるスイッチ装置において、図4の中継処理部がFDBの検索を行う際の処理内容の一例を示すフロー図である。図15において、中継処理部21は、まず、ユーザフレームを受信したか否かを監視する(ステップS501)。ユーザフレームを受信した場合、中継処理部21は、FDBを検索し、ユーザフレームの宛先MACアドレスおよびVIDに対応付けられるポート識別子/インスタンス識別子と、リングポートフラグとを取得する(ステップS502)。
次いで、中継処理部21は、リングポートフラグがフラグ有であるか否かを判別する(ステップS503)。リングポートフラグがフラグ有の場合、中継処理部21は、ステップS502で取得したインスタンス識別子を宛先ポート識別子に変換し、当該ユーザフレームを宛先ポート識別子が示すポートへ中継する(ステップS504)。具体的には、中継処理部21は、例えば、インスタンス識別子が「10_E」の場合、図12に示したように、それを宛先ポート識別子{Pr[2]}に変換し、当該宛先ポート識別子を付加したユーザフレームを中継実行部24へ送信する。
一方、ステップS503でリングポートフラグがフラグ無の場合、中継処理部21は、ステップS502で取得したポート識別子を宛先ポート識別子に定め、当該ユーザフレームを宛先ポート識別子が示すポートへ中継する(ステップS505)。このように、リングポートフラグを用いることで、一つの記憶領域がポート識別子/インスタンス識別子を併用して保持することが可能になる。
《ERP制御部の詳細(変形例)》
図16は、本発明の実施の形態2によるスイッチ装置において、図4のERP制御部がFDBフラッシュを実行する際の処理内容の一例を示すフロー図である。図16に示す処理内容は、図10のステップS204および図11のステップS304で実行される。図16において、ERP制御部22(具体的にはフラッシュ実行部33)は、所定のインスタンス識別子を対象とするフラッシュ実行要求を受信する(ステップS601)。
これに応じて、ERP制御部22(フラッシュ実行部33)は、図12のFDBにおいて、リングポートフラグがフラグ有(ここでは‘1’)であり、かつポート識別子/インスタンス識別子としてフラッシュ対象のインスタンス識別子を含むエントリをフラッシュする(ステップS602)。具体的には、図12を例として、ステップS601で受信したインスタンス識別子がインスタンス識別子「10」の場合、ERP制御部22(フラッシュ実行部33)は、インスタンス識別子「10_E」を含む2個のエントリをフラッシュする。
以上、本実施の形態2の中継システムおよびスイッチ装置を用いることで、実施の形態1で述べた各種効果に加えて、さらに、FDBのビット数の増大を抑制することが可能になる。具体的に説明すると、FDBは、通常、CAM(Content Addressable Memory)等のハードウェアで構成されるため、ビット数が制限される場合がある。図12のFDBを用いると、FDBにインスタンス識別子を保持させる際に、図5(a)等に示したように、インスタンス識別子用の複数ビットを確保する必要がなく、リングポートフラグ用の1ビットを確保すればよい。
なお、これと同様の観点で、インスタンス識別子を併用して保持する情報は、必ずしも図12に示したようなポート識別子に限らず、その他の所定の情報であってもよい。すなわち、当該所定の情報は、リングポートを除くポート(例えばユーザポート)のエントリでは必要な情報であるが、リングポートのエントリでは不要な情報であればよい。この場合、FDBのエントリは、MACアドレスと、VIDとに加えて、当該所定の情報と、リングポートフラグとの対応関係を含む。
そして、中継処理部21は、複数のリングポートのいずれかでフレームを受信した場合に、取得したインスタンス識別子を所定の情報としてFDBのエントリに学習すると共に、当該エントリに含まれるリングポートフラグをフラグ有に定める。一方、中継処理部21は、複数のリングポートを除くポートでフレームを受信した場合に、当該インスタンス識別子とは異なる所定の情報をFDBのエントリに学習すると共に、当該エントリに含まれるリングポートフラグをフラグ無に定める。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、ここでは、中継システムのリングプロトコルとして、ITU−T G.8032に規定されたリングプロトコルを用いる場合を例としたが、必ずしもこれに限定されるものではなく、他のリングプロトコルを用いる場合であってもよい。すなわち、共有リンクを含むマルチリング構成に対応したリングプロトコルであれば、同様に適用して同様の効果が得られる場合がある。