[通信装置のハードウェア構成]
図1及び図2を用いて、実施例1に係る通信装置のハードウェア構成を説明する。図1は、スイッチ(Switch)を経由する通信装置のハードウェア構成の例を示す図である。また、図2は、スイッチを経由しない通信装置のハードウェア構成の例を示す図である。
例えば、図1に示すように、通信装置は、保守管理部と、主信号処理部とを有する。これらのうち、保守管理部は、例えば、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、フラッシュメモリ(Flash Memory)やCF(Compact Flash)等の不揮発性メモリとを有する。そして、保守管理部は、CPU、RAM及び不揮発性メモリを統括し、コントロールバス(Control Bus)を介して装置全体の監視や各種設定等を実行する。
一方、主信号処理部は、例えば、IF(Interface) Cardと、スイッチとを有する。スイッチは、例えば、クロスコネクト機能を有するSW Cardである。IF Cardは、例えば、SFP(Small form Factor Pluggable)/XFP(10 Gigabit Small form Factor Pluggable)及びIF制御回路を有する。SFP/XFPは、例えば、各種の主信号規格に対応しており、各種主信号を入出力する。IF制御回路は、例えば、各フレームフォーマットに応じた処理を実行する。すなわち、主信号処理部では、SONET/SDH信号の場合にSONET/SDHに関する制御を実行し、OTN信号の場合にOTNに関する制御を実行する。また、SFP/XFPとIF制御回路とは、1つのCardに含まれることがあり、同一Card内でサポート可能なポート数によってSFP/XFPの数が異なる。スイッチは、装置内の任意のポート間で主信号を疎通させるために全てのIF制御回路に接続されている。また、スイッチは、IF Cardと同様に、1つのCardに含まれることがある。これらにより、スイッチを有する通信装置では、一つの様態として、図1に示した(A)、(B)又は(C)等のパスを設定できる。
また、例えば、図2に示すように、通信装置は、保守管理部と、主信号処理部とを有する。これらのうち、保守管理部は、例えば、CPUと、RAMと、不揮発性メモリとを有するとともにこれらを統括し、コントロールバスを介して装置全体の監視や各種設定等を実行する。
一方、主信号処理部は、例えば、Transponder Cardと、Muxponder Cardと、SW機能を有するIF Card(IF Card with SW)と、スイッチに接続されるIF Cardとを有する。Transponder Cardは、例えば、ポート#1とポート#2とが1対1で固定に割り付けられており、これらのポート間のみ接続可能なCardである。Muxponder Cardは、例えば、複数のポート#3−1〜#3−n(nは、自然数)から入力された受信信号を多重し、ポート#4に送信するCardであり、接続箇所が固定に割り付けられている。なお、Muxponder Cardは、逆方向、すなわちポート#4から入力された信号については信号を分離してポート#3−1〜#3−nに送信することがある。SW機能を有するIF Cardは、例えば、Card内に配置されたポート#5−1〜#5−4間において、自由に接続先を決定できるCardであるが、他のCardのポートには接続できない。なお、スイッチに接続されるIF Cardについては、図1に示したCardと同様の処理を実行する。
[通信装置の機能ブロック]
次に、図3を用いて、実施例1に係る通信装置の機能ブロックを説明する。図3は、実施例1に係る通信装置の機能ブロックの例を示す図である。
例えば、図3に示すように、通信装置100は、スイッチ101と、IF102と、IF103と、IF104とを有する。これらのうち、IF102は、SW盤を有さないインタフェースであり、IF103は、SW盤を経由するインタフェースであり、IF104は、SW盤を経由するインタフェースであるものとする。また、例えば、通信装置100は、UI(User Interface)105と、Card管理部106と、OSPF‐TE制御部107と、トポロジDB(database)108と、経路計算部109と、RSVP‐TE制御部110と、不揮発性メモリ111とを有する。
これらのうち、IF102は、図2に示したTransponder Card、Muxponder Card、IF Card with SW等のIF制御回路の一例である。また、スイッチ101、IF103、IF104は、図1に示したスイッチを経由するIF制御回路の一例である。また、UI105、Card管理部106、OSPF‐TE制御部107、経路計算部109、RSVP‐TE制御部110における処理は、例えば、図1又は図2に示したCPU等のプロセッサを用いて行なわれる。また、トポロジDB108は、例えば、図1又は図2に示したRAM等のメモリに格納されている。また、不揮発性メモリ111は、図1又は図2に示した不揮発性メモリの一例である。
IF102とIF103とは、例えば、図1及び図2で説明したように、スイッチ101を経由して主信号が流れる。また、IF104は、例えば、図1及び図2で説明したように、スイッチ101を経由することなく主信号が流れる。これらのIF102、IF103及びIF104は、例えば、隣接する通信装置と接続されており、データパケット等の主信号や、RSVP‐TE又はOSPF‐TE制御用のIPパケットによる通信を制御する。なお、RSVP‐TEは、シグナリングプロトコルであり、OSPF‐TEは、ルーティングプロトコルである。
UI105は、例えば、通信装置100と接続されるOPS(Operation System)等のネットワーク管理端末から各種コマンドを受け付ける。各種コマンドは、例えば、スイッチ101、IF102、IF103又はIF104等のIF Cardに係る設定依頼や、通信装置100を含むネットワークにおける経路計算の要求等が挙げられる。さらに、各種コマンドは、例えば、ユーザによってデータ伝送の経路に意図的に制約が設けられる場合、或いは制約が削除される場合にも利用される。また、UI105は、例えば、Card管理部106によって収集されたスイッチ101、IF102、IF103又はIF104等のIF Cardに関する情報をネットワーク管理端末に対して通知する。
Card管理部106は、例えば、UI105によってIF Cardに係る設定を依頼された場合に、OSPF‐TE制御部107に通知する。IF Cardに係る設定は、例えば、IF Cardの登録や削除が行なわれる場合である。また、IF Cardの登録では、ある制約を有するIF Cardが登録されることもある。OSPF‐TE制御部107は、例えば、Card管理部106からの通知を受けると、IF Cardの種別に応じてトポロジ情報を生成し、トポロジ情報を記憶するトポロジDB108を更新するとともに、更新したトポロジ情報を隣接する通信装置に広告する。また、OSPF‐TE制御部107は、Card管理部106を経由して、ユーザによって制約の設定又は削除される場合にも、これに応じてトポロジ情報を生成してトポロジDB108を更新するとともに、更新したトポロジ情報を隣接する通信装置に広告する。トポロジDB108は、例えば、Restriction Information Sub‐TLV(Type Length Value)を含むOpaque LSA(Link‐State Advertisement)等のトポロジ情報を記憶する。
トポロジ情報の生成では、Restriction Information Sub‐TLVを含むOpaque LSAが生成される。以下では、Restriction Information Sub−TLVを、「Rest Info」と記述することがある。なお、OSPF‐TE制御部107は、隣接する他の通信装置から広告されたトポロジ情報を受け付けた場合にもトポロジDB108を更新する。これらにより、通信装置100を含むネットワークでは、各通信装置で同一のトポロジ情報を共有する。
後述する経路の計算で利用されるトポロジ情報の構成は、RFC(Request For Comment)3630、4202、4230等に規定されている。ここで、トポロジ情報は、Opaque LSAとして定義されている。Opaque LSAには、機能拡張に対応できるようにGMPLS用に定義された、TLVと呼ばれるフォーマットに従って各種情報が格納される。
図4A及び図4Bは、Restriction Information Sub‐TLVの構成の例を示す図である。例えば、図4Aに示すように、Rest Infoは、Link TLVの配下に存在するSub‐TLVとは別に、空きの部分を拡張したSub‐TLVに格納される。そして、図4Bに示すように、Rest Infoが格納されたSub−TLVは、規定された値が使用される「Type」と、TLVのサイズを示す「Length」と、各Type値に応じて規定されたルールで使用される「F」及び「ID」とを含む。なお、図4Bにおいて、「Length」を「4」以上にしているが、「Length」は、「ID」の種類数によってかえれば良い。また、「F」は、通信装置100内で接続可能なポートが1つに固定であるか否かを示す情報であり、例えば、接続可能なポートが1つに固定である場合に「1」、接続可能なポートが複数ある場合に「0」が格納される。また、「ID」には、通信装置100内で互いに接続可能なポートを識別する識別情報が格納される。「F」や「ID」の詳細については後述する。
このようなTLVは、ネスト構造に配置可能であり、ノード情報を示す「Router TLV」と、リンク情報を示す「Link TLV」とが使用されることがある。図5は、Opaque LSAの構成例を示す図である。また、図6は、Sub‐TLVの概要を示す図である。例えば、図5に示すように、Opaque LSAには、「Router TLV」を有するRouter LSAと、「Link TLV」を有するLink LSAとが存在する。このうち、Link LSAは、複数のSub‐TLVの集合で1つのLSAとしてネットワーク内のノードに広告され、Rest Infoも含んでいる。また、図6に示すように、Sub‐TLVには、標準で定義された区分に、リンクやノードに係る各種情報が存在し、拡張された空番号の区分に、Rest Infoの情報が存在する。なお、図6に示すSub‐TLV Type「5」である「Traffic Engineering Metric」は、経路計算に利用されるリンクのコスト値の情報である。
ここで、図7A〜図13Bを用いて、IF Cardの種別に応じて設定されるRest Infoについて説明する。図7Aは、Transponder Cardの構成例を示す図である。また、図7Bは、図7Aに示したTransponder Cardに応じて設定されるRestriction Informationの例を示す図である。
例えば、図7Aに示すTransponder Cardでは、データ入力されるポート「#1」に対して接続可能なポートが「#2」である。また、図7Aに示すTransponder Cardでは、データ入力されるポート「#2」に対して接続可能なポートが「#1」である。このとき、OSPF‐TE制御部107は、図7Bに示すように、Rest Infoの設定について、ポート「#1」と、F Bit「1」と、ID「0x01」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#2」と、F Bit「1」と、ID「0x01」とを対応付けて格納する。すなわち、図7Bに示すRest Infoにおいて、ポート「#1」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0x01」を持つポートであることを示している。同様に、ポート「#2」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0x01」を持つポートであることを示している。
図8Aは、Muxponder Cardの構成例を示す図である。また、図8Bは、図8Aに示したMuxponder Cardに応じて設定されるRestriction Informationの例を示す図である。なお、図8A及び図8Bには、図7A及び図7Bで説明したIF Cardも含まれているためその説明は省略する。
例えば、図8Aに示すMuxponder Cardでは、データ入力されるポート「#3−1」、「#3−2」、「#3−3」又は「#3−4」に対して接続可能なポートが「#4」である。また、図8Aに示すMuxponder Cardでは、データ入力されるポート「#4」に対して接続可能なポートが「#3−1」、「#3−2」、「#3−3」又は「#3−4」の何れかである。要するに、図8Aに示すMuxponder Cardは、多重元の複数のポートと多重先のポートとが「n対1」の関係で接続可能なポートが固定になる。詳細には、ポート「#3−1」〜「#3−4」は、ポート「#4−1」〜「#4−4」に固定に接続される。このとき、OSPF‐TE制御部107は、図8Bに示すように、Rest Infoの設定について、ポート「#3−1」と、F Bit「1」と、ID「0x02(0b00010)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−2」と、F Bit「1」と、ID「0x04(0b00100)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−3」と、F Bit「1」と、ID「0x08(0b01000)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−4」と、F Bit「1」と、ID「0x10(0b10000)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#4」と、F Bit「1」と、ID「0x1E(0b11110)」とを対応付けて格納する。換言すると、OSPF‐TE制御部107は、多重元の複数のポートに対して通信装置100内で固有のIDを付与し、多重先のポートに対して多重元に設定したID値を全てORした値を付与する。また、上述したように、ポート「#4」は、詳細にはポート「#4−1」〜「#4−4」まであり、各々がポート「#3−1」〜「#3−4」に固定に接続されるため、F Bitにも「1」が付与される。また、OSPF‐TE制御部107は、ID「0x01」をポート「#1」及び「#2」で利用しているため、ID「0x02」、「0x04」、「0x08」及び「0x10」を利用している。IDについては、「0x01」、「0x02」、「0x03」・・・のように利用しても良いが、Bitを意識して「0x02」、「0x04」・・・のように利用することで、1つのポートに複数のポートが接続可能なことを表現することができる。
すなわち、図8Bに示すRest Infoにおいて、ポート「#3−1」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0b00010」の「1」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−2」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0b00100」の「1」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−3」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0b01000」の「1」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−4」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0b10000」の「1」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#4」は、接続可能なポートが1つに固定されており、接続可能なポートはID「0b11110」の「1」と同じビット位置に「1」を持つポートであることを示している。
図9Aは、接続先が限定されるSWを内蔵したMuxponder Cardの構成例を示す図である。また、図9Bは、図9Aに示したMuxponder Cardに応じて設定されるRestriction Informationの例を示す図である。なお、図9A及び図9Bには、図7A及び図7Bで説明したIF Cardも含まれているためその説明は省略する。
例えば、図9Aに示すMuxponder Cardでは、データ入力されるポート「#3−1」、「#3−2」、「#3−3」又は「#3−4」に対して接続可能なポートが「#4−1」、「#4−2」、「#4−3」又は「#4−4」である。また、図9Aに示すMuxponder Cardでは、データ入力されるポート「#4−1」、「#4−2」、「#4−3」又は「#4−4」に対して接続可能なポートが「#3−1」、「#3−2」、「#3−3」又は「#3−4」である。要するに、図9Aに示すMuxponder Cardは、多重元の複数のポートに対して多重先のポートも複数存在し、それぞれSWによって接続が切り替えられるものの、その接続先は限定されている。このとき、OSPF‐TE制御部107は、図9Bに示すように、Rest Infoの設定について、ポート「#3−1」と、F Bit「0」と、ID「0x02(0b00010)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−2」と、F Bit「0」と、ID「0x04(0b00100)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−3」と、F Bit「0」と、ID「0x08(0b01000)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3−4」と、F Bit「0」と、ID「0x10(0b10000)」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#4」と、F Bit「0」と、ID「0x1E(0b11110)」とを対応付けて格納する。換言すると、OSPF‐TE制御部107は、F Bitを「0」とすることで、接続先が1つに固定されているわけではなく、多重先での接続先を選択することが可能である事を示すようにしている。
すなわち、図9Bに示すRest Infoにおいて、ポート「#3−1」は、接続可能なポートが複数存在し、接続可能なポートはID「0b00010」の「1」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−2」は、接続可能なポートが複数存在し、接続可能なポートはID「0b00100」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−3」は、接続可能なポートが複数存在し、接続可能なポートはID「0b01000」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#3−4」は、接続可能なポートが複数存在し、接続可能なポートはID「0b10000」と同じビット位置に「1」を持つポートであることを示している。同様に、ポート「#4」は、接続可能なポートが複数存在し、接続可能なポートはID「0b11110」と同じビット位置に「1」を持つポートであることを示している。
図10Aは、SWを内蔵したIF Cardの構成例を示す図である。また、図10Bは、図10Aに示したIF Cardに応じて設定されるRestriction Informationの例を示す図である。なお、図10A及び図10Bには、図7A〜図8Bで説明したIF Cardも含まれているためその説明は省略する。
例えば、図10Aに示すIF Cardでは、データ入力されるポート「#5」、「#6」、「#7」又は「#8」に対して接続可能なポートが自ポート以外のポートである。このとき、OSPF‐TE制御部107は、図10Bに示すように、Rest Infoの設定について、ポート「#5」と、F Bit「0」と、ID「0x20」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#6」と、F Bit「0」と、ID「0x20」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#7」と、F Bit「0」と、ID「0x20」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#8」と、F Bit「0」と、ID「0x20」とを対応付けて格納する。
すなわち、図10Bに示すRest Infoにおいて、ポート「#5」は、接続可能なポートが複数存在し、接続可能なポートはID「0x20」を持つポートであることを示している。同様に、ポート「#6」は、接続可能なポートが複数存在し、接続可能なポートはID「0x20」を持つポートであることを示している。同様に、ポート「#7」は、接続可能なポートが複数存在し、接続可能なポートはID「0x20」を持つポートであることを示している。同様に、ポート「#8」は、接続可能なポートが複数存在し、接続可能なポートはID「0x20」を持つポートであることを示している。
図11Aは、SW Cardを経由するIF Cardの構成例を示す図である。また、図11Bは、図11Aに示したIF Cardに応じて設定されるRestriction Informationの例を示す図である。なお、図11A及び図11Bには、図7A〜図8B、図10A及び図10Bで説明したIF Cardも含まれているためその説明は省略する。
例えば、図11Aに示すIF Cardでは、SW Cardを経由することで、データ入力されるポート「#9」、「#10」、「#11」又は「#12」に対して接続可能なポートが自ポート以外のポートである。このとき、OSPF‐TE制御部107は、図11Bに示すように、Rest Infoの設定について、ポート「#9」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#10」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#11」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#12」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。
すなわち、図11Bに示すRest Infoにおいて、ポート「#9」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#10」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#11」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#12」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。
図12Aは、SW Cardを経由する、制約のあるIF Cardの構成例を示す図である。また、図12Bは、図12Aに示したIF Cardに応じて設定されるRestriction Informationの例を示す図である。
例えば、図12Aに示すIF Cardでは、SW Cardを経由することで、データ入力されるポート「#1」、「#2」、「#3」又は「#4」に対して接続可能なポートが自ポート以外のポートである。また、図12Aに示すIF Cardでは、SW Cardを経由することで、データ入力されるポート「#5」、「#6」、「#7」又は「#8」に対して接続可能なポートが自ポート以外のポートである。要するに、制約が存在する理由は、例えば、複数のCardを収容するシャーシを拡張し、複数のシャーシを1つのノードとして管理する方式をとっているからである。このように、複数のシャーシを1つのノードとして管理する場合には、シャーシ単位で接続可能なポートを設定することになる。
このとき、OSPF‐TE制御部107は、図12Bに示すように、Rest Infoの設定について、ポート「#1」と、F Bit「0」と、ID「0x01」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#2」と、F Bit「0」と、ID「0x01」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#3」と、F Bit「0」と、ID「0x01」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#4」と、F Bit「0」と、ID「0x01」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#5」と、F Bit「0」と、ID「0x02」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#6」と、F Bit「0」と、ID「0x02」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#7」と、F Bit「0」と、ID「0x02」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#8」と、F Bit「0」と、ID「0x02」とを対応付けて格納する。
すなわち、図12Bに示すRest Infoにおいて、ポート「#1」は、接続可能なポートが複数存在し、接続可能なポートはID「0x01」を持つポートであることを示している。同様に、ポート「#2」は、接続可能なポートが複数存在し、接続可能なポートはID「0x01」を持つポートであることを示している。同様に、ポート「#3」は、接続可能なポートが複数存在し、接続可能なポートはID「0x01」を持つポートであることを示している。同様に、ポート「#4」は、接続可能なポートが複数存在し、接続可能なポートはID「0x01」を持つポートであることを示している。同様に、ポート「#5」は、接続可能なポートが複数存在し、接続可能なポートはID「0x02」を持つポートであることを示している。同様に、ポート「#6」は、接続可能なポートが複数存在し、接続可能なポートはID「0x02」を持つポートであることを示している。同様に、ポート「#7」は、接続可能なポートが複数存在し、接続可能なポートはID「0x02」を持つポートであることを示している。同様に、ポート「#8」は、接続可能なポートが複数存在し、接続可能なポートはID「0x02」を持つポートであることを示している。
図13Aは、図11Aに示したSWを内蔵したIF Cardが削除されたときのIF Cardの構成例を示す図である。また、図13Bは、図13Aに示したIF Cardに応じて設定されるRestriction Informationの例を示す図である。なお、図13A及び図13Bには、図7A〜図8Bで説明したIF Cardも含まれているためその説明は省略する。
例えば、図13Aに示すIF Cardでは、データ入力されるポート「#5」、「#6」、「#7」、「#8」、「#9」、「#10」、「#11」又は「#12」に対して接続可能なポートが自ポート以外のポートである。このとき、OSPF‐TE制御部107は、図13Bに示すように、Rest Infoの設定について、ポート「#5」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#6」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#7」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#8」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#9」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#10」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#11」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。また、OSPF‐TE制御部107は、ポート「#12」と、F Bit「0」と、ID「0x40」とを対応付けて格納する。要するに、OSPF‐TE制御部107は、ポート「#5」〜「#8」に対するID「0x20」を、「0x40」に更新する。
すなわち、図13Bに示すRest Infoにおいて、ポート「#5」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#6」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#7」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#8」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#9」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#10」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#11」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。同様に、ポート「#12」は、接続可能なポートが複数存在し、接続可能なポートはID「0x40」を持つポートであることを示している。
図3の説明に戻り、OSPF‐TE制御部107は、例えば、ユーザによる制約の設定をネットワーク管理端末、UI105及びCard管理部106を介して受け付ける。そして、OSPF‐TE制御部107は、受け付けたポートのID情報をRest Infoに設定し、接続先が1つに固定になる場合にはF Bitを「1」に設定する。このとき、OSPF‐TE制御部107は、既に同一のIDが付与されたポートが他に存在している場合に、接続可能なポートに変更が生じるため、変更に応じてF Bitを設定して、変更したトポロジ情報を再広告する。一方、OSPF‐TE制御部107は、既に同一のIDが付与されたポートが他に存在しない場合に、新たに制約を設定したトポロジ情報を広告する。
また、OSPF‐TE制御部107は、例えば、ユーザによる制約解除の設定をネットワーク管理端末、UI105及びCard管理部106を介して受け付ける。そして、OSPF‐TE制御部107は、受け付けたポート情報に該当するRest Infoを削除する。このとき、OSPF‐TE制御部107は、削除したポートのIDと同一のIDが付与されたポートが他に存在している場合に、接続可能なポートに変更が生じるため、変更に応じてF Bitを設定して、変更したトポロジ情報を再広告する。一方、OSPF‐TE制御部107は、同一のIDが付与されたポートが他に存在しない場合に、制約を削除したトポロジ情報を広告する。
経路計算部109は、例えば、UI105を介してネットワーク管理端末から、始点及び終点のポートを指定した経路計算要求を受け付けると、トポロジDB108を参照しつつ経路計算を実行し、計算結果をRSVP‐TE制御部110に通知する。なお、経路計算部109による経路計算では、Rest Infoに含まれるF Bitを利用せずに実行されても良い。この経路計算の詳細については後述する。
RSVP‐TE制御部110は、例えば、経路計算部109によって通知された経路の計算結果に基づいて、シグナリングプロトコル動作を始点ノードから終点ノードまでEnd‐to‐Endで実行する。これにより、RSVP‐TE制御部110は、各通信装置でIFやスイッチ等に、主信号疎通のための設定を実行する。また、RSVP‐TE制御部110は、シグナリングにおいて使用した経路やシグナリングに係る情報等を不揮発性メモリ111に格納する。シグナリングで使用した経路やシグナリングに係る情報を不揮発性メモリ111に格納することは、通信装置100のリスタート時の復旧に備えて行なわれることである。不揮発性メモリ111は、例えば、シグナリングで使用された経路やシグナリングに係る情報を記憶する。
[経路計算]
次に、図14〜図18を用いて、Rest Infoを利用した経路計算について説明する。図14は、始点及び終点のポートがF Bit「1」である場合の経路計算の例を説明する図である。なお、図14に示す各ポート付近に記載の値は、各ポートのRest Info「ID(F Bit)」を表している。また、各ノード間のポート同士を接続する経路に記載の値は、コスト値を表している。また、図14に示すNodeA及びNodeDのポート「#1」と「#2」とは、Transponder Cardを想定している。また、図14に示すNodeA及びNodeDのポート「#3−1」〜「#3−4」と「#4」とは、Muxponder Cardを想定している。図14では、NodeA〜NodeDまでの通信装置を含むネットワークにおいて、始点をNodeAのポート「#1」、終点をNodeDのポート「#1」とする経路計算要求をNodeAが受け付けた場合を説明する。
例えば、図14に示すように、ネットワーク管理端末から経路計算要求を受け付けたNodeAは、トポロジDB108を参照して、NodeAのポート「#1」とNodeDのポート「#1」とにF Bit「1」が付与されていることを認識する。そして、NodeAは、NodeAのポート「#1」に対して、NodeA内で同一のIDが付与されているポートを検索し、検索の結果、NodeAのポート「#2」をInclude指定する。また、NodeAは、NodeDのポート「#1」に対して、NodeD内で同一のIDが付与されているポートを検索し、検索の結果、NodeDのポート「#2」をInclude指定する。なお、Include指定は、図14において黒丸で表している。
続いて、NodeAは、トポロジDB108を参照して、NodeAのポート「#2」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#1」であることを認識する。また、NodeAは、トポロジDB108を参照して、NodeDのポート「#2」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#3」であることを認識する。ここで、NodeAは、NodeBのポート「#1」と「#3」とに制約が存在しないので、Include指定のポートを除いたNodeBのポート「#1」を始点とし、NodeBのポート「#3」を終点とする経路計算を実行する。すなわち、NodeAは、「NodeAのポート『#1』,『#2』」、「NodeBのポート『#1』,『#3』」、「NodeDのポート『#2』,『#1』」の順の経路計算結果を出力する。なお、経路計算結果は、図14において点線の矢印で表している。
図15は、F Bitが「1」であるポートが連続する場合の経路計算の例を説明する図である。なお、図15に示す各ポート付近に記載の値は、各ポートのRest Info「ID(F Bit)」を表している。また、各ノード間のポート同士を接続する経路に記載の値は、コスト値を表している。また、図15に示すNodeA及びNodeHのポート「#1」と「#2」とは、Transponder Cardを想定している。また、図15に示すNodeA及びNodeHのポート「#3−1」〜「#3−4」と「#4」とは、Muxponder Cardを想定している。また、図15に示すNodeDのポート「#1」及び「#3」と、「#2」及び「#4」とは、それぞれ物理的に別のCardであり、複数のCardを収容するシャーシを拡張したものを想定している。図15では、NodeA〜NodeHまでの通信装置を含むネットワークにおいて、始点をNodeAのポート「#1」、終点をNodeHのポート「#1」とする経路計算要求をNodeAが受け付けた場合を説明する。
例えば、図15に示すように、ネットワーク管理端末から経路計算要求を受け付けたNodeAは、トポロジDB108を参照して、NodeAのポート「#1」とNodeHのポート「#1」とにF Bit「1」が付与されていることを認識する。そして、NodeAは、NodeAのポート「#1」に対して、NodeA内で同一のIDが付与されているポートを検索し、検索の結果、NodeAのポート「#2」をInclude指定する。また、NodeAは、NodeHのポート「#1」に対して、NodeH内で同一のIDが付与されているポートを検索し、検索の結果、NodeHのポート「#2」をInclude指定する。続いて、NodeAは、トポロジDB108を参照して、NodeHのポート「#2」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#3」であるとともに、F Bit「1」が付与されていることを認識する。その後、NodeAは、NodeDのポート「#3」に対して、NodeD内で同一のIDが付与されているポートを検索し、検索の結果、NodeDのポート「#1」をInclude指定する。なお、Include指定は、図15において黒丸で表している。
そして、NodeAは、トポロジDB108を参照して、NodeDのポート「#1」の接続先ノードがNodeCであり、そのポートがNodeCのポート「#3」であることを認識する。ここで、NodeAは、NodeCのポート「#3」と、NodeBのポート「#1」とに制約が存在しないので、Include指定のポートを除いたNodeBのポート「#1」を始点とし、NodeCのポート「#3」を終点とする経路計算を実行する。NodeAは、制約が存在しないNodeBのポート「#1」からNodeCのポート「#3」の経路計算について、コスト値がより小さい経路を選択する。すなわち、NodeAは、「NodeAのポート『#1』,『#2』」、「NodeBのポート『#1』,『#4』」、「NodeCのポート『#2』,『#3』」、「NodeDのポート『#1』,『#3』」、「NodeHのポート『#2』,『#1』」の順の経路計算結果を出力する。なお、経路計算結果は、図15において点線の矢印で表している。
図16は、Muxponder Cardが端点となる場合の経路計算の例を説明する図である。なお、図16に示す各ポート付近に記載の値は、各ポートのRest Info「ID(F Bit)」を表している。また、各ノード間のポート同士を接続する経路に記載の値は、コスト値を表している。また、図16に示すNodeA及びNodeDのポート「#1」と「#2」とは、Transponder Cardを想定している。また、図16に示すNodeA及びNodeDのポート「#3−1」〜「#3−4」と、「#4」とは、Muxponder Cardを想定している。図16では、NodeA〜NodeDまでの通信装置を含むネットワークにおいて、始点をNodeAのポート「#1」、終点をNodeDのポート「#3−1」とする経路計算要求をNodeAが受け付けた場合を説明する。
例えば、図16に示すように、ネットワーク管理端末から経路計算要求を受け付けたNodeAは、トポロジDB108を参照して、NodeAのポート「#1」とNodeDのポート「#3−1」とにF Bit「1」が付与されていることを認識する。そして、NodeAは、NodeAのポート「#1」に対して、NodeA内で同一のIDが付与されているポートを検索し、検索の結果、NodeAのポート「#2」をInclude指定する。また、NodeAは、NodeDのポート「#3−1」に対して、NodeD内で接続可能なポート「#4」を検索し、検索の結果、NodeDのポート「#4」をInclude指定する。なお、Include指定は、図16において黒丸で表している。
そして、NodeAは、トポロジDB108を参照して、NodeAのポート「#1」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#1」であることを認識する。また、NodeAは、トポロジDB108を参照して、NodeDのポート「#4」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#4」であることを認識する。ここで、NodeAは、NodeBのポート「#1」と「#4」とに制約が存在しないので、Include指定のポートを除いたNodeBのポート「#1」を始点とし、NodeBのポート「#4」を終点とする経路計算を実行する。すなわち、NodeAは、「NodeAのポート『#1』,『#2』」、「NodeBのポート『#1』,『#4』」、「NodeDのポート『#4』,『#3−1』」の順の経路計算結果を出力する。なお、経路計算結果は、図16において点線の矢印で表している。
図17は、F Bitを利用しない場合の経路計算の例を説明する図である。なお、図17に示す各ポート付近に記載の値は、各ポートのRest Info「ID(F Bit)」を表している。但し、図17の説明では、F Bitを利用しない経路計算を説明する。また、各ノード間のポート同士を接続する経路に記載の値は、コスト値を表している。また、図17に示すNodeA及びNodeDのポート「#3」と「#4」とは、Transponder Cardを想定している。同様に、図17に示すNodeBのポート「#1」と「#4」とは、Transponder Cardを想定している。図17では、NodeA〜NodeDまでの通信装置を含むネットワークにおいて、始点をNodeAのポート「#5」、終点をNodeDのポート「#5」とする経路計算要求をNodeAが受け付けた場合を説明する。
例えば、図17に示すように、NodeAは、トポロジDB108を参照して、NodeAのポート「#5」に接続可能なポート「#6」、「#7」及び「#8」を取得する。ここでは、NodeAは、コスト値が同一となるNodeAのポート「#7」と「#8」とのうち、ポート「#7」を選択したと仮定する。そして、NodeAは、トポロジDB108を参照して、NodeAのポート「#7」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#3」であることを認識する。
続いて、NodeAは、トポロジDB108を参照して、NodeBのポート「#3」に接続可能なポート「#5」及び「#6」を取得する。このとき、NodeAは、NodeBのポート「#5」と「#6」とのうち、コスト値のより小さいNodeBのポート「#5」を選択する。その後、NodeAは、トポロジDB108を参照して、NodeBのポート「#5」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#4」であることを認識する。
そして、NodeAは、NodeDについて、終点のポート「#5」が存在するノードであるので、トポロジDB108を参照して、NodeDのポート「#4」と「#5」とが接続可能であるか否かを判定する。このとき、NodeAは、NodeDのポート「#4」と「#5」とのIDが異なるので、図17に示す(A)の経路は接続できないことを認識する。
そこで、NodeAは、1ホップ分戻したNodeBのポート「#3」から再計算を実行する。再計算において、NodeAは、NodeBのポート「#3」に接続可能なポート「#6」を選択する。そして、NodeAは、トポロジDB108を参照して、NodeBのポート「#6」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#7」であることを認識する。
続いて、NodeAは、NodeDについて、終点のポート「#5」が存在するノードであるので、トポロジDB108を参照して、NodeDのポート「#7」と「#5」とが接続可能であるか否かを判定する。このとき、NodeAは、NodeDのポート「#7」と「#5」とのIDが同一であるので、図17に示す(B)の経路を計算結果として出力する。すなわち、NodeAは、「NodeAのポート『#5』,『#7』」、「NodeBのポート『#3』,『#6』」、「NodeDのポート『#7』,『#5』」の順の経路計算結果を出力する。
図18は、F Bitを利用しない場合の経路計算の例を説明する図である。なお、図18に示す各ポート付近に記載の値は、各ポートのRest Info「ID(F Bit)」を表している。但し、図18の説明では、F Bitを利用しない経路計算を説明する。また、各ノード間のポート同士を接続する経路に記載の値は、コスト値を表している。また、図18に示すNodeAのポート「#3」と「#4」とは、Transponder Cardを想定している。同様に、図18に示すNodeBのポート「#1」と「#4」とは、Transponder Cardを想定している。また、図18に示すNodeDのポート「#3」と「#4」と「#7」とは、SWを内蔵したIF Card又はSW Cardを経由するIF Card等を想定している。図18では、NodeA〜NodeDまでの通信装置を含むネットワークにおいて、始点をNodeAのポート「#5」、終点をNodeDのポート「#5」とする経路計算要求をNodeAが受け付けた場合を説明する。
例えば、図18に示すように、NodeAは、トポロジDB108を参照して、NodeAのポート「#5」に接続可能なポート「#6」、「#7」及び「#8」を取得する。ここでは、NodeAは、コスト値が同一となるNodeAのポート「#7」と「#8」とのうち、ポート「#7」を選択したと仮定する。そして、NodeAは、トポロジDB108を参照して、NodeAのポート「#7」の接続先ノードがNodeBであり、そのポートがNodeBのポート「#3」であることを認識する。
続いて、NodeAは、トポロジDB108を参照して、NodeBのポート「#3」に接続可能なポート「#5」及び「#6」を取得する。このとき、NodeAは、NodeBのポート「#5」と「#6」のうち、コスト値のより小さいNodeBのポート「#5」を選択する。その後、NodeAは、トポロジDB108を参照して、NodeBのポート「#5」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#4」であることを認識する。
そして、NodeAは、NodeDについて、終点のポート「#5」が存在するノードであるので、トポロジDB108を参照して、NodeDのポート「#4」と「#5」とが接続可能であるか否かを判定する。このとき、NodeAは、NodeDのポート「#4」と「#5」とのIDが異なるので、図18に示す(A)の経路は接続できないことを認識する。
そこで、NodeAは、1ホップ分戻したNodeBのポート「#3」から再計算を実行する。再計算において、NodeAは、NodeBのポート「#3」に接続可能なポート「#6」を選択する。そして、NodeAは、トポロジDB108を参照して、NodeBのポート「#6」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#7」であることを認識する。
続いて、NodeAは、NodeDについて、終点のポート「#5」が存在するノードであるので、トポロジDB108を参照して、NodeDのポート「#7」と「#5」とが接続可能であるか否かを判定する。このとき、NodeAは、NodeDのポート「#7」と「#5」とのIDが異なるので、図18に示す(B)の経路は接続できないことを認識する。
そこで、NodeAは、さらに1ホップ分戻したNodeAのポート「#5」から再計算を実行する。再計算において、NodeAは、NodeAのポート「#5」に接続可能なポート「#8」を選択する。そして、NodeAは、トポロジDB108を参照して、NodeAのポート「#8」の接続先ノードがNodeCであり、そのポートがNodeCのポート「#1」であることを認識する。
続いて、NodeAは、NodeCのポート「#1」に接続可能なポート「#2」を選択する。その後、NodeAは、トポロジDB108を参照して、NodeCのポート「#2」の接続先ノードがNodeDであり、そのポートがNodeDのポート「#8」であることを認識する。
そして、NodeAは、NodeDについて、終点のポート「#5」が存在するノードであるので、トポロジDB108を参照して、NodeDのポート「#8」と「#5」とが接続可能であるか否かを判定する。このとき、NodeAは、NodeDのポート「#8」と「#5」とのIDが同一であるので、図18に示す(C)の経路を計算結果として出力する。すなわち、NodeAは、「NodeAのポート『#5』,『#8』」、「NodeCのポート『#1』,『#2』」、「NodeDのポート『#8』,『#5』」の順の経路計算結果を出力する。
[トポロジ情報設定処理]
次に、図19を用いて、実施例1に係るIF Card設定時のトポロジ情報設定処理を説明する。図19は、実施例1に係るIF Card設定時のトポロジ情報設定処理の流れの例を示すフローチャートである。
例えば、図19に示すように、通信装置100は、ネットワーク管理端末からIF Cardに関する設定要求を受け付ける(S101)。そして、通信装置100は、通信装置100内に含まれるIF CardのCard種別を判定する(S102)。このとき、通信装置100は、Card種別がTransponder Cardである場合に、該当するTransponder Cardが有するポートそれぞれに、通信装置100内で固有の同一IDを付与する(S103)。その後、通信装置100は、F Bitに「1」を設定する(S104)。
また、通信装置100は、Card種別がMuxponder Cardである場合に、該当するMuxponder Cardの多重元の複数のポートに対して、通信装置100内で固有のIDをポート毎に付与する(S105)。そして、通信装置100は、該当するMuxponder Cardの多重先のポートに対して、多重元に設定したIDをORした値を付与する(S106)。その後、通信装置100は、F Bitに「1」を設定する(S107)。
また、通信装置100は、Card種別がSW盤内蔵のIF Cardである場合に、該当するIF Cardが有するポートに、通信装置100内で固有の同一IDを付与する(S108)。そして、通信装置100は、F Bitに「0」を設定する(S109)。
また、通信装置100は、Card種別が通常のIF Cardである場合に、該当するIF Card間で同一で、通信装置100内で固有のIDを付与する(S110)。そして、通信装置100は、F Bitに「0」を設定する(S111)。その後、通信装置100は、F BitとIDとが設定されたRest Infoを含むOpaque LSAを生成して隣接する通信装置に広告する(S112)。
次に、図20を用いて、実施例1に係るIF Card削除時のトポロジ情報設定処理を説明する。図20は、実施例1に係るIF Card削除時のトポロジ情報設定処理の流れの例を示すフローチャートである。
例えば、図20に示すように、通信装置100は、ネットワーク管理端末からIF Cardに関する削除要求を受け付ける(S201)。そして、通信装置100は、該当するIF CardのRest Infoを含むOpaque LSAを削除するとともに、削除によって生じる他のIF CardのRest Infoの変更も実行する(S202)。なお、通信装置100は、更新後のRest Infoを含むOpaque LSAを隣接する通信装置に広告する。
次に、図21を用いて、実施例1に係るIF Card変更時のトポロジ情報設定処理を説明する。図21は、実施例1に係るIF Card変更時のトポロジ情報設定処理の流れの例を示すフローチャートである。なお、図21では、当初には制約を有するIF Cardが、ハードウェアの改版等によって制約が解除される場合の処理を説明する。
例えば、図21に示すように、通信装置100は、ネットワーク管理端末からIF Cardに関する変更要求を受け付ける(S301)。そして、通信装置100は、該当するIF CardのIDを通常のIF Card間で付与されているIDに更新する(S302)。続いて、通信装置100は、Rest Infoを含むOpaque LSAを隣接する通信装置に再広告する(S303)。
次に、図22を用いて、実施例1に係る制約変更時のトポロジ情報設定処理を説明する。図22は、実施例1に係る制約変更時のトポロジ情報設定処理の流れの例を示すフローチャートである。なお、図22では、ユーザが意図してあるポートの制約を設定又は削除する場合の処理を説明する。
例えば、図22に示すように、通信装置100は、ネットワーク管理端末からあるポートに対してIDを設定、或いは、削除する通知を受け付ける(S401)。そして、通信装置100は、IDを設定する通知であるか否かを判定する(S402)。このとき、通信装置100は、IDを設定する通知である場合に(S402肯定)、ID情報を対象のポートに設定し、接続可能なポートが固定になる場合にはF Bitに「1」を設定する(S403)。
また、通信装置100は、同一IDを持つポートが既に存在する場合に、接続可能なポートが複数存在すればF Bit「0」、接続可能なポートが1つに固定であればF Bit「1」として、変更したOpaque LSAを広告する(S404)。また、通信装置100は、IDを新たに設定したポートについて、Rest Infoを追加したOpaque LSAを再広告する(S405)。
一方、通信装置100は、IDを削除する通知の場合に(S402否定)、同一IDが付与された他のポートが存在すれば、接続状態に応じて他のポートのF Bitを更新する(S406)。すなわち、通信装置100は、接続可能なポートが複数存在すればF Bitを「0」に、接続可能なポートが1つに固定であればF Bitを「1」に更新して、F Bitに変更が生じた場合に、Opaque LSAを再広告する。また、通信装置100は、IDが削除されたポートについて、Rest Infoを削除したOpaque LSAを再広告する(S407)。
[経路計算処理]
次に、図23を用いて、実施例1に係る制約事項を経路計算に反映する処理を説明する。図23は、実施例1に係る制約事項を経路計算に反映する処理の流れの例を示すフローチャートである。
例えば、図23に示すように、通信装置100は、ネットワーク管理端末から経路計算要求を受け付ける(S501)。経路計算要求には、指定された始点及び終点のポート情報等が含まれる。そして、通信装置100は、トポロジDB108を参照して、指定された始点のポートのF Bitが「1」であるか否かを判定する(S502)。このとき、通信装置100は、始点のポートのF Bitが「1」である場合に(S502肯定)、始点のポートに接続可能なポートを検索する(S503)。そして、通信装置100は、検索したポートをInclude指定する(S504)。続いて、通信装置100は、トポロジDB108を参照して、検索したポートに対向する通信装置のポートを検索する(S505)。その後、通信装置100は、対向する通信装置のポートのF Bitが「1」であるか否かを判定する(S506)。このとき、通信装置100は、F Bitが「1」である場合に(S506肯定)、接続可能なポートをさらに検索するS503の処理を実行する。
一方、通信装置100は、F Btiが「0」である場合に(S506否定)、トポロジDB108を参照して、指定された終点のポートのF Bitが「1」であるか否かを判定する(S507)。このとき、通信装置100は、終点のポートのF Bitが「1」である場合に(S507肯定)、終点のポートに接続可能なポートを検索する(S508)。そして、通信装置100は、検索したポートをInclude指定する(S509)。続いて、通信装置100は、トポロジDB108を参照して、検索したポートに対向する通信装置のポートを検索する(S510)。その後、通信装置100は、対向する通信装置のポートのF Bitが「1」であるか否かを判定する(S511)。このとき、通信装置100は、F Bitが「1」である場合に(S511肯定)、接続可能なポートをさらに検索するS508の処理を実行する。
一方、通信装置100は、F Bitが「0」である場合に(S511否定)、Include指定した箇所の内側に存在する経路における経路計算を実行する(S512)。そして、通信装置100は、経路計算した経路と、Include指定したポートとを合わせた経路を経路計算結果として出力する(S513)。なお、通信装置100は、始点のポートのF Bitが「0」である場合に(S502否定)、S507の処理を実行する。また、通信装置100は、終点のポートのF Bitが「0」である場合に(S507否定)、S512の処理を実行する。また、通信装置100は、始点及び終点のポートのF Bitが「0」である場合、若しくは、Rest Infoが付与されていない場合には、Include指定は行なわない。
次に、図24を用いて、実施例1に係る経路計算処理を説明する。図24は、実施例1に係る経路計算処理の流れの例を示すフローチャートである。
例えば、図24に示すように、通信装置100は、経路計算を実行する場合に、経路検索元となるポートのOpaque LSAをトポロジDB108から取得する(S601)。そして、通信装置100は、経路検索元となるポートが終点となるポートを含む通信装置内のポートであるか否かを判定する(S602)。このとき、通信装置100は、終点となるポートを含む通信装置内のポートでないと判定した場合に(S602否定)、Opaque LSA内の経路検索元となるポートにRest Infoが付与されているか否かを判定する(S603)。
このとき、通信装置100は、経路検索元となるポートにRest Infoが付与されていない場合に(S603否定)、接続先に制約がないので、Rest Infoが付与されていないポートから最適な経路を選択する(S604)。最適な経路とは、例えば、コスト値がより小さい経路のことである。一方、通信装置100は、経路検索元となるポートにRest Infoが付与されている場合に(S603肯定)、F Bitが「1」であるか否かを判定する(S605)。
このとき、通信装置100は、F Bitが「0」である場合に(S605否定)、接続可能なIDを有するポートから最適経路を選択する(S606)。一方、通信装置100は、F Bitが「1」である場合に(S605肯定)、接続可能なIDを有するポートを次の経路として選択する(S607)。そして、通信装置100は、選択したポートを経路検索元として(S608)、再度S601の処理を実行する。
また、通信装置100は、S602において、終点となるポートを含む通信装置内のポートであると判定した場合に(S602肯定)、経路検索元のポートのRest Infoを取得する(S609)。また、通信装置100は、終点となるポートのRest Infoもさらに取得する(S610)。そして、通信装置100は、経路検索元のポートと終点となるポートとが接続可能か否かを判定する(S611)。
このとき、通信装置100は、経路検索元のポートと終点となるポートとが接続可能である場合に(S611肯定)、それまでに選択してきたポートを経路計算結果として出力する(S612)。一方、通信装置100は、経路検索元のポートと終点となるポートとが接続不可能である場合に(S611否定)、S613の処理を実行する。S613の処理では、通信装置100は、1ホップ分戻したポートを経路検索元とし、経路として選択できなかったポートが次回に選択されないようにする。また、S613の処理では、通信装置100は、1ホップ分戻したポートで経路選択できない場合には、さらに1ホップ戻して再度経路検索していく処理を実行していき、経路選択できなければ始点ノードのポートまで経路検索元を戻す。そして、通信装置100は、全ての経路について検索済みであるか否かを判定する(S614)。このとき、通信装置100は、全ての経路について検索済みである場合に(S614肯定)、指定された始点のポートから終点のポートまでの経路について、選択可能な経路がないので、エラーを出力して処理を終了する。一方、通信装置100は、全ての経路について検索済みでない場合に(S614否定)、S601の処理を実行する。
[実施例1による効果]
上述したように、通信装置100は、経路計算において制約がある場合でも、制約を加味した経路を選択するので、制約を加味した経路計算を実行できずにエラーが発生する従来技術と比較して、データ伝送に係る経路の選択を正確に実行することができる。また、通信装置100は、始点及び終点のポートが指定された場合に、自律的に経路計算を実行するので、保守者等のユーザにデータ伝送に係る制約を意識させることなく、複数の通信装置を含むネットワークにおけるGMPLSでの運用を可能としている。また、通信装置100は、経路計算において、経由することを要する経路を判定し、経由する経路を経路計算の対象外として実行するので、計算量を削減するとともに処理負荷を削減することができる。