以下、本発明の実施の形態の詳細を説明するが、実施の形態に共通の前提として、PONはイーサネット(登録商標)ベースのPON(EPON)であり、IEEE802.3ahで定義されたMPCPフレームによってONUの登録、離脱、ONUへの帯域割当およびONUからの帯域要求などが行なわれるものとする。
<第1の実施の形態>
[構成および基本動作]
図1は、本発明の第1の実施の形態に係る局側装置の概略構成を示すブロック図である。
図1を参照して、PONシステム301は、局側装置1aと、光ファイバであるN本のPON回線1〜N(3−1〜3−N)と、N個の光カプラ4−1〜4−Nと、複数の宅側装置(ONU)2とを備える。局側装置1aは、光スイッチ11aと、光回線ユニット(以下、OSU(Optical Subscriber Unit)とも呼ぶ。)1〜N+1(12−1〜12−N+1)と、集線部13aと、局側装置1aの全体的な制御を行なう全体制御部14とを含む。Nは2以上の整数である。
局側装置1aは、N本のPON回線1〜Nに接続され、このN本のPON回線を終端する。PON回線1〜Nは、光カプラ4−1〜4−Nにそれぞれ接続されており、これらの光カプラを介して複数のONUにそれぞれ接続されている。
局側装置1aは、たとえば、N:1の冗長構成を有している。すなわち、N+1個のOSUのうち、OSU1〜Nが運用系(現用)OSUであり、OSU N+1が待機系(予備)OSUである。なお、局側装置1aは、2個以上の待機系OSUを含む構成であってもよい。
また、OSU1〜N+1は、同一筐体に収容されており、OSUおよびONU間の通信が停止することなくOSUの冗長切り替えを行なうために、各ONUから見た対応のOSUを見た光ファイバの長さすなわち通信経路の長さが実質的に同じであると見なせるように設けられている。たとえば、OSUおよびONU間のリンクが切断に至る往復伝播時間RTT(Round Trip Time)変動の典型的な閾値は128ナノ秒(ns)であり、これを光ファイバ長の差に換算すると約128mに相当する。したがって光ファイバの長さのばらつきが数m以内であれば、OSUの冗長切り替え時にRTT変動に起因してリンクが切断されることはない。なお、光ファイバの長さのばらつきは、任意のONUからOSU1〜N+1に至るまでの光ファイバを対象とするONUごとの値であり、ONU間での光ファイバ長のばらつきを意味しない。
光スイッチ11aは、全体制御部14からの指示に従い、N+1個のOSU1〜N+1(12−1〜12−N+1)と、N本のPON回線1〜N(3−1〜3−N)との間の通信経路を切り替える。
集線部13aは、OSU1〜N+1(12−1〜12−N+1)からの上りフレームを多重して上位ネットワーク(以下、アップリンクとも呼ぶ。)に送信するとともに、アップリンクから受信した下りフレームを適切なOSUに振り分ける処理を行なう。
全体制御部14は、局側装置1aおよびONU2間の通信を制御する。たとえば、局側装置1aと通信を行なうべき複数のONUの登録および登録抹消処理、上り帯域割り当て処理ならびに上り通信信号の送信タイミング設定処理を一括して行なう。
図2は、光スイッチ11aの構成例を示す図である。この光スイッチ11aにおいては、PON側のN本の光ファイバと、OSU側のN本の光ファイバとが対向して配置されている。以下、これらのN組の光ファイバを、運用系光ファイバとも呼ぶ。
OSU側の各光ファイバの端面近くにコリメートレンズ23−1〜23−Nが配置され、PON回線側の各光ファイバの端面近くにコリメートレンズ24−1〜24−Nが配置されており、通常状態では対向している光ファイバ間で光空間伝送が行なわれるようになっている。このN組の運用系光ファイバによるN本の光軸は、同一平面上で平行となるように配置される。
可動ミラー22は、アクチュエータ21によって駆動され、N本の光ファイバ3−1〜3−Nの光軸と直交する軸上を移動する。可動ミラー22は、運用系光ファイバによるN本の光軸と可動ミラー22の移動軸との各交点、および待機系光ファイバの端面付近のうちのいずれかに位置する。アクチュエータ21は、全体制御部14からの制御信号に従い、可動ミラー22を上記(N+1)個の位置のいずれかに移動させる。なお、全体制御部14からの制御信号は、OSU冗長切り替えの有無および待機系OSUと接続するPON回線の番号を示し、アクチュエータ21はこの制御信号に基づいて可動ミラー22を移動させる。
可動ミラー22は、運用系光ファイバの光軸に対して45°だけ傾いており、PON回線側の光ファイバからの光線を、可動ミラー22の移動軸方向に反射する。可動ミラー22で反射された光線は、コリメートレンズ23−N+1を介して予備系光ファイバ3−N+1に入射される。
また、予備系光ファイバ3−N+1からの光線は可動ミラー22で反射され、可動ミラー22の位置に対応するPON回線側の光ファイバに入射されるので、可動ミラー22の位置に対応するPON回線側の光ファイバと予備系光ファイバ3−N+1との間で光空間伝送を行なうことができる。
ここで、可動ミラー22を移動させる際、可動ミラー22を一旦z方向(図2において紙面の表から裏への方向)にずらしてからx方向に移動させるなどすることにより、対向している光ファイバ対の中で切り替えに無関係な光ファイバ対間の光空間伝送に影響を与えないようにする。
図3は、OSUの構成例を示すブロック図である。OSUは、PON通信処理部39と、PON送受信部35とを含む。PON通信処理部39は、集線IF(Interface)部31と、制御IF部32と、受信処理部33と、送信処理部34と、局所制御部36と、上りフレームを蓄積するFIFO1(37)と、下りフレームを蓄積するFIFO2(38)とを含む。局所制御部36は、監視部81と、PON回線制御部82とを含む。
なお、図3〜図5においては、後述の第2の実施の形態で説明する二重化を含むようにOSU、集線部および制御部の構成が記載されている。本発明の第1の実施の形態に係る局側装置では、集線IF部31および制御IF部32は二重化されておらず、それぞれ1つの集線部13aおよび全体制御部14に接続される。
PON送受信部35は、光スイッチ11aと1本の光ファイバで接続され、この光ファイバ上で双方向通信が行なえるように、特定の波長、たとえば1310nm帯の上り光信号を受信し、電気信号に変換して受信処理部33に出力するとともに、送信処理部34から出力される電気信号を別波長、たとえば1490nm帯の下り光信号に変換して送信する。
受信処理部33は、PON送受信部35から受けた電気信号からフレームを再構成するとともに、フレームの種別に応じて制御IF部32、局所制御部36またはFIFO1(37)にフレームを振り分ける。具体的には、ユーザフレームをFIFO1(37)に出力し、ループバック試験などの特殊な制御フレームおよび試験フレームを局所制御部36に出力し、その他一般の制御フレームを制御IF部32および局所制御部36の両方に出力する。このとき、一般の制御フレームに含まれるMPCPフレームに対して、受信タイムスタンプを付加する。
全体制御部14が正常な場合には、PONを管理運用する制御プロトコルは全体制御部14が終端する。ただし、全体制御部14の処理負荷を軽減するために、特定のプロトコルは局所制御部36が終端してもよい。本実施の形態においては、OAMの一種であるONUに対するループバック試験は、全体制御部14からの指示に応じて局所制御部36が行なう。すなわち、局所制御部36は、ループバック試験モードの設定、ループバック試験フレームの生成、ループバックによって返ってきたフレームの検査、結果の通知およびループバックモードの解除を行なう。
また、監視部81は、全体制御部14が複数のONUによるOSU1〜N+1への上り通信信号の送信を制御するPON回線制御を行なっているとき、対応のOSUと通信しているONUについてのPON回線制御の内容を監視する。
PON回線制御部82は、監視部81による監視結果に基づいて、全体制御部14に代わり、対応のOSUと通信すべきONUによる上り通信信号の送信を制御するPON回線制御を行なう。なお、局所制御部36による上記監視動作および上記PON回線制御の詳細については後述する。
また、受信処理部33は、どのロジカルリンクからフレームをいつからいつまで受信するかを示すグラント情報を送信処理部34から受けて、PON送受信部35へバースト受信を支援するための制御信号を出力してもよい。また、受信処理部33は、グラント情報を受けて、グラント情報に示されていない受信フレームをフィルタリングする、すなわち廃棄するようにしてもよい。
集線IF部31は、FIFO1(37)に蓄積された上りフレームを集線部13aに送るとともに、集線部13aから受けた下りフレームをFIFO2(38)に蓄積する。このとき、集線IF部31は、集線部13aの信号形式と内部信号形式との変換を行なう。
送信処理部34は、FIFO2(38)または局所制御部36が送信すべきフレーム/メッセージを有する場合、優先順位に従ってそのフレーム/メッセージを受け取り、フレームを組み立ててPON送受信部35に出力する。また、送信処理部34は、制御IF部32からメッセージを受け取り、当該メッセージがPON回線に送信すべき制御メッセージであった場合には、フレームを組み立ててFIFO2(38)または局所制御部36からのフレームに優先してPON送受信部35に出力する。このとき、MPCPフレームに対して、送信時のタイムスタンプを上書きして出力するようにしてもよい。また、送信処理部34は、制御IF部32からのゲートメッセージに記されているグラント情報を受信処理部33に出力する。なお、送信処理部34は、制御IF32からのメッセージがOSU管理メッセージであれば、当該メッセージを無視する。
制御IF部32は、受信処理部33または局所制御部36から受けたメッセージを全体制御部14に出力するとともに、全体制御部14から受けたメッセージを送信処理部34および局所制御部36に出力する。このとき、制御IF部32は、全体制御部14の信号形式と内部信号形式との変換を行なう。
受信処理部33は、受信フレーム数および受信信号のエラー数などの統計情報を収集し、また、送信処理部34は、送信フレーム数などの統計情報を収集し、それぞれ局所制御部36からの問合せに応答する。この統計情報は、後述のように、障害の検出にも利用される。
また、PON送受信部35は、自らの送信光レベルをモニタしており、故障および発光素子の経年劣化によって送信光レベルが規定範囲外となった場合に、局所制御部36に送信光異常を通知する。
図4は、集線部13aの構成例を示すブロック図である。この集線部13aは、アップリンク送受信部41と、下り配信部42と、集線制御部43と、制御IF部44と、OSU IF部1〜N+1(45−1〜45−N+1)と、フィルタ部1〜N+1(46a−1〜46a−N+1)と、FIFO47−1〜47−N+1と、セレクタ48とを含む。
OSU IF部i(i=1〜N+1)は、対応するOSUiから送られる上りフレームを内部信号形式に変換し、フィルタ部iを経由してFIFO47−1〜47−N+1にそれぞれ一時的にバッファリングする。
集線制御部43は、FIFO47−1〜47−N+1の状態を管理しており、空でないFIFOを対象にアップリンクへの出力順序を決め、FIFOからアップリンク送受信部41への上りフレームの転送を指示する。このとき、集線制御部43は、セレクタ48を制御し、FIFOから出力された上りフレームがセレクタ48を経由してアップリンク送受信部41に到達するように設定を行なう。
アップリンク送受信部41は、セレクタ48から出力される上りフレームをアップリンクに送信するとともに、アップリンクから受信した下りフレームを下り配信部42に出力する。
下り配信部42は、アップリンク送受信部41から受けた下りフレームをコピーし、フィルタ部1〜N+1(46a−1〜46a−N+1)に出力する。
フィルタ部i(i=1〜N+1)は、下りフレームに格納されたVLAN(Virtual LAN)ヘッダ情報を参照して、どのPON回線iに送信されるべきフレームであるかを判断する。そして、フィルタ部iは、送信されるべきでない下りフレームをフィルタリングするとともに、送信されるべき下りフレームに対してヘッダの変換などの必要な処理を行なってOSU IF部iに出力する。また、フィルタ部iは、全体制御部14が有する冗長構成に関する情報に基づいて、上りパスおよび下りパスの接続または切断を行なう。
OSU N+1に対応するフィルタ部N+1(46a−N+1)は、他のすべてのフィルタ部の設定を保持し、切り替えられた回線に対応する設定を選択して適用するようにしてもよい。ここで、フィルタ部の設定とは、PON回線のロジカルリンク識別子との対応関係を含むVLAN情報、特殊な予約MACアドレスなどの下りフレームをフレーム毎にフィルタリングするために使用される情報、および冗長構成に応じてパス全体での接続/切断を行なうために使用される情報などである。
制御IF部44は、全体制御部14と通信を行ない、集線部13aの各部の設定および状態の通知ならびに警報の転送などを行なう。
また、アップリンク送受信部41は、送信フレーム数、受信フレーム数、および受信信号のエラー数などの統計情報を収集し、全体制御部14からの問い合わせに応じてこれらの統計情報を制御IF部44を介して全体制御部14に出力する。また、アップリンク送受信部41は、アップリンクにおける対向装置との物理層レベルでのリンク確立/切断を検出するとともに、自らの出力信号をモニタすることによって送信異常を検出する。アップリンク送受信部41は、アップリンクの切断および送信異常を検出した場合に、対応する警報を制御IF部44を介して全体制御部14に通知する。
図5は、全体制御部14の構成例を示すブロック図である。この全体制御部14は、CPU(Central Processing Unit)51と、ROM(Read Only Memory)52と、RAM(Random Access Memory)53と、IO(Input Output)制御部54と、OSU IF部55と、共有RAM56と、時計・タイマ57とを含む。
OSU IF部55は、OSU1〜N+1(12−1〜12−N+1)と接続され、ONUとの間で送受信される、PONを制御するための制御フレーム、ならびにOSUを管理および制御するためのOSU管理情報をメッセージ通信により送受信する。これらのメッセージは、共有RAM56に含まれる入力メッセージキューIQおよび出力メッセージキューEQを介してCPU51との間で送受信される。なお、入力メッセージキューIQにはOSU IF部55からのメッセージが格納され、出力メッセージキューEQにはCPU51からのメッセージが格納される。入力メッセージキューIQはOSU毎に設けられている。また、OSU IF部55による出力メッセージキューEQにおけるメッセージの取り出しは十分速いため、出力メッセージキューEQはOSU毎に設けなくてもよい。
IO制御部54は、CPU51からのコマンドを受けて、集線部13aおよび光スイッチ11aの設定および状態管理などを行なうとともに、オペレータに対して局側装置1aの操作インタフェース(以下、操作IFとも呼ぶ。)を提供する。また、IO制御部54は、操作IF、集線部13aおよび光スイッチ11aからの応答および警報などのイベントを受けると、CPU51に割込みとして通知する。
時計・タイマ57は、PONを管理するための時計および各種タイマを含み、CPU51に対して時刻およびタイマ終了の割込みを出力する。なお、時計を駆動するための基準クロック信号は各OSUにも与えられており、管理通信による定期的な時刻通知と併せて、各OSUの時計の同期がとられている。
ROM52は、全体制御部14を制御するためのプログラムおよび固定データなどを格納している。RAM53は、データを一時的に記憶するワークエリアなどとして使用される。
CPU51は、ROM52からプログラムを読み込んで実行するとともに、ROM52に記憶される固定データ読み込んだり、RAM53に対するデータの読み出し/書き込みを行なったりすることにより、後述する種々の処理を実行する。
全体制御部14の処理には、単一のCPUおよびプログラムですべてのPONを制御しつつ、迅速なOSUの冗長切り替え/切り戻しを実施するために、仮想OSUおよびOSU変換という概念が導入されている。なお、切り戻しとは、冗長切り替えを行なった後、冗長切り替え前の状態に戻すことを意味する。
CPU51がプログラムを実行することにより通常インタフェースするOSUは、仮想OSUである。すなわち、OSU変換を行なうことにより仮想OSUを実OSUにインタフェースする。たとえば、PON回線iの終端をOSUiからOSU N+1に切り替えるときに、OSU変換を(仮想OSUi⇔実OSUi)から(仮想OSUi⇔実OSU N+1)に変更する。これにより、OSUの冗長切り替え/切り戻しの状態にかかわらず、仮想OSUiをPON回線iに対応させることができる。
このようなOSU変換は、CPU51によるソフトウェア処理で実現されてもよいし、OSU IF部55によるハードウェア処理で実現されてもよい。ただし、OSUを管理および制御するためのOSU管理メッセージに関しては、CPU51がプログラムを実行して、実OSUを直接指定してメッセージ通信を行なうことも可能である。
図6は、局所制御部36の構成例を示すブロック図である。この局所制御部36は、CPU(Central Processing Unit)71と、ROM72と、RAM73と、IO制御部74と、メッセージ送受信部75と、共有RAM76と、時計・タイマ77とを含む。
メッセージ送受信部75は、受信処理部33、送信処理部34および制御IF部32と接続され、ONUとの間で送受信される、PONを制御するための制御フレーム、ならびにOSUを管理および制御するためのOSU管理情報をメッセージ通信により送受信する。これらのメッセージは、共有RAM76に含まれる入力メッセージキューRxQおよびCinQならびに出力メッセージキューTxQおよびCegQを介してCPU71との間で送受信される。なお、入力メッセージキューRxQには受信処理部33からのメッセージが格納され、出力メッセージキューTxQには送信処理部34へのメッセージが格納される。また、入力メッセージキューCinQには制御IF部32からのメッセージが格納され、出力メッセージキューCegQには制御IF部32へのメッセージが格納される。
IO制御部74は、CPU71からのコマンドを受けて、受信処理部33、送信処理部34、PON送受信部35、および集線IF部31の設定および状態問合せなどを行なう。また、IO制御部74は、受信処理部33、送信処理部34、PON送受信部35および集線IF部31からの応答および警報などのイベントを受けると、CPU71に割込みとして通知する。
また、図示しない故障検出部がOSUの電源電圧低下および温度上昇などを検出すれば、IO制御部74は、故障イベントの割り込みとしてCPU71に通知する。
時計・タイマ77は、PONを管理するための時計および各種タイマを含み、CPU71に対して時刻およびタイマ終了の割込みを出力する。
なお、局所制御部36は、自己の時計を駆動するための基準クロック信号の供給を全体制御部14から受ける。また、局所制御部36は、管理通信により全体制御部14から定期的に送られる時刻情報に基づいて、自己の時計を全体制御部14の時計に同期させる。ただし、全体制御部14の異常などで基準クロック信号の品質が劣化した場合および時刻情報の通知が途絶した場合には、局所制御部36の時計は自走する。
ROM72は、局所制御部36が種々の処理を行なうためのプログラムおよび固定データなどを格納している。RAM73は、データを一時的に記憶するワークエリアなどとして使用される。
CPU71は、ROM72からプログラムを読み込んで実行するとともに、ROM72に記憶される固定データ読み込んだり、RAM73に対するデータの読み出し/書き込みを行なったりすることにより、後述する種々の処理を実行する。
[全体制御部14の各処理]
次に、本発明の第1の実施の形態に係る局側装置における全体制御部14が実行する種々の処理を各処理ごとに図面を用いて説明する。
また、本発明の第1の実施の形態に係る局側装置におけるPON回線制御の代行動作については、以下の全体制御部14の各処理および後述する局所制御部36の各処理を説明した後、これらの各処理を参照しながら説明する。なお、以下のフローチャートにおいて、「==」の記号は等号を示し、「=」の記号は右辺の値を左辺の変数に代入することを示す。また、全体制御部14の各処理の説明において、単にOSUと記せば、仮想OSUと実OSUの区別が無意味な場合を除いて、仮想OSUのことを表す。
図7は、全体制御部14による初期化処理の手順を説明するためのフローチャートである。この初期化処理は、局側装置1aの各部の初期設定を行なうものである。ここで、OSUごとに、OSUテーブルOSUT、ロジカルリンクテーブルLLTおよび最終割当時刻TEが設けられている。ロジカルリンクテーブルLLTの各要素には、ロジカルリンク固有の情報が格納される。具体的には、ロジカルリンクテーブルLLTは、ロジカルリンク状態LLstat、レポート情報RPinfo、レポート最新受信時刻RPtime、往復伝播時間RTTおよびOAMリンク接続性確認フレーム最新受信時刻OAMtを含む。OSUテーブルOSUTの各要素には、OSU固有の情報が格納される。具体的には、OSUテーブルOSUTは、OSU管理メッセージ受信時刻rxtimeを含む。
また、変数activeは、PON回線制御を全体制御部14が行なっているか否かを示す変数である。変数masterは全体制御部14が運用系であるか待機系であるかを示す変数であり、master==YESが運用系を示し、master==NOが待機系を示す。本発明の第1の実施の形態に係る局側装置では、master==YESである。
また、変数activeおよび変数masterは、YESおよびNOに加えて、INおよびOUTの値をとる。INはNOからYESへの遷移状態を示し、OUTはYESからNOへの遷移状態を示す。また、変数protectedはOSUの冗長切替が実施中であるか否かを示す変数である。
変数start_modeは、構成定義情報すなわちユーザによって定義され、起動時の動作を規定する。変数start_modeは、SLEEP、LEARNおよびRUNのいずれかの値をとる。SLEEPはactive==NOを継続すなわち全体制御部14がPON回線制御を行なわない状態を継続することを示す。LEARNは、全体制御部14が、各PON回線の状態すなわち各OSUにおける局所制御部36によるPON回線制御の内容を学習してから、PON回線制御を開始することを示す。RUNは、全体制御部14がPON回線制御を直ちに開始することを示す。
なお、全体制御部14が用いるテーブルおよび変数は、たとえばRAM53に格納されている。
図7を参照して、全体制御部14は、まず、OSUごとの入力メッセージキューIQiと、各OSUで共通の出力メッセージキューEQとを空にし、ロジカルリンクテーブルLLTij(i=1,2,…,N:j∈{OSU iのLLID})をすべてNULLにし、最終割当時刻TEiをすべて現在時刻ctimeにし、OSU変換設定OSUmap(i)をi(i=1,2,…,N)に設定する。また、変数activeおよび変数masterをNOに設定する。また、OSUテーブルOSUTをNULLに設定する。変数protectedは不明(UNKNOWN)である(S11)。
次に、他系の全体制御部と管理通信を行なうことにより(S12)、全体制御部が二重化されているか否か、自己が待機系の全体制御部であるか否かを判定する(S13)。なお、本実施の形態においては全体制御部が二重化されていないが、本発明の第2の実施の形態において説明する全体制御部の二重化についても一緒に説明するために、本実施の形態に係る局側装置の動作手順を示す各フローチャートにはそのような手順も含めている。したがって、本実施の形態においては、必ず運用系の処理が行なわれる。
全体制御部が二重化されており、かつ自己が待機系であれば(S13,YES)、他系の全体制御部の管理情報をコピーし、現在時刻ctimeを運用系のctimeとすることにより時計を運用系に合わせる。また、変数lastCCにctimeを設定する(S14)。そして、管理通信タイマ(TMC)をセットして(S15)、処理を終了する。
また、全体制御部が二重化されていないか、あるいは自己が運用系の場合には(S13,NO)、操作IFを介して構成定義情報を取り込み、変数masterをYESに設定する(S16)。
変数start_modeがRUNである場合には(S17,RUN)、光スイッチ11aおよび集線部13aを初期設定する(S18)。そして、変数activeをYESに設定し、ディスカバリタイマ(TD)をセットし、管理通信タイマ(TMC)をセットして(S19)、処理を終了する。
変数start_modeがLEARNである場合には(S17,LEARN)、各局所制御部36から現在時刻ctimeを取得し、光スイッチ11aの状態を確認し、かつ変数protectedおよびOSU変換設定OSUmapを取得する(S20)。
次に、所定時間スリープし(S21)、後述する起動前処理を行ない(S22)、処理を終了する。ここで、ステップS21におけるスリープ期間において、全体制御部14は、後述するように、各OSUにおける局所制御部36によるPON回線制御の内容を学習する。
変数start_modeがSLEEPである場合には(S17,SLEEP)、各局所制御部36から現在時刻ctimeを取得し、光スイッチ11aの状態を確認し、かつ変数protectedおよびOSU変換設定OSUmapを取得し(S23)、処理を終了する。
図8は、全体制御部14による割り込み処理ルーチンの手順を説明するためのフローチャートである。全体制御部14における処理は大部分が不定期に発生する処理であるため割込みを用いることとし、各割込み処理には優先順位を付ける。ステップS31〜S39の処理においては、S31の処理が最も優先順位が高く、S39の処理が最も優先順位が低いものとする。
全体制御部14は、何らかの割込みが発生し、その割込みが、入力メッセージキューIQにメッセージがあることを示すIQ非空割込みであれば(IQ非空)、メッセージ受信処理を行なって(S31)、処理を終了する。
割込種別が管理通信割込みであれば(管理通信)、管理通信受信処理を行なって(S32)、処理を終了する。ここで、管理通信割込みは、IO制御部54が集線部、光スイッチまたは他系の全体制御部から信号を受信した場合に発生する。また、割込種別が操作IFからの割込みを示す操作IF割込みであれば(操作IF)、操作IF処理を行なって(S33)、処理を終了する。
割込種別がOAM処理起動タイマTOAMijの満了を示すTOAMij満了割込みであれば(TOAMij満了)、OAM処理を行なって(S34)、処理を終了する。
割込種別がディスカバリタイマ(TD)の満了を示すTD満了割込みであれば(TD満了)、ディスカバリ処理を行なって(S35)、処理を終了する。また、割込種別がタイマTLijの満了を示すTLij満了割込みであれば(TLij満了)、レポート(RP)タイムアウト処理を行なって(S36)、処理を終了する。
割込種別が管理通信タイマTMCの満了を示すTMC満了割込みであれば(TMC満了)、定時管理処理を行なって(S37)、処理を終了する。割込種別がタイマTMXの満了を示すTMX満了割込みであれば(TMX満了)、マスタ切り替え後処理を行なって(S38)、処理を終了する。割込種別がタイマTAXの満了を示すTAX満了割込みであれば(TAX満了)、アクティブ切り替え後処理を行なって(S39)、処理を終了する。
図9は、図8に示すディスカバリ処理(S35)の詳細を説明するためのフローチャートである。このディスカバリ処理は、契約されているロジカルリンクがすべて登録状態であれば行なわなくてもよいし、あるPONに対して契約されているロジカルリンクがすべて登録状態であれば、ステップS42およびS43において、そのPON(OSU)に対するディスカバリゲートメッセージの送信をスキップしてもよい。
全体制御部14は、変数master==YESであり、かつ変数active==YESである場合、すなわち自己が運用系であり、かつPON回線制御を行なっている場合には(S41,YES)、まず、OSUk(k=1,2,…,N)に対するディスカバリゲートメッセージを順次作成し、出力メッセージキューEQに入れる。このとき、開始時刻はTEkまたは現在時刻の遅い方を基準とする(S42)。そして、ディスカバリ期間の終わりを新しいTEkとする(S43)。すなわち、ディスカバリウィンドウの配置は、直前のTEkまたは現在時刻の遅い方を基準とし、想定されるRTTの範囲およびレジスタ要求の輻輳状態などを勘案して決められる。
最後に、ディスカバリタイマTDをセットして(S44)、処理を終了する。ディスカバリタイマTDにセットされる値は、予め定められた期間であるdiscovery_intervalである。すなわち、所定周期でOSUに対するディスカバリゲートメッセージが順次発行されることになる。
一方、変数master==NOまたは変数active==NOである場合、すなわち自己が待機系であるか、または自己がPON回線制御を行なっていない場合には(S41,NO)、処理を終了する。
図10は、図8に示すメッセージ受信処理(S31)の詳細を説明するためのフローチャートである。
全体制御部14は、まず、各OSUの入力メッセージキューIQi(i=1,2,・・・,N+1)の中でメッセージが格納されている入力メッセージキューIQiを検索する(S51)。
メッセージが格納されている入力メッセージキューIQiが存在する場合には(S52,NO)、当該入力メッセージキューIQiから先頭メッセージを取り出し、受信タイムスタンプを時刻(変数)Trxに代入する(S53)。
そして、後述する各種の処理を行なうか否かを示す変数skipに値を設定する。すなわち、変数master==YES(S54,YES)かつ変数active==YES(S55,YES)である場合、変数master==OUTかつ時刻Trx<時刻Tcx(S56,YES)かつ変数active==YES(S55,YES)である場合、変数master==INかつ時刻Trx>時刻Tcx(S58,YES)かつ変数active==YES(S55,YES)である場合、変数master==YES(S54,YES)かつ変数active==OUTかつ時刻Trx<時刻Tcx(S57,YES)である場合、変数master==YES(S54,YES)かつ変数active==INかつ時刻Trx>時刻Tcx(S59,YES)である場合には、変数skipにNOを設定する(S60)。また、上記以外の場合、たとえば自己が待機系であるか、または自己がPON回線制御を行なっていない場合には、変数skipにYESを設定する(S61)。そして、メッセージ受信共通処理を行なう(S62)。なお、後述するタイムアウト定数の大小関係によれば、変数masterおよび変数activeが同時に遷移状態になることはない、すなわちINまたはOUTになることはない。
全体制御部14は、メッセージ受信共通処理を行なった後、各OSUの入力メッセージキューIQi(i=1,2,・・・,N+1)の中でメッセージが格納されている入力メッセージキューIQiを再び検索する(S51)。
メッセージが格納されている入力メッセージキューIQiが存在する場合には(S52,NO)、当該入力メッセージキューIQiから先頭メッセージを取り出し、同様の処理を行なう(S53)。
そして、入力メッセージキューIQiがすべて空になると(S52,YES)、処理を終了する。
図11は、図10に示すメッセージ受信共通処理(S62)の詳細を説明するためのフローチャートである。
全体制御部14は、メッセージ種別がレジスタ要求メッセージであれば(S71,レジスタ要求)、レジスタ要求処理を行なって(S72)、処理を終了する。メッセージ種別がレジスタ確認メッセージであれば(S71,レジスタ確認)、レジスタ確認処理を行なって(S73)、処理を終了する。
メッセージ種別がデレジスタ要求メッセージであれば(S71,デレジスタ要求)、デレジスタ処理を行なって(S74)、処理を終了する。メッセージ種別がレポートメッセージであれば(S71,レポート)、レポート受信処理を行ない(S75)、帯域割当処理を行なって(S76)、処理を終了する。
メッセージ種別がOAMメッセージであれば(S71,OAM)、OAMメッセージ処理を行なって(S77)、処理を終了する。メッセージ種別がOSU管理メッセージであれば(S71,OSU管理)、OSU管理メッセージ処理を行なって(S78)、処理を終了する。
図12は、図11に示すレジスタ要求処理(S72)の詳細を説明するためのフローチャートである。
全体制御部14は、OSUiが受信したMACアドレスmのONUからのレジスタ要求メッセージを受けて、変数skip==YESである場合には(S81,YES)、処理を終了する。一方、変数skip==NOである場合には(S81,NO)、送信元ONUが正当か否かを判定する(S82)。
送信元ONUが正当なものであれば(S82,YES)、OSUiに対して新しいLLID(Logical Link ID)jであるLLIDjを割り当てる。そして、ロジカルリンクテーブルLLTijにおける、ロジカルリンク状態LLstatを「登録中」に設定し、レポート情報RPinfoをNULLにし、かつ往復伝播時間RTTに(T2−T1)を設定する(S83)。ここで、T1はONUがメッセージに記録したタイムスタンプであり、T2はOSUiが受信時に追加したタイムスタンプである。
次に、OSUiに対するレジスタメッセージ(w/Ack)を作成して、出力メッセージキューEQに入れる(S84)。このとき、レジスタメッセージの送信先アドレスDAをmとし、LLIDをjとする。なお、(w/Ack)は、Ack(Acknowledgement)が付加されたレジスタメッセージであることを示す。
次に、OSUiのLLIDjに対するゲートメッセージを作成して出力メッセージキューEQに入れる。このとき、開始時刻はTEiまたは現在時刻を基準とし、グラント長はレジスタ確認フレームだけを送信できる量として受信ウィンドウを割り当てる(S85)。
なお、受信ウィンドウの配置は、精度誤差を考慮するとともに、レーザオン/オフのオーバラップは許容したとしても他のロジカルリンクの受信ウィンドウと重ならないようにするのは勿論であるが、当該ゲートメッセージの予定送信時刻よりも、RTTおよびONUの処理時間分だけ先に配置するようにする。
そして、当該グラントのレーザオフの始まりを新しいTEiとし、これにある程度ぶれ時間を見込んだ時刻をタイマTLijにセットし(S86)、処理を終了する。
一方、ONUが正当でない場合には(S82,NO)、OSUiに対するレジスタメッセージ(w/Nack)を作成して出力メッセージキューEQに入れ、レジスタメッセージの送信先アドレスDAをmとし(S87)、処理を終了する。なお、(w/Nack)は、Nack(Negative Acknowledgement)が付加されたレジスタメッセージであることを示す。
図13は、図11に示すレジスタ確認処理(S73)の詳細を説明するためのフローチャートである。
ここでは、OSUiのLLIDjからレジスタ確認メッセージを受信するものとする。全体制御部14は、まず、RTTを更新するRTT更新処理を行ない、RTT更新処理が正常に終了したか否かを判定する(S91)。RTT更新処理において、現在のRTTと新たに算出されたRTTとの差がドリフト許容値を超えていない場合には、RTT更新処理は正常に終了し、当該差がドリフト許容値を超えている場合には、RTT更新処理は異常終了する。
RTT更新処理が正常に終了しなければ(S91,NG)、そのまま処理を終了する。一方、RTT更新処理が正常に終了すれば(S91,OK)、LLTijのロジカルリンク状態LLstatを登録済に設定し、かつレポート最新受信時刻RPtimeに現在時刻ctimeを設定する(S92)。
次に、変数skip==YESである場合には(S93,YES)、処理を終了する。一方、変数skip==NOである場合には(S93,NO)、OSUiのLLIDjに対するゲートメッセージを作成して出力メッセージキューEQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。また、開始時刻はTEiまたは現在時刻を基準とし、グラント長はレポートフレームだけを送信できる量として受信ウィンドウを割り当てる(S94)。
そして、当該グラントのレーザオフの始まりを新しいTEiとし、これにある程度ぶれ時間を見込んだ時刻をタイマTLijにセットし(S95)、OAM処理起動タイマTOAMijをセットして(S96)、処理を終了する。
図14は、RTT更新処理の詳細を説明するためのフローチャートである。全体制御部14は、まず、OSUiが受信時に追加したタイムスタンプT2から、ONUがメッセージに記録したタイムスタンプT1を差し引いた値を新たなRTT(newRTT)とする(S101)。そして、LLTijの往復伝播時間RTTがNULLであるか否か、およびnewRTTとRTTとの差の絶対値がドリフトの許容値DRIFTmaxを超えているか否が判定される(S102)。
LLTijの往復伝播時間RTTがNULLであるか、またはドリフトの許容値DRIFTmax以下であれば(S102,NO)、LLTijの往復伝播時間RTTをnewRTTに変更し(S103)、RTT更新処理が正常に終了したものとして、処理を終了する。また、LLTijの往復伝播時間RTTがNULLでなく、かつnewRTTとRTTとの差の絶対値がドリフトの許容値DRIFTmaxを超えている場合であって(S102,YES)変数skip==NOであるときには(S104,NO)、後述するデレジスタ処理を行ない(S105)、待機系の全体制御部にLLIDijのデレジスタを通知し(S106)、RTT更新処理が正常に終了しなかったものとして、処理を終了する。ここで、LLIDijは、OSUiのLLIDjを意味する。また、変数skip==YESである場合には(S104,YES)、RTT更新処理が正常に終了しなかったものとして、そのまま処理を終了する。
なお、後述するOSU切り替え処理(図27)およびOSU切り戻し処理(図28)において、経路を切り替えるために必要な遷移期間を参照でき、かつ制御フレームの受信時刻がその遷移期間に該当する場合、S102において、ドリフト許容値を経路切り替えに伴うぶれを加味して大きくするか、比較結果を無視する(S102が常にNO)ようにしてもよい。
図15は、図11および図14に示すデレジスタ処理の詳細を説明するためのフローチャートである。
この処理は、OSUiのLLIDjをデレジスタするものである。全体制御部14は、まず、LLTijのロジカルリンク状態LLstatをNULLにしてロジカルリンクjを解放する(S111)。
次に、変数skip==YESである場合には(S112,YES)、処理を終了する。一方、変数skip==NOである場合には(S112,NO)、OSUiのLLIDjに対するデレジスタメッセージを作成して出力メッセージキューEQに入れ、処理を終了する(S113)。
図16は、図11に示すレポート受信処理(S75)の詳細を説明するためのフローチャートである。この処理は、OSUiのLLIDjからレポートを受信するものである。
まず、LLTijのロジカルリンク状態LLstatがNULLである場合には(S121,YES)、ロジカルリンク状態LLstatに「登録済」が設定され(S122)、ステップS123の処理へ移る。一方、LLTijのロジカルリンク状態LLstatがNULLでない場合には(S121,NO)、直接、ステップS123の処理へ移る。
ステップS123においては、LLTijのレポート最新受信時刻RPtimeを現在時刻ctimeにし(S123)、次に、前述のRTT更新処理を行ない、RTT更新処理が正常に終了したか否かが判定される(S124)。
RTT更新処理が正常に終了すれば(S124,OK)、入力メッセージキューIQiから取り出したレポート情報に含まれるONUの上りキュー長queueK_reportの合計をLLTijのレポート情報RPinfoに代入して(S125)、処理を終了する。一方、RTT更新処理が正常に終了しなければ(S124,NG)、処理を終了する。
図17は、図11に示す帯域割当処理(S76)の詳細を説明するためのフローチャートである。この処理は、OSUiのLLIDjに帯域を割り当てるものである。
全体制御部14は、まず、変数skip==YESである場合には(S131,YES)、処理を終了する。一方、変数skip==NOである場合には(S131,NO)、LLTijのレポート情報RPinfo(ONUの上りキュー長)にレポートフレーム送出に必要な時間REPORT_lengthを加えてLenとし、レーザオン期間Tonに同期期間Syncを加えてオーバヘッド時間OVLとする。そして、Len、OVLおよびレーザオフ期間Toffの和と、グラント長の上限値GLmaxとの小さい方の値をGLとする。
次に、OSUiの最終割当時刻TEiとバーストギャップburst_gapとの和をTSiとし、現在時刻ctimeとRTTとONUの処理時間proc_timeとの和をTScとする。そして、TSiおよびTScの中で最も遅い時刻をTSとする(S132)。
次に、OSUiのLLIDjに対するゲートメッセージを作成して出力メッセージキューEQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。また、開始時刻はTSからRTTを差し引いた値とし、グラント長はGLとして受信ウィンドウを割り当てる(S133)。
そして、TSにGLを加算した値からToffを差し引いた値を最終割当時刻TEiとし(S134)、TEiにある程度ぶれ時間を見込んだ時刻をタイマTLijにセットして(S135)、処理を終了する。
なお、OSU切り替え処理(図27)およびOSU切戻し処理(図28)において、経路を切り替えるために必要な遷移期間を参照できる場合、グラント期間とこの遷移期間とがオーバラップしないよう、TSを調整するようにしてもよい。
さらに、帯域割当処理は、同じアップリンクに集線されるOSUを連携させて行なうようにしてもよい。特に、OSUが出力する上りフレームが集線部を滞留せずに通過できるように、各PON回線の帯域割当を行なうようにすれば、集線部のFIFOの量は少なくてもよく、ユーザフレームが局側装置を通過する時間を短縮することができる。
図18は、図11に示すOAMメッセージ処理(S77)の詳細を説明するためのフローチャートである。
OSUiのLLIDjからOAMメッセージを受信するものとする。全体制御部14は、まず、OAMメッセージがOAMリンク接続性確認メッセージの場合は、LLTijのOAMtを現在時刻ctimeとする(S141)。
次に、変数skip==YESである場合には(S142,YES)、処理を終了する。一方、変数skip==NOである場合には(S142,NO)、OAMメッセージ内容に従った処理を行なって(S143)、処理を終了する。
図19は、図11に示すOSU管理メッセージ処理(S78)の詳細を説明するためのフローチャートである。OSUiからOSU管理メッセージを受信するものとする。
全体制御部14は、まず、OSUTi.rxtime=ctimeとする、すなわちOSU管理メッセージ受信時刻rxtimeを現在時刻ctimeとする(S151)。
次に、変数skip==YESである場合には(S152,YES)、メッセージ内容に従った処理を行なって(S156)、処理を終了する。
変数skip==NOである場合には(S152,NO)、OSUiからの障害通知があったか否かが判定される(S153)。障害通知がなければ(S153,NO)、メッセージ内容に従った処理を行なって(S156)、処理を終了する。
一方、障害通知があった場合であって(S153,YES)、変数protectedがNOであるときすなわちOSUの冗長切替が実施中でないときには(S154,NO)、OSU切り替え処理を行なって(S155)、処理を終了する。また、障害通知があった場合であって(S153,YES)、変数protectedがYESであるときには(S154,YES)、処理を終了する。
図20は、図8に示すOAM処理(S34)の詳細を説明するためのフローチャートである。このOAM処理は、OSU(OSUiとする)およびロジカルリンク(LLIDjとする)ごとに独立して行なわれ、対応するONUとのOAM通信によってONUの設定および状態確認を行なうものである。
全体制御部14は、まず、変数master==YESであり、かつ変数active==YESである場合、すなわち自己が運用系であり、かつPON回線制御を行なっている場合には(S161,YES)、LLTijのOAMtがNULLであるか否かを判定する(S162)。それ以外の場合には(S161,NO)、処理を終了する。
LLTijのOAMtがNULLであれば(S162,YES)、OAMリンクが初期状態であるため、OAMループバック試験が実施され(S163)、成功したか否かが判定される(S164)。
OAMループバック試験が成功すれば(S164,YES)、PONiおよびLLIDjに対応するONUを初期設定し(S165)、OSUiに対してLLIDjのPON側とアップリンク側との疎通を許可する(S166)。そして、OAMリンク接続性確認メッセージを送出し、LLIDij.OAMt=ctimeとする(S167)。そして、OAM処理起動タイマTOAMijをセットして(S168)、処理を終了する。
また、OAMループバック試験が成功しなければ(S164,NO)、デレジスタ処理を行なって(S169)、他系の全体制御部にLLIDijのデレジスタを通知して(S170)、処理を終了する。
ステップS162において、LLTijのOAMtがNULLでなければ(S162,NO)、現在時刻ctimeからLLTijのOAMtを差し引いた値が、OAMtimeoutよりも小さいか否かが判定される(S171)。このOAMtimeoutは予め定められた値であり、この値によってOAM通信が途絶したか否かを判定する。
現在時刻ctimeからLLTijのOAMtを差し引いた値の方がOAMtimeoutよりも小さければ(S171,YES)、ONUiに対してOAMリンク接続性確認メッセージを送信し(S172)、OAM処理起動タイマTOAMijをセットして(S173)、処理を終了する。
また、現在時刻ctimeからLLTijのOAMtを差し引いた値の方がOAMtimeoutよりも小さくなければ(S171,NO)、デレジスタ処理を行ない(S169)、他系の全体制御部にLLIDijのデレジスタを通知して(S170)、処理を終了する。
図21は、図8に示すRPタイムアウト処理(S36)の詳細を説明するためのフローチャートである。このRPタイムアウト処理は、タイマTLijが満了した、すなわち受信ウィンドウ期間にONUからレポートメッセージを受けなかった場合の処理である。
まず、変数master==YESであり、かつ変数active==YESである場合、すなわち自己が運用系であり、かつPON回線制御を行なっている場合には(S181,YES)、LLTijのLLstatを参照して、当該ロジカルリンクが登録中であるか否かを判定する(S182)。それ以外の場合には(S181,NO)、処理を終了する。
当該ロジカルリンクが登録中でない場合であって(S182,NO)、現在時刻ctimeからレポート最新受信時刻RPtimeを差し引いた値すなわちレポート最新受信時刻からの経過時間がMPCPtimeoutより小さい場合には(S185,YES)、再度ロジカルリンクjからレポートメッセージを受信するために、OSUiのLLIDjに対するゲートメッセージを作成し、出力メッセージキューEQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。開始時刻はTEiまたは現在時刻を基準とし、グラント長はレポートフレームだけを送信できる量として、受信ウィンドウを割り当てる(S186)。
そして、当該グラントのレーザオフの始まりを新しいTEiとし、これにある程度のぶれ時間を見込んだ時刻をタイマTLijにセットして(S187)、処理を終了する。
一方、当該ロジカルリンクが登録中である場合(S182,YES)、あるいはレポート最新受信時刻からの経過時間がMPCPtimeoutより小さくない場合には(S185,NO)、前述のデレジスタ処理を行ない(S183)、他系の全体制御部にLLIDijのデレジスタを通知して(S184)、処理を終了する。
図22は、図8に示す定時管理処理(S37)の詳細を説明するためのフローチャートである。
まず、変数master==YESである、すなわち自己が運用系である場合には(S191,YES)、現在時刻ctimeおよび変数activeの値を通知し、自系が正常であることを知らせるとともに、他系の全体制御部14の状態を問い合わせる(S192)。
また、光スイッチ11aおよび集線部13aに自系の全体制御部14が正常であることを知らせるとともに、光スイッチ11aおよび集線部13aの状態を問い合わせる(S193)。そして、OSU管理処理を行ない(S194)、管理通信タイマ(TMC)をセットして(S195)、処理を終了する。
変数master==NOである、すなわち自己が待機系である場合には(S191,NO)、光スイッチ11aおよび集線部13aに自系の全体制御部14が正常であることを知らせるとともに、光スイッチ11aおよび集線部13aの状態を問い合わせる(S196)。
次に、OSUi(i=1,2,・・・,N+1)に状態問い合わせメッセージを送り(S197)、現在時刻ctimeから変数lastCCを差し引いた値がCCMtimeoutより小さくない場合には(S198,NO)、変数master=YESに設定する、すなわち自己を待機系から運用系に切り替える。また、運用系になったことを光スイッチ11aおよび集線部13aならびに各OSUへ通知する(S199)。一方、現在時刻ctimeから変数lastCCを差し引いた値がCCMtimeoutより小さい場合には(S198,YES)、管理通信タイマ(TMC)をセットして(S203)、処理を終了する。
次に、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S200,YES)、ディスカバリタイマ(TD)をセットし(S201)、ロジカルリンクテーブルLLTのすべてのエントリを順に調べる。すなわち、ロジカルリンク状態LLstatが登録済みであればタイマTLijをセットし、OAMリンク接続性確認フレーム最新受信時刻OAMtがNULLでなければタイマTOAMijをセットする(S202)。そして、管理通信タイマ(TMC)をセットして(S203)、処理を終了する。一方、変数active==NOである場合には(S200,NO)、ディスカバリタイマ(TD)をセットして(S201)、処理を終了する。
図23は、図22に示すOSU管理処理(S194)の詳細を説明するためのフローチャートである。このOSU管理処理においては、OSU管理メッセージの応答途絶を契機として、OSU冗長切り替えが行なわれる。
まず、変数protected==YESである場合すなわちOSUの冗長切替が実施中である場合には(S211,YES)、実OSUi(i=1,2,・・・,N+1)に状態問い合わせメッセージを送り(S215)、処理を終了する。
一方、変数protected==NOである場合すなわちOSUの冗長切替が実施中でない場合には(S211,NO)、OSUの異常を検出するための処理を行なう。すなわち、変数failedOSUを0に設定し、実OSUi(i=1,2,・・・,N)に対して以下の処理を行なう。
すなわち、OSUテーブルOSUTiのOSU管理メッセージ受信時刻rxtimeがNULLでない場合であって、現在時刻ctimeからOSU管理メッセージ受信時刻rxtimeを差し引いた値すなわちOSU管理メッセージ最新受信時刻からの経過時間がOSUtimeoutより大きいときには、変数failedOSUをiに設定する。そして、OSUiに状態問い合わせメッセージを送り、次のOSUiの処理に移る(S212)。
また、OSUテーブルOSUTiのOSU管理メッセージ受信時刻rxtimeがNULLでない場合であって、現在時刻ctimeからOSU管理メッセージ受信時刻rxtimeを差し引いた値がOSUtimeoutより大きくないときには、OSUiに状態問い合わせメッセージを送り、次のOSUiの処理に移る(S212)。
一方、OSUテーブルOSUTiすなわちOSUiのOSUテーブルにおけるOSU管理メッセージ受信時刻rxtimeがNULLである場合には、このOSUiに状態問い合わせメッセージを送り、次のOSUiの処理に移る(S212)。
実OSUi(i=1,2,・・・,N)に対して以上の処理を行なった後、待機系のOSUである実OSUi(i=N+1)に状態問い合わせメッセージを送る。
次に、変数failedOSUが0でない場合には(S223,NO)、OSUi(i==変数failedOSUであるOSUi)に対してOSU切り替え処理を行ない(S214)、変数failedOSUが0である場合には(S223,YES)、処理を終了する。
図24は、図8に示す管理通信受信処理(S32)の詳細を説明するためのフローチャートである。
まず、変数master==YESである、すなわち自己が運用系である場合には(S221,NO)、状態問い合わせを送った待機系全体制御部14−1または14−2、光スイッチ11aおよび集線部13aからの応答を記録する(S229)。
一方、変数master==NOである、すなわち自己が待機系である場合には(S221,YES)、管理通信割り込みが示す内容に応じて種々の処理を行なう。
管理通信割り込みの内容が問い合わせを示す、すなわち定時管理処理のステップS192における運用系の全体制御部14からの状態問い合わせを示す場合には、問い合わせ応答処理を行ない、処理を終了する。すなわち、運用系の全体制御部から受けた運用系の現在時刻ctimeを待機系の現在時刻ctimeとすることにより時計を運用系に合わせる。また、変数activeを運用系の変数activeの値に設定する。また、変数lastCCに現在時刻ctimeを設定する。そして、運用系の全体制御部からの問い合わせに応え(S223)、処理を終了する。
管理通信割り込みの内容がマスタ化を示す場合には、マスタ化処理を行ない、処理を終了する。すなわち、変数masterをINに設定する。また、時刻Tcxに処理遅延を見込んだ時刻をタイマTMXに設定し(S224)、処理を終了する。なお、受信した制御フレームに付加された受信タイムスタンプを参照し、時刻Tcxと比較することにより、時刻Tcxを境に運用系および待機系で受信フレーム処理が切り替えられる。
すなわち、時刻Tcxにおいて受信タイムスタンプを付加された制御フレームが入力メッセージキューIQを通過して、確実にメッセージ受信処理される時刻をタイマTMXに設定する。この処理遅延は、たとえば、入力メッセージキューIQの容量およびメッセージ受信処理時間の最大値に基づいて概算した上限値を目安とする。
管理通信割り込みの内容がデレジスタを示す場合には、LLTijのロジカルリンク状態LLstatをNULLにしてロジカルリンクjを解放し(S225)、処理を終了する。
管理通信割り込みの内容がOSU切り替えまたはOSU切り戻しを示す場合には、変数protectedおよびOSUmapを運用系の全体制御部に合わせて変更し(S226)、処理を終了する。
管理通信割り込みの内容が応答を示す場合には、状態問い合わせを送った光スイッチ11aおよび集線部13aからの応答を記録し(S228)、処理を終了する。
管理通信割り込みの内容がその他の指示を示す場合には、その指示に従った処理を行ない(S227)、処理を終了する。
図25は、図8に示す操作IF処理(S33)の詳細を説明するためのフローチャートである。
全体制御部14は、操作IF割込みが示す指示がOSU切り替え指示であれば、OSU切り替え実行判定処理を行なって(S231)、処理を終了する。操作IF割込みが示す指示がOSU切り戻し指示であれば、OSU切り戻し処理を行って(S232)、処理を終了する。操作IF割込みが示す指示が全体制御起動指示であれば、起動前処理を行って(S233)、処理を終了する。操作IF割込みが示す指示が全体制御停止指示であれば、停止前処理を行って(S234)、処理を終了する。操作IF割込みが示す指示が制御系切り替え指示であれば、制御系切り替え処理を行なって(S235)、処理を終了する。また、操作IF割込みが示す指示がその他のものであれば、その指示に従った処理を行なって(S236)、処理を終了する。
図26は、図25に示すOSU切り替え実行判定処理(S231)の詳細を説明するためのフローチャートである。
全体制御部14は、変数master==YESであり、かつ変数protected==NOである場合、すなわち自己が運用系であり、かつOSUの冗長切替が実施中でない場合には、OSU切り替え処理を行なって(S243)、処理を終了する。これ以外の場合には、OSU切り替え処理を行なわずに処理を終了する。
図27は、図26に示すOSU切り替え処理(S243)の詳細を説明するためのフローチャートである。ここでは、OSUiから待機系OSUへ切り替えるものとする。
全体制御部14は、まず、PON回線iの接続先をOSUiからOSU N+1に切り替えるよう光スイッチ11aに指示し(S251)、集線部13aのフィルタ部N+1(46a−N+1)においてフィルタ部iの設定を使用するよう集線部13aに指示する(S252)。
そして、OSU変換設定OSUmap(i)=N+1とし、かつ変数protected=YESに設定し(S253)、待機系の全体制御部にOSUiの切り替えを通知して(S254)、処理を終了する。
図28は、図25に示すOSU切戻し処理(S232)の詳細を説明するためのフローチャートである。ここでは、OSUiへ切戻すものとする。
全体制御部14は、変数master==YESであり、かつ変数protected==YESである場合、すなわち自己が運用系であり、かつOSUの冗長切替が実施中である場合には、PON回線iの接続先を元のOSUiに戻すよう光スイッチ11aに指示する(S263)。そして、OSU変換設定OSUmap(i)=i、かつ変数protected=NOとし(S264)、待機系の全体制御部にOSUiの切戻しを通知して(S265)、処理を終了する。
一方、変数master==YESであり、かつ変数protected==YESである場合以外には、ステップS263〜S265の処理を行なわずに処理を終了する。
OSU切り替え処理およびOSU切戻し処理においては、経路が切り替わる遷移期間をグローバル変数に記録するなどして、帯域割当処理等の他の処理から参照できるようにしてもよい。
図29は、図7および図25に示す起動前処理(S22,S233)の詳細を説明するためのフローチャートである。
全体制御部14は、まず、変数master==YESであり、かつ変数active==NOである場合、すなわち自己が運用系であり、かつPON回線制御を行なっていない場合には(S271,YES)、変数active=INに設定し、現在時刻ctimeにTmarginを加えた値を時刻Tcxに設定する。
ここで、Tmarginは、停止指示または起動指示を示すOSU管理メッセージを各OSUへ送出してから、そのOSU管理メッセージが各OSUにおいて処理されるまでの時間の最大値である。受信した制御フレームに付加された受信タイムスタンプを参照し、時刻Tcxと比較することにより、時刻Tcxを境に運用系および待機系で受信フレーム処理が切り替えられる。Tmarginは、たとえば、局所制御部36の入力メッセージキューCinQの容量および入力メッセージキューCinQに格納されたメッセージの処理時間の最大値に基づいて概算した上限値を目安とする。
また、時刻Tcxに処理遅延を見込んだ時刻をタイマTAXに設定する(S272)。
すなわち、時刻Tcxにおいて受信タイムスタンプを付加された制御フレームが入力メッセージキューIQを通過して、確実にメッセージ受信処理される時刻をタイマTAXに設定する。この処理遅延は、たとえば、入力メッセージキューIQの容量およびメッセージ受信処理時間の最大値に基づいて概算した上限値を目安とする。そして、時刻Tcxが記載された停止要求メッセージを実OSUi(i=1,2,・・・,N+1)へ送り(S273)、処理を終了する。
一方、変数master==YESかつ変数active==NO以外の場合には(S271,NO)、処理を終了する。
図30は、図25に示す停止前処理(S234)の詳細を説明するためのフローチャートである。
全体制御部14は、まず、変数master==YESであり、かつ変数active==YESである場合、すなわち自己が運用系であり、かつPON回線制御を行なっている場合には(S281,YES)、タイマTD、TLijおよびTOAMijを停止する。なお、タイマTLijおよびTOAMijについては、すべてのiおよびjの組み合わせが対象となる(S282)。
次に、変数active=OUTに設定し、現在時刻ctimeにTmarginを加えた値を時刻Tcxに設定する。また、時刻Tcxに処理遅延を見込んだ時刻をタイマTAXに設定する(S283)。
ここで、Tmarginおよび処理遅延については、起動前処理において説明した内容と同様である。
そして、時刻Tcxが記載された起動要求メッセージを実OSUi(i=1,2,・・・,N+1)へ送り(S284)、処理を終了する。
一方、変数master==YESかつ変数active==YES以外の場合には(S281,NO)、処理を終了する。
図31は、図25に示す制御系切り替え処理(S235)の詳細を説明するためのフローチャートである。
変数master==YESであり、かつ変数active==YESである場合、すなわち自己が運用系であり、かつPON回線制御を行なっている場合には(S291,YESかつS292,YES)、タイマTD、TLijおよびTOAMijを停止する(S293)。なお、タイマTLijおよびTOAMijは、すべてのiおよびjの組み合わせが対象となる(S293)。
次に、変数master=OUTに設定し、現在時刻ctimeにTmarginを加えた値を時刻Tcxに設定する。
ここで、Tmarginは、マスタ化指示を示す管理通信メッセージを他系の全体制御部へ送出してから、その管理通信メッセージが他系の全体制御部において処理されるまでの時間の最大値である。受信した制御フレームに付加された受信タイムスタンプを参照し、時刻Tcxと比較することにより、時刻Tcxを境に運用系および待機系で受信フレーム処理が切り替えられる。
また、時刻Tcxに処理遅延を見込んだ時刻をタイマTMXに設定する(S293)。
すなわち、時刻Tcxにおいて受信タイムスタンプを付加された制御フレームが入力メッセージキューIQを通過して、確実にメッセージ受信処理される時刻をタイマTMXに設定する。この処理遅延は、たとえば、入力メッセージキューIQの容量およびメッセージ受信処理時間の最大値に基づいて概算した上限値を目安とする。
次に、他系の全体制御部に、時刻Tcxにおいてマスタ化処理を行なうように指示し(S295)、処理を終了する。
なお、変数master==NOである場合には(S291,YES)、処理を終了する。また、変数master==YESであり、かつ変数active==NOである場合には(S292,NO)、ステップS293の処理は行なわず、ステップS294およびS295の処理を行なう。
図32は、図8に示すマスタ切り替え後処理(S38)の詳細を説明するためのフローチャートである。
全体制御部14は、変数master==OUTである場合には(S301,OUT)、変数master=NOに設定する(S302)。
変数master==INである場合には(S301,IN)、変数master=YESに設定し(S303)、起動後処理を行ない(S304)、処理を終了する。
変数master==YESまたはNOである場合には(S301,YESorNO)、そのまま処理を終了する。
図33は、図32に示す起動後処理(S304)の詳細を説明するためのフローチャートである。
全体制御部14は、まず、ディスカバリタイマ(TD)をセットし、管理通信タイマ(TMC)をセットする(S311)。
次に、ロジカルリンクテーブルLLTのすべてのエントリを順に調べる。すなわち、ロジカルリンク状態LLstatが登録済みであればタイマTLijをセットし、OAMリンク接続性確認フレーム最新受信時刻OAMtがNULLでなければタイマTOAMijをセットして(S312)、処理を終了する。
図34は、図8に示すアクティブ切り替え後処理(S39)の詳細を説明するためのフローチャートである。
全体制御部14は、変数active==OUTである場合には(S321,OUT)、変数active=NOに設定し(S322)、処理を終了する。
変数active==INであり(S321,IN)、かつ変数master==YESである場合には(S323,YES)、変数active=YESに設定し(S324)、起動後処理を行ない(S325)、処理を終了する。
変数active==INであり(S321,IN)、かつ変数masterがYES以外である場合には(S323,NO)、変数active=NOに設定し(S326)、処理を終了する。
変数active==YESまたはNOである場合には(S321,YES or NO)、そのまま処理を終了する。
[局所制御部36の各処理]
次に、本発明の第1の実施の形態に係る局側装置における局所制御部36が実行する種々の処理を各処理ごとに図面を用いて説明する。
図35は、局所制御部36による初期化処理の手順を説明するためのフローチャートである。この初期化処理は、局側装置1aにおけるOSUの各部の初期設定を行なうものである。ここで、OSUごとに、ロジカルリンクテーブルLLTおよび最終割当時刻TEが設けられている。ロジカルリンクテーブルLLTの各要素には、ロジカルリンク固有の情報が格納される。具体的には、ロジカルリンクテーブルLLTは、ロジカルリンク状態LLstat、レポート情報RPinfo、レポート最新受信時刻RPtime、往復伝播時間RTT、OAMリンク接続性確認フレーム最新受信時刻OAMtを含む。
また、変数activeは、PON回線制御を局所制御部36が行なっているか否かを示す変数である。また、変数activeは、YESおよびNOに加えて、INおよびOUTの値をとる。INはNOからYESへの遷移状態を示し、OUTはYESからNOへの遷移状態を示す。
なお、局所制御部36が用いるテーブルおよび変数は、たとえばRAM73に格納されている。
図35を参照して、まず、局所制御部36は、全体制御部14から現在時刻ctimeを取得する。また、入力メッセージキューRxQ、出力メッセージキューTxQ、入力メッセージキューCinQおよび出力メッセージキューCegQを空にし、ロジカルリンクテーブルLLTj(j∈{OSUのLLID})をNULLにし、最終割当時刻TEを現在時刻ctimeにする。また、変数activeをNOに設定する(S331)。
次に、PON送受信部35と、集線IF部31と、受信処理部33と、送信処理部34とを初期設定し、また、FIFO1(37)およびFIFO2(38)を空にする(S332)。そして、管理通信タイマ(TMC)をセットして(S333)、処理を終了する。
図36は、局所制御部36による割り込み処理ルーチンの手順を説明するためのフローチャートである。局所制御部36における処理は大部分が不定期に発生する処理であるため割込みを用いることとし、各割込み処理には優先順位を付ける。ステップS342〜S349の処理においては、S342の処理が最も優先順位が高く、S349の処理が最も優先順位が低いものとする。
局所制御部36は、何らかの割込みが発生し、その割込みが、自己のOSUの故障を示す故障割込みまたは警報を示す警報割込みであれば(故障or警報)、故障または警報の内容を記録し、自己のOSUの故障または警報を示すOSU管理メッセージを作成して出力メッセージキューCegQに入れる(S342)。
割込種別が入力メッセージキューRxQにメッセージがあることを示すRXQ非空割込みであれば(RXQ非空)、RxQ処理を行なって(S343)、処理を終了する。
割込種別が入力メッセージキューCinQにメッセージがあることを示すCinQ非空割込みであれば(CinQ非空)、CinQ処理を行なって(S344)、処理を終了する。
割込種別がOAM処理起動タイマTOAMjの満了を示すTOAMj満了割込みであれば(TOAMj満了)、OAM処理を行なって(S345)、処理を終了する。
割込種別がディスカバリタイマ(TD)の満了を示すTD満了割込みであれば(TD満了)、ディスカバリ処理を行なって(S346)、処理を終了する。また、割込種別がタイマTLjの満了を示すTLj満了割込みであれば(TLj満了)、レポート(RP)タイムアウト処理を行なって(S347)、処理を終了する。
割込種別が管理通信タイマTMCの満了を示すTMC満了割込みであれば(TMC満了)、定時管理処理を行なって(S348)、処理を終了する。割込種別がタイマTAXの満了を示すTAX満了割込みであれば(TAX満了)、起動後処理を行なって(S349)、処理を終了する。
図37は、図36に示すRxQ処理(S343)の詳細を説明するためのフローチャートである。
局所制御部36は、まず、入力メッセージキューRxQから先頭メッセージを取り出し、受信タイムスタンプを時刻(変数)Trxに代入する(S351)。
そして、後述する各種の処理を行なうか否かを示す変数skipに値を設定する。すなわち、変数active==YES(S352,YES)である場合、変数active==OUTかつ時刻Trx<時刻Tcx(S353,YES)である場合、または変数active==INかつ時刻Trx>時刻Tcx(S354,YES)である場合には、変数skipにNOを設定する(S355)。また、上記以外の場合、たとえば自己がPON回線制御を行なっていない場合には、変数skipにYESを設定する(S356)。そして、メッセージ受信処理を行なう(S357)。
局所制御部36は、メッセージ受信処理を行なった後、入力メッセージキューRxQにメッセージが格納されている場合には(S358,NO)、入力メッセージキューRxQから先頭メッセージを取り出し、同様の処理を行なう(S351)。
そして、入力メッセージキューRxQがすべて空になると(S358,YES)、処理を終了する。
図38は、図37に示すメッセージ受信処理(S357)の詳細を説明するためのフローチャートである。
局所制御部36は、メッセージ種別がレジスタ要求メッセージであれば(S361,レジスタ要求)、レジスタ要求処理を行なって(S362)、処理を終了する。メッセージ種別がレジスタ確認メッセージであれば(S361,レジスタ確認)、レジスタ確認処理を行なって(S363)、処理を終了する。
メッセージ種別がデレジスタ要求メッセージであれば(S361,デレジスタ要求)、デレジスタ処理を行なって(S364)、処理を終了する。メッセージ種別がレポートメッセージであれば(S361,レポート)、レポート受信処理を行ない(S365)、帯域割当処理を行なって(S366)、処理を終了する。
メッセージ種別がOAMメッセージであれば(S361,OAM)、OAMメッセージ処理を行なって(S367)、処理を終了する。
図39は、図38に示すレジスタ要求処理(S362)の詳細を説明するためのフローチャートである。
局所制御部36は、MACアドレスmのONUからのレジスタ要求メッセージを受けて、変数skip==YESである場合には(S371,YES)、処理を終了する。一方、変数skip==NOである場合には(S371,NO)、送信元ONUが正当か否かを判定する(S372)。
送信元ONUが正当なものであれば(S372,YES)、新しいLLID(Logical Link ID)としてLLIDjを割り当てる。そして、ロジカルリンクテーブルLLTjにおける、ロジカルリンク状態LLstatを「登録中」に設定し、レポート情報RPinfoをNULLにし、かつ往復伝播時間RTTに(T2−T1)を設定する(S373)。ここで、T1はONUがメッセージに記録したタイムスタンプであり、T2はOSUが受信時に追加したタイムスタンプである。
次に、レジスタメッセージ(w/Ack)を作成して、出力メッセージキューTxQに入れる(S374)。このとき、レジスタメッセージの送信先アドレスDAをmとし、LLIDをjとする。なお、(w/Ack)は、Ackが付加されたレジスタメッセージであることを示す。
次に、LLIDjに対するゲートメッセージを作成して出力メッセージキューTxQに入れる。このとき、開始時刻はTEまたは現在時刻を基準とし、グラント長はレジスタ確認フレームだけを送信できる量として受信ウィンドウを割り当てる(S375)。
なお、受信ウィンドウの配置は、精度誤差を考慮するとともに、レーザオン/オフのオーバラップは許容したとしても他のロジカルリンクの受信ウィンドウと重ならないようにするのは勿論であるが、当該ゲートメッセージの予定送信時刻よりも、RTTおよびONUの処理時間分だけ先に配置するようにする。
そして、当該グラントのレーザオフの始まりを新しいTEとし、これにある程度ぶれ時間を見込んだ時刻をタイマTLjにセットし(S376)、処理を終了する。
一方、ONUが正当でない場合には(S372,NO)、OSUiに対するレジスタメッセージ(w/Nack)を作成して出力メッセージキューTxQに入れ、レジスタメッセージの送信先アドレスDAをmとし(S377)、処理を終了する。
図40は、図38に示すレジスタ確認処理(S363)の詳細を説明するためのフローチャートである。
ここでは、LLIDjからレジスタ確認メッセージを受信するものとする。局所制御部36は、まず、RTTを更新するRTT更新処理を行ない、RTT更新処理が正常に終了したか否かを判定する(S381)。RTT更新処理において、現在のRTTと新たに算出されたRTTとの差がドリフト許容値を超えていない場合には、RTT更新処理は正常に終了し、当該差がドリフト許容値を超えている場合には、RTT更新処理は異常終了する。
RTT更新処理が正常に終了しなければ(S381,NG)、そのまま処理を終了する。一方、RTT更新処理が正常に終了すれば(S381,OK)、LLTjのロジカルリンク状態LLstatを登録済に設定し、かつレポート最新受信時刻RPtimeに現在時刻ctimeを設定する(S382)。
次に、変数skip==YESである場合には(S383,YES)、処理を終了する。一方、変数skip==NOである場合には(S383,NO)、LLIDjに対するゲートメッセージを作成して出力メッセージキューTxQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。また、開始時刻はTEまたは現在時刻を基準とし、グラント長はレポートフレームだけを送信できる量として受信ウィンドウを割り当てる(S384)。
そして、当該グラントのレーザオフの始まりを新しいTEとし、これにある程度ぶれ時間を見込んだ時刻をタイマTLjにセットし(S385)、OAM処理起動タイマTOAMjをセットして(S386)、処理を終了する。
図41は、RTT更新処理の詳細を説明するためのフローチャートである。
局所制御部36は、まず、OSUが受信時に追加したタイムスタンプT2から、ONUがメッセージに記録したタイムスタンプT1を差し引いた値を新たなRTT(newRTT)とする(S411)。そして、LLTjの往復伝播時間RTTがNULLであるか否か、およびnewRTTとRTTとの差の絶対値がドリフトの許容値DRIFTmaxを超えているか否かを判定する(S412)。
LLTjの往復伝播時間RTTがNULLであるか、またはnewRTTとRTTとの差の絶対値がドリフトの許容値DRIFTmax以下であれば(S412,NO)、LLTjの往復伝播時間RTTをnewRTTに変更し(S413)、RTT更新処理が正常に終了したものとして、処理を終了する。また、LLTjの往復伝播時間RTTがNULLでなく、かつnewRTTとRTTとの差の絶対値がドリフトの許容値DRIFTmaxを超えている場合であって(S412,YES)変数skip==NOであるときには(S414,NO)、後述するデレジスタ処理を行ない(S415)、RTT更新処理が正常に終了しなかったものとして、処理を終了する。また、変数skip==YESである場合には(S414,YES)、RTT更新処理が正常に終了しなかったものとして、処理を終了する。
図42は、図38および図41に示すデレジスタ処理の詳細を説明するためのフローチャートである。
この処理は、LLIDjをデレジスタするものである。局所制御部36は、まず、LLTjのロジカルリンク状態LLstatをNULLにしてロジカルリンクjを解放する(S391)。
次に、変数skip==YESである場合には(S392,YES)、処理を終了する。一方、変数skip==NOである場合には(S392,NO)、OSUiのLLIDjに対するデレジスタメッセージを作成して出力メッセージキューTxQに入れ、処理を終了する(S393)。
図43は、図38に示すレポート受信処理(S365)の詳細を説明するためのフローチャートである。この処理は、LLIDjからレポートを受信するものである。
局所制御部36は、まず、LLTjのロジカルリンク状態LLstatがNULLである場合には(S401,YES)、ロジカルリンク状態LLstatを「登録済」に設定し(S402)、ステップS403の処理へ移る。一方、LLTjのロジカルリンク状態LLstatがNULLでない場合には(S401,NO)、直接、ステップS403の処理へ移る。
ステップS403においては、LLTjのレポート最新受信時刻RPtimeを現在時刻ctimeにし(S403)、次に、前述のRTT更新処理を行ない、RTT更新処理が正常に終了したか否かが判定される(S404)。
RTT更新処理が正常に終了すれば(S404,OK)、入力メッセージキューRxQから取り出したレポート情報に含まれるONUの上りキュー長queueK_reportの合計をLLTjのレポート情報RPinfoに代入して(S405)、処理を終了する。一方、RTT更新処理が正常に終了しなければ(S404,NG)、処理を終了する。
図44は、図38に示す帯域割当処理(S366)の詳細を説明するためのフローチャートである。この処理は、LLIDjに帯域を割り当てるものである。
局所制御部36は、変数skip==YESである場合には(S421,YES)、そのまま処理を終了する。一方、変数skip==NOである場合には(S421,NO)、LLTjのレポート情報RPinfo(ONUの上りキュー長)にレポートフレーム送出に必要な時間REPORT_lengthを加えてLenとし、レーザオン期間Tonに同期期間Syncを加えてオーバヘッド時間OVLとする。そして、Len、OVLおよびレーザオフ期間Toffの和と、グラント長の上限値GLmaxとの小さい方の値をGLとする。
次に、最終割当時刻TEとバーストギャップburst_gapとの和をTSeとし、現在時刻ctimeとRTTとONUの処理時間proc_timeとの和をTScとする。そして、TSeおよびTScの中で最も遅い時刻をTSとする(S422)。
次に、LLIDjに対するゲートメッセージを作成して出力メッセージキューTxQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。また、開始時刻はTSからRTTを差し引いた値とし、グラント長はGLとして受信ウィンドウを割り当てる(S423)。
そして、TSにGLを加算した値からToffを差し引いた値を最終割当時刻TEとし(S424)、TEにある程度ぶれ時間を見込んだ時刻をタイマTLjにセットして(S425)、処理を終了する。
図45は、図38に示すOAMメッセージ処理(S367)の詳細を説明するためのフローチャートである。
LLIDjからOAMメッセージを受信するものとする。局所制御部36は、まず、OAMメッセージがOAMリンク接続性確認メッセージの場合には、LLTjのOAMtを現在時刻ctimeとする(S431)。
次に、変数skip==YESである場合には(S432,YES)、処理を終了する。一方、変数skip==NOである場合には(S432,NO)、OAMメッセージ内容に従った処理を行なって(S433)、処理を終了する。
図46は、図36に示すOAM処理(S345)の詳細を説明するためのフローチャートである。このOAM処理は、ロジカルリンク(LLIDjとする)ごとに独立して行なわれ、対応するONUとのOAM通信によってONUの設定および状態確認を行なうものである。
局所制御部36は、まず、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S441,YES)、LLTjのOAMtがNULLであるか否かを判定する(S442)。それ以外の場合には(S441,NO)、処理を終了する。
LLTjのOAMtがNULLであれば(S442,YES)、OAMリンクが初期状態であるため、OAMループバック試験が実施され(S443)、成功したか否かが判定される(S444)。
OAMループバック試験が成功すれば(S444,YES)、LLIDjに対応するONUを初期設定し(S445)、LLIDjのPON側と集線部側との疎通を許可する(S446)。そして、OAMリンク接続性確認メッセージを送出し、LLIDij.OAMt=ctimeとする(S447)。そして、OAM処理起動タイマTOAMjをセットして(S448)、処理を終了する。
また、OAMループバック試験が成功しなければ(S444,NO)、デレジスタ処理を行なって(S449)、処理を終了する。
ステップS442において、LLTjのOAMtがNULLでなければ(S442,NO)、現在時刻ctimeからLLTjのOAMtを差し引いた値が、OAMtimeoutよりも小さいか否かが判定される(S450)。このOAMtimeoutは予め定められた値であり、この値によってOAM通信が途絶したか否かを判定する。
現在時刻ctimeからLLTjのOAMtを差し引いた値の方がOAMtimeoutよりも小さければ(S450,YES)、ONUiに対してOAMリンク接続性確認メッセージを送信し(S451)、OAM処理起動タイマTOAMjをセットして(S452)、処理を終了する。
また、現在時刻ctimeからLLTjのOAMtを差し引いた値の方がOAMtimeoutよりも小さくなければ(S450,NO)、デレジスタ処理を行ない(S449)、処理を終了する。
図47は、図36に示すディスカバリ処理(S346)の詳細を説明するためのフローチャートである。このディスカバリ処理は、契約されているロジカルリンクがすべて登録状態であれば行なわなくてもよいし、あるPONに対して契約されているロジカルリンクがすべて登録状態であれば、ステップS462およびS463において、そのPON(仮想OSU)に対するディスカバリゲートメッセージの送信をスキップしてもよい。
局所制御部36は、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S461,YES)、まず、ディスカバリゲートメッセージを作成し、出力メッセージキューTxQに入れる。このとき、開始時刻はTEまたは現在時刻の遅い方を基準とする(S462)。そして、ディスカバリ期間の終わりを新しいTEとする(S463)。すなわち、ディスカバリウィンドウの配置は、直前のTEまたは現在時刻の遅い方を基準とし、想定されるRTTの範囲およびレジスタ要求の輻輳状態などを勘案して決められる。
最後に、ディスカバリタイマTDをセットして(S464)、処理を終了する。ディスカバリタイマTDにセットされる値は、予め定められた期間であるdiscovery_intervalである。
一方、変数active==NOである場合、すなわち自己がPON回線制御を行なっていない場合には(S461,NO)、処理を終了する。
図48は、図36に示すRPタイムアウト処理(S347)の詳細を説明するためのフローチャートである。このRPタイムアウト処理は、タイマTLjが満了した、すなわち受信ウィンドウ期間にONUからレポートメッセージを受けなかった場合の処理である。
まず、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S471,YES)、LLTjのLLstatを参照して、当該ロジカルリンクが登録中であるか否かを判定する(S472)。それ以外の場合には(S471,NO)、処理を終了する。
当該ロジカルリンクが登録中でない場合であって(S472,NO)、現在時刻ctimeからレポート最新受信時刻RPtimeを差し引いた値すなわちレポート最新受信時刻からの経過時間がMPCPtimeoutより小さい場合には(S474,YES)、再度ロジカルリンクjからレポートメッセージを受信するために、LLIDjに対するゲートメッセージを作成し、出力メッセージキューTxQに入れる。このとき、ゲートメッセージにおいてレポート強制フラグを立てる。開始時刻はTEまたは現在時刻を基準とし、グラント長はレポートフレームだけを送信できる量として、受信ウィンドウを割り当てる(S475)。
そして、当該グラントのレーザオフの始まりを新しいTEとし、これにある程度のぶれ時間を見込んだ時刻をタイマTLjにセットして(S476)、処理を終了する。
一方、当該ロジカルリンクが登録中である場合(S472,YES)、あるいはレポート最新受信時刻からの経過時間がMPCPtimeoutより小さくない場合には(S474,NO)、前述のデレジスタ処理を行ない(S473)、処理を終了する。
図49は、図36に示すCinQ処理(S344)の詳細を説明するためのフローチャートである。
局所制御部36は、まず、入力メッセージキューCinQから先頭メッセージを取り出し、変数lastCCに現在時刻ctimeを設定する(S481)。
メッセージ種別が状態問い合わせを示す、すなわち全体制御部14からの状態問い合わせを示す場合には、問い合わせ応答処理を行ない(S483)、処理を終了する。
メッセージ種別が起動要求を示す場合には、起動前処理(S484)を行ない、処理を終了する。メッセージ種別が停止要求を示す場合には、停止前処理(S485)を行ない、処理を終了する。
メッセージ種別がデレジスタを示す場合には、LLTjのロジカルリンク状態LLstatをNULLにしてロジカルリンクjを解放し(S486)、処理を終了する。
メッセージ種別がその他の指示を示す場合には、その指示に従った処理を行ない(S487)、処理を終了する。ただし、ステップS487において、局所制御部36は、全体制御部14から受信した、送信処理部34がONUへ送信すべきレジスタメッセージ、ゲートメッセージおよびOAMメッセージは無視する。
局所制御部36は、上記各処理を行なった後、入力メッセージキューCinQにメッセージが格納されている場合には(S488,NO)、入力メッセージキューCinQから新たに先頭メッセージを取り出し、同様の処理を行なう(S481)。
そして、入力メッセージキューCinQが空になると(S488,YES)、処理を終了する。
図50は、図49に示す問い合わせ応答処理(S483)の詳細を説明するためのフローチャートである。
局所制御部36は、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S491,YES)、自己がアクティブであること、すなわち自己がPON回線制御を行なっていることを示すメッセージを作成し、出力メッセージキューCegQに入れ(S492)、処理を終了する。
一方、変数active==NOである場合、すなわち自己がPON回線制御を行なっていない場合には(S491,NO)、自己がアクティブでないこと、すなわち自己がPON回線制御を行なっていないことを示すメッセージを作成し、出力メッセージキューCegQに入れ(S493)、処理を終了する。
図51は、起動前処理(S484)の詳細を説明するためのフローチャートである。
局所制御部36は、まず、変数active==NOである場合、すなわち自己がPON回線制御を行なっていない場合には(S501,YES)、全体制御部14からの停止要求メッセージが示す時刻Tcxに処理遅延を見込んだ時刻をタイマTAXに設定する(S502)。
すなわち、時刻Tcxにおいて受信タイムスタンプを付加された制御フレームが入力メッセージキューRxQを通過して、確実にメッセージ受信処理される時刻をタイマTAXに設定する。この処理遅延は、たとえば、入力メッセージキューRxQの容量およびメッセージ受信処理時間の最大値に基づいて概算した上限値を目安とする。そして、起動を了解する旨を示すメッセージを作成し、出力メッセージキューCegQに入れ(S503)、処理を終了する。
一方、変数active==YESの場合には(S501,NO)、処理を終了する。
図52は、図49に示す停止前処理(S234)の詳細を説明するためのフローチャートである。
局所制御部36は、まず、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S511,YES)、タイマTD、TLjおよびTOAMjを停止する。なお、タイマTLjおよびTOAMjについては、すべてのjが対象となる(S512)。
次に、変数active=OUTに設定し、全体制御部14からの停止要求メッセージが示す時刻Tcxに処理遅延を見込んだ時刻をタイマTAXに設定する(S513)。この処理遅延については、起動前処理において説明した内容と同様である。
そして、停止を了解する旨を示すメッセージを作成し、出力メッセージキューCegQに入れ(S514)、処理を終了する。
一方、変数active==YES以外の場合には(S511,NO)、処理を終了する。
図53は、図36に示す定時管理処理(S348)の詳細を説明するためのフローチャートである。
局所制御部36は、まず、変数active==YESである場合、すなわち自己がPON回線制御を行なっている場合には(S521,YES)、PON送受信部35、集線IF部31、受信処理部33および送信処理部34の状態を問い合わせ、各部の状態を記録する(S523)。そして、管理通信タイマ(TMC)をセットして(S524)、処理を終了する。
変数active==NOである場合、すなわち自己がPON回線制御を行なっていない場合であって(S521,NO)、現在時刻ctimeから変数lastCCを差し引いた値がCCLtimeoutより小さいときには(S522,YES)、ステップS523およびS524の処理を行なう。
一方、変数active==NOである場合であって(S521,NO)、現在時刻ctimeから変数lastCCを差し引いた値がCCLtimeout以上であるときには(S522,NO)、変数active=YESに設定する、すなわちPON回線制御の代行を開始し、自己がアクティブになったことを示すメッセージを作成し、出力メッセージキューCegQに入れる(S525)。
次に、ディスカバリタイマ(TD)および管理通信タイマ(TMC)をセットし(S526)、ロジカルリンクテーブルLLTのすべてのエントリを順に調べる。すなわち、ロジカルリンク状態LLstatが登録済みであればタイマTLjをセットし、OAMリンク接続性確認フレーム最新受信時刻OAMtがNULLでなければタイマTOAMjをセットして(S527)、処理を終了する。
図54は、図32に示す起動後処理(S304)の詳細を説明するためのフローチャートである。
局所制御部36は、変数active==OUTである場合には(S531,OUT)、変数active=NOに設定する(S532)。
変数active==INである場合には(S531,IN)、変数active=YESに設定し(S533)、ディスカバリタイマ(TD)をセットし、管理通信タイマ(TMC)をセットする(S534)。
次に、ロジカルリンクテーブルLLTのすべてのエントリを順に調べる。すなわち、ロジカルリンク状態LLstatが登録済みであればタイマTLjをセットし、OAMリンク接続性確認フレーム最新受信時刻OAMtがNULLでなければタイマTOAMjをセットして(S535)、処理を終了する。
また、変数active==YESまたはNOである場合には(S531,YES or NO)、そのまま処理を終了する。
次に、本発明の第1の実施の形態に係る局側装置におけるPON回線制御の代行動作について図面を用いて説明する。
以下では、局側装置の信頼性に関する3つの事象、すなわち(1)全体制御部の故障、(2)全体制御部の保守(交換)、(3)OSUの故障、における本発明の第1の実施の形態に係る局側装置の動作を、以下に示す各フローチャートと、前述した全体制御部14および局所制御部36の各処理を示すフローチャートとを参照しながら説明する。
図55は、全体制御部に異常が発生した場合における本発明の第1の実施の形態に係る局側装置の動作手順を定めたフローチャートである。
[通常動作]
まず、図55に示すフローチャートを参照しながら、上記各事象が発生する前の通常状態における全体制御部14および局所制御部36の典型的な動作を説明する。
通常状態において、全体制御部14は、各OSUと通信すべきONUを登録し、かつ各OSUと登録した各ONUとの間の往復伝播時間とを測定する。そして、全体制御部14は、測定したこれらの各往復伝播時間に基づいて各ONUによるOSUへの上り通信信号の送信を制御するPON回線制御を行なう(S601)。
より詳細には、全体制御部14は、ほぼ定期的に発生するTD満了割込みに応答してディスカバリ処理を行なう(S35)。
このとき、全体制御部14は、PON回線1〜Nに対して新たに加入したいONUが存在すれば、一連のメッセージを当該ONUから受信し、当該ONUを登録する。
具体的には、全体制御部14では、当該ONUからレジスタ要求メッセージを受けると、IQ非空割込みが発生する。これにより、メッセージ受信処理(S31)が行なわれる。このメッセージ受信処理では、変数master==YESかつ変数active==YESであるため、変数skipにNOを設定する(S60)。そして、メッセージ受信処理内のメッセージ受信共通処理(S62)が行なわれ、さらに、メッセージ受信共通処理内のレジスタ要求処理(S72)が行われる。
全体制御部14では、レジスタメッセージに対する応答として、OSUからレジスタ確認メッセージを受けると、IQ非空割込みが発生する。これにより、メッセージ受信処理(S31)が行なわれる。このメッセージ受信処理では、変数master==YESかつ変数active==YESであるため、変数skipにNOを設定する(S60)。そして、メッセージ受信処理内のメッセージ受信共通処理(S62)が行なわれ、さらに、メッセージ受信共通処理内のレジスタ確認処理(S73)が行われる。
レジスタ確認処理が終了した時点では、当該ONUにLLIDがアサインされ、このLLIDがLLTテーブルにエントリされている。すなわち、LLTijのLLStatに「登録済」が設定され、RTTおよびRPtimeが保持される。また、当該ONUにレポートを要求する、すなわちレポート強制フラグが立てられたゲートフレームが当該ONUへ送信されている。
これらの一連の動作に伴い、当該ONUと通信を行なうOSUの局所制御部36においても、当該ONUが登録される。すなわち、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、対応のOSUと通信しているONUについての全体制御部14によるPON回線制御の内容を監視する。より詳細には、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、全体制御部14が登録したONUのうち、対応のOSUと通信しているONUを登録する(S602)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。ONUからの一般制御フレームは、全体制御部14、および当該ONUと通信を行なうOSUにおける局所制御部36の両方にメッセージとして送られる。OSUが当該ONUからレジスタ確認フレームを受けると、当該OSUの局所制御部36ではRxQ非空割込みが発生する。これにより、RxQ処理(S343)が行なわれる。このRxQ処理では、変数active==NOであるため、変数skipにYESを設定する(S356)。そして、RxQ処理内のメッセージ受信処理(S357)が行なわれ、さらに、メッセージ受信処理内のレジスタ確認処理(S363)が行われる。
このレジスタ確認処理により、局所制御部36は、全体制御部14が当該ONUにアサインしたLLIDを取得し、LLTテーブルにエントリする。すなわち、LLTijのLLstatに「登録済」が設定され、RTTおよびRPtimeが保持される。ここで、レジスタ確認処理では、変数skip==YESであるため、当該ONUへのゲートフレーム送信は行われない。
また、ONUからのレジスタ要求メッセージを受信することにより、レジスタ要求処理(S362)が行われるが、変数skip==YESであるため、実質的な処理は行われない。
次に、ONUが登録された状態における動作について説明する。全体制御部14は、登録したONUからレポートメッセージを受信し、当該レポートメッセージの情報に基づいて上り帯域を割り当てる動作を繰り返し行なう。
具体的には、当該ONUからレポートメッセージを受けると、IQ非空割込みが発生する。これにより、メッセージ受信処理(S31)が行なわれる。このメッセージ受信処理では、変数master==YESかつ変数active==YESであるため、変数skipにNOを設定する(S60)。そして、メッセージ受信処理内のメッセージ受信共通処理(S62)が行なわれ、さらに、メッセージ受信共通処理内のレポート受信処理(S75)が行われる。
レポート受信処理では、RPtimeが更新され、また、RTT更新処理(S124)が行なわれ、この処理においてRTTが更新される。引続いて帯域割当処理(S76)が行われ、この処理において当該ONUに対する上り送信許可期間が決定され、レポート要求を兼ねたゲートフレームが当該ONUへ送信される。
ここで、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、前述のようにONUを登録するとともに、全体制御部14が登録したONUのうち、対応のOSUと通信しているONUの往復伝播時間RTTをたとえば自ら算出することにより取得する。すなわち、上記した全体制御部14による一連の動作に伴い、当該ONUと通信を行なうOSUの局所制御部36においても、RPtimeおよびRTTが更新される(S602)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。OSUが当該ONUからレポートフレームを受けると、当該OSUの局所制御部36ではRxQ非空割込みが発生する。これにより、RxQ処理(S343)が行なわれる。このRxQ処理では、変数active==NOであるため、変数skipにYESを設定する(S355)。そして、RxQ処理内のメッセージ受信処理(S357)が行なわれ、さらに、メッセージ受信処理内のレポート受信処理(S365)が行われる。
このレポート受信処理により、RPtimeおよびRTTが更新される。このレポート受信処理に引続く帯域割当処理(S366)では、変数skip==YESであるため、実質的な処理は行われない。なお、局所制御部36は、対応のOSUと通信しているONUの往復伝播時間RTTを自ら算出することにより取得する構成に限らず、全体制御部14から通知されることにより取得する構成であってもよい。
以上のようなレポートメッセージおよびゲートメッセージの交換が継続的に行われることにより、局側装置とONUとの間で通信が行われる。なお、この通信の一部としてOAMプロトコルが実行されるが、上記3つの事象との関連性は低いため、詳細な説明は行なわない。
また、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、全体制御部14の正常および異常を判定する(S603)。すなわち、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、全体制御部14と通信を行なう。そして、局所制御部36は、全体制御部14からの所定時間内の通信が繰り返されている場合には(S603でNO)、全体制御部14は正常であると判定する(S606)。一方、局所制御部36は、全体制御部14からの通信が所定時間以上途切れた場合には(S603でYES)、全体制御部14は異常であると判定する(S604)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。局所制御部36では、定期的に発生するTMCタイマ割込みに応答して定時管理処理(S348)が行われる。定時管理処理では、変数active==NOの場合の各処理が行なわれる、すなわち全体制御部14からの管理通信が継続していることを確認する(S522)。
また、全体制御部14は、各OSUと定期的に管理通信を行なうことにより、OSUの動作を監視する。
具体的には、TMC満了割込みにより定時管理処理(S37)が行なわれる、すなわち定時管理処理において変数master==YESの場合の各処理が行なわれ、この定時管理処理内のOSU管理処理(S194)が行なわれる。また、OSU管理処理において変数protected==NOの場合の各処理が行なわれる。より詳細には、OSU管理処理においては、各OSUに状態問合せメッセージを送るとともに、各OSUからの応答を受信していることを確認する(S212)。ここで、OSUからの応答メッセージの受信時刻OSUTi.rxtimeは、OSU管理メッセージ処理(S78)にて記録される。
局所制御部36では、全体制御部14からの状態問合せメッセージを受けると、CinQ非空割込みが発生する。これにより、CinQ処理(S344)およびCinQ処理内の問合せ応答処理(S483)が行われ、全体制御部14へ応答を返す。CinQ処理において、メッセージ受信時刻lastCCが記録される(S481)。
なお、本発明の第1の実施の形態に係る局側装置では、障害を検知するためのタイムアウト定数は、以下の関係を満たすように設定される。
すなわち、CCLtimeout<MPCPtimeout<OAMtimeoutに設定される。これにより、全体制御部14が故障した場合において、局側装置およびONU間のリンクが切れる前に局所制御部36がPON回線制御を代行することができる。
また、OSUtimeout<MPCPtimeoutに設定される。これにより、OSUが故障した場合において、局側装置およびONU間のリンクが切れる前にOSUの冗長切り替えを行なうことができる。
なお、MPCPtimeoutおよびOAMtimeoutの典型値は、それぞれ1秒および5秒である。
次に、全体制御部14および局所制御部36によるPON回線制御の代行動作を説明する。
[PON回線制御の代行動作]
(1)全体制御部14が故障した場合
図55を参照して、各OSUの局所制御部36は、全体制御部14からの通信が所定時間以上途切れた場合には(S603でYES)、全体制御部14は異常であると判定する(S604)。すなわち、全体制御部14が故障した場合には、各OSUの局所制御部36において、全体制御部14からの状態問合せメッセージが途絶え、メッセージ受信時刻lastCCが更新されなくなる。
各OSUの局所制御部36は、全体制御部14は異常であると判定すると、全体制御部14によるPON回線制御を監視した結果に基づいてPON回線制御を代行する。すなわち、各OSUの局所制御部36は、対応のOSUと通信すべきONUによる上り通信信号の送信を制御するPON回線制御を行なう(S605)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。図53に示す定時管理処理において、状態問合せメッセージの最新受信時刻からの経過時間がCCLtimeout以上になると(S522でNO)、局所制御部36は、全体制御部14は異常であると判定する。そして、局所制御部36は、変数activeをYESに設定し、PON制御の代行を開始する(S525)。そして、局所制御部36は、必要なタイマを起動する、すなわち、ディスカバリタイマ(TD)をセットし、管理通信タイマ(TMC)をセットする(S526)。
ここで、タイムアウト定数は、前述のようにCCLtimeout<MPCPtimeoutの関係を満たすように設定されるから、局所制御部36がPON制御を代行する際、MPCPリンクは維持されている。
以後、局所制御部36は、ディスカバリ処理と、レポートメッセージおよびゲートメッセージの継続的な交換とを代行する。すなわち、RxQ処理では、変数active==YESであるため、変数skipにNOを設定する(S355)。
(2)全体制御部14を保守交換する場合
図56は、全体制御部14を保守交換する場合における本発明の第1の実施の形態に係る局側装置の動作手順を定めたフローチャートである。なお、図56におけるステップS611およびS612の内容は、図55に示すフローチャートのステップS601およびS602の内容と同様である。
局側装置において、全体制御部14の保守交換がユーザから指示された場合には、全体制御部14は、操作IFを介して全体制御停止指示を受ける(S613でYES)。そうすると、全体制御部14は、全体制御部14によるPON回線制御から各OSUにおける局所制御部36によるPON回線制御へ切り替える時刻Tcxを設定する(S614)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。全体制御部14は、操作IFを介して全体制御停止指示を受けると、停止前処理(S234)を行なう。全体制御部14は、停止前処理において、変数active=OUTに設定するとともに、局所制御部36へPON回線制御を引き渡す時刻Tcxを決め(S283)、各OSUにおける局所制御部36へ起動要求メッセージを送る(S284)。
また、全体制御部14は、遷移状態を解除する時刻を決め、この時刻をタイマTAXにセットする(S283)。
局所制御部36は、全体制御部14から起動要求メッセージを受けて、CinQ処理(S344)内の起動前処理(S484)を行なう。この起動前処理において、局所制御部36は、変数active=INに変更するとともに、遷移状態を解除する時刻を決め、この時刻をタイマTAXにセットする(S502)。
次に、時刻Tcxにおいて全体制御部14がPON回線制御を停止し、かつ各OSUにおける局所制御部36がPON回線制御を代行する(S615)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。全体制御部14は、遷移状態すなわち変数active==OUTである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=YESに設定するため(S61)、受信したメッセージに対応するメッセージ送信は行なわない。
一方、局所制御部36は、遷移状態すなわち変数active==INである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=NOに設定するため(S356)、受信したメッセージに対応するメッセージ送信を行なう。すなわち、局所制御部36は、時刻Tcxを境として、PON回線制御を代行する。
全体制御部14において、タイマTAXが満了すると、TAX満了割込みが発生する。これにより、アクティブ切り替え後処理(S39)が行なわれる。このアクティブ切り替え後処理では、変数activeがOUTからNOに変更される(S322)。
一方、局所制御部36において、タイマTAXが満了すると、TAX満了割込みが発生する。これにより、起動後処理(S349)が行なわれる。この起動後処理では、変数activeがINからYESに変更され(S533)、所定のタイマが起動される(S534およびS535)。
以後、局所制御部36は、ディスカバリ処理と、レポートメッセージおよびゲートメッセージの継続的な交換とを代行する。すなわち、RxQ処理では、変数active==YESであるため、変数skipにNOを設定する(S355)。
次に、全体制御部14が保守交換される(S616)。保守交換された新たな全体制御部14は、変数start_mode==LEARNに設定された状態で起動される(S617)。
この設定で起動された場合、全体制御部14は、各OSUにおける局所制御部36によるPON回線制御の内容を監視する(S618)。すなわち、全体制御部14は、現在時刻ctimeおよび局側装置各部の状態を学習する(S20)。そして、全体制御部14は、所定時間スリープする(S21)。スリープの間、全体制御部14は、各局所制御部36のPON回線制御代行動作に伴ってレポートメッセージを受信し、ロジカルリンクテーブルLLTを再構成する。
次に、全体制御部14は、各局所制御部36によるPON回線制御から全体制御部14によるPON回線制御へ切り替える時刻Tcxを設定する(S619)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。全体制御部14は、所定時間スリープした後、起動前処理を行なう(S22)。起動前処理において、全体制御部14は、active=INに設定するとともに、局所制御部36からPON回線制御を引き継ぐ時刻Tcxを決める(S272)。そして、停止要求メッセージを各局所制御部36へ送る(S273)。また、遷移状態を解除する時刻を決め、この時刻をタイマTAXにセットする(S272)。
局所制御部36は、この停止要求メッセージを全体制御部14から受けて、CinQ処理(S344)内の停止前処理(S485)を行なう。この停止前処理では、局所制御部36は、変数active=OUTに設定するとともに、遷移状態を解除する時刻を決め、この時刻をタイマTAXにセットする(S513)。
次に、時刻Tcxにおいて、各局所制御部36がPON回線制御の代行を停止し、かつ全体制御部14がPON回線制御を再開する(S620)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。全体制御部14は、遷移状態すなわち変数active==INである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=NOに設定するため(S60)、受信したメッセージに対応するメッセージ送信を行なう。
一方、局所制御部36は、遷移状態すなわち変数active==OUTである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=YESに設定するため(S61)、受信したメッセージに対応するメッセージ送信は行なわない。すなわち、局所制御部36は、時刻Tcxを境として、PON回線制御の代行を停止する。
全体制御部14において、タイマTAXが満了すると、TAX満了割込みが発生する。これにより、アクティブ切り替え後処理(S39)が行なわれる。このアクティブ切り替え後処理では、変数activeがINからYESに変更され(S324)、アクティブ切り替え後処理内の起動後処理(S325)において所定のタイマが起動される(S311およびS312)。
一方、局所制御部36において、タイマTAXが満了すると、TAX満了割込みが発生する。これにより、起動後処理(S349)が行なわれる。この起動後処理では、変数activeがOUTからNOに変更される(S532)。
次に、全体制御部14および局所制御部36によるOSU切り替え動作を説明する。
[OSU切り替え動作]
(3)OSUが故障した場合
OSUの局所制御部36が自己のOSUの故障を検知し、自己のOSUの故障を示すOSU管理メッセージを全体制御部14へ送信することができた場合には(S342)、全体制御部14は、このOSU管理メッセージを受けてOSU管理メッセージ処理を行なう(S78)。このOSU管理メッセージ処理では、変数skip==NOであり、障害通知==YESであり、変数protected==NOであることから、OSU切り替え処理(S155)が行なわれる。このOSU切り替え処理では、障害を通知してきたOSUが待機系のOSUへ切り替えられる。
また、OSUの局所制御部36が故障した場合には、故障したOSUからの障害通知が期待できない。このような場合には、全体制御部14において、故障したOSUへの状態問合せメッセージに対して、当該OSUからの応答が返ってこないことになる。
そうすると、全体制御部14は、定時管理処理(S37)内のOSU管理処理(S194)において、状態問合せのリトライを繰り返した後、最終的にOSU管理メッセージ最新受信時刻からの経過時間がOSUtimeoutより大きくなった場合には、当該OSUの異常を認識し(S212)、OSU切り替え処理(S214)を行なう。このOSU切り替え処理では、異常が検出されたOSUが待機系のOSUへ切り替えられる。
ここで、タイムアウト定数は、前述のようにOSUtimeout<MPCPtimeoutの関係を満たすように設定されるから、全体制御部14がOSU冗長切り替え処理を行なう際、MPCPリンクは維持されている。
そして、故障したOSUを交換するなどの復旧措置が講じられた後、OSU切戻し処理(S232)が行われる。復旧したOSUは、全体制御部14のPON回線制御動作に伴ってレポートメッセージを受信し、レポート受信処理(S365)を行なう。そして、レポート受信処理において、ロジカルリンクテーブルLLTを再構成する、すなわち通常状態に戻る。
ところで、従来のPONの局側装置では、たとえば、局側装置および複数の宅側装置間の回線制御を行なう制御部に障害が発生した場合、あるいは制御部の交換を行なう場合には、局側装置および複数の宅側装置間の通信が停止してしまう。また、制御部が二重化されている場合でも、両方の制御部に障害が発生すれば、局側装置および複数の宅側装置間の通信が停止してしまうという問題点があった。
しかしながら、本発明の第1の実施の形態に係る局側装置では、局所制御部36が、全体制御部14によるPON回線制御が行なわれているとき、対応のOSUと通信しているONUについてのPON回線状態すなわちPON回線制御の内容を監視する。そして、局所制御部36が、この監視結果に基づいて、全体制御部14に代わり、対応のOSUと通信しているONUによる上り通信信号の送信を制御するPON回線制御を行なう。
このような構成により、局所制御部36が全体制御部14によるPON回線制御内容すなわち各ONUの登録状態および往復伝播時間等を維持したままPON回線制御を代行することができる。このため、全体制御部14に異常が発生した場合および全体制御部14の交換を行なう場合のいずれにおいても、PONリンクの切断を防ぐ、すなわち局側装置および各ONU間の通信が停止することを防ぐことができる。したがって、耐障害性能および保守性能を向上させることができ、信頼性の高い通信システムを提供することができる。
また、本発明の第1の実施の形態に係る局側装置では、局所制御部36は、全体制御部14によるPON回線制御が行なわれているとき、全体制御部14と通信を行ない、全体制御部14からの通信が所定時間以上途切れた場合に、全体制御部14は異常であると判定する。このような構成により、全体制御部14が異常になったことを簡易な構成で判定することができるため、経済性を向上させることができる。
また、本発明の第1の実施の形態に係る局側装置では、全体制御部14が、保守交換指示を受けて切り替え時刻を設定し、この切り替え時刻において全体制御部14がPON回線制御を停止する。また、局所制御部36が、この切り替え時刻においてPON回線制御を開始する。そして、全体制御部14が保守交換され、保守交換された新たな全体制御部14が、局所制御部36によるPON回線制御が行なわれているとき、局所制御部36によるPON回線制御の内容を監視する。そして、新たな全体制御部14が、切り替え時刻を設定し、この切り替え時刻において、局所制御部36がPON回線制御を停止し、かつ新たな全体制御部14が、局所制御部36に代わり、局所制御部36によるPON回線制御を監視した結果に基づいてPON回線制御を開始する。
このように、本発明の第1の実施の形態に係る局側装置では、切り替え元の制御部および切り替え先の制御部が切り替え時刻を共有する。そして、切り替え遷移状態においては、切り替え元の制御部および切り替え先の制御部は、受信した制御メッセージの受信タイムスタンプが当該切り替え時刻の前か後かによって当該制御メッセージの処理を交替する。
このような構成により、PON回線制御の一貫性を保つ、すなわちPON回線制御内容すなわち各ONUの登録状態および往復伝播時間等を維持したまま、PON回線制御の代行および代行の停止を行なうことができる。したがって、全体制御部の交換時および復旧時において局側装置および各ONU間の通信が停止することを防ぐことができるため、保守性能を向上させることができる。
また、本発明の第1の実施の形態に係る局側装置は、待機系のOSU N+1を備える。そして、全体制御部14が、PON回線1〜NとOSU1〜N+1との間の通信経路を切り替える制御を行なう。このような構成により、全体制御部の故障時および保守交換時だけでなく、OSUの故障時および保守交換時においても局側装置および各ONU間の通信が停止することを防ぐことができるため、耐障害性能および保守性能をさらに向上させることができる。
なお、本発明の第1の実施の形態に係る局側装置では、光スイッチ11aを設け、OSUの冗長切り替えを行なう構成であるとしたが、これに限定するものではない。光スイッチ11aを備えず、OSUの冗長切り替えを行なわない構成であってもよい。この場合、図3に示すOSUにおけるPON送受信部35は、光スイッチを介さずにPON回線に接続される。また、局側装置1aは、OSUを1個だけ備える構成であってもよい。
また、本発明の第1の実施の形態に係る局側装置における全体制御部14は、アップリンクの上り帯域割り当てを制御する構成であってもよい。すなわち、上り通信信号は、局側装置において終端される制御フレームおよび局側装置からアップリンクへ送信されるユーザフレームを含む。そして、全体制御部14は、PON回線ごとに、各ONUからのユーザフレームをOSUにおいて受信する期間の重なりが所定時間未満となるように、各ONUの上り通信信号の送信タイミングを設定する構成であってもよい。
また、アップリンクが集線化されている場合であって各OSUにおける局所制御部がPON回線制御を代行しているときに、各OSUにおける局所制御部が、上り帯域をPON回線の物理的な帯域よりも制限する構成であってもよい。これにより、集線部における上り通信信号の輻輳を防ぐ、あるいは低減することができる。
また、本発明の第1の実施の形態に係る局側装置では、基準クロックおよびPON時計(現在時刻)ctimeは全体制御部14が生成し、各OSUに報知することにより、全体制御部14の時計と各局所制御部36の時計とを同期させる構成であるとしたが、これに限定するものではない。
全体制御部14が機能しなくなった場合、局所制御部36は自走する時計を用いてPON回線制御を代行することになる。この代行期間が長くなると各局所制御部36間での時計のずれが大きくなり、代行停止時に全体制御部14が行なうRTT更新処理が異常終了すること等により、リンクの切断されるPON回線が生じる場合がある。
そこで、PON時計ctimeの生成および報知機能を全体制御部14から独立させてもよい。たとえば、局側装置が基準時計生成部を備える構成とする。この場合、全体制御部14および各局所制御部36は、基準時刻生成部から基準クロックおよびPON時計ctimeを取得する。また、基準時計生成部自体を二重化することも望ましい。
また、本発明の第1の実施の形態に係る局側装置では、全体制御部14と各OSUにおける局所制御部36との管理通信は、OSU IF部55を介して行なわれる構成であるとしたが、これに限定するものではなく、別の経路で管理通信を行なう構成であってもよい。たとえば、全体制御部14におけるIO制御部54と、各OSUの局所制御部36におけるIO制御部74とにインタフェースを追加し、IO制御部54およびIO制御部74間で管理通信メッセージを送受信する構成であってもよい。
また、本発明の第1の実施の形態において、OSUは、EPONおよび10GEPONが共存するシステムに対応する構成であってもよい。すなわち、局側装置は、同一のPON回線を介して、EPONのONUおよび10GEPONのONUに接続される。
上りおよび下りとも波長多重を行なうことによって上記二つのPONを共存させる場合、OSUにおいて、FIFO1(37)、FIFO2(38)、受信処理部33および送信処理部34をEPON用および10GEPON用で2系統設ける。
そして、PON送受信部35が、EPON用の送信処理部からの電気信号と10GEPON用の送信処理部からの電気信号とを異なる波長の光信号に変換する。また、PON送受信部35は、EPON用の波長を有する光信号と10GEPON用の波長を有する光信号とを分離して個別に電気信号に変換する。
変換された各光信号は、それぞれの速度に対応した受信処理部33が受ける。集線IF部31は、集線部13aから受けたフレームがEPONへ送るべき下りフレームであるか10GEPONに送るべき下りフレームであるかをVLANタグ情報等に基づいて識別する。そして、集線IF部31は、この識別結果に基づいて下りフレームをEPONに対応するFIFO2または10GEPONに対応するFIFO2へ送るとともに、EPONに対応するFIFO1および10GEPONに対応するFIFO1の各々から適宜上りフレームを読み出し、集線部13aに送る。
この場合、全体制御部14および局所制御部36は、EPON回線および10GEPON回線を論理的に別な回線として扱えばよい。そして、局所制御部36は、2つのPON回線を一括して制御する。また、OSUの冗長切り替え処理は、2個の運用系OSUを2個の待機系OSUへ並行して切り替えることに等しい。
また、上りにおいて時分割多重を行ない、下りにおいて波長多重を行なうことによって上記2つのPONを共存させる場合もある。この場合、下り方向に関する構成および動作は上記した内容と同様である。
PON送受信部35および受信処理部33は、バースト毎にレートが異なるデュアルレート信号が受信可能な構成であってもよい。この場合、全体制御部14および局所制御部36は、基本的にEPON回線および10GEPON回線を単一のPON回線として制御すればよい。
ただし、全体制御部14および局所制御部36は、制御フレームをEPON回線および10GEPON回線のいずれから受信したかを区別して、回線種別をPON回線の属性としてLLTテーブルに記録する。そして、全体制御部14および局所制御部36は、制御フレームを送信する場合、LLTテーブルを参照して、OSUにおけるEPON用および10GEPON用のいずれの送信処理部に送るかを指示する。OSUの冗長切り替え処理は、本発明の第1の実施の形態と同様である。
また、本発明の第1の実施の形態に係る局側装置におけるタイマを集約してもよい。たとえば、複数のONUからのレポートを時間的に集中して収集するような帯域割当方法を採用する場合には、レポートタイムアウト時刻を1つにすることができる。
また、本発明の第1の実施の形態に係る局側装置では、全体制御部14および局所制御部36は、各ONUにレポートフレームの送信を強制し、各ONUから受信したレポートフレームのレポート情報に基づいて、各ONUによるOSUへの上り通信信号の送信を制御するPON回線制御を行なう構成であるとしたが、これに限定するものではない。レポート情報に依らず各ONUに固定期間を割り当てる等、他の方法で各ONUによるOSUへの上り通信信号の送信を制御してもよい。
なお、本実施の形態において開示した帯域割当処理は、正確にはアクセス制御処理であり、PON回線あるいはアップリンク回線へのTDMA(Time Division Multiple Access)を実現するものである。広義の帯域割当処理は、アクセス制御処理に加えて、帯域保証および余帯域を公平に分配するための処理(QoS制御処理とも称する)を含む。このQoS制御処理により、レポート閾値の設定、複数レポートの選択、およびGLmaxの増減が行なわれる。
本実施の形態において開示した帯域割当処理はQoS制御処理とは独立した処理であり、QoS制御処理に関する様々な先行例と組み合わせて実施することが可能であり、組み合わされるQoS制御処理は特定のQoS制御処理に限定されない。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第2の実施の形態>
本実施の形態は、第1の実施の形態に係る局側装置と比べて集線部および制御部を二重化した局側装置に関する。以下で説明する内容以外は第1の実施の形態に係る局側装置と同様である。
[構成および基本動作]
図57は、本発明の第2の実施の形態に係る局側装置の概略構成を示すブロック図である。
局側装置1bは、本発明の第1の実施の形態に係る局側装置と異なり、1系の集線部13a−1、2系の集線部13a−2、1系の全体制御部14−1および2系の全体制御部14−2を備える。
図58は、本発明の第2の実施の形態に係る光スイッチ11bの構成例を示す図である。この光スイッチ11bは、図2に示す第1の実施の形態に係る光スイッチ11aと比較して、系選択部25が追加されている点が異なる。この系選択部25は、1系の全体制御部14−1からの制御信号と2系の全体制御部14−2からの制御信号のいずれかを選択するものである。
系選択部25は、1系の全体制御部14−1および2系の全体制御部14−2と継続的に管理通信を行なっており、運用系になっている全体制御部を自律的に判断し、運用系となっている全体制御部からの制御信号をアクチュエータ21に出力する。
図3に示すOSUの制御IF部32は、1系の全体制御部14−1と2系の全体制御部14−2とのインタフェースを有している。制御IF部32は、このインタフェースを介して1系の全体制御部14−1および2系の全体制御部14−2と継続的に管理通信を行なっており、運用系になっている全体制御部を自律的に判断する。そして、制御IF部32は、運用系の全体制御部からの信号のみを処理する一方、両方の全体制御部に同じ信号を出力する。
同様に、集線IF部31は、1系の全体制御部14−1と2系の全体制御部14−2とのインタフェースを有している。集線部IF31は、上りフレームを集線部13a−1および13a−2の両系統に出力し、両系統から送られた下りフレームをFIFO2(38)に出力する。なお、待機系の集線部から下りフレームが送られることはないので、衝突はしない。また、集線部の異常に備えて、待機系からの入力信号を遮断するようにしてもよい。この場合、全体制御部14−1または14−2が、制御IF部32を介して系選択を行なう。
全体制御部14−1および14−2は、本発明の第1の実施の形態と同様に、局側装置1aおよびONU2間の通信を制御する。たとえば、局側装置1aと通信を行なうべき複数のONUの登録および登録抹消処理、上り帯域割り当て処理ならびに上り通信信号の送信タイミング設定処理を一括して行なう。
図4に示す集線部13aの制御IF部44は、1系の全体制御部14−1と2系の全体制御部14−2とのインタフェースを有している。制御IF部44は、このインタフェースを介して1系の全体制御部14−1および2系の全体制御部14−2と継続的に管理通信を行なっており、運用系になっている全体制御部を自律的に判断する。そして、制御IF部44は、運用系の全体制御部からの信号のみを処理する一方、両方の全体制御部に同じ信号を出力する。
集線部が二重系となっている場合、パスの選択はフィルタ部46aでのパス接続/パス切断の設定に反映される。運用系の全体制御部が、制御IF部44を介してこの指示を行なう。たとえば、集線部が1:1冗長化に対応する場合、待機系の集線部については、すべてのフィルタ部の上りパスおよび下りパスをともに「切断」に設定すればよい。また、1+1冗長化に対応する場合、待機系の集線部については、すべてのフィルタ部の下りパスを「切断」に設定すればよい。
図5に示す全体制御部14のIO制御部54は、他方の全体制御部のIO制御部とインタフェースできるようになっている。CPU51は、IO制御部54を介して他系のCPUと管理通信を行ない、運用系となるか、待機系となるかを自律的に判断している。また、操作IFから明示的に運用系/待機系が指示される場合もある。局側装置の各部からの信号は両系統に入力されるので、待機系であっても局側装置内の状態変化およびPON回線の状態をトレースすることができる。
集線部の冗長化によって、1:1冗長化、1+1冗長化、負荷分散が可能である。ここで、負荷分散とは、OSUを2つのグループ(AグループおよびBグループ)に分け、通常時は1系の集線部13a−1がグループAを集線し、2系の全体制御部14−2がグループBを集線する。そして、たとえば1系の集線部13a−1またはアップリンクに障害が発生した場合、2系の集線部13a−2が両グループを集線するように切り替えるものである。1:1冗長化または負荷分散を行なう場合、集線部13aのアップリンク送受信部41は、アップリンクを介して管理通信を行ない、アップリンクの状態を監視するとともに、対向装置からの障害通知を受信して、異常があった場合は対応する警報を全体制御部14に通知する。
全体制御部14は、運用系の集線部の異常を認識すると、他系の集線部が正常である場合、他系に切り替える。この切り替えは、冗長構成(1:1、1+1、負荷分散)に応じて、集線部13aのフィルタ部46aのパス設定を変更することによって行なわれる。なお、負荷分散の場合には、全体制御部14が操作IFを介して外部からの指示を受けて、集線部13aのフィルタ部46aのパス設定を変更することによって、負荷分散状態時に復旧させる。
全体制御部14の切り替えを行なう際に、帯域割当の引継ぎが行なわれるが、過去の割当分を含めて厳密に引き継ぐ運用と、過去分は引き継がずに新規に帯域計算を行なう運用とがある。前者の場合、運用系の全体制御部は、各PON回線に送信した制御メッセージを、どのOSUに対して送信したかを含めて待機系の全体制御部に通知する。
次に、本発明の第2の実施の形態に係る局側装置におけるPON回線制御の代行動作について図面を用いて説明する。
以下では、局側装置の信頼性に関する以下の2つの事象、すなわち(1)全体制御部の故障、(2)全体制御部の保守(交換)における本発明の第2の実施の形態に係る局側装置の動作を、以下に示す各フローチャートと、本発明の第1の実施の形態において説明した全体制御部14および局所制御部36の各処理を示すフローチャートとを参照しながら説明する。
図59は、運用系の全体制御部に異常が発生した場合における本発明の第1の実施の形態に係る局側装置の動作手順を定めたフローチャートである。
[通常動作]
まず、図59に示すフローチャートを参照しながら、上記各事象が発生する前の通常状態における全体制御部14および局所制御部36の典型的な動作を説明する。ここでは、本発明の第1の実施の形態に係る局側装置と異なる点として、待機系の全体制御部14の動作を説明する。なお、図59におけるステップS631の内容は、図55に示すフローチャートのステップS601に対応する説明において「全体制御部14」を「運用系の全体制御部14」に置き換えたものと同様である。
ステップS631における運用系の全体制御部14の一連の動作に伴い、待機系の全体制御部14においても、各OSUと通信を行なうべきONUが登録される。すなわち、待機系の全体制御部14は、運用系の全体制御部14によるPON回線制御が行なわれているとき、各OSUと通信している各ONUについての全体制御部14によるPON回線制御の内容を監視する。より詳細には、待機系の全体制御部14は、運用系の全体制御部14によるPON回線制御が行なわれているとき、運用系の全体制御部14が登録したONUを登録するとともに、登録されたONUの往復伝播時間をたとえば自ら参照することにより取得する(S632)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。待機系の全体制御部14は、運用系の全体制御部14からの管理通信メッセージを受けて、管理通信受信処理(S32)を行なう。この管理通信受信処理では、現在時刻ctimeおよび変数activeを運用系の全体制御部14と同期させるとともに、管理通信メッセージの受信時刻をメッセージ受信時刻lastCCに代入する。
待機系の全体制御部14は、運用系の全体制御部14の動作に伴ってレジスタ確認メッセージおよびレポートメッセージを受信すると、レジスタ確認処理(S73)およびレポート受信処理(S75)において、LLTテーブルを再構成する。
なお、待機系の全体制御部14では、変数skip==YESであるため、これらの処理において、ONUへのフレーム送信は行われない。
ここで、待機系の全体制御部14は、各OSUと通信している各ONUの往復伝播時間RTTを自ら算出することにより取得する構成に限らず、運用系の全体制御部14から通知されることにより取得する構成であってもよい。
また、待機系の全体制御部14は、運用系の全体制御部14によるPON回線制御が行なわれているとき、運用系の全体制御部14の正常および異常を判定する。すなわち、局所制御部36は、運用系の全体制御部14によるPON回線制御が行なわれているとき、運用系の全体制御部14と通信を行なう。そして、待機系の全体制御部14は、全体制御部14からの所定時間内の通信が繰り返されている場合には(S633でNO)、運用系の全体制御部14は正常であると判定する(S640)。一方、待機系の全体制御部14は、運用系の全体制御部14からの通信が所定時間以上途切れた場合には(S633でYES)、運用系の全体制御部14は異常であると判定する(S634)。
また、本発明の第2の実施の形態に係る局側装置では、障害を検知するためのタイムアウト定数として、本発明の第1の実施の形態に係る局側装置と比べてタイムアウト定数CCMtimeoutが加わっており、以下の関係を満たすように設定される。
CCMtimeout<CCLtimeout
以下では、全体制御部14−1が運用系として起動され、全体制御部14−2が予備系として起動されていると仮定して説明する。
(1)全体制御部が故障した場合
待機系の全体制御部14−2は、運用系の全体制御部14−1からの通信が所定時間以上途切れた場合には(S633でYES)、運用系の全体制御部14−1は異常であると判定する(S634)。すなわち、運用系の全体制御部14−1が故障した場合には、待機系の全体制御部14−2において、運用系の全体制御部14−1からの管理通信メッセージが途絶え、メッセージ受信時刻lastCCが更新されなくなる。
待機系の全体制御部14−2は、運用系の全体制御部14−1は異常であると判定すると、運用系の全体制御部14−1によるPON回線制御を監視した結果に基づいてPON回線制御を代行する。すなわち、待機系の全体制御部14−2は、ONUによる上り通信信号の送信を制御するPON回線制御を行なう(S635)。
これを前述した全体制御部14および局所制御部36の各処理に当てはめて説明する。図22に示す定時管理処理において、管理通信メッセージの最新受信時刻からの経過時間がCCMtimeoutより大きくなると(S198でNO)、待機系の全体制御部14−2は、運用系の全体制御部14−1は異常であると判定する。そして、待機系の全体制御部14−2は、変数masterをYESに設定し、運用系の全体制御部14−1に代わり、PON回線制御等の全体制御を開始する(S199)。そして、運用系となった全体制御部14−2は、必要なタイマを起動する、すなわち、ディスカバリタイマ(TD)をセットし、管理通信タイマ(TMC)をセットする。
ここで、タイムアウト定数は、前述のようにCCMtimeout<CCLtimeoutの関係を満たすように設定されるから、全体制御部14−2による全体制御が局所制御部36によるPON回線制御の代行より先に行なわれる。
以後、変数master==YESに設定して運用系となった全体制御部14−2は、ディスカバリ処理と、レポートメッセージおよびゲートメッセージの継続的な交換とを引き継ぐ。すなわち、メッセージ受信処理では、変数master==YESであるため、変数skipにNOを設定する(S60)。
次に、局所制御部36は、運用系の全体制御部14−2によるPON回線制御が行なわれているとき、前述のように運用系の全体制御部14−2が登録したONUのうち、対応のOSUと通信しているONUを登録するとともに、対応のOSUと通信しているONUの往復伝播時間を取得する。すなわち、運用系の全体制御部14−2による一連の動作に伴い、当該ONUと通信を行なうOSUの局所制御部36においても、RPtimeおよびRTTが更新される(S636)。なお、局所制御部36は、運用系の全体制御部14−1から予備系の全体制御部14−2へPON回線制御を含む全体制御が切り替えられる前から、全体制御部によるPON回線制御の内容を監視する構成であってもよい。
また、局所制御部36は、運用系の全体制御部14−2によるPON回線制御が行なわれているとき、運用系の全体制御部14−2の正常および異常を判定する。すなわち、局所制御部36は、運用系の全体制御部14−2によるPON回線制御が行なわれているとき、運用系の全体制御部14−2と通信を行なう。そして、局所制御部36は、運用系の全体制御部14−2からの所定時間内の通信が繰り返されている場合には(S637でNO)、運用系の全体制御部14−2は正常であると判定する(S641)。
一方、局所制御部36は、運用系の全体制御部14−2からの通信が所定時間以上途切れた場合には(S637でYES)、運用系の全体制御部14−2は異常であると判定する(S638)。すなわち、運用系の全体制御部14−2が故障した場合には、各OSUの局所制御部36において、運用系の全体制御部14−2からの状態問合せメッセージが途絶え、メッセージ受信時刻lastCCが更新されなくなる。
各OSUの局所制御部36は、運用系の全体制御部14−2は異常であると判定すると、運用系の全体制御部14−2によるPON回線制御を監視した結果に基づいてPON回線制御を代行する。すなわち、各OSUの局所制御部36は、対応のOSUと通信すべきONUによる上り通信信号の送信を制御するPON回線制御を行なう(S639)。
(2)全体制御部を保守交換する場合
図60は、運用系の全体制御部14−1を保守交換する場合における本発明の第2の実施の形態に係る局側装置の動作手順を定めたフローチャートである。なお、図60におけるステップS651およびS652の内容は、図59に示すフローチャートのステップS631およびS632の内容と同様である。
局側装置において、運用系の全体制御部14−1の保守交換がユーザから指示された場合には、運用系の全体制御部14−1は、操作IFを介して制御系切り替え指示を受ける(S653でYES)。そうすると、運用系の全体制御部14−1は、運用系の全体制御部14−1によるPON回線制御から待機系の全体制御部14−2によるPON回線制御へ切り替える時刻Tcxを設定する(S654)。
これを前述した全体制御部14−1および全体制御部14−2の各処理に当てはめて説明する。運用系の全体制御部14−1は、操作IFを介して制御系切り替え指示を受けると、制御系切り替え処理(S235)を行なう。この制御系切り替え処理では、master=OUTに設定するとともに、待機系の全体制御部14−2へPON回線制御を引き渡す時刻Tcxを決め(S294)、待機系の全体制御部14−2へ管理通信メッセージを送信してマスタ化を指示する(S295)。
また、運用系の全体制御部14−1は、遷移状態を解除する時刻を決め、この時刻をタイマTMXにセットする(S294)。
待機系の全体制御部14−2は、このマスタ化指示を示す管理通信メッセージを受信し、管理通信受信処理内のマスタ化処理(S244)を行なう。このマスタ化処理では、master=INに設定するとともに、遷移状態を解除する時刻を決め、この時刻をタイマTMXにセットする(S224)。
そして、時刻Tcxにおいて運用系の全体制御部14−1がPON回線制御を停止し、かつ待機系の全体制御部14−2がPON回線制御を代行する(S655)。
すなわち、全体制御部14−1は、遷移状態すなわち変数master==OUTである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=YESに設定するため(S60)、受信したメッセージに対応するメッセージ送信は行なわない。
一方、全体制御部14−2は、遷移状態すなわち変数master==INである状態において、時刻Tcx以後に受信したメッセージについては、メッセージ受信処理において変数skip=NOに設定するため(S60)、受信したメッセージに対応するメッセージ送信を行なう。すなわち、全体制御部14−2は、時刻Tcxを境として、PON回線制御を引き継ぐ。
全体制御部14−1において、タイマTMXが満了すると、TMX満了割込みが発生する。これにより、マスタ切り替え後処理(S38)が行なわれる。このマスタ切り替え後処理では、変数masterがOUTからNOに変更される(S302)。
一方、全体制御部14−2は、タイマTMXが満了すると、TMX満了割込みが発生する。これにより、マスタ切り替え後処理(S38)が行なわれる。このマスタ切り替え後処理では、変数masterがINからYESに変更され(S303)、マスタ切り替え後処理内の起動後処理において所定のタイマが起動される(S311およびS312)。
以後、全体制御部14−2は、ディスカバリ処理と、レポートメッセージおよびゲートメッセージの継続的な交換とを代行する。すなわち、メッセージ処理では、変数master==YESかつ変数active==YESであるため、変数skipにNOを設定する(S60)。
次に、全体制御部14−1が保守交換される(S656)。そして、新しい全体制御部14−1が待機系として起動される(S657)。
以後の全体制御部14−1の処理は、前述した待機系の全体制御部14−2の処理内容と同様である。
以上説明したように、本発明の第2の実施の形態に係る局側装置では、上記2つの事象において、まず待機系の全体制御部14が運用系の全体制御部14のPON回線制御を含む全体制御を引継ぎ、この段階では局所制御部36はPON回線制御の代行を行なわない。これにより、本発明の第1の実施の形態において説明した効果に加えて、経済性を大きく損なうことなく、さらに耐障害性能を向上させることができる。
より詳細には、本発明の第2の実施の形態に係る局側装置では、予備系の全体制御部14−2が、運用系の全体制御部14−1によるPON回線制御が行なわれているとき、各OSUと通信している各ONUについてのPON回線制御の内容を監視する。次に、予備系の全体制御部14−2が、運用系の全体制御部14−1によるPON回線制御を監視した結果に基づいて、運用系の全体制御部14−1に代わり、PON回線制御を行なう。次に、局所制御部36が、運用系となった全体制御部14−2によるPON回線制御が行なわれているとき、対応のOSUと通信しているONUについてのPON回線制御の内容を監視する。そして、局所制御部36が、運用系の全体制御部14−2によるPON回線制御の内容を監視した結果に基づいて、運用系の全体制御部14−2に代わり、対応のOSUと通信しているONUによる上り通信信号の送信を制御するPON回線制御を行なう。
このような構成により、運用系の全体制御部14に異常が発生した場合、運用系の全体制御部14から待機系の全体制御部14への冗長切り替えが、局所制御部36によるPON回線制御の代行に優先して実行される。ここで、全体制御部14は、集線部におけるアップリンクの上り帯域割当を一括して制御する。また、全体制御部14は、局側装置におけるOSUの冗長切り替えを一括して制御する。したがって、このような全体制御部14による一括制御の効果を維持しながら、耐障害性能を向上させることができる。
そして、本発明の第2の実施の形態に係る局側装置では、すべての全体制御部14に異常が発生した場合でも、各OSUにおける局所制御部36がPON回線制御を引き継ぐことにより、PON回線の通信が停止することを防ぐことができるため、耐障害性能をさらに向上させることができる。
また、本発明の第2の実施の形態に係る局側装置では、全体制御部14−1が、保守交換指示を受けて切り替え時刻を設定し、この切り替え時刻において全体制御部14−1がPON回線制御を停止する。また、全体制御部14−2が、この切り替え時刻においてPON回線制御を開始する。そして、全体制御部14−1が保守交換され、保守交換された新たな全体制御部14−1が、待機系の全体制御部として起動される。
このように、本発明の第2の実施の形態に係る局側装置では、切り替え元の全体制御部および切り替え先の全体制御部が切り替え時刻を共有する。そして、切り替え遷移状態においては、切り替え元の全体制御部および切り替え先の全体制御部は、受信した制御メッセージの受信タイムスタンプが当該切り替え時刻の前か後かによって当該制御メッセージの処理を交替する。
このような構成により、PON回線制御の一貫性を保つ、すなわちPON回線制御内容すなわち各ONUの登録状態および往復伝播時間等を維持したまま、全体制御部間のPON回線制御の切り替えを行なうことができる。したがって、全体制御部の交換時および復旧時において局側装置および各ONU間の通信が停止することを防ぐことができるため、保守性能を向上させることができる。
その他の構成および動作は第1の実施の形態に係る局側装置と同様であるため、ここでは詳細な説明を繰り返さない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。