【文献】
IEEE P802.1AX-REV /D1.0 Draft Standard for Local and Metropolitan Area Networks,米国,IEEE-SA,2012年 5月14日,P.115-126
(58)【調査した分野】(Int.Cl.,DB名)
ネットワークデバイスにおいてリンクアグリゲーショングループにおける分散レジリエントネットワーク相互接続(DRNI)をサポートする方法であって、前記ネットワークデバイス及び近隣ネットワークデバイスが、前記リンクアグリゲーショングループの第1のポータルに含まれ、前記第1のポータルは、前記リンクアグリゲーショングループのリンクを介して1つ又は複数のリモートネットワークデバイスを含む第2のポータルに結合され、前記ネットワークデバイスは、ポータル内リンク(IPL)を用いてポータル内ポート(IPP)を介して前記近隣ネットワークデバイスに通信可能に結合され、前記方法は、
前記IPLを用いて前記近隣ネットワークデバイスに結合された前記IPPにおいて分散レジリエント制御プロトコル(DRCP)を操作するために前記ネットワークデバイスを初期化すること(3302)であって、前記初期化は、前記IPPにおける前記近隣ネットワークデバイスのためのデフォルトパラメータ値を、前記第1のポータルの管理者によって提供される前記近隣ネットワークデバイスの動作パラメータとなるようにセットすることを含む、初期化することと、
前記DRCPが前記IPPにおいて有効にされていることをチェックすること(3304)であって、前記チェックは、前記IPPが動作中のDRCPであることを示す変数を判定することを含む、チェックすることと、
前記ネットワークデバイスにおいて満了状態に入ること(3306)であって、前記ネットワークデバイスは、
前記ネットワークデバイスの分散中継器制御プロトコル(DRCP)状態パラメータを満了にセットすること、
前記近隣ネットワークデバイスのIPPアクティビティを非アクティブにセットすること、及び
分散中継器制御プロトコルデータユニット(DRCPDU)を受信するためのタイマをセットすること、
を実行する、満了状態に入ることと、
近隣ネットワークデバイスの状態情報を含むDRCPDUを受信すること(3307)と、
前記受信DRCPDUが前記第1のポータルに関連付けられていると判定すること(3308)と、
前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定すること(3310)であって、前記判定は、前記第1のポータルに関連付けられた管理設定値が前記受信DRCPDUの管理設定値と一貫していると判定することを含む、判定することと、
前記受信DRCPDUに含まれる近隣ネットワークデバイスの状態情報を、前記ネットワークデバイスにおいて、前記近隣ネットワークデバイスの状態動作変数として記録すること(3312)であって、前記近隣ネットワークデバイスの状態情報は前記IPPのDRCP変数を含む、記録することと、
を含む、方法。
前記DRCPDUを受信することなく前記タイマが満了すると、前記ネットワークデバイスはデフォルト状態に入り、前記デフォルト状態において、前記ネットワークデバイスは、前記IPPにおける前記近隣ネットワークデバイスのためのデフォルトパラメータ値を、前記第1のポータルの前記管理者によって提供される前記近隣ネットワークデバイスの現在の動作パラメータになるようにセットし、前記ネットワークデバイスは、前記デフォルト状態のステータスを前記第1のポータルの管理システムに報告することを更に含む、請求項1に記載の方法。
前記受信DRCPDUが前記第1のポータルに関連付けられていると判定することは、前記受信DRCPDUにおいて保有されるポータルパラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項1又は2に記載の方法。
受信DRCPDUがローカルポータルに関連付けられていないと判定すると、前記第1のポータルの管理システムに、関連なしのステータスを報告することを更に含む、請求項1又は2に記載の方法。
前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定することは、前記受信DRCPDUにおいて保有される近隣ネットワークデバイスの設定パラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項1に記載の方法。
前記受信DRCPDUが前記ネットワークデバイスと互換性がないと判定すると、前記第1のポータルの管理システムに、互換性なしのステータスを報告することを更に含む、請求項1又は2に記載の方法。
前記記録された近隣ネットワークデバイスの状態動作変数が前記ネットワークデバイスの状態動作変数と異なると判定すると、前記近隣ネットワークデバイスに通知する1つ又は複数のトリガをセットすることを更に含む、請求項1又は2に記載の方法。
リンクアグリゲーショングループにおける分散レジリエントネットワーク相互接続(DRNI)をサポートするネットワークデバイスであって、前記ネットワークデバイス及び近隣ネットワークデバイスが、前記リンクアグリゲーショングループの第1のポータルに含まれ、前記第1のポータルは、前記リンクアグリゲーショングループのリンクを介して2つ以上のリモートネットワークデバイスを含む第2のポータルに結合され、前記ネットワークデバイスは、ポータル内リンク(IPL)を用いてポータル内ポート(IPP)を介して前記近隣ネットワークデバイスに通信可能に結合され、前記ネットワークデバイスは、
前記リンクアグリゲーショングループの物理リンク又はアグリゲーションリンクに結合されたポート(1340)と、
前記ポートに結合されDRNI機能(1313)を実行するネットワークプロセッサ(1300)とを備え、
前記DRNI機能は、前記IPLを用いて前記近隣ネットワークデバイスに結合された前記IPPにおいて分散レジリエント制御プロトコル(DRCP)を操作するために前記ネットワークデバイスを初期化するように動作可能であり、前記初期化は、前記IPPにおける近隣ネットワークデバイスのためのデフォルトパラメータ値を、前記第1のポータルの管理者によって提供される前記近隣ネットワークデバイスの動作パラメータとなるようにセットすることを含み、前記DRNI機能は、前記DRCPが前記IPPにおいて有効にされていることをチェックするように更に動作可能であり、前記チェックは、前記IPPが動作中のDRCPであることを示す変数を判定することを含み、前記DRNI機能は、前記ネットワークデバイスにおいて満了状態に入るように更に動作可能であり、前記DRNI機能は、前記ネットワークデバイスの分散中継器制御プロトコル(DRCP)状態パラメータを満了にセットし、前記近隣ネットワークデバイスのIPPアクティビティを非アクティブにセットし、分散中継器制御プロトコルデータユニット(DRCPDU)を受信するためのタイマをセットするように動作可能であり、前記DRNI機能は、DRCPDUを受信するように更に動作可能であり、前記DRCPDUは近隣ネットワークデバイスの状態情報を含み、前記DRNI機能は、前記受信DRCPDUが前記第1のポータルに関連付けられていると判定し、前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定するように更に動作可能であり、前記判定は、前記第1のポータルに関連付けられた管理設定値が前記受信DRCPDUの管理設定値と一貫していると判定するように更に動作可能であり、前記DRNI機能は、前記受信DRCPDUに含まれる近隣ネットワークデバイスの状態情報を、前記ネットワークデバイスにおいて、前記近隣ネットワークデバイスの状態動作変数として記録するように更に動作可能であり、前記近隣ネットワークデバイスの状態情報は前記IPPのDRCP変数を含む、
ネットワークデバイス。
前記受信DRCPDUが前記第1のポータルに関連付けられていると判定することは、前記受信DRCPDUにおいて保有されるポータルパラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項8又は9に記載のネットワークデバイス。
前記DRNI機能は、受信DRCPDUが前記ローカルポータルに関連付けられていないと判定すると、前記第1のポータルの管理システムに、関連なしのステータスを報告するように更に動作可能である、請求項8又は9に記載のネットワークデバイス。
前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定することは、前記受信DRCPDUにおいて保有される近隣ネットワークデバイスの設定パラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項8に記載のネットワークデバイス。
前記DRNI機能は、前記受信DRCPDUが前記ネットワークデバイスと互換性がないと判定すると、前記第1のポータルの管理システムに、互換性なしのステータスを報告するように更に動作可能である、請求項8又は9に記載のネットワークデバイス。
前記DRNI機能は、前記記録された近隣ネットワークデバイスの状態動作変数が前記ネットワークデバイスの状態動作変数と異なると判定すると、前記近隣ネットワークデバイスに通知する1つ又は複数のトリガをセットするように更に動作可能である、請求項8又は9に記載のネットワークデバイス。
命令が記憶された非一時的な機械読取可能な記憶媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、ネットワークデバイスにおいてリンクアグリゲーショングループにおける分散レジリエントネットワーク相互接続(DRNI)をサポートする動作を実行させ、前記ネットワークデバイス及び近隣ネットワークデバイスが、前記リンクアグリゲーショングループの第1のポータルに含まれ、前記第1のポータルは、前記リンクアグリゲーショングループのリンクを介して2つ以上のリモートネットワークデバイスを含む第2のポータルに結合され、前記ネットワークデバイスは、ポータル内リンク(IPL)を用いてポータル内ポート(IPP)を介して前記近隣ネットワークデバイスに通信可能に結合され、前記動作は、
前記IPLを用いて前記近隣ネットワークデバイスに結合された前記IPPにおいて分散レジリエント制御プロトコル(DRCP)を操作するために前記ネットワークデバイスを初期化すること(3302)であって、前記初期化は、前記IPPにおける前記近隣ネットワークデバイスのためのデフォルトパラメータ値を、前記第1のポータルの管理者によって提供される前記近隣ネットワークデバイスの動作パラメータとなるようにセットすることを含む、初期化することと、
前記DRCPが前記IPPにおいて有効にされていることをチェックすること(3304)であって、前記チェックは、前記IPPが動作中のDRCPであることを示す変数を判定することを含む、チェックすることと、
前記ネットワークデバイスにおいて満了状態に入ること(3306)であって、前記ネットワークデバイスは、
前記ネットワークデバイスの分散中継器制御プロトコル(DRCP)状態パラメータを満了にセットすること、
前記近隣ネットワークデバイスのIPPアクティビティを非アクティブにセットすること、及び
分散中継器制御プロトコルデータユニット(DRCPDU)を受信するためのタイマをセットすること、
を実行する、満了状態に入ることと、
近隣ネットワークデバイスの状態情報を含むDRCPDUを受信すること(3307)と、
前記受信DRCPDUが前記第1のポータルに関連付けられていると判定すること(3308)と、
前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定すること(3310)であって、前記判定は、前記第1のポータルに関連付けられた管理設定値が前記受信DRCPDUの管理設定値と一貫していると判定することを含む、判定することと、
前記受信DRCPDUに含まれる近隣ネットワークデバイスの状態情報を、前記ネットワークデバイスにおいて、前記近隣ネットワークデバイスの状態動作変数として記録すること(3312)であって、前記近隣ネットワークデバイスの状態情報は前記IPPのDRCP変数を含む、記録することと、
を含む、非一時的な機械読取可能な記憶媒体。
前記受信DRCPDUが前記第1のポータルに関連付けられていると判定することは、前記受信DRCPDUにおいて保有されるポータルパラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項15又は16に記載の非一時的な機械読取可能な記憶媒体。
前記動作は、受信DRCPDUがローカルポータルに関連付けられていないと判定すると、前記第1のポータルの管理システムに、関連なしのステータスを報告することを更に含む、請求項15又は16に記載の非一時的な機械読取可能な記憶媒体。
前記受信DRCPDUが前記ネットワークデバイスと互換性があると判定することは、前記受信DRCPDUにおいて保有される近隣ネットワークデバイスの設定パラメータ値を、前記IPPにおける前記近隣ネットワークデバイスのための対応する動作パラメータ値として記録することを含む、請求項15に記載の非一時的な機械読取可能な記憶媒体。
前記動作は、前記受信DRCPDUが前記ネットワークデバイスと互換性がないと判定すると、前記第1のポータルの管理システムに、互換性なしのステータスを報告することを更に含む、請求項15又は16に記載の非一時的な機械読取可能な記憶媒体。
前記動作は、前記記録された近隣ネットワークデバイスの状態動作変数が前記ネットワークデバイスの状態動作変数と異なると判定すると、前記近隣ネットワークデバイスに通知する1つ又は複数のトリガをセットすることを更に含む、請求項15又は16に記載の非一時的な機械読取可能な記憶媒体。
少なくとも1つのプロセッサにおいて実行されると、前記少なくとも1つのプロセッサに請求項1ないし7のいずれか一項に記載の方法を実行させる命令を含む、ネットワークデバイスにおいてリンクアグリゲーショングループにおける分散レジリエントネットワーク相互接続(DRNI)をサポートするコンピュータプログラム。
【発明を実施するための形態】
【0015】
以下の説明において、多数の特定の詳細が説明される。しかしながら、本発明の実施形態は、これらの特定の詳細なしで実行され得ることが理解される。他の実例では、この説明の理解を不明瞭にしないために、既知の回路、構造及び技法は詳細に示されていない。
【0016】
しかしながら、当業者であれば、本発明がそのような特定の詳細なしで実行され得ることを理解するであろう。他の実例では、本発明を不明瞭にしないために、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは示されていない。当業者であれば、含められた説明を用いて、過度な試行錯誤なしで適切な機能を実施することが可能であろう。
【0017】
本明細書における、「1つの実施形態」、「一実施形態」、「例示的な実施形態」等への言及は、説明される実施形態が特定の特徴、構造又は特性を含み得ることを示すが、全ての実施形態が必ずしも特定の特徴、構造又は特性を含むわけではない場合がある。加えて、そのようなフレーズは必ずしも同じ実施形態を指しているわけではない。更に、特定の特徴、構造又は特性が一実施形態と合わせて説明されるとき、明示的に記載されているか否かにかかわらず、そのような特徴、構造又は特性を他の実施形態と合わせて達成することが当業者の知識の範囲内であることが提起されている。
【0018】
用語
説明において以下の用語が用いられ得る。
アクター:リンクアグリゲーション制御プロトコル(Link Aggregation Control Protocol、LACP)交換におけるローカルエンティティ(すなわち、ノード又はネットワークデバイス)。
アグリゲーションキー:アグリゲーションシステムの各アグリゲーションポート及び各アグリゲータに関連付けられるパラメータであり、共にアグリゲートされ得るアグリゲーションポートを識別する。同じアグリゲーションキー値を共有するアグリゲーションシステム内のアグリゲーションポートは、潜在的に共にアグリゲートすることができる。
アグリゲーションポート:アグリゲータによってサポートされる、アグリゲーションシステム内のサービスアクセスポイント(SAP)。
アグリゲーションシステム:アグリゲーションの目的での1つ又は複数のアグリゲーションポートの任意のグループ化を(数ある中でも)含む、固有に識別可能なエンティティ。アグリゲートされたリンクのインスタンスは常に2つのアグリゲーションシステム間で生じる。物理デバイスは、単一のアグリゲーションシステム又は2つ以上のアグリゲーションシステムを備えてもよい。
アグリゲーションクライアント:リンクアグリゲーションサブレイヤの真上のレイヤのエンティティであり、このエンティティのために、リンクアグリゲーションサブレイヤは内部サブレイヤサービス(Internal Sublayer Services、ISS)のインスタンスを提供する。
カンバセーション:1つの端局から別の端局に送信される1組のフレーム。全てのフレームが順序付けされたシーケンスを形成し、通信する端局は、交換される1組のフレーム間で順序付けが維持されることを必要とする。
カンバセーションID:(例えば0 4095の範囲の)値を用いてカンバセーションを識別する識別子。
データ端末装置(DTE):ローカルエリアネットワークに接続された、データの任意のソース又は宛先。
分散中継器(DR):ポータルを備えるアグリゲーションシステムのそれぞれにおいてDR機能部によってポータルにわたって分散された機能エンティティ。ゲートウェイからアグリゲータへの発信フレームを分配し、アグリゲータからゲートウェイへの到来フレームを分配する。
分散レジリエントネットワーク相互接続(DRNI):ポータル及びアグリゲーションシステムのそれぞれ、又は2つ(以上)のポータルを含むように拡張されたリンクアグリゲーション。
DR機能部(DR Function):単一のポータルシステム内に常駐する分散中継器の一部分。
ゲートウェイ:分散中継器をシステムに接続する、通常仮想的な(システム間の物理リンクではない)接続。ゲートウェイリンクと2つのゲートウェイポートとからなる。
ゲートウェイカンバセーションID:ゲートウェイを通過するフレームを選択するのに用いられるカンバセーションID値。
内部サブレイヤサービス(ISS):MACサービスの強化バージョン。IEEE Std802.1AC−2012において規定されている。
ポータル内リンク(IPL):分散中継器を備えるDR機能部を接続するのに用いられるリンク。
リンクアグリゲーショングループ(LAG):アグリゲータクライアントに対し単一のリンクであるように見えるリンクのグループ。リンクアグリゲーショングループは、2つのアグリゲーションシステム、アグリゲーションシステムとポータル、又は2つのポータルを接続することができる。1つ又は複数のカンバセーションは、リンクアグリゲーショングループの一部である各リンクに関連付けられ得る。
パートナー:リンクアグリゲーション制御プロトコル交換におけるリモートエンティティ(すなわち、ノード又はネットワークデバイス)。
ポートカンバセーション識別子(ID):アグリゲーションポートを通過するフレームを選択するのに用いられるカンバセーション識別子(conversation identifier)の値。
ポータル:DRNIの一端であり、1つ又は複数のアグリゲーションシステムを備え、このアグリゲーションシステムはそれぞれ、合わせてリンクアグリゲーショングループを構成する物理リンクを備える。ポータルのアグリゲーションシステムは協働して単一のアグリゲーションシステムの存在をエミュレートし、この単一のアグリゲーションシステムにリンクアグリゲーショングループ全体がアタッチされる。
ポータルシステム番号:ポータルシステムのポータル内で、このポータルシステムを固有に識別する整数(例えば1〜3であり、1及び3を含む)。
選択アルゴリズム:フレームをカンバセーションIDに割り当て、カンバセーションIDをアグリゲーションポート及びゲートウェイに割り当てるのに用いられるアルゴリズム。
サービスID:フレームが関連付けられるサービスインスタンスを識別する、フレームのヘッダから抽出される値(VID、I−SID等)。
サービスインスタンス:サービスインスタンスは1組のサービスアクセスポイント(SAP)であり、Data.Requestプリミティブが1つのSAPに提示される結果として、その組内の他のSAPのうちの1つ又は複数において、Data.Indicationプリミティブが生じ得るようになっている。オペレータ及び顧客の文脈では、特定の顧客が、オペレータによってそのような組内の全てのSAPへのアクセスを与えられる。
タイプ/長さ/値(TLV):連続したタイプフィールド、長さフィールド及び値フィールドからなる情報要素の短い可変長の符号化。ここで、タイプフィールドは情報のタイプを識別し、長さフィールドは情報フィールドの長さをオクテットで示し、値フィールドは情報自体を含む。タイプ値はローカルで規定され、この規格において規定されるプロトコル内で固有である必要がある。
【0019】
以下の説明及び特許請求の範囲において、「結合された」及び「接続された」という用語及びそれらの派生語が用いられる場合がある。これらの用語は、互いの同義語として意図されるものではないことを理解するべきである。「結合された」は、互いに直接物理的又は電気的に接触していても接触していなくてもよい2つ以上の要素が互いに協働し又は相互作用することを示すのに用いられる。「接続された」は、互いに結合した2つ以上の要素間の通信の確立を示すのに用いられる。本明細書において用いられるとき、「組」とは、1つのアイテムを含めた任意の正の整数個のアイテムを指す。
【0020】
電子デバイス(例えば、端局、ネットワークデバイス)は、非一時的な機械読取可能な媒体(例えば、磁気ディスク、光ディスク、読出し専用メモリ、フラッシュメモリデバイス、相変化メモリ等の機械読取可能な記憶媒体)及び一時的な機械読取可能な伝送媒体(例えば、搬送波、赤外線信号等の、電気的形態、光学的形態、音響的形態又は他の形態の伝搬信号)等の機械読取可能な媒体を用いて、(ソフトウェア命令、例えば命令を含むコンピュータプログラムからなる)コード及びデータを(内部的にかつ/又は他の電子デバイスを用いてネットワークを介して)記憶し送信する。更に、そのような電子デバイスは、1つ又は複数の他のコンポーネント、例えば、(コード及び/又はデータを記憶するための)1つ又は複数の非一時的な機械読取可能な記憶媒体、及び(伝搬信号を用いてコード及び/又はデータを送信するための)ネットワーク接続に結合された1つ又は複数のプロセッサの組等のハードウェアと、一部の例ではユーザ入/出力デバイス(例えば、キーボード、タッチスクリーン及び/又はディスプレイ)とを備える。プロセッサの組と他のコンポーネントとの結合は、通常、電子デバイス内の1つ又は複数の相互接続(例えば、バス及び場合によってはブリッジ)を通じたものである。このため、所与の電子デバイスの非一時的な機械読取可能な媒体は、通常、その電子デバイスの1つ又は複数のプロセッサ上で実行するための命令を記憶する。本発明の一実施形態の1つ又は複数の部分は、ソフトウェア、ファームウェア及び/又はハードウェアの様々な組み合わせを用いて実施することができる。
【0021】
本明細書において用いられるとき、ネットワークデバイス(例えば、ルータ、スイッチ、ブリッジ)は、ネットワーク上の他の機器(例えば、他のネットワークデバイス、端局)に通信可能に相互接続する、ハードウェア及びソフトウェアを備える1つのネットワーキング機器である。いくつかのネットワークデバイスは、複数のネットワーキング機能(例えば、ルーティング、ブリッジング、スイッチング、レイヤ2アグリゲーション、セッションボーダー制御、サービス品質及び/又は加入者マネージメント)のサポートを提供し、かつ/又は複数のアプリケーションサービス(例えば、データ、音声及びビデオ)のためのサポートを提供する「マルチサービスネットワークデバイス」である。加入者端局(例えば、サーバ、ワークステーション、ラップトップ、ネットブック、パームトップ、携帯電話、スマートフォン、マルチメディアフォン、ボイスオーバインターネットプロトコル(VOIP)電話、ユーザ機器、端末、ポータブルメディアプレーヤ、GPSユニット、ゲームシステム、セットトップボックス)は、インターネットを介して提供されるコンテンツ/サービス、及び/又はインターネット上にオーバレイされる(例えば、トンネルを通される)仮想プライベートネットワーク(VPN)において提供されるコンテンツ/サービスにアクセスする。コンテンツ及び/又はサービスは通常、サービスプロバイダ若しくはコンテンツプロバイダに属する1つ又は複数の端局(例えば、サーバ端局)、又はピアツーピア(P2P)サービスに参加する端局よって提供され、例えば、パブリックウェブページ(例えば、フリーコンテンツ、ストアフロント、検索サービス)、プライベートウェブページ(例えば、電子メールサービスを提供する、ユーザ名/パスワードによりアクセスされるウェブページ)、及び/又はVPNを介した企業ネットワークを含むことができる。通常、加入者端局は、(例えば、(有線又は無線で)アクセスネットワークに結合された顧客構内機器を通じて)エッジネットワークデバイスに結合され、エッジネットワークデバイスは、(例えば、1つ又は複数のコアネットワークデバイスを通じて)他のエッジネットワークデバイスに結合され、これらの他のエッジネットワークデバイスは、他の端局(例えば、サーバ端局)に結合される。
【0022】
ネットワークデバイスは、一般的に、制御プレーン及びデータプレーン(転送プレーン又は媒体プレーンと呼ばれることがある)に分割される。ネットワークデバイスがルータである(又はルーティング機能を実施している)場合、制御プレーンは通常、データ(例えば、パケット)がどのようにルーティングされるか(例えば、データのための次のホップ、及びそのデータのための出力ポート)を決定し、データプレーンはそのデータの転送を担当する。例えば、制御プレーンは通常、1つ又は複数のルーティングプロトコル(例えば、ボーダーゲートウェイプロトコル(BGP)(RFC4271)等の外部ゲートウェイプロトコル、内部ゲートウェイプロトコル(IGP)(例えば、開放型最短経路優先(OSPF)(RFC2328及び5340)、中間システム間(IS−IS)(RFC1142)、ルーティング情報プロトコル(RIP)(バージョン1RFC1058、バージョン2RFC2453及び次世代RFC2080))、ラベル分散プロトコル(LDP)(RFC5036)、リソース保存プロトコル(RSVP)(RFC2205、2210、2211、2212、及びRSVP−トラフィックエンジニアリング(TE):LSPトンネルRFC3209のためのRSVPへの拡張、一般化マルチプロトコルラベルスイッチング(GMPLS)シグナリングRSVP−TE RFC3473、RFC3936、4495、及び4558))を含み、これらは他のネットワークデバイスと通信してルートを交換し、1つ又は複数のルーティングメトリックに基づいてこれらのルートを選択する。更に、制御プレーンは通常、高速全域木プロトコル(RSTP)、複数全域木プロトコル(MSTP)及びSPB(最短経路ブリッジング)等のISOのレイヤ2制御プロトコルも含む。これらは、様々な標準化団体によって標準化されている(例えば、SPBはIEEE Std802.1aq−2012において規定されている)。
【0023】
ルート及び隣接性が制御プレーンにおける1つ又は複数のルーティング構造(例えば、ルーティング情報ベース(RIB)、ラベル情報ベース(LIB)、1つ又は複数の隣接性構造)に記憶される。制御プレーンは、ルーティング構造に基づいて、情報(例えば、隣接性情報及びルート情報)を用いてデータプレーンをプログラムする。例えば、制御プレーンは、隣接性情報及びルート情報を、データプレーンにおける1つ又は複数の転送構造(例えば、転送情報ベース(FIB)、ラベル転送情報ベース(LFIB)、及び1つ又は複数の隣接性構造)にプログラムする。データプレーンは、トラフィックの転送時にこれらの転送構造及び隣接性構造を用いる。
【0024】
ルーティングプロトコルのそれぞれが、あるルートメトリック(メトリックは異なるルーティングプロトコルに対して異なり得る)に基づいてルートエントリを主要RIBにダウンロードする。ルーティングプロトコルのそれぞれが、主要RIBにダウンロードされていないルートエントリを含めたルートエントリを、ローカルRIB(例えば、OSPFローカルRIB)に記憶することができる。主要RIBをマネージメントするRIBモジュールは、(1組のメトリックに基づいて)ルーティングプロトコルによってダウンロードされたルートからルートを選択し、これらの選択されたルート(アクティブルートエントリと呼ばれることがある)をデータプレーンにダウンロードする。RIBモジュールは、ルートをルーティングプロトコル間で再分配させることもできる。レイヤ2転送の場合、ネットワークデバイスは、そのデータ内のレイヤ2情報に基づいてデータを転送するのに用いられる1つ又は複数のブリッジングテーブルを記憶することができる。
【0025】
通常、ネットワークデバイスは、1つ又は複数のラインカードの組、1つ又は複数の制御カードの組、及びオプションで1つ又は複数のサービスカード(リソースカードと呼ばれることがある)の組を含む。これらのカードは、1つ又は複数の相互接続メカニズム(例えば、ラインカードを結合する第1のフルメッシュ及び全てのカードを結合する第2のフルメッシュ)を通じて共に結合される。ラインカードの組はデータプレーンを形成する一方で、制御カードの組は制御プレーンを提供し、ラインカードを通じて外部ネットワークデバイスとパケットを交換する。サービスカードの組は特殊処理(例えば、レイヤ4からレイヤ7のサービス(例えば、ファイアウォール、インターネットプロトコルセキュリティ(IPsec)(RFC4301及び4309)、侵入検出システム(IDS)、ピアツーピア(P2P)、ボイスオーバーIP(VoIP)セッションボーダーコントローラ、モバイル無線ゲートウェイ(ゲートウェイ汎用パケット無線サービス(GRPS)サポートノード(GGSN)、エボルブドパケットコア(EPC)ゲートウェイ))を提供することができる。例として、サービスカードは、IPsecトンネルを終端し、付随的認証及び暗号化(attendant authentication and encryption)のアルゴリズムを実行するのに用いられ得る。
【0026】
本明細書において用いられるとき、ノードは、IPパケット内のIPヘッダ情報のうちのいくらかを基にしてIPパケットを転送する。ここで、IPヘッダ情報は、ソースIPアドレス、宛先IPアドレス、ソースポート、宛先ポート(ここで、「ソースポート」及び「宛先ポート」は、本明細書において、ネットワークデバイスの物理ポートではなくプロトコルポートを指す)、トランスポートプロトコル(例えば、ユーザデータグラムプロトコル(UDP)(RFC768、2460、2675、4113及び5405)、伝送制御プロトコル(TCP)(RFC793及び1180))、及び差別化サービス(DSCP)値(RFC2474、2475、2597、2983、3086、3140、3246、3247、3260、4594、5865、3289、3290及び3317)を含む。ノードはネットワークデバイスにおいて実装される。物理ノードはネットワークデバイス上で直接実装されるのに対し、仮想ノードは、ネットワークデバイス上で実施されるソフトウェア抽象化、場合によってはハードウェア抽象化である。このため、単一のネットワークデバイス上で複数の仮想ノードが実装され得る。
【0027】
ネットワークインターフェースは、物理的であっても仮想的であってもよく、インターフェースアドレスは、物理ネットワークインターフェースであっても、仮想ネットワークインターフェースであっても、ネットワークインターフェースに割り当てられるIPアドレスである。物理ネットワークインターフェースは、ネットワークデバイス内のハードウェアであり、これを通じてネットワーク接続を(例えば、無線ネットワークインターフェースコントローラ(WNIC)を通じて無線で、又はネットワークインターフェースコントローラ(NIC)に接続されたポートにケーブルをプラグインすることを通じて)行うことができる。通常、ネットワークデバイスは複数の物理ネットワークインターフェースを有する。仮想ネットワークインターフェースは、物理ネットワークインターフェースに関連付けられてもよく、別の仮想インターフェースに関連付けられてもよく、独立していてもよい(例えば、ループバックインターフェース、ポイントツーポイントプロトコルインターフェース)。ネットワークインターフェース(物理的又は仮想的)は、ナンバリングされてもよく(IPアドレスを有するネットワークインターフェース)、ナンバリングされなくてもよい(IPアドレスを有しないネットワークインターフェース)。ループバックインターフェース(及びそのループバックアドレス)は、多くの場合にマネージメント目的で用いられる、ノード(物理的又は仮想的)の特殊なタイプの仮想ネットワークインターフェース(及びIPアドレス)であり、ここで、そのようなIPアドレスは、ノードループバックアドレスと呼ばれる。ネットワークデバイスのネットワークインターフェースに割り当てられるIPアドレスは、ネットワークデバイスのIPアドレスと呼ばれ、より粒度の細かいレベルでは、ネットワークデバイス上で実装されるノードに割り当てられるネットワークインターフェースに割り当てられるIPアドレスは、そのノードのIPアドレスと呼ばれ得る。
【0028】
いくつかのネットワークデバイスは、VPN(仮想プライベートネットワーク)(例えば、レイヤ2VPN及び/又はレイヤ3VPN)を実装するためのサポートを提供する。例えば、プロバイダのネットワーク及び顧客のネットワークが結合されているネットワークデバイスは、それぞれ、PE(プロバイダエッジ)及びCE(顧客エッジ)と呼ばれる。レイヤ2VPNでは、転送は通常、VPNの両端のCEにおいて行われ、トラフィックはネットワークを超えて(例えば、他のネットワークデバイスによって結合された1つ又は複数のPEを通じて)送信される。レイヤ2回路は、CEとPEとの間で設定される(例えば、イーサネットポート、ATM永続仮想回路(PVC)、フレーム中継PVC)。レイヤ3VPNでは、ルーティングは通常、PEによって行われる。例として、複数のコンテキストをサポートするエッジネットワークデバイスは、PEとして展開されてもよく、コンテキストはVPNプロトコルを用いて設定されてもよく、このためコンテキストはVPNコンテキストと呼ばれる。
【0029】
いくつかのネットワークデバイスは、VPLS(仮想プライベートLANサービス)(RFC4761及び4762)のためのサポートを提供する。例えば、VPLSネットワークでは、加入者端局は、CEに結合することによってVPLSネットワークを通じて提供されるコンテンツ/サービスにアクセスし、CE同士は、他のネットワークデバイスによって結合されたPEを通じて結合される。VPLSネットワークは、トリプルプレイネットワークアプリケーション(例えば、データアプリケーション(例えば、高速インターネットアクセス)、ビデオアプリケーション(例えば、IPTV(インターネットプロトコルテレビ)等のテレビサービス、VoD(ビデオオンデマンド)サービス)及び音声アプリケーション(例えば、VoIP(ボイスオーバインターネットプロトコル)サービス))、VPNサービス等を実施するために用いられ得る。VPLSは、マルチポイント接続のために用いられ得るレイヤ2VPNのタイプである。VPLSネットワークはまた、別個の地理的ロケーションにおいてCEと結合された加入者端局同士が、ローカルエリアネットワーク(LAN)(エミュレートされたLANと呼ばれる)において互いに直接アタッチされているかのように広域ネットワーク(WAN)を超えて互いに通信することも可能にする。
【0030】
VPLSネットワークにおいて、各CEは通常、場合によってはアクセスネットワーク(有線及び/又は無線)を通じて、アタッチメント回路(例えば仮想リンク又はCEとPEとの間の接続)を介してPEのブリッジモジュールにアタッチする。PEのブリッジモジュールは、エミュレートされたLANインターフェースを通じてエミュレートされたLANにアタッチする。各ブリッジモジュールは、MACアドレスを擬似ワイヤ及びアタッチメント回路にマッピングする転送テーブルを維持することによって、「仮想スイッチインスタンス」(VSI)としての役割を果たす。PEは、これらのフレームに含まれるMAC宛先アドレスフィールドに基づいて、(CEから受信された)フレームを宛先(例えば、他のCE、他のPE)に転送する。
【0031】
リンクアグリゲーションサブレイヤ
図2は、リンクアグリゲーションサブレイヤ200の1つの実施形態の図である。アグリゲータクライアント202は、アグリゲータ250を通じて1組のアグリゲーションポート292、294、296と通信する。1つの実施形態では、アグリゲータ250は、規格IEEE Std802.1Qの内部サブレイヤサービス(ISS)インターフェースをアグリゲータクライアント202に提示する。アグリゲータ250は、アグリゲーションポート292、294、296を含む1つ又は複数のアグリゲーションポートにバインディングする。アグリゲータ250は、アグリゲータクライアント202からアグリゲーションポート292、294、296へのフレーム送信を分散させ、アグリゲーションポート292、294、296からの受信フレームを収集し、これらをアグリゲータクライアント202にトランスペアレントに渡す。
【0032】
アグリゲータ250へのアグリゲーションポート292、294、296のバインディングは、リンクアグリゲーション制御部210によってマネージメントされる。リンクアグリゲーション制御部210は、いずれのリンクがアグリゲートされ得るかを判定し、それらのリンクをアグリゲートし、アグリゲーションポートを適切なアグリゲータにバインディングし、条件を監視して、アグリゲーションの変更が必要なときを判定する役割を果たす。そのような判定及びバインディングは、ネットワークマネージャーによる(例えば、アグリゲーションキーを通じた)リンクアグリゲーションの状態変数の直接操作を通じて手動制御下で行い得る。更に、自動的な判定、設定、バインディング及び監視は、リンクアグリゲーション制御プロトコル(LACP)214の使用を通じて行うことができる。LACP214は、リンクをまたがるピア交換を用いて、継続的に、様々なリンクのアグリゲーション能力を判定し、アグリゲーションシステムの所与の対間で達成可能な最大レベルのアグリゲーション能力を連続して提供する。
【0033】
アグリゲーションシステムは、複数のアグリゲータクライアントにサービングする複数のアグリゲータを含むことができる。所与のアグリゲーションポートは、任意の時点において(最大で)単一のアグリゲータにバインディングする。アグリゲータクライアントは、一度に単一のアグリゲータによってサービングされる。
【0034】
フレーム順序付けが、アグリゲータクライアント間のフレーム交換(カンバセーションとしても知られる)の、あるシーケンスについて維持される。フレーム分配器234は、所与のカンバセーションの全てのフレームが単一のアグリゲーションポートに渡されることを確実にする。所与のカンバセーションについて、フレーム収集器224が、フレームがアグリゲーションポートから受信された順序でそれらのフレームをアグリゲータクライアント202に渡すことが必要とされる。フレーム収集器224は、それ以外の点では、アグリゲーションポート292、294、296から受信したフレームを任意の順位で自由に選択する。単一のリンクにおいてフレームが誤って順序付けされる手段が存在しないので、これによって、任意のカンバセーションについてフレーム順序付けが維持されることが確実になる。カンバセーションは、負荷分散、及びリンク障害時の利用可能性の維持の双方のために、リンクアグリゲーショングループ内のアグリゲーションポート間で移され得る。
【0035】
アグリゲーションポート292、294、296はそれぞれ、媒体アクセス制御(MAC)アドレスを割り当てられる。これらのMACアドレスは、リンクアグリゲーショングループにわたって、このリングアグリゲーショングループが接続された任意のブリッジドローカルエリアネットワーク(LAN)(例えば、IEEE802.1QブリッジドLANに準拠するLAN)に固有である。これらのMACアドレスは、リンクアグリゲーションサブレイヤ270自体の中のエンティティによって開始されるフレーム交換(すなわち、LACP214及びマーカプロトコルの交換)のためのソースアドレスとして用いられる。
【0036】
アグリゲータ250(及び展開される場合、他のアグリゲータ)は、リンクアグリゲーショングループにわたって、このリングアグリゲーショングループが接続されたブリッジドLAN(例えば、IEEE802.1QブリッジドLANに準拠するLAN)に固有であるMACアドレスを割り当てられる。このアドレスは、アグリゲータクライアント202の観点から、送信フレームのソースアドレス及び受信フレームの宛先アドレスの双方としての、リンクアグリゲーショングループのMACアドレスとして用いられる。アグリゲータ250のMACアドレスは、関連付けられたリンクアグリゲーショングループのアグリゲーションポートのMACアドレスのうちの1つであり得る。
【0037】
分散レジリエントネットワーク相互接続(DRNI)
リンクアグリゲーションは、より高次のレイヤに対し単一の論理リンクであるように見える1つ又は複数の物理リンクの集合であるリンクアグリゲーショングループを作成する。リンクアグリゲーショングループは、それぞれアグリゲーションシステムにおいて終端する2つの端部を有する。DRNIは、リンクアグリゲーションの概念を拡大し、リンクアグリゲーショングループの一端又は両端において、単一のアグリゲーションシステムが、それぞれ1つ又は複数のアグリゲーションシステムから構成されるポータルによって置き換えられるようにする。
【0038】
DRNIは、ポータルを作成するために、分散中継器を用いて、それぞれリンクアグリゲーションを実行する2つ以上のシステムを相互接続することによって作成される。ポータル内の各アグリゲーションシステム(すなわち、各ポータルシステム)は、単一のアグリゲータを用いてリンクアグリゲーションを実行する。分散中継器は、ポータルシステムが、共同でリンクアグリゲーショングループを終端することを可能にする。ポータルが接続される全ての他のアグリゲーションシステムにとって、リンクアグリゲーショングループは、ポータルシステムによって作成される別個にエミュレートされたアグリゲーションシステムにおいて終端するように見える。
【0039】
意図は、ポータルを作成するために、分散中継器を導入して、それぞれリンクアグリゲーションを実行する2つ又は3つのシステムを相互接続することによってDRNIを作成することである。ポータル内の各アグリゲーションシステム(すなわち、各ポータルシステム)は、単一のアグリゲータを用いてリンクアグリゲーションを実行する。分散中継器は、ポータルシステムが、共同でリンクアグリゲーショングループを終端することを可能にすることを意図される。ポータルが接続される全ての他のシステムにとって、リンクアグリゲーショングループは、ポータルシステムによって作成される別個にエミュレートされたシステムにおいて終端するように見える。上述したIEEE802.1AX−REV/D1.0は、分散中継器がどのように機能するかに関して十分な情報を提供していない。
【0040】
分散中継器
DRNIは、ポータルを作成するために、分散中継器を用いて、それぞれリンクアグリゲーションを実行する2つ又は3つのシステムを相互接続することによって作成される。ポータル内の各アグリゲーションシステム(すなわち、各ポータルシステム)は、単一のアグリゲータを用いてリンクアグリゲーションを実行する。分散中継器は、ポータルシステムが、共同でリンクアグリゲーショングループを終端することを可能にする。ポータルが接続される全ての他のシステムにとって、リンクアグリゲーショングループは、ポータルシステムによって作成される別個にエミュレートされたシステムにおいて終端するように見える。
【0041】
図3Aは、分散中継器を説明するための出発点としての基本的な分散中継器システムを示している。
図3Aに示し、本明細書において検討されるネットワークリンクは、ネットワークプロトコルに対し可視であり、ネットワークプロトコルの制御下にある物理リンク又は論理リンクに対応する。この図において、システムA及びBはそれぞれ、ある種のパケット中継機能部、例えばルータ又はブリッジである「機能部1」を実行することによって特徴付けられる。「機能部1」はファイルサーバ操作とすることもでき、この場合、各システムにおける外側の2つの「ポート」は存在しない可能性が高い。各システムは、リンクアグリゲーションサブレイヤの単一のインスタンスを実行する。1つの実施形態では、共有ポートはポータル内で分散中継器と関連付けられることが望ましい。
【0042】
図3Aは一例であり、一般的な事例ではない。一般的に、分散中継器は以下をサポートする:
a)本明細書において以下に列挙する構成についてのみ、必要なプロトコル及び手順が本出願によって提供される。
b)それぞれ1つ又は複数のMACを組み込むリンクアグリゲーション機能部。
c)分散中継器のポータルシステム間の接続。
この例において分散中継器機能レイヤを導入する目的は、これらの2つのポータルシステムが、これらに接続されたシステムにとって、
図3Bに示す構成であるように見えるようにすることである。機能部1とリンクアグリゲーションとの間に挿入されたリンクによって元のポータルシステムに接続された、第3のエミュレートされたシステムCが存在するように見える。すなわち、
図3Bに示すように、ポータルシステムA及びBは協力して、これらのシステムが接続されている任意の他のシステムが理解可能である限り、エミュレートされたCが実際に存在するかのようにふるまう。
図3Bは一例であるが、分散中継器の原理を示している:
d)エミュレートされたシステムCにおける分散中継器は、N個のポータルシステムに対する(N+1)ポート中継器であり、N個のゲートウェイポートがポータルシステムに接続され、単一のエミュレートされたリンクアグリゲーションサブレイヤが元のポータルシステムに関連付けられている。
e)アグリゲーションポート(本明細書ではMACとも呼ばれる)は、エミュレートされたシステムに移されており、このため、全ての他のシステムにとって、分散中継器を備える実際のポータルシステムから等距離にあるように見える。
エミュレートされたシステムCを作成するために2つのポータルシステムによって用いられる実際の構図が
図4に示されている。
図4は、各システムA及びBにつき1つのDR機能部である、分散中継器の2つのDR機能部を示す。この例は、分散中継器の残りの原理を示す。
f)各システムA及びBにおいて、システムCに関連付けられたポートは、DR機能のリンクアグリゲーションサブレイヤの下の位置に移される。
g)仮想リンク、及び「ゲートウェイ」と呼ばれる、その終端仮想MACが、各DR機能部をその機能部1に接続するために構築される。
h)ポータル内のDR機能部の各対間で、ポータル内ポート(IPP)によって各端部で終端されるポータル内リンク(IPL)が構築される(これは多くの形態で存在し得る。本明細書における以下の論考を参照)。
i)いずれのゲートウェイを通じて、フレームがエミュレートされた分散中継器に対して出入りすることができるかを判断する「ゲートウェイアルゴリズム」が存在する。
j)同様に、いずれのポータルシステムのアグリゲーションポートを通じて、フレームがエミュレートされた分散中継器に対して出入りすることができるかを判断する「ポートアルゴリズム」が存在する。
k)上述したように、ポータル及びエミュレートされたシステムCの作成に参加する3つのシステムが存在し得る。その場合、エミュレートされたシステムC内の分散中継器は、各ポータルシステムに対し1つの追加のゲートウェイポートと、DR機能部を相互接続するためのIPLとを有する。
l)本明細書において以下で規定するように、DR機能部同士は一緒に機能して、ゲートウェイと、IPLと、リンクアグリゲーションサブレイヤとの間でフレームを移す。
【0043】
分散中継器の動作及び手順
各ポータルシステム(
図4)内のDR機能部は、3種類のポートを有する(動作障害を被る)ように意図される。
A)ポータル内ポートであり、最大で1つの(いくつかの実施形態ではおそらく複合の)IPLポートが、同じポータルに属する他のポータルシステムのそれぞれに接続されている。
B)DR機能部が存在するポータルシステム内の仮想ゲートウェイポートへの仮想リンクを有する厳密に1つの仮想ゲートウェイポート。
C)任意の数のアグリゲーションポートを有するリンクアグリゲーションサブレイヤへの厳密に1つのアグリゲータポート(プレフィックスAggによって識別されるISSインスタンスによってサポートされるポート)であり、他のシステムが、自身が単一のエミュレートされたシステムに接続されていると信じるように、これらの他のシステムに接続するように意図される。
【0044】
図3Bにおいて、ポータル内リンク及びIPLポートは可視でなく、エミュレートされたアグリゲーションシステムCの分散中継器は、そのポータル内のシステムのそれぞれに対する1つのゲートウェイを有する。
【0045】
エミュレートされた分散中継器の目的は、アグリゲーションポートから受信される全てのフレーム(「アップフレーム」)をゲートウェイに渡すか又は廃棄し、ゲートウェイから受信される全てのフレーム(「ダウンフレーム」)をアグリゲータポートに渡すか又は廃棄することである。分散中継器を備えるDR機能部は、場合によっては、フレームを正しいゲートウェイ又はアグリゲータポートに到達させるために、このフレームを1つ又は2つのポータル内リンクを超えて送信しなくてはならない。DR機能部は、全てのフレームを2つのカンバセーションID、すなわち1つのゲートウェイカンバセーションID及び1つのポートカンバセーションIDに割り当て、これらのカンバセーションIDの観点からゲートウェイ、アグリゲーションポート及びIPLを設定することによって、フレームを廃棄するか、又は自身のゲートウェイ、アグリゲータポート、若しくは自身のIPLのうちの1つに渡すかの選択を行う。
【0046】
上述した「ゲートウェイアルゴリズム」は、2つの部分、すなわち、任意の所与のフレームをゲートウェイカンバセーションIDに割り当てるためのアルゴリズムと、(例えば、Drni_Gateway_Conversationを用いた)ゲートウェイへのゲートウェイカンバセーションIDの割り当てとからなる。
【0047】
ポータルシステムが、学習を行うVLANブリッジである場合、ゲートウェイカンバセーションIDへのフレームのマッピングはそのVLAN IDに基づき、そうでない場合、学習プロセスはネットワーク全体にわたって中断する。これらの場合のDRNIの実施のために、VLAN IDとカンバセーションIDとの1対1のマッピングが存在し得る。
【0048】
同様に、上記の「分散中継器」セクションにおける項目jの「ポートアルゴリズム」は、任意の所与のフレームをポートカンバセーションIDに割り当てるためのアルゴリズムと、(例えば、aAggConversationAdminPort[]を用いた)アグリゲーションポートへのポートウェイカンバセーションIDの割り当てとからなる。
【0049】
本明細書において以下で、所与のポータルにおける全てのDR機能部が、フレームをそれらのそれぞれのカンバセーションIDに割り当てるために同じゲートウェイアルゴリズム及び同じポートアルゴリズムを用いることを確実にし、所与の時点において、任意の所与のゲートウェイカンバセーションIDが、ゲートウェイのうちの最大で1つに割り当てられ、任意の所与のポートカンバセーションIDが、ポータルのアグリゲーションポートのうちの最大で1つに割り当てられることを保証するための手段が規定される。
【0050】
ゲートウェイウェイアルゴリズム及びポートアルゴリズムが、フレームをカンバセーションIDに割り当てるために同じ手段を用い、これによってゲートウェイカンバセーションIDがポートカンバセーションIDと等しくなるようにすることが可能にされているが、これは必須ではない。
【0051】
フレームがゲートウェイからDR機能部に入ると、このフレームに常にポートアルゴリズムが適用され、このフレームをアグリゲーションポートに送信するか又は特定のIPPに送信するかが決定される。フレームがアグリゲータポートから入ると、このフレームに常にゲートウェイアルゴリズムが適用され、このフレームをゲートウェイに送信するか又は特定のIPPに送信するかが決定される。表1に示すように、IPLからDR機能部に入るフレームを転送するためには、双方のアルゴリズムが適用されなくてはならず、それらの結果が比較されなくてはならない。
A)[1]「任意」は、ポートアルゴリズムからの出力が用いられないことを意味し、ゲートウェイアルゴリズムがいずれのポートにフレームが送信されるかを決定する。
B)[2]異なるポータルシステムにおけるDR機能部が、互換性のない構成を有するか、又は機能不良が存在する。ループを防ぐためにフレームを廃棄する。
C)表1は3つの構成のうちの1つを仮定する:
・単一のIPLによって接続される2つのポータルシステム;
・2つのIPLによって線形に接続される3つのポータルシステム;又は、
・3つのIPLによって円形に接続される3つのポータルシステム。
D)ゲートウェイアルゴリズムは、ゲートウェイを通る双方向で実施される。すなわち、ゲートウェイからDR機能部に入るフレームは、このフレームに適用されるゲートウェイアルゴリズムがこのフレームをゲートウェイに返送しない場合、破棄される。これは、ゲートウェイから受信したフレームがIPLを超えて転送され、別のゲートウェイを通ってネットワーク内に戻されることを防ぐために必要である。
E)ゲートウェイアルゴリズムが、フレームがゲートウェイを通過するべきであることを示す場合、このフレームはアップフレームでなければならない。なぜなら、ダウンフレームは、上記の項目D)によって、いかなる他のDR機能部からもポータルに入り得ないためである。
F)そうでない場合には、ゲートウェイアルゴリズムが、フレームが、転送先となるIPLから到来したことを示す場合、このフレームはダウンフレームであり、このため、ポートアルゴリズムを用いて転送される。(ポートアルゴリズムが、フレームが到着したポートにこのフレームを返送する場合、ある種の機能不良又は設定不良が存在し、フレームは廃棄される)。
G)そうでない場合、ゲートウェイアルゴリズムは、フレームが転送先となるIPLから到来したものではないことを示し、このため、このフレームはアップフレームであるはずであり、フレームはゲートウェイアルゴリズムに従って宛先に向けられる。
【0052】
注記−分散中継器のポートアルゴリズム及び分散中継器制御プロトコルは、合わせてポートカンバセーションIDと個々のアグリゲーションポートとのマッピングを決定し、それらの制御における変数によって、フレーム分配器及びフレーム収集器の動作が決まる。しかしながら、上記のように、これによってデータ及び制御の経路は変わらない。なぜなら、分散中継器はアグリゲーションポートへの又はアグリゲーションポートからの全てのデータにアグリゲータを通過させるためである。
【0053】
ゲートウェイ及びアグリゲータポートからDR機能部に入るフレームに対するゲートウェイアルゴリズム及びポートアルゴリズムの適用を表2及び表3にそれぞれ示す。
【0054】
ポータルトポロジ
ポータルの最も一般的なトポロジは、
図21に示すように3つのポータル内リンクによるリングによって接続された3つのポータルシステムである。本発明の他の実施形態による他のサポートされるトポロジはこれの部分組であり、以下を含む:
・2つのIPLによってチェーン接続された3つのポータルシステム、
・単一のIPLによって接続された2つのポータルシステム、
・アクティブなIPLを有しないポータルシステム。
【0055】
ホーム、近隣及び他の近隣という用語は、所与のポータル内ポートの観点からポータルシステムを識別するのに用いられる。ホームとは、IPPを含むシステムである。近隣とは、IPPに接続されたシステムである。他の近隣は、ホームシステム内の他のIPP(存在する場合)に接続されたシステムである。
図21を参照すると、例としてIPP B1を用いるとき、IPP B1のホームシステムはBであり、IPP B1の直接の近隣はAであり(AはIPL ABを介してIPP B1に接続されているため)、IPP B1の他の近隣はCである(CはIPL BCを介してIPP B2に接続されているため)。IPPA2の他の近隣もCであり(CはIPL ACを介してIPP A1に接続されているため)、このため、IPP B1及びIPP A2の他の近隣のIDを比較することによって、リング又はチェーン内に3つのシステムしか存在しないことが検証される。
【0056】
ポータル内リンク
ポータル内リンク(IPL)は、2つの異なるシステムにおけるDR機能部間の単一の論理的ポイントツーポイントリンクである。DR機能部は、DRNIリンクアグリゲーショングループの一端を含む他のシステムのそれぞれについて、最大で1つのIPLを有する。IPL及びネットワークリンクは、物理リンク又はリンクアグリゲーション(リンクアグリゲーションは1組のリンクのアグリゲートである)を共有することができる。
【0057】
IPLは、物理的(例えば、802.3イーサネットLAN)又は論理的(例えば、802.1Qバックボーンサービスインスタンス又はIETF擬似ワイヤ)とすることができる。ポータル内リンクは、他のポータル内リンク又はネットワークリンクと物理リンクを共有することができる。ポータル内リンクは、リンクアグリゲーショングループとすることができ、このため複数の物理リンクからなる。
【0058】
展開されるネットワークにおいて、
図4に示すように、2つのシステムが、これらを接続する通常のネットワークと、IPLとの双方を用いて構成されることが多い。これによって、全てのポータルが独自の別個の物理IPLを必要とした場合、特に、1対のシステムが複数のポータルをサポートするように構成されている場合に、DRNIのユーティリティが低減する。DRNIは複数の方法をサポートし、これらの方法によって、システムは、あるネットワークリンクにおけるフレームを、特定のIPLにおけるフレームと区別することができる:
・物理的。別個の物理リンクを用いて任意の特定のネットワークリンク又はIPLをサポートすることができる。
・アグリゲート。IPLをサポートするために別個のアグリゲータポートを用いることができる。
・時間共有。ネットワークリンク及び1つ又は複数のIPLが同じ物理リンク(又はアグリゲータポート)を異なる時点に用いることができる。これは、IPLが接続性のために必要とされているときに、システムがネットワークリンクの使用を不可能にすることを必要とするか、又はそうでない場合、ネットワークリンクが必要とされているときに、アグリゲーションリンクの使用及びゲートウェイの選択が、IPLの使用の必要性をなくすように調整されることを必要とする。この技法は本明細書において説明される。
・タグ共有。ネットワークリンク及び1つ又は複数のIPLは、異なるサービスIDを用いて同じ物理リンク(又はアグリゲータポート)を用いることができる。タグ共有は本明細書において説明される。
・論理的。ネットワークリンク及びIPLにおけるフレームは、本明細書において説明されるように、カプセル化され得る。
【0059】
DRNIを実施するシステムは、IPL及びネットワークリンクのために別個の物理リンクを用いることをサポートすることができ、他の方法のうちの任意のものをサポートすることができる。
【0060】
共有物理リンク又はアグリゲータポートの各端部において、このリンク又はアグリゲータポートが用いられる機能部(ネットワークリンク又は特定のIPL)ごとに1つの仮想ポートが存在する。任意の所与の物理リンク又はアグリゲータポートの両端が同じ方法を用いている限り、上記の方法のうちの任意の方法を、管理上の選択により、2つのシステム間で同時に用いることができる。
【0061】
時間によるネットワーク/IPL共有
時間によるネットワーク/IPL共有の目標は、ネットワーク接続及びIPLのために別個の物理リンクを必要とすることなく、またフレーム変更を一切必要とすることなく、DRNIをサポートすることである。リンクを共有するとき、フレームごとに、そのフレームがネットワーク接続をトラバースすることを意図されているのか、又はIPLをトラバースすることを意図されているのかを判定できることが必要である。この判定は、任意の所与の時点において、物理リンクがネットワークリンクとしてのみ利用されるか、又はIPLとして利用されるかがわかっている場合、フレームを変更することなく(例えば、VLAN IDを変換することも、タグ又はカプセル化を追加することもなく)行うことができる。ネットワーク内のVLANごとに、完全に接続されたループのないアクティブトポロジを確立するのに用いられる制御プロトコルによって、任意の所与の時点において、リンクがネットワークリンクとして用いられるのか、又はIPLとして用いられるのかが確立される。
【0062】
リンクがVLANのアクティブトポロジに含まれていない場合(例えば、ネットワーク制御プロトコルの動作によってブロックされている場合)、このリンクはIPLとして用いられるように利用可能である。この場合、リンクは、DRNIによって、専用の(共有されていない)IPLであるかのように用いられる。
【0063】
リンクがVLANのアクティブトポロジに含まれている場合、そのVLANのために利用可能なIPLは存在しない。この場合、DRNIは、1つのポータルシステムにおけるアグリゲーションポートと、別のポータルシステムにおけるゲートウェイとの間でフレームを渡すことができない。したがって、任意の所与のフレームについて、DRNIは、ゲートウェイ及びアグリゲーションポートを同じポータルシステム内に有することに制限される。
【0064】
注記1−共有リンクが、ゲートウェイと特定のアグリゲーションポートとの間のフレームの転送のために利用不可能であり得ることは、共有リンクにおけるDRCPDUを交換する能力を制限しない。
【0065】
任意の所与のフレームについて、ゲートウェイ及びアグリゲーションポートが同じポータルシステム内にあるという制約を満たす際に検討すべき2つの事例が存在する。簡単な事例は、ポートカンバセーションIDがDRNIを超えて合意され、均整が取れており、所与のVLAN IDを有する全てのフレームが、同じポータルシステムにおいてアグリゲーションポートを選択するポートカンバセーションIDにマッピングされる事例である。このとき、そのポータルシステムは、そのVLAN IDのためのゲートウェイとして選択され、いかなるデータフレームもIPLをトラバースする必要がない。任意の他の状況において、ゲートウェイ及び特定のアグリゲーションポートが同じポータルシステム内にあることを保証する唯一の方法は、フレームが共有ネットワーク/IPLポート以外の任意のポートにおいて受信されるときに、このポータルシステムがこのフレームのためのゲートウェイであるとみなされ、各ポータルシステムにおいて全てのポートカンバセーションIDが、このシステムにアタッチされたアグリゲータポートにマッピングされることである。このモードにおいて、ネットワークポート(IPPでもアグリゲータポートでもない)において任意のフレームを受信するポータルシステムは、必要な場合、このフレームをアグリゲータポートに転送する役割を果たす。IPPにおいてフレームを受信するポータルシステムは、そのフレームをアグリゲーションポートに決して転送しない。この場合、ゲートウェイ選択は必ずしもVIDに基づくことができず、このため、ポータルシステムが802.1Qブリッジであるとき、共有ネットワーク/IPLリンクにおける学習プロセスが損なわれる。学習問題はこのポートに限定されているので、DRNIにおいて学習されるアドレスを他のポータルシステムと同期させることによって、これを修正することができる。
【0066】
タグによるネットワーク/IPL共有
サービスごとのフレーム分配が用いられる場合、かつネットワークリンクをサポートするのに必要なサービス数と1つ又は複数のIPLをサポートするのに必要なサービス数と加えたものが、用いられるフレームフォーマットによって供給されるサービス数(例えば、4094個のS−VLAN ID)未満である場合、VID変換を用いて、異なる論理リンクにおけるフレームを分離することができる。
【0067】
この方法は、aDriniEncapsulationMethodを値2で設定することによって選択される。ネットワーク/IPL共有マシンによって制御される変数Enabled_EncTag_Sharedによって示されるようにイネーブルにされた場合、IPLによって近隣ポータルシステムにトランスポートされることになる、ゲートウェイカンバセーションIDに関連付けられた全てのフレームが、aDriniIPLEncapMapにおいて設定された値を用いるように変換され、また、ネットワークリンクによってトランスポートされ、IPLと共有されることになる、ゲートウェイカンバセーションIDに関連付けられた全てのフレームが、aDriniNetEncapMapにおいて設定される値を用いるように変換される。
【0068】
カプセル化によるネットワーク/IPL共有
この方法は、カプセル化技法(例えば、802.1Qバックボーンサービスインスタンス、B−VLAN、IETF擬似ワイヤ等)を用いることによってネットワークリンクとIPLを共有することを可能にする。
【0069】
この方法は、IPL及びネットワークリンクが同じ物理リンクを共有しているときに、IPLフレーム(IPLを通過するデータフレーム、すなわち非DRCPDU搬送フレーム)を近隣ポータルシステムにトランスポートするのに用いられるカプセル化方法を表す値でaDriniEncapsulationMethodを設定することによって選択される。この値は、このカプセル化を担当する組織を識別する3オクテットの組織固有識別子(Organization Unique Identifier、OUI)と、その組織によって規定されるカプセル化方法を識別するのに用いられる1つの後続のオクテットとからなる。ネットワーク/IPL共有マシンによって制御される変数Enabled_EncTag_Sharedによって示されるようにイネーブルにされた場合、IPLにおいて近隣ポータルシステムに送信されることになる、ゲートウェイカンバセーションIDに関連付けられた全てのフレームが、aDriniEncapsulationMethodによって、aDriniIPLEncapMapにおいて設定された値を用いるように指定された方法を用いてカプセル化され、IPLによって受信される全てのフレームがカプセル化解除され、同じテーブルを用いてゲートウェイカンバセーションIDにマッピングされる。
【0070】
DR機能部状態マシン
DR機能部状態マシンは、表1〜表3に指定される転送ルールを実施するものとする。これらの転送ルールは以下のように要約することができる。
a)アグリゲータポートを通って入るフレーム、すなわちアップフレームについて、ゲートウェイアルゴリズムは、このフレームのゲートウェイカンバセーションIDに従って、このフレームをゲートウェイリンクに送信するべきか又はIPPに送信するべきかを判断する。フレームのゲートウェイカンバセーションIDがポータルシステムの動作中のゲートウェイのカンバセーションIDに合致する場合、フレームはゲートウェイに転送され、そうでない場合、フレームはIPPに転送される。
b)ゲートウェイを通って入るフレーム、すなわちダウンフレームについて、ポートアルゴリズムは、このフレームのポートカンバセーションIDに従って、このフレームをアグリゲーションポートに送信するべきか又はIPPに送信するべきかを判断する。フレームのポートカンバセーションIDがポータルシステムの動作中のポートのカンバセーションIDに合致する場合、フレームはアグリゲーションポートに転送され、そうでない場合、フレームはIPPに転送される。
c)IPPに提案されるアップフレームは、このゲートウェイカンバセーションIDのためのポータルシステムがそのIPPの後方にある場合にのみ送信され、そうでない場合、破棄される。
d)IPPに提案されるダウンフレームは、このポートカンバセーションIDのためのターゲットポータルシステムがそのIPPの後方にある場合にのみ送信され、そうでない場合、破棄される。
分散中継器によって用いられるリンクアグリゲーション変数のうちのいくつかは、複数のポータルシステムが協働して単一のエミュレートされたシステムを作成するように、特定の方式で形成されなくてはならない:
e)分散中継器のアグリゲータポート内のアグリゲーションポートごとに、ポートID内のポート優先度の最下位2ビットがDRF_Portal_System_Numberの値にセットされる。ビットの残りには、DR機能部内で固有の値が割り当てられる。
f)分散中継器のアグリゲータポート内のアグリゲータポート及び関連アグリゲータごとに、管理キーの最上位の2ビットがDRF_Portal_System_Numberの値にセットされる。ビットの残りは、上記で説明したように、アグリゲーションポートの物理特性を反映するように用いられ得る。
【0071】
サービスインターフェース
DR機能部は、ISSの様々なインスタンスを用いるので、読み手が、任意の所与の時点においていずれのインターフェースが参照されているかに関して明確であり得るように表記法を導入する必要がある。したがって、各サービスプリミティブにプレフィックスが割り当てられ、インターフェースのうちのいずれが呼び出されているかを示す。プレフィックスは以下の通りである。
a)Agg:DR機能部とリンクアグリゲーションサブレイヤとの間のインターフェースにおいて発行されるプリミティブ用。
b)Gate:ゲートウェイにおいて発行されるプリミティブ用。
c)MacIppN:IPL nをサポートするMACエンティティと、DRCP制御パーサ/マルチプレクサとの間のインターフェースにおいて発行されるプリミティブ用。
d)DRCPCtrlMuxN:DRCP制御パーサ/マルチプレクサNとDRCP制御エンティティとの間のインターフェースにおいて発行されるプリミティブ用(ここで、NはDRCP制御パーサ/マルチプレクサに関連付けられたIPPを識別する)。
e)IppN:DRCP制御パーサ/マルチプレクサNによってサポートされるDR機能部のインターフェースにおいて発行されるプリミティブ用(ここで、NはDRCP制御パーサ/マルチプレクサに関連付けられたIPPを識別する)。
【0072】
DR機能部ごとの変数
以下の論考は、本発明の1つの実施形態による多岐にわたるDR機能部ごとの変数に焦点を当てる。
DA:宛先アドレス
SA:ソースアドレス
mac_service_data_unit
優先度:M_UNITDATA.indicationプリミティブのパラメータ。
BEGIN:システムが初期化又は再初期化されるときにTRUEにセットされ、(再)初期化が完了するとFALSEにセットされるブール変数。
値:ブール
Drni_Portal_System_Gateway_Conversation:ゲートウェイカンバセーションIDによってインデックス付けされた動作ブールベクトルであり、インデックス付けされたゲートウェイカンバセーションIDが、このDR機能部のゲートウェイを通過することを許可されるか否かを示す(TRUE=通過)。その値は、1つの実施形態において、updatePortalSystemGatewayConversation機能部によって計算される。別の実施形態では、この変数は、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたゲートウェイカンバセーションIDと、残りのインデックス付けされたゲートウェイカンバセーションIDエントリのうち、他のポータルシステムと一致していない全てのものとをFALSEにセットすることによって、Drni_Gateway_Conversationから構築される。
値:ゲートウェイカンバセーションIDによってインデックス付けされた、ブール値のシーケンス。
Drni_Portal_System_Port_Conversation:ポートカンバセーションIDによってインデックス付けされた動作ブールベクトルであり、インデックス付けされたポートカンバセーションIDが、このDR機能部のアグリゲータを通じて配信されることが許可されるか否かを示す(TRUE=通過)。この値は、1つの実施形態において、updatePortalSystemPortConversationによって計算される。別の実施形態では、この変数は、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたポートカンバセーションIDと、残りのインデックス付けされたゲートウェイカンバセーションIDエントリのうち、他のポータルシステムと一致していない全てのものとをFALSEにセットすることによって、Drni_Port_Conversationから構築される。
値:ポートカンバセーションIDによってインデックス付けされた、ブール値のシーケンス。
【0073】
メッセージ
Agg:M_UNITDATA.indication
Gate:M_UNITDATA.indication
IppN:M_UNITDATA.indication
Agg:M_UNITDATA.request
Gate:M_UNITDATA.request
IppN:M_UNITDATA.request
【0074】
受信フレームを指定されたパラメータを用いてクライアントに渡すのに用いられるサービスプリミティブ。
【0075】
タグによるネットワーク/IPL共有又はカプセル化方法によるネットワーク/IPL共有が用いられる場合、サービスプリミティブIppN:M_UNITDATA.indication及びIppN:M_UNITDATA.requestが、ネットワーク/IPL共有マシンによって制御される機能部の動作を通じて扱われる必要がある。
【0076】
DR機能部:アグリゲータポート受信状態マシン
DR機能部:アグリゲータポート受信状態マシンは、
図22に指定される関数を、本発明の1つの実施形態による、その関連パラメータで実装することができる。ポータルシステムごとに1つのDR機能部:アグリゲータポート受信状態マシンが存在し、ポータルシステム内に、IPPと同じ数のPASS_TO_IPP_N状態が存在し、それぞれインデックスnによって識別される。図におけるプレフィックス「n.」は、関連変数が関係付けられた特定のIPP nを識別するのに用いられる。
【0077】
DR機能部:ゲートウェイ分散状態マシン
DR機能部:ゲートウェイ分散状態マシンは、
図23に指定される機能を、本発明の1つの実施形態による、その関連パラメータで実装することができる。ポータルシステムごとに1つのDR機能部:ゲートウェイ分散状態マシンが存在し、ポータルシステム内に、IPPと同じ数のPASS_TO_IPP_N状態が存在し、それぞれインデックスnによって識別される。図におけるプレフィックス「n.」は、関連変数が関係付けられた特定のIPP nを識別するのに用いられる。
【0078】
DR機能部:IPP N受信状態マシン
DR機能部:IPP N受信状態マシンは、
図24に指定される機能を、本発明の1つの実施形態による、その関連パラメータで実装することができる。ポータルシステムごとに、IPPあたり1つのDR機能部:IPP N受信状態マシンが存在し、ポータルシステム内に、IPPと同じ数のPASS_TO_IPP_M状態が存在し、それぞれインデックスmによって識別される。図におけるプレフィックス「n.」又は「m.」は、関連変数が関係付けられた特定のIPP n又はIPP mを識別するのに用いられる。
【0079】
分散中継器制御プロトコル
分散中継器制御プロトコル(DRCP)の目的は以下である。
A)ポータル内リンクをまたがってポータルシステム間で通信を確立すること;
B)ポータルシステムの一貫した設定を検証すること;
C)エミュレートされたシステムのために用いられる識別情報を決定すること;
D)ポータルシステム及びこれらのアグリゲーションポートの現在の状態を、互いの間で配信すること;
E)各IPLを通過することが必要とされる任意のフレームの結果としてのパスを計算し、要求に応じて隣接するポータルシステムと情報を交換し、ループの転送及び重複したフレーム送達をしないことを確実にすること;
F)この仕様において規定されていない分配機能をサポートするために、ポータルシステム間で情報を交換すること;
DRCPの動作の結果として、分散中継器によるフレームの転送を制御する変数が維持される。
DRCPは、情報を交換して、ポータルシステムが共に機能することができることを確実にする。そのような情報の第1の分類は、そもそも何らかのデータを通す(上記の項目A)ためには互換性がなくてはらないマネージメントされるオブジェクト及び変数を含む。1つの実施形態では、これらは以下を含む:
G)aAggPortAlgorithm:全てのポータルシステムは同じポートアルゴリズムを用いなくてはならない。
H)aDriniGatewayAlgorithm:全てのポータルシステムは同じゲートウェイアルゴリズムを用いなくてはならない。
I)aDriniPortalId:全てのポータルシステムは、それらが全て同じポータルに属すると想定されることを確実にするために、aDriniPortalIdの同じ値を有しなくてはならない。
J)aDriniPortalTopology:全てのポータルシステムは、aDriniPortalTopologyの同じ値を有しなくてはならず、3つのポータルシステムのポータルがリング状に接続されている場合、同じ「ループ中断リンク」すなわちaDriniLoopBreakLinkがポータルを通じて一貫して設定される必要がある。
K)aDriniPortalSystemNumber:全てのポータルシステムは、異なるaDrniPortalSystemNumber値を有しなくてはならず、情報を有意にラベル付けすることができることを確実にするために、これらの値の全てが範囲1..3になくてはならない。
L)aAggActorAdminKey:分散中継器のアグリゲータポートにおけるアグリゲータごとの管理キーの最上位2ビットがDRF_Portal_System_Numberの値にセットされる。残りのビットは、関連アグリゲーションポートの物理特性を反映し、これらはポータル内の全てのポータルシステムについて同じでなくてはならない。
マネージメントされるオブジェクトの第2の分類(項目B)は、いずれのゲート及びいずれのアグリゲーションポートを各カンバセーションIDが通過するかを制御する。これらのマネージメントされるオブジェクトについて、1つのカンバセーションIDに関する情報が、異なるポータルシステムと異なる形で設定される場合、そのカンバセーションIDのみが影響を受ける。したがって、ポータルは正常に動作することができ、重複した送達又はループの転送をしないことを確実にするメカニズムが、誤設定されたカンバセーションIDに属するいかなるフレームの通過もブロックする。ブロックが永続的にならないように誤設定を検出するために、DR機能部は、設定が異なる場合にネットワーク管理者に通知することができる。これらの設定は非常に大規模であるため、設定自体ではなく、これらの設定の内容のチェックサムが交換される。この方法は、高い確率で違いを検出するが、確実ではない。1つの実施形態では、これらのマネージメントされるオブジェクトは以下を含む。
L)aDrniConvAdminGateway[]:いずれのカンバセーションIDがいずれのゲートウェイを通じて流れるかを動的に決定するのに用いられるリスト。
M)aAggConversationAdminPort[]:いずれのカンバセーションIDがいずれのアグリゲーションポートを通じて流れるかを動的に決定するのに用いられるリスト。
【0080】
DRCPは、予期されるポータルシステムのうちのいずれがIPLを介して接続されているか又は接続されていないかに関する自身の情報を用いて、エミュレートされた分散中継器の識別情報を決定する(このセクションにおける上記の項目C)。
【0081】
全てのポータルシステム及びこれらのアグリゲーションポートの現在の動作状態が交換され、DR機能部のそれぞれが、いずれのポータルシステムのゲートウェイ又はアグリゲータポートに各フレームが送達されるべきかを決定することができるようにする(このセクションにおける上記の項目D)。各DR機能部は、いずれのポートカンバセーションID及びいずれのゲートウェイカンバセーションIDが各ゲートウェイ、アグリゲーションポート又はIPPを通過することができるかを厳密に指定するベクトルを計算する。各IPPにおいて、この情報が交換される(このセクションにおける上記の項目E)。任意の所与のカンバセーションIDについて2つのDR機能部のベクトル間に違いが存在する場合、出力変数は、DR機能部がそのカンバセーションIDを有するフレームをブロックするようにセットされる。これによって、いかなるフレームのループ又は重複した送達も防止される。
【0082】
ポータル及び分散中継器の確立
ポータルの自動作成は指定された指示ではない。代わりに、DRCPは、管理されたオブジェクトによって規定されるネットワーク管理者の意図を、設定されたシステムの物理的トポロジと比較して、接続されたシステムの設定に互換性がある場合、DRCPはポータルの動作を確立し可能にする。ポータルをまたがって分散中継器を確立するために、ネットワーク管理者は以下のマネージメントされるオブジェクトを設定する。
A)ネットワーク内に多くのシステムが存在することができ、選択されたポータルシステムのうちのいくつか又は全てが他のポータルに参加してもよい。いずれの他のポータルシステムがこのポータルシステムのポータルに属するかを判定することは、aDrniPortalId及びaDrniPortalSystemNumber等の変数を設定することによって達成される。
B)本明細書において上記で説明されたように、MACサービスの任意のポイントツーポイントインスタンスをポータル内リンクに割り当てることができる。DR機能部の使用に割り当てられた特定のインスタンスは、例えばaDrniIntraPortalLinkList内に設定される。
C)1つの実施形態において、各ポータルシステム内のいずれのアグリゲータがこのDR機能部に割り当てられるかが、aDrniAggregatorにおいて設定される。
D)1つの実施形態において、DR機能部によって、フレームをゲートウェイカンバセーションID及びポートカンバセーションIDに割り当てるのに用いられる方法が、2つのマネージメントされるオブジェクト、すなわちaDrniGatewayAlgorithm及びaAggPortAlgorithmにおいて設定される。
E)1つの実施形態において、故障モードをカバーするための、ゲートウェイ及びアグリゲーションポートへのカンバセーションIDの初期割り当て及びバックアップ割り当てが、いくつかのマネージメントされるオブジェクト、すなわち、aDrniConvAdminGateway[]及びaAggConversationAdminPort[]において設定される。
【0083】
DRCPDU送信、アドレス指定、及びプロトコル識別
分散中継器制御プロトコルデータユニット(DRCPDU)が、LLCエンティティによって提供されるサービスを用いて送受信される。そして、LLCエンティティは、IPPに関連付けられたMSAPにおいて提供されるMACサービスの単一のインスタンスを用いる。各DRCPDUは、単一のMACサービス要求として送信され、単一のMACサービスインジケーションとして受信され、以下のパラメータを有する。
・宛先アドレス
・ソースアドレス
・MSDU(MACサービスデータユニット)
・優先度
【0084】
各要求及びインジケーションのMSDUは、EtherTypeプロトコル識別を提供する複数のオクテットと、それに続くDRCPDUプロパーとを含む。
【0085】
注記1−この規格において、「LCCエンティティ」という用語は、IEEE Std802において指定されているようにEtherTypeフィールドを用いてプロトコルの区別をサポートするエンティティを含む。
【0086】
注記2−DRCPフレームの完全なフォーマットは、ここで規定されているようにDRCPDUフォーマットのみでなく、MACサービスをサポートするのに用いられる媒体アクセス方法に依拠した手順にも依拠する。
【0087】
宛先MACアドレス
DRCPDUを送信するのに用いられるMACサービス要求ごとの宛先アドレスは、IPPによりマネージメントされるオブジェクトによって選択されるグループアドレスとすることができる。そのデフォルト値は、最も近い非TPMR(2ポート媒体アクセス制御(MAC)中継)ブリッジグループアドレスとすることができる。
ソースMACアドレス:DRCPDUを送信するのに用いられるMACサービス要求ごとのソースアドレスは、要求が行われるIPP MSAP(MACサービスアクセスポイント)に関連付けられる個々のアドレスとすることができる。
優先度:各MACサービス要求に関連付けられる優先度は、IPP MSAPに関連付けられるデフォルトであるべきである。
【0088】
フレームにおけるDRCPDUのカプセル化
DRCPDUは、M_UNITDATA.request又はM_UNITDATA.indicationのmac_service_data_unitパラメータにおいて符号化される。mac_service_data_unitの第1のオクテットはプロトコル識別子であり、この後にDRCPDUが続き、基礎を成すMACサービスによる要求に応じて、存在する場合、この後にパディングオクテットが続く。
【0089】
フレームを送受信するのに用いられるISSインスタンスが、EtherType符号化を直接サポートすることができる媒体アクセス制御方法(例えば、IEEE802.3MAC)によって提供される場合、プロトコル識別子は2オクテットの長さである。全てのDRCPDUは、指定されるEtherTypeによって識別される。ISSインスタンスがEtherType符号化を直接サポートすることができない媒体アクセス制御方法(例えば、IEEE802.11MAC)によって提供される場合、TPIDは、LLCを用いてイーサネットフレームをカプセル化するサブネットワークアクセスプロトコルのためのルール(IEEE Std802の節10)に従って符号化され、SNAPヘッダ(16進数AA−AA−03)、それに続くSNAP PID(16進数00−00−00)、それに続くプロトコルのEtherType(16進数xx−xx)を含む。
【0090】
DRCPDU構造及び符号化
オクテットの送信及び表現
全てのDRCPDUは、整数の数のオクテットを含む。各オクテット内のビットは、0〜7をナンバリングされ、ここで、0は最も低次のビットである。数値を表すために連続したオクテットが用いられるとき、最上位オクテットが最初に送信され、その後、順次、より下位のオクテットが送信される。
【0091】
DRCPDUの(要素の)符号化が図に示されるとき、
A)オクテットは上から下に送信される。
B)オクテット内で、ビットは左にビット0を有し右にビット7を有して示され、左から右に送信される。
C)バイナリ数を表すのに連続したオクテットが用いられるとき、最初に送信されるオクテットはより上位の値を有する。
D)MACアドレスを表すのに連続したオクテットが用いられるとき、第1のオクテットの最下位ビットにMACアドレスの第1のビットの値が割り当てられ、次の最下位ビットにMACアドレスの第2のビットの値が割り当てられ、8番目のビットまで以下同様である。同様に、第2のオクテットの最下位ビットから最上位ビットまでに、MACのアドレスの9番目から17番目までの値が割り当てられ、MACアドレスの全てのオクテットについて以下同様である。
【0092】
フレームにおけるDRCPDUのカプセル化
1つの実施形態において、DRCPDUは、M_UNITDATA.request又はM_UNITDATA.indicationのmac_service_data_unitパラメータにおいて符号化される。mac_service_data_unitの第1のオクテットはプロトコル識別子であり、この後にDRCPDUが続き、基礎を成すMACサービスによる要求に応じて、存在する場合、この後にパディングオクテットが続く。
【0093】
フレームを送受信するのに用いられるISSインスタンスが、EtherType符号化を直接サポートすることができる媒体アクセス制御方法(例えば、IEEE802.3MAC)によって提供される場合、プロトコル識別子は2オクテットの長さであり、値はプロトコルのEtherType(16進数xx−xx)である。
【0094】
ISSインスタンスがEtherType符号化を直接サポートすることができない媒体アクセス制御方法(例えば、IEEE802.11MAC)によって提供される場合、TPIDは、LLCを用いてイーサネットフレームをカプセル化するサブネットワークアクセスプロトコルのためのルール(IEEE Std802の節10)に従って符号化され、SNAPヘッダ(16進数AA−AA−03)、それに続くSNAP PID(16進数00−00−00)及びEtherType(16進数xx−xx)を含む。
【0095】
DRCPDU構造
図5は、本発明によるDRCPDU構造の1つの例を示す。フィールドは以下のように規定される。
A)サブタイプ。サブタイプフィールドは、カプセル化されている特定の低速プロトコルを識別する。DRCPDUはサブタイプ値0x0Xを保有する。DCRP動作を識別するために低速プロトコルEtherType(Slow Protocol EtherType)を用いることを選択しない場合、A)は存在しないことに留意されたい。
B)バージョン番号。バージョン番号は、DRCPバージョンを識別する;1つの実施形態による実施態様は値0x01を保有する。
C)TLV_type=ポータル情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、DRNI情報は値0x01によって識別される。
D)Portal_Information_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示し、1つの実施形態では、アクター情報が、18(0x12)の長さ値を用いる。
E)Aggregator_Priority。DR機能部にアタッチされたアグリゲータの(マネージメント又は管理ポリシーによって)アクターシステムIDに割り当てられる優先度であり、1つの実施形態では、aAggActorSystemPriorityからの符号なし整数として符号化される。
F)Aggregator_ID。1つの実施形態では、DR機能部にアタッチされたアグリゲータのアクターシステムIDのMACアドレスコンポーネントである。
G)Portal_Priority。(マネージメント又は管理ポリシーによって)ポータルIDに割り当てられる優先度であり、1つの実施形態では、aDrniPortalPriorityからの符号なし整数として符号化される。
H)Portal_ID。1つの実施形態では、aDrniPortalIdからのポータルIDのMACアドレスコンポーネントである。
I)TLV_type=ポータル設定情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、ポータル設定情報は値0x02によって識別される。
J)Portal_Configuration_Information_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示し、1つの実施形態では、ポータル設定情報は、46(0x2E)の長さ値を用いる。
K)Topology_State。IPPのための、このDR機能部のトポロジ関連変数であり、以下のように、また
図6Cに示すように、単一のオクテット内の個々のビットとして符号化される。
1)Portal_System_Numberは、ビット0及び1において符号化される。これは、aDrniPortalSystemNumberからのこのDR機能部のポータルシステム番号である。
2)Portal_Topologyは、ビット2及び3において符号化される。これは、aDrniPortalTopologyにおいて設定されるようなこのDR機能部のポータルトポロジである。
3)Neighbor_Conf_Portal_System_Numberは、ビット4及び5において符号化される。これは、このIPPにアタッチされたポータルシステムの設定されたポータルシステム番号である。
4)Loop_Break_Linkは、ビット6において符号化される。このフラグは、このIPPにアタッチされたIPLがループ中断リンクとして設定されることを示す。TRUEは、IPLがDrniLoopBreakLinkにおいて設定されることを示し、1として符号化される;そうでない場合、フラグは0として符号化される。
5)ビット7は、未来の使用のために確保される。送信時は0にセットされ、受信時は無視される。
K2)Topology_State。代替的な実施形態では、トポロジ状態は、以下のように、また
図29に示すように、異なるオクテットにおいて符号化されてもよい。
1)Portal_System_Numberは、ビット0及び1において符号化される。1つの実施形態では、aDrniPortalSystemNumberからの、このDR機能部のポータルシステム番号である。
2)Neighbor_Conf_Portal_System_Numberは、ビット2及び3において符号化される。1つの実施形態では、このIPPにアタッチされたポータルシステムの設定されたポータルシステム番号である。
3)ビット4〜6は未来の使用のために確保される。1つの実施形態では、これらのビットは、送信時は0にセットされ、受信時は無視される。
4)ビット7において符号化されるOther_Non_Neighbor。TRUE(1として符号化される)は、他のポート情報TLVがこのポータルシステムの直接の近隣に関連付けられていないことを示す。1つの実施形態では、FALSE(0として符号化される)は、他のポート情報TLVが、このポータルシステムにおける他のIPPに対する直接の近隣であることを示す。
L)Oper_Aggregator_Key。DR機能部にアタッチされたアグリゲータの現在の動作アグリゲータキー値である。
M)Port_Algorithm。1つの実施形態では、aAggPortAlgorithmからの、このDR機能部及びアグリゲータによって用いられるポートアルゴリズムである。
N)Gateway_Algorthm。1つの実施形態では、aDrniGatewayAlgorithmからの、このDR機能部によって用いられるゲートウェイアルゴリズムである。
O)Port_Digest。1つの実施形態では、aAggConversationAdminPort[]からの、このDR機能部の優先付けされたポートカンバセーションID対アグリゲーションポートの割り当てのダイジェストである。
P)Gateway_Digest。1つの実施形態では、aDrniConvAdminGateway[]からの、このDR機能部の優先付けされたゲートウェイカンバセーションID対ゲートウェイの割り当てのダイジェストである。
Q)TLV_type=DRCP状態。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、DRCP状態は値0x03によって識別される。
R)DRCP_State_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示し、1つの実施形態では、DRCP状態は、3(0x03)の長さ値を用いる。
S)DRCP_State。IPPのための、このDR機能部のDRCP変数であり、以下のように、また
図6Bに示すように、単一のオクテット内の個々のビットとして符号化される。
1)Home_Gateway。1つの実施形態では、Home_Gatewayはビット0において符号化される。このフラグは、このDR機能部のゲートウェイの動作状態を示す。TRUEは、動作中を示し、1として符号化され、非動作中は0として符号化される。
2)1つの実施形態では、Neighbor_Gatewayはビット1において符号化される。このフラグは、この近隣のDR機能部のゲートウェイの動作状態を示す。TRUEは、動作中を示し、1として符号化され、非動作中は0として符号化される。
3)1つの実施形態では、Other_Gatewayはビット2において符号化される。このフラグは、潜在的な他のDR機能部のゲートウェイの動作状態を示す。TRUEは、動作中を示し、1として符号化され、非動作中は0として符号化される。
4)1つの実施形態では、IPP_Activityはビット3において符号化される。このフラグは、このIPPにおける近隣のDRCPのアクティブ性を示す。アクティブな近隣DRCPは1として符号化され、非DRCPアクティブ性は0として符号化される。
5)1つの実施形態では、DRCP_Timeoutはビット4において符号化される。このフラグは、このリンクに関するタイムアウト制御値を示す。短いタイムアウトは1として符号化され、長いタイムアウトは0として符号化される。
6)1つの実施形態では、ゲートウェイSyncはビット5において符号化される。TRUE(1として符号化される)の場合、このDR機能部は、このIPPの近隣パートナーシステムが、自身のゲートウェイとIN_SYNCであるとみなす。すなわち、いずれのポータルシステムのゲートウェイ(存在する場合)が各ゲートウェイカンバセーションIDを通すかをリスト化するこのポータルシステムの動作ベクトル(operational vector)は、このIPPの近隣の動作ベクトルと一致している。FALSE(0として符号化される)の場合、このIPPは現在OUT_OF_SYNCである。すなわち、いずれのポータルシステムのゲートウェイ(存在する場合)が各ゲートウェイカンバセーションIDを通すかをリスト化するこのIPPの近隣の動作ベクトルは、一致していない。
7)ポートSyncは、ビット6において符号化される。TRUE(1として符号化される)の場合、このDR機能部は、このIPPの近隣パートナーシステムが、自身のアグリゲータポートとIN_SYNCであるとみなす。すなわち、いずれのポータルシステムのアグリゲーションポート(存在する場合)が各ポートカンバセーションIDを通すかをリスト化するこのポータルシステムの動作ベクトルは、このIPPの近隣の動作ベクトルと一致している。FALSE(0として符号化される)の場合、このIPPは現在OUT_OF_SYNCである。すなわち、いずれのポータルシステムのアグリゲーションポート(存在する場合)が各ポートカンバセーションIDを通すかをリスト化するこのIPPの近隣の動作ベクトルは、一致していない。
8)満了は、ビット7において符号化される。TRUE(1として符号化される)の場合、このフラグは、このDR機能部の受信マシンがEXPIRED状態又はDEFAULTED状態にあることを示し、FALSE(0として符号化される)の場合、このDR機能部の受信マシンがEXPIRED状態にもDEFAULTED状態にもないことを示す。
満了状態の受信値は、DRCPによって用いられないが、プロトコル問題を診断する際に、これらの値を知ることは有用であり得る。また、フィールドの順序及びフィールドの長さは、異なる実施形態において異なる場合があるが、依然として本発明の趣旨に適合することに留意されたい。
T)TLV_type=ホームポート情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、DRNI情報は値0x04によって識別される。
U)Home_Ports_Information_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。ホームポート情報は、含まれるこのポータルシステムのアグリゲーションポートの数の4倍の長さ値を用いる。
V)Home_Admin_Aggregator_Key。aAggActorAdminKeyからの、このDR機能部にアタッチされたアグリゲータの管理アグリゲータキー値である。
W)Home_Oper_Partner_Aggregator_Key。このポータルシステムのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキーである。
X)アクティブホームポート。ポート番号の昇順のアクティブアグリゲーションポートのリストである。このリストは、LACPの動作によって制御される(LACPがActor_Oper_Port_State.Distributing=TRUEを宣言している、このポータルシステム上の全てのポートを列挙する)。
Y)TLV_type=近隣ポート情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。近隣ポート情報は整数値0x05によって識別される。
Z)Neighbor_Ports_Information_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示し、近隣ポート情報は、含まれる近隣アグリゲーションポート数の4倍の長さ値を用いる。
Aa)Neighbor_Admin_Aggregator_Key。近隣ポータルシステムにアタッチされたアグリゲータの管理アグリゲータキー値。
Ab)Neighbor_Oper_Partner_Aggregator_Key。近隣ポータルシステムのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキー。
Ac)アクティブ近隣ポート。ポート番号の昇順のアクティブなアグリゲーションポートのリスト。このリストは、LACPの動作によって制御される(LACPがActor_Oper_Port_State.Distributing=TRUEを宣言している直接近隣ポータルシステムにおける全てのポートを列挙する)。
Ad)TLV_type=他のポート情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。この他のポート情報は、整数値0x06によって識別される。このTLVは、ポータルトポロジが3つのポータルシステムを含む場合にのみ用いられる。
Ae)Other_Ports_Information_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。他のポート情報は、含まれる他のポータルシステムのアグリゲーションポートの数の4倍の長さ値を用いる。
Af)Other_Admin_Aggregator_Key。他の近隣ポータルシステムにアタッチされたアグリゲータの管理アグリゲータキー値。
Ag)Other_Oper_Partner_Aggregator_Key。他の近隣ポータルシステムのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキー。
Ah)アクティブな他のポート。ポート番号の昇順のアクティブなアグリゲーションポートのリスト。このリストは、LACPの動作によって制御される(LACPがActor_Oper_Port_State.Distributing=TRUEを宣言しているオプションの他のポータルシステムにおける全てのポートを列挙する)。
Ai)TLV_type=他の情報。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、他の情報は、整数値0x0xによって識別される。
Aj)TLV_type=ターミネータ。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。1つの実施形態では、ターミネータ(メッセージ終了)情報は、整数値0x00によって識別される。
Ak)Terminator_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。1つの実施形態では、ターミネータ情報は値0(0x00)の長さ値を用いる。
【0096】
0のTerminator_Lengthの使用は意図的であることに留意されたい。TLV符号化方式において、ターミネータ符号化が、タイプ及び長さの双方について0となることが一般的である。
【0097】
また、バージョン1の実施は、バージョンNのPDUの受信に成功することができることを保証されるが、バージョンNのPDUは、バージョン1によって解釈することができない(無視されることになる)追加の情報を含む場合がある。後方互換性を確保する際の重大な要素は、プロトコルの任意の未来のバージョンが、以前のバージョンについて定義された情報の構造又は意味論を精緻化しないことを必要とされることである。未来のバージョンは、以前の組に対し新たな情報要素を加えることしかできない。このため、バージョンN PDUにおいて、バージョン1の実施は、バージョン1の情報を、バージョン1 PDUと厳密に同じ場所に見つけることを予期することができ、バージョン1について定義されているようにその情報を解釈することを予期することができる。
【0098】
DRCPDUは、アグリゲーションポート数と共にサイズが大きくなることに留意されたい。ポータルのポータルシステム間で拡散された最大で(1500−88)/4=353個のアグリゲーションポートがサポートされる。ポータルによってサポートされる必要があるアグリゲーションポートの最小数は2である。
【0099】
以下の表は、DRCPに適用可能なTLVのリストを提供する。
【0100】
このため、実施形態は、DRCPDUのフレームへのカプセル化を提供し、各DRCPDUはIPPのためのDRCP変数等のDRCP状態を示すフィールドを備える。フィールドは1つのオクテットであり得る。オクテットの異なるビットに符号化されたフィールドは、Home_Gateway、Neighbor_Gateway、Other_Gateway、IPP_Activity、DRCP_Timeout、ゲートウェイSync、ポートSync、満了のうちの1つ又は複数を述べる情報を更に含むことができる。
【0101】
図14は、本発明によるDRCPDU構造の別の実施形態を示す。
図14におけるDRCPDU構造は
図5のものに類似しているが、いくつかのフィールドが異なる。例えば、Home_Ports_Information_Lengthは、
図14では2+4*PNであり、
図5のように2+2*PNではない。同様に、
図14におけるDRCPDU構造のいくつかの他のフィールドは、
図5におけるDRCPDU構造と異なる長さを含み、2つのDRCPDU構造は、他方の実施形態に存在しないフィールドも含む。各例示的なDRCPDU構造において、フィールドは、フィールドのコンテンツについて弁別的な名称を有する。異なるフィールドのうちのいくつかは同様の情報を含むが、リネーム又は再組織化されている。当業者であれば、本明細書に示す原理及び構造と一貫した他の同様のDRCPDU構造が可能であることを理解するであろう。
【0102】
図25は、本発明によるDRCPDU構造の別の実施形態を示す。
図25におけるDRCPDU構造は、いくつかの差異を伴うが、
図5及び
図14と同様である。例えば、ポート情報長(ホームポート、近隣ポート及び他のポートの場合)が差異である。加えて、
図25におけるDRCPDU構造は、トポロジ状態と、本明細書において上記で論考した、Oper_Aggregator_Key、Home_Admin_Aggregator_Key、Home_Oper_Partner_Aggregator_Key、Neighbor_Admin_Aggregator_Key、Other_Admin_Aggregator_Key及びOther_Oper_Partner_Aggregator_Key等のアグリゲータキーのためのいくつかのフィールドとを含む。
【0103】
図32は、本発明の1つの実施形態による、DRCPDU構造を含むフレームを用いた通信方法を示す。方法3200は、
図1BのノードK〜O並びに
図1Cのネットワークデバイス132及び134等のDRNIの一部として、DRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施され得る。
【0104】
3202において、ポータルのDRCPノードがフレーム内のDRCPDUをカプセル化する。DRCPDUは、(1)PDUがDRCPのためのものであることを示すタイプフィールド(サブタイプと呼ばれる)と、(2)DRCPDUのバージョン番号を示すバージョンフィールドと、(3)TLVの組とを含む構造を含む。TLVの組は、ターミネータTLVと、ポータル情報TLVと、ポータル設定TLVと、DRCP状態TLVと、ホームポート情報TLVと、近隣ポート情報TLVとを含む。1つの実施形態において、ポータルが3つ以上のノードを含むとき、PDU構造は別のポートTLVを含むことができる。
【0105】
1つの実施形態では、TLVの組は、ネットワーク/IPL共有方法TLV、ネットワーク/IPL共有カプセル化TLV、IEEE802.1のために確保済みの1つ又は複数のTLV、及び組織固有TLVのうちの少なくとも1つを更に含み、それぞれのTLVが本明細書において論考されている。
【0106】
TLVの組の各TLVがTLVタイプフィールドを含む。1つの実施形態では、各TLVのTLVタイプフィールドは、上記で示した表4内に指定されている値を含む。TLVのそれぞれが、本明細書において上記で論考された値にセットすることができるフィールドを含む。例えば、
・ターミネータTLVはPDU構造の終了を示す。1つの実施形態では、ターミネータTLVは、TLVタイプフィールド及びターミネータ長フィールドを含み、ここで、ターミネータ長フィールドは、本明細書において上記で論考されたようなゼロの長さを示す。
・ポータル情報TLVは、DRCPノードが属するポータルの特性を示す。1つの実施形態では、特性は、(1)ノードのアグリゲータに割り当てられた優先度を示すアグリゲータ優先度フィールドと、(2)アグリゲータのIDを示すアグリゲータ識別子(ID)フィールドと、(3)ポータルに割り当てられた優先度を示すポータル優先度フィールドと、(4)本明細書において上記で論考されたように、ネットワークデバイスに関連付けられたMACアドレスコンポーネントを示すポータルアドレスフィールドと、において示される。
・ポータル設定情報TLVは、DRCPノードが属するポータルの設定情報を示す。1つの実施形態では、設定情報は、本明細書において論考されるように、(1)
図6C及び
図29に示すようなポータルのトポロジ状態を示すトポロジ状態フィールドと、(2)ノードの動作アグリゲータキーを示す動作アグリゲータキーフィールドと、(3)用いられるポータルアルゴリズムを示すポータルアルゴリズムフィールドと、(4)用いられるゲートウェイアルゴリズムを示すゲートウェイアルゴリズムフィールドと、(5)ポートカンバセーション識別子(ID)のために用いられるポートダイジェストの、アグリゲーションポートへの割り当てを示すポートダイジェストフィールと、(6)ゲートウェイカンバセーションIDのために用いられるゲートウェイダイジェストをゲートウェイに示すゲートウェイダイジェストフィールドと、において示される。
・DRCP状態TLVは、IPPに関連付けられた変数を示す。1つの実施形態では、DRCP状態は、本明細書において上記で論考されたように、
図6Bに示すように符号化された値を含む。
・ホームポート情報TLVは、ノードの現在のステータスをDRCPノードに関連付けて示す。1つの実施形態では、ノードの現在のステータスは、本明細書において上記で論考されたように、(1)アタッチされたアグリゲータの管理アグリゲータキー値を示す管理アグリゲータキーフィールドと、(2)ノードのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキーを示す動作パートナーアグリゲータキーフィールドと、(3)ノード内のアクティブなアグリゲーションポートのリストを示すアクティブアグリゲーションポートフィールドと、において示される。
・近隣ポート情報TLVは、近隣ノードの現在のステータスをDRNIに関連付けて示す。1つの実施形態では、近隣ノードの現在のステータスは、本明細書において上記で論考されたように、(1)近隣ネットワークデバイスにアタッチされたアグリゲータの管理アグリゲータキー値を示す管理アグリゲータキーフィールドと、(2)近隣ノードのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキーを示す動作パートナーアグリゲータキーフィールドと、(3)IPPに関連付けられた直接近隣ポータルシステムにおけるアクティブアグリゲーションポートのリストを示すアクティブアグリゲーションポートフィールドと、において示される。
・他のポート情報TLVは、ローカルポータルが3つ以上のノードを含むときの、DRNIに関連付けられた他の近隣ノードの現在のステータスを示す。1つの実施形態では、他の近隣ノードの現在のステータスは、本明細書において上記で論考されたように、(1)他のノードにアタッチされたアグリゲータの管理アグリゲータキー値を示す管理アグリゲータキーフィールドと、(2)他の近隣ノードのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキーを示す動作パートナーアグリゲータキーフィールドと、(3)IPP上の他の近隣ノードにおけるアクティブアグリゲーションポートのリストと、において示される。
・ネットワーク/IPL共有方法TLVは、ノードに関連付けられたネットワーク及びIPL共有方法を示す。
・ネットワーク/IPL共有カプセル化TLVは、共有方法のカプセル化に関する情報を示す。
【0107】
3206において、DRCPノードは、IPPを介してポータルの自身の近隣ノードにフレームを送信する。近隣ノードは、カプセル化された情報を用いて、フレームの転送を制御する。
【0108】
本明細書において論考されるように、方法3200を通じて、ノードは自身の近隣ノードと情報を交換し、これによってポータルのDRCP動作を確立し、可能にする。方法3200は、ノードが自身の近隣ノードと情報を交換するための効率的な方法を提供する。
【0109】
ネットワーク/IPL共有TLV
これらのTLVは、用いられるネットワーク/IPL共有方法が、タグによるネットワーク/IPL共有、又はポータルシステム間の一貫した設定を確保するためのカプセル化によるネットワーク/IPL共有のうちの1つであるときにのみ必要とされる。時間によるネットワーク/IPL共有方法は、ネットワーク/IPL共有方法TLVの交換を必要とするが、ネットワーク/IPL共有カプセル化TLVは必要としない。
【0110】
注記−用いられるネットワーク/IPL共有方法が本明細書において論考される物理的方法又はアグリゲーション方法のとき、ネットワーク/IPL共有TLVは必要とされない。
【0111】
以下の表は、ネットワーク/IPL共有方法に適用可能なTLVのリストを提供する。
【0112】
ネットワーク/IPL共有方法TLV
ネットワーク/IPL共有方法TLV構造は、以下において表として示され、以下のフィールド定義において更に説明され得る。
【0113】
TLV_type=ネットワーク/IPL共有方法TLV。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。ネットワーク/IPL共有TLVは、整数値0x07によって識別される。
【0114】
Network/IPL_Sharing_Method_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。ネットワーク/IPL共有TLVは6(0x06)の長さ値を用いる。DRF_Home_Network/IPL_Sharing_Method。このフィールドは、IPL及びネットワークリンクが同じ物理リンクを共有しているとき、このIPPにおいてIPLフレームを近隣ポータルシステムにトランスポートするのに用いられるネットワーク/IPL共有方法を表す値を含む。この値は、このカプセル化を担当する組織を識別する3オクテット組織固有識別子(OUI)と、その組織によって定義されるカプセル化方法を識別するのに用いられる1つの後続のオクテットとからなる。常にaDrniEncapsulationMethodに等しくセットされる。1の値は、時間によるネットワーク/IPL共有が用いられることを示す。2の値は、用いられるカプセル化方法が、ネットワークフレームによって用いられるものと同じであること、及びタグによるネットワーク/IPL共有が用いられることを示す。以下の表は、IEEE OUI(01−80−C2)のカプセル化方法符号化を提供する。
【0115】
ネットワーク/IPL共有カプセル化TLV
ネットワーク/IPL共有カプセル化TLV構造は、以下に示すものとし、以下のフィールド定義において更に説明され得る。
【0116】
TLV_type=ネットワーク/IPL共有カプセル化TLV。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。ネットワーク/IPL共有TLVは整数値0x08によって識別される。
【0117】
Network/IPL_Sharing_Encupsulation_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。ネットワーク/IPL共有TLVは、34(0x22)の長さ値を用いる。
【0118】
DRF_Home_Network/IPL_IPLEncap_Digest。このフィールドは、IPLにおいて近隣ポータルシステムと交換するためにaDrniIPLEncapMapから計算されるMD5ダイジェストの値を含む。
【0119】
DRF_Home_Network/IPL_NetEncap_Digest。このフィールドは、共有ネットワークリンクにおいて交換するためにaDrniNetEncapMapから計算されるMD5ダイジェストの値を含む。
【0120】
DrniEncapsulationMethod
属性
適切なシンタックス(SYNTAX)
組織固有識別子(OUI)及び1つの後続のオクテットからなるオクテットのシーケンス
以下のように定義される挙動
このマネージメントされるオブジェクトは、時間によるネットワーク/IPL共有、又はタグによるネットワーク/IPL共有、又はカプセル化によるネットワーク/IPL共有がサポートされるときにのみ適用可能である。このオブジェクトは、IPL及びネットワークリンクが同じ物理リンクを共有しているときに、IPLフレームを近隣ポータルシステムにトランスポートするのに用いられるカプセル化方法を表す値を識別する。このオブジェクトは、このカプセル化を担当する組織を識別する3オクテット組織固有識別子(OUI)と、その組織によって定義されるカプセル化方法を識別するのに用いられる1つの後続のオクテットとからなる。IEEEカプセル化方法における表は、IEEE OUI(01−80−C2)のカプセル化方法符号化を提供する。0x01−80−C2−00のデフォルト値は、IPLが別個の物理リンク又はアグリゲーションリンクを用いていることを示す。1の値は、時間によるネットワーク/IPL共有が用いられることを示す。2の値は、用いられるカプセル化方法がネットワークフレームによって用いられるものと同じであること、及びタグによるネットワーク/IPL共有が用いられることを示す。
【0121】
DrniIPLEncapMap
属性
適切なシンタックス
ゲートウェイカンバセーションIDによってインデックス付けされる整数のシーケンス
以下のように定義される挙動
このマネージメントされるオブジェクトは、タグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有がサポートされるときにのみ適用可能である。各エントリは、本明細書において指定されるカプセル化方法についてそのゲートウェイカンバセーションIDに関連付けられたIPLフレームのために用いられる識別子の値を表す。
【0122】
aDrniNetEncapMap
属性
適切なシンタックス
ゲートウェイカンバセーションIDによってインデックス付けされる整数のシーケンス
以下のように定義される挙動
このマネージメントされるオブジェクトは、タグによるネットワーク/IPL共有がサポートされるときにのみ適用可能である。各エントリは、本明細書において指定される方法が、本明細書によって指定されるタグによるネットワーク/IPL共有方法であるとき、及びネットワークフレームが、IPLフレームによって用いられるタグスペースを共有する必要があるときに、そのゲートウェイカンバセーションIDに関連付けられたネットワークフレームのために用いられる識別子の変換された値を表す。
【0123】
aAggPortAlgorithm
属性
適切なシンタックス
3オクテットの組織固有識別子(OUI)及び1つの後続のオクテットからなるオクテットのシーケンス
以下のように定義される挙動
このオブジェクトは、フレームをポートカンバセーションIDに割り当てるためにアグリゲータによって用いられるアルゴリズムを識別する。
【0124】
aAggActorSystemID
属性
適切なシンタックス:
MACAddress
以下のように定義される挙動
このアグリゲータを含むシステムのための固有の識別子として用いられる、6オクテット読出し−書込みMACアドレス値。
注記−節6に説明されるリンクアグリゲーションメカニズムの観点から、アクターのシステムID及びシステム優先度の単一の組み合わせのみが検討され、アグリゲータ及びこのアグリゲータに関連付けられたアグリゲーションポートのためのこれらのパラメータの値間は区別されない(すなわち、プロトコルは、単一のシステム内のアグリゲーションの動作の観点で説明される)。しかしながら、アグリゲータのために提供される管理されたオブジェクト及びアグリゲーションポートのために提供される管理されたオブジェクトの双方が、これらのパラメータのマネージメントを可能にする。この結果、単一の機器が、リンクアグリゲーションの動作の観点から2つ以上のシステムを含むようにマネージメントにより設定されることが可能になる。これは、限られたアグリゲーション機能を有する機器の設定において特に有用とすることができる。
【0125】
aAggActorSystemPriority
属性
適切なシンタックス:
整数
以下のように定義される挙動:
アクターのシステムIDに関連付けられた優先度値を示す2オクテット読出し−書込み値。
【0126】
組織固有TLV
任意の組織は、DRCPにおける使用のためにTLVを定義することができる。これらのTLVは、IEEE802.1、ITU−T、IETF等の様々な組織、並びに個々のソフトウェアベンダ及び機器ベンダが、近隣ポータルシステムに情報を告知するTLVを規定することを可能にするように提供される。組織固有TLV構造は、以下の表に示され、以下のフィールド定義において更に説明される通りである。
【0127】
TLV_type=組織固有TLV。このフィールドは、このTLV−タプルにおいて保有される情報の性質を示す。組織固有TLVは、整数値0x0Fによって識別される。
【0128】
Network/IPL_Sharing_Encapsulation_Length。このフィールドは、このTLV−タプルの長さ(オクテット単位)を示す。組織固有TLVはLLの長さ値を用いる。
【0129】
OUI。このフィールドは、IEEEから取得可能な3バイト長の組織に固有の識別子を含む。
【0130】
サブタイプ。このフィールドはサブタイプ値を含み、OUIの所有者によって更なる組織固有TLVが必要とされる場合に追加のOUIが必要とされないようにする。
【0131】
値。このフィールドは、近隣ポータルシステムに通信される必要がある情報を含む。
【0132】
DRCP状態マシン概観
プロトコルの動作は、それぞれ別々の関数を実行する複数の状態マシンによって制御される。これらの状態マシンは、ほとんどの部分が、IPPごとのベースで説明されたが、アグリゲーションポートごとの説明からの任意のずれが本文において強調されている。イベント(タイマ又は受信DRCPDUの満了等)によって、状態遷移を生じさせ、また、アクションを行わせることができる。これらのアクションは、繰り返し情報又は新たな情報を含むDRCPDUの送信の必要性を含むことができる。周期的送信及びイベント駆動の送信は、必要に応じて状態マシンによって生成される、送信必要性(NTT)変数の状態によって制御される。
【0133】
状態マシンは以下の通りである:
A)受信マシン(
図8を参照)。この状態マシンは、このIPP上で近隣ポータルシステムからDRCPDUを受信し、含まれる情報を記録し、DRCP_Timeoutのセッティングに従って、短いタイムアウト又は長いタイムアウトのいずれかを用いてタイムアウト処理を行う。この状態マシンは、近隣ポータルシステムから到来する情報を評価して、ホーム及び近隣が、ポータル内で他のポータルシステムと共に、又は個々のポータルとして、ホームポータルシステムを現在安全に用いることができる程度まで交換されたプロトコル情報に合意したか否かを判定する。合意していない場合、フレッシュなプロトコル情報を近隣ポータルシステムに送信するために、NTTをアサートする。近隣ポータルシステムからのプロトコル情報がタイムアウトする場合、受信マシンは、他の状態マシンによって用いるためのデフォルトパラメータ値をインストールする。
B)周期的送信マシン(PTS−
図9を参照)。この状態マシンは、ポータルを維持するために、ホームポータルシステム及びその近隣がDRCPDUを交換する期間を判定する。
C)ポータルシステムマシン(PS−
図10を参照)。この状態マシンは、ホームポータルシステムのIPPにおいて受信されたローカル情報及びDRCPDUに基づいてポータル内の全てのゲートウェイ及びアグリゲーションポートの動作ステータスを更新することを担当する。この状態マシンはポータルシステムごとにある。
D)DRNIゲートウェイ及びアグリゲータマシン(DGA−
図11を参照)。これらの状態マシンは、このDR機能部のゲートウェイを通過することを可能にされるゲートウェイカンバセーションID、及びこのDR機能部のアグリゲータを通じて配分されることが許可されるポートカンバセーションIDを設定する役割を果たす。これらの状態マシンはポータルシステムごとにある。
E)DRNI IPPマシン(IPP−
図12を参照)。これらの状態マシンは、このDR機能部のIPPを通過することを可能にされるゲートウェイカンバセーションID及びポートカンバセーションIDを設定する役割を果たす。
F)送信マシン(TX−本明細書における以下のサブセクション、送信マシンを参照)。この状態マシンは、他の状態マシンからオンデマンドで、かつ周期的に、DRCPDUの送信を処理する。
【0134】
図7は、本発明の1つの実施形態による、これらの状態マシンと、それらの状態マシン間での情報のフローとの間の関係を示す。近隣状態情報をラベル付けされた矢印の組は、新たな近隣情報を表す。この新たな近隣情報は、到来するDRCPDUに含まれるか、又は受信マシンによって各状態マシンに供給される管理デフォルト値によって供給される。ホーム状態情報をラベル付けされた矢印の組は、状態マシン間の更新されたホーム状態情報のフローを表す。DRCPDUの送信は、周期的マシンが、周期的DRCPDUを送信する必要性を判定した結果として、又は近隣に通信する必要があるホームの状態情報に対する変化の結果のいずれかとして生じる。DRCPDUを送信する必要性は、NTTをアサートすることによって送信マシンにシグナリングされる。残りの矢印は、状態マシンが別の状態マシンにおいてイベントを生じさせることを可能にする状態マシン記述における共有変数を表す。
【0135】
図15は、本発明の別の実施形態による、これらの状態マシンと、それらの状態マシン間での情報のフローとの間の関係を示す。代替的な実施形態は、本明細書において説明し、
図15に図示した原理及び構造に同様の形式で従って動作する。このため、説明は通常、注記されない限り双方の実施形態に当てはまる。
【0136】
これらの状態マシンは、本明細書において以下で詳述するような、1組の定数、変数、メッセージ及び関数を利用する。
【0137】
分散レジリエントネットワーク相互接続のマネージメント
分散中継器属性
aDrniPortalId
属性
適切なシンタックス:48ビットのMACアドレスのシンタックスに合致する8オクテットのシーケンス
以下のように定義される挙動:特定のポータルの読出し−書込み識別子。aDrniPortalIdは、少なくとも、所与のポータルシステムがIPLを介してアタッチされ得る潜在的なポータルシステムの全ての間で固有でなくてはならない。また、エミュレートされたシステムのためのアクターのシステムIDとしても用いられる。
【0138】
DrniDescription
属性
適切なシンタックス:
PrintableString、最大255文字。
以下のように定義される挙動:
分散中継器に関する情報を含む人間が可読のテキスト文字列。この文字列は読出し専用である。コンテンツはベンダ固有である。
【0139】
aDrniName
属性
適切なシンタックス:
PrintableString、最大255文字。
以下のように定義される挙動:
分散中継器のためのローカルで有効な名前を含む、人間が可読のテキスト文字列。この文字列は読出し−書込み対応である。
【0140】
aDrniPortalAddr
属性
適切なシンタックス:
48ビットMACアドレスのシンタックスに合致する6オクテットのシーケンス
以下のように定義される挙動:
特定のポータルの読出し−書込み識別子。aDrniPortalAddrは、少なくとも、所与のポータルシステムがIPLを介してアタッチされ得る潜在的なポータルシステムの全ての間で固有でなくてはならない。エミュレートされたシステムのためのアクターのシステムID(6.3.2)としても用いられる。
【0141】
aDrniPortalPriority
属性
適切なシンタックス:整数
以下のように定義される挙動:ポータルIDに関連付けられた優先度値を示す2オクテット読出し−書込み値。エミュレートされたシステムのためのアクターのシステム優先度としても用いられる。
【0142】
aDrniPortalTopology
属性
適切なシンタックス:
整数
以下のように定義される挙動:
ポータルのトポロジを示す読出し−書込み値。値3は、3つのポータル内リンクによってリング状に接続された3つポータルシステムのポータルを表し、値2は、2つのIPLによってチェーン状に接続された3つのポータルシステムのポータルを表し、値1は、単一のIPLによって接続された2つのポータルシステムのポータルを表し、値0は、アクティブなIPLを有しない単一のポータルシステムのポータルを表す。デフォルト値は1である。
【0143】
aDrniPortalSystemNumber
属性
適切なシンタックス:ポータルシステム番号であり、範囲1〜3(1及び3を含む)内の整数である。
以下のように定義される挙動:ポータル内のこの特定のポータルシステムの読出し−書込み識別子。同じaDrniPortalIdを有するポータルシステム間で固有でなくてはならない。
【0144】
aDrniIntraPortalLinkList
属性
適切なシンタックス:インターフェース識別子のシンタックスに合致する整数のシーケンス。
以下のように定義される挙動:この分散中継器に割り当てられるポータル内リンクの読出し−書込みリスト。各IPLのポート番号は、アタッチされたポータルシステムのポータルシステム番号に合致するように設定される。
【0145】
aDrniLoopBreakLink
属性
適切なシンタックス:
インターフェース識別子のシンタックスに合致する整数。
以下のように定義される挙動
aDrniIntraPortalLinkListのインターフェース識別子のうちの1つに合致する読出し−書込み識別子。その値は、全てのIPLが動作中であるときの、リング状に接続された3つのポータルシステムのポータルの場合に、データループを中断する必要があるインターフェース(「ループ中断リンク」)を識別する。この管理されたオブジェクトは、aDrniPortalTopologyにおける値が3であるときにのみ用いられる。
【0146】
aDrniAggregator
属性
適切なシンタックス:
インターフェース識別子のシンタックスに合致する整数。
以下のように定義される挙動:この分散中継器に割り当てられたアグリゲータポートの読出し−書込みインターフェース識別子。
【0147】
aDrniConvAdminGateway[]
属性
適切なシンタックス:ポータルシステム番号のシンタックスに合致する整数のシーケンスのアレイ。
以下のように定義される挙動:ゲートウェイカンバセーションIDによってインデックス付けされた、aDrniConvAdminGateway[0]〜aDrniConvAdminGateway[4095]の4096個のaDrniConvAdminGateway[]変数が存在する。それぞれが、分散中継器のためのゲートウェイ選択優先度リストの現在の管理値を含む。この選択優先度リスト、すなわちゲートウェイカンバセーションIDごとの整数のシーケンスは、対応する好ましいポータルシステムのゲートウェイがそのカンバセーションを搬送するための、最高位から最低位までの優先度順のポータルシステム番号のリストである。
注記−ネットワーク管理者が、ポータルのDR機能部の全てにおけるaDrniConvAdminGateway[]変数について同じ値を設定することができなければ、フレームは誤った宛先に向かう可能性がある。分散中継器制御プロトコル(DRCP、9.4)は、そのようなタイプの誤設定を防ぐ。
【0148】
aDrniGatewayAlgorithm
属性
適切なシンタックス:組織固有識別子(OUI)及び1つ又は複数の後続のオクテットからなるオクテットのシーケンス
以下のように定義される挙動:このオブジェクトは、DR機能部によってフレームをゲートウェイカンバセーションIDに割り当てるのに用いられるアルゴリズムを識別する。
【0149】
定数
以下の論考は、本発明の1つの実施形態に従って適用可能な多岐にわたる定数に焦点を当てる。このセクションにおいて規定される全てのタイマは、±250msの実施許容度を有する。
【0150】
Fast_Periodic_Time:短いタイムアウトを用いる周期的送信間の秒数。
値:整数;1
【0151】
Slow_Periodic_Time:長いタイムアウトを用いる周期的送信間の秒数。
値:整数;30
【0152】
Short_Timeout_Time:短いタイムアウトを用いるときに受信LACPDU情報を無効にする前の秒数(3×Fast_Periodic_Time)。
値:整数;3
【0153】
Long_Timeout_Time:長いタイムアウトを用いるときに受信LACPDU情報を無効にする前の秒数(3×Slow_Periodic_Time)。
値:整数;90
【0154】
Aggregate_Wait_Time:複数のリンクが同時にアグリゲートすることを可能にするためにアグリゲーションを遅延させるための秒数。
値:整数;2
【0155】
分散中継器に関連付けられた変数
以下の論考は、本発明の1つの実施形態による分散中継器に関連付けられた多岐にわたる変数に焦点を当てる。
【0156】
Drni_Aggregator_Priority:このポータルに割り当てられたアグリゲータのシステム優先度。常にaAggActorSystemPriorityに等しくセットされる。DRCPDUにおいて送信される。
値:整数;管理者又はシステムポリシーによって割り当てられる。
【0157】
Drni_Aggregator_ID:このポータルに関連付けられたアグリゲータのシステム識別子のMACアドレスコンポーネント。常にaAggActorSystemIDに等しくセットされ、DRCPDUにおいて送信される。
値:48ビット
【0158】
Drni_Gateway_Conversation:いずれのポータルシステムのゲートウェイ(存在する場合)が各ゲートウェイカンバセーションIDを通すかを列挙する動作ベクトル。
値:ゲートウェイカンバセーションIDによってインデックス付けされたポータルシステム番号(存在しない場合、0)のシーケンス。
初期化時及び管理されたオブジェクト又は変数が変化する度にaDrniConvAdminGateway[]及びDrni_Portal_System_State[]から計算される値。
【0159】
Drni_Port_Conversation:いずれのポータルシステム(存在する場合)が各ポートカンバセーションIDを通すかを列挙する動作ベクトル。
値:ポートカンバセーションIDによってインデックス付けされたポータルシステム番号(存在しない場合、0)のシーケンス。
初期化時及び管理されたオブジェクト又は変数が変化する度にaAggConversationAdminPort[]及びDrni_Portal_System_State[]から計算される値。
【0160】
Drni_Portal_Priority:ポータルのシステム優先度。常にaDrniPortalPriorityに等しくセットされる。DRCPDUにおいて送信される。
値:整数
管理者又はシステムポリシーによって割り当てられる。
【0161】
Drni_PortalID(又はいくつかの実施形態ではDrni_Portal_Addr):ポータルのシステム識別子のMACアドレスコンポーネント。常にaDrniPortalIdに等しくセットされる。DRCPDUにおいて送信される。
値:48ビット
管理者又はシステムポリシーによって割り当てられる。
【0162】
Drni_Portal_Topology:ポータルの設定されたトポロジ。常にaDrniPortalTopologyに等しくセットされる。DRCPDUにおいて送信される。
値:範囲[0...3]内の整数
管理者又はシステムポリシーによって割り当てられる。
【0163】
DR機能部ごとの変数
ChangeDRFPorts:この変数は、このポータルシステムに関連付けられたゲートウェイ及び全てのアグリゲーションポートの動作状態を追跡し、それらのうちのいずれかが変化するとき、TRUEにセットされる。この変数は、Drni_Conversation_GatewayList[]又はDrni_Conversation_PortList[]のための新たな値が開始される場合にもTRUEにセットされ得る。
値:ブール
【0164】
ChangePortal:この変数は、このポータルシステムにおける任意のIPPにおけるDRF_Neighbor_Oper_DRCP_State.IPP_Activityが変化するときにTRUEにセットされる。
【0165】
Drni_Conversation_GatewayList[]:ゲートウェイカンバセーションIDによってインデックス付けされた4096個のリストのアレイであり、このポータルにおけるいずれのゲートウェイがいずれのゲートウェイカンバセーションIDを保有するかを判定する。アレイ内の各項目が、インデックス付けされたゲートウェイカンバセーションIDを保有するための、最も望ましいものから最も望ましくないものまでの優先度順の、このポータルにおけるゲートウェイのリストである。管理者又はシステムポリシーによって割り当てられる。常にaDrniConvAdminGateway[]に等しくセットされる。
【0166】
Drni_Conversation_PortList[]:ポートカンバセーションIDによってインデックス付けされた4096個のリストのアレイであり、このポータルにおけるいずれのアグリゲーションポートがいずれのポートカンバセーションIDを保有するかを判定する。アレイ内の各項目が、インデックス付けされたポートカンバセーションIDを保有するための、最も望ましいものから最も望ましくないものまでの優先度順の、このポータルにおけるアグリゲーションポートのリストである。管理者又はシステムポリシーによって割り当てられる。常にaAggConversationAdminPort[]に等しくセットされる。
値:ポートIDのシーケンス
【0167】
Drni_Portal_System_State[]:ポータルシステム番号によってインデックス付けされた、このポータルにおける全てのポータルシステムの状態。
値:ゲートウェイの動作状態(TRUEは動作中を示す)、そのポータルシステム内の動作アグリゲーションポートのポートIDのリスト(おそらく空)、及びポータルシステムの状態が取得されたIPP(存在する場合)の識別情報を示すブールフラグ。この変数は、updatePortalState関数によってセットされる。DRCPDUにおいて送信される。
【0168】
DRF_Home_Admin_Aggregator_Key:このポータルシステムのアグリゲータに関連付けられる管理アグリゲータキー値。DRCPDUにおいて送信される。
値:整数
【0169】
1つの実施形態では、DRF_Home_Admin_Aggregator_Keyは、管理者又はシステムポリシーによって割り当てられる。DRF_Home_Admin_Aggregator_Keyが設定され、これはポータルシステムごとに異ならなくてはならない。特に、最上位2ビットは、各ポータルシステムにおいて異ならなくてはならない。下位の14ビットは、任意の値とすることができ、各ポータルシステムにおいて同じである必要がなく、ゼロのデフォルト値を有する。
管理者又はシステムポリシーによって割り当てられる。
【0170】
DRF_Home_Conversation_GatewayList_Digest:近隣ポータルシステムとの交換のためにこのDR機能部において設定されるaDrniConvAdminGateway[]のダイジェスト。この変数は、DRCPDUによって参照される。
値:MD5ダイジェスト
【0171】
DRF_Home_Conversation_PortList_Digest:近隣ポータルシステムとの交換のためにこのDR機能部において設定されるaAggConversationAdminPort[]のダイジェスト。DRCPDUにおいて送信される。
値:MD5ダイジェスト
【0172】
DRF_Home_Gateway_Algorithm:このDR機能部によって、フレームをゲートウェイカンバセーションIDに割り当てるのに用いられるゲートウェイアルゴリズム。常にaDrniGatewayAlgorithmに等しくセットされる。DRCPDUにおいて送信される。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0173】
DRF_Home_Port_Algorithm:このDR機能部によって、フレームをポートカンバセーションIDに割り当てるのに用いられるポートアルゴリズム。常に、関連付けられたアグリゲータのaAggPortAlgorithmに等しくセットされる。DRCPDUにおいて送信される。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0174】
DRF_Home_Oper_Aggregator_Key:このポータルシステムのアグリゲータに関連付けられた動作アグリゲータキー値。その値は、updateKey関数によって計算される。DRCPDUにおいて送信される。
値:整数
【0175】
DRF_Home_Oper_Partner_Aggregator_Key:このポータルシステムのアグリゲータLAG IDに関連付けられた動作パートナーアグリゲータキー。DRCPDUにおいて送信される。
値:整数
【0176】
DRF_Home_State:このDR機能部の動作状態。DRCPDUにおいて送信される。
値:このポータルシステムのゲートウェイの動作状態(TRUEは動作中を示す)、及びこのポータルシステム内の動作アグリゲーションポートのポートIDのリスト(おそらく空)を示すブールフラグ。
【0177】
DRF_Neighbor_Admin_Conversation_GatewayList_Digest:近隣の情報が未知であるときに、管理者又はシステムポリシーによって使用のために割り当てられる、近隣ポータルシステムのアルゴリズムの値。そのデフォルト値は、aDrniConvAdminGateway[]から計算されるMD5ダイジェストである。
値:MD5ダイジェスト
【0178】
DRF_Neighbor_Admin_Conversation_PortList_Digest:近隣の情報が未知であるときに、管理者又はシステムポリシーによって使用のために割り当てられる、近隣ポータルシステムのアルゴリズムの値。そのデフォルト値は、aAggConversationAdminPort[]から計算されるMD5ダイジェストである。
値:MD5ダイジェスト
【0179】
DRF_Neighbor_Admin_Gateway_Algorithm:近隣の情報が未知であるときに、管理者又はシステムポリシーによって使用のために割り当てられる、近隣システムのゲートウェイアルゴリズムの値。そのデフォルト値は、aDrniGatewayAlgorithmに等しくセットされる。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0180】
DRF_Neighbor_Admin_DRCP_State:パートナー情報が未知であるか又は満了したとき、管理者又はシステムポリシーによって使用のために割り当てられる、近隣ポータルのDRCP状態パラメータのデフォルト値。1つの実施形態において説明されるように、この値は以下の変数組からなる:
・HomeGateway
・NeighborGateway
・OtherGateway
・IPPActivity
・Timeout
・GatewaySync
・PortSync
・Expired
値:8ビット
【0181】
DRF_Neighbor_Admin_Port_Algorithm:近隣の情報が未知であるときに、管理者又はシステムポリシーによって使用のために割り当てられる、近隣システムのポートアルゴリズムの値。そのデフォルト値は、aAggPortAlgorithmに等しくセットされる。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0182】
DRF_Portal_System_Number:ポータルにおけるこのポータルシステムのための固有の識別子。
値:1つの実施形態では範囲[1...3]内の整数。
aDrniPortalSystemNumberからコピーされる。DRCPDUにおいて送信される。
【0183】
PSI(ポータル状態分離):この変数は、ポータルシステムが同じポータル内の他のポータルシステムから分離されているとき、updateDRFHomeState関数によってTRUEにセットされる。
値:ブール
【0184】
IPPごとの変数
以下の論考は、本発明の1つの実施形態による、IPPごとの多岐にわたる変数に焦点を当てる。
【0185】
Ipp_Gateway_Conversation_Direction:いずれのゲートウェイカンバセーションIDがこのIPPを通じて到達可能であるゲートウェイを通過するかの動作リスト。DRCPの動作によってセットされる。
値:ゲートウェイカンバセーションIDによってインデックス付けされたブールフラグのベクトル;TRUE=このIPPを通じて到達可能な、あるゲートウェイがこのゲートウェイカンバセーションIDについて有効にされている。
【0186】
ゲートウェイカンバセーションIDごとに、a)変数Drni_Gateway_Conversation及びDrni_Portal_System_State[]が、このゲートウェイカンバセーションIDのためのターゲットポータルシステムがこのIPPの後ろに存在することを示し、かつ、b)Drni_Gateway_Conversation及びIpp_Other_Gateway_Conversationが、いずれのポータルシステムがこのゲートウェイカンバセーションIDを得るべきかに関して合意している場合に限り、値はTRUEである。Ipp_Gateway_Conversation_DirectionはFALSEに初期化され、その寄与する変数のうちのいずれかが変化する度に再計算される。このIPPにおいて受信されるフレームについて、TRUEは、フレームがダウンフレームであり、最終的にアグリゲータに宛てられること(又は破棄)を意味し、FALSEは、フレームがアップフレームであり、最終的にゲートウェイに宛てられること(又は破棄)を意味する。このIPPにおける送信のために提案されるフレームについて、TRUEは、フレームが通過することができることを示し、FALSEは通過することができないことを示す。この変数は、ダウンフレームを制御するのには用いられない。
【0187】
Ipp_Port_Conversation_Passes:いずれのポートカンバセーションIDがこのIPPを通じて送信されることを許可されるかの動作リスト。
値:ポートカンバセーションIDによってインデックス付けされるブールフラグのベクトル。
【0188】
この変数は、ダウンフレームがこのIPPにおける送信のために提案されるときにのみ検査される。ポートカンバセーションIDごとに、a)変数Drni_Port_Conversation及びDrni_Portal_System_State[]が、このポートカンバセーションIDのためのターゲットポータルシステムがこのIPPの後ろに存在することを示し、かつ、b)Drni_Port_Conversation及びIpp_Other_Port_Conversation_Portal_Systemが、いずれのポータルシステムがこのポートカンバセーションIDを得るべきかに関して合意している場合に限り、値はTRUEである(IDが通過する)。Ipp_Port_Conversation_PassesはFALSEに初期化され、その寄与する変数のうちのいずれかが変化する度に再計算される。
【0189】
ChangePortal:この変数は、このポータルシステムにおける任意のIPPにおけるDRF_Neighbor_Oper_DRCP_State.IppActivityが変化するときにTRUEにセットされる。
値:ブール
【0190】
CC_Time_Shared:このIPPにおける近隣ポータルシステム及びホームポータルシステムが、時間によるネットワーク/IPL共有を用いるように一貫して設定されていることを示すブール。
値:ブール
【0191】
CC_EncTag_Shared:このIPPにおける近隣ポータルシステム及びホームポータルシステムが、aDrniEncapsulationMethodによって選択されたネットワーク/IPL方法によって命令されるように、タグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有を用いるように一貫して設定されていることを示すブール。
値:ブール
【0192】
Differ_Conf_Portal:このIPPにおける直接近隣ポータルシステムによって用いられる設定されたポータルパラメータが予期されるものと異なることを示すブール。
値:ブール
【0193】
Differ_Portal:このIPPにおける受信したDRCPDUが異なるポータルに関連付けられていることを示すブール。
値:ブール
【0194】
DRF_Home_Conf_Neighbor_Portal_System_Number:このIPPにアタッチされた近隣ポータルシステムのポータルシステム番号のためのこのポータルシステムの設定値。常に、このIPPのポートIDの優先度コンポーネントの最下位2ビットに割り当てられた値に等しくセットされる。DRCPDUにおいて送信される。
値:範囲[1...3]内の整数。
【0195】
DRF_Home_Loop_Break_Link:このIPPにアタッチされたIPLがaDrniLoopBreakLinkにおいてループ中断リンクとして設定されていることを示すブール。DRCPDUにおいて送信される。
値:ブール
【0196】
DRF_Home_Network/IPL_IPLEncap_Digest:IPLにおける近隣ポータルシステムと交換するために、このIPPにおいて設定されるaDrniIPLEncapMapのダイジェスト。ネットワーク/IPL共有カプセル化TLVにおいて送信される。
値:MD5ダイジェスト
【0197】
DRF_Home_Network/IPL_NetEncap_Digest:共有ネットワークリンクにおける交換のために、このIPPにおいて設定されるaDrniNetEncapMapのダイジェスト。ネットワーク/IPL共有カプセル化TLVにおいて送信される。
値:MD5ダイジェスト
【0198】
DRF_Home_Network/IPL_Sharing_Method:このDR機能部によってこのIPPをネットワークデータと共有するのに用いられるネットワーク/IPL共有方法。常にaDrniEncapsulationMethodに等しくセットされる。aDrniEncapsulationMethodがデフォルトNULL値にセットされていないとき、ネットワーク/IPL共有方法TLVにおいて送信される。
値:4オクテット(この方法を定義する役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定の方法を識別する1オクテット)。
【0199】
DRF_Home_Oper_DRCP_State:このIPPにおいて報告されるようなこのポータルシステムのDRCP状態パラメータの動作値。これは、本明細書において上記で説明されたように以下の変数組からなる。
・HomeGateway
・NeighborGateway
・OtherGateway
・IPPActivity
・Timeout
・GatewaySync
・PortSync
・Expired
値:8ビット
【0200】
DRF_Neighbor_Admin_Aggregator_Key:1つの実施形態では、このIPPにおける近隣ポータルシステムの管理アグリゲータキー値として定義される。DRCPDUにおいて送信される。
値:整数
【0201】
DRF_Neighbor_Aggregator_Priority:このIPPにおける近隣のアグリゲータの最後に受信したシステム優先度。
値:整数
【0202】
DRF_Neighbor_AggregatorID:このIPPにおける近隣ポータルシステムのアグリゲータシステムIDの最後に受信したMACアドレスコンポーネント。
値:48ビット
【0203】
DRF_Neighbor_Aggregator_Priority:このIPPにおける近隣ポータルシステムのアグリゲータの最後に受信したシステム優先度。
値:整数
【0204】
DRF_Neighbor_Conversation_GatewayList_Digest:このIPPにおける近隣ポータルシステムの最後に受信したゲートウェイカンバセーションIDダイジェスト。
値:MD5ダイジェスト
【0205】
DRF_Neighbor_Conversation_PortList_Digest:このIPPにおける近隣ポータルシステムの最後に受信したポートカンバセーションIDダイジェスト。
値:MD5ダイジェスト
【0206】
DRF_Neighbor_Gateway_Algorithm:近隣ポータルシステムによって、このIPPにおいて受信されたゲートウェイカンバセーションIDにフレームを割り当てるのに用いられるアルゴリズムの値。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0207】
DRF_Neighbor_Loop_Break_Link:このIPPにアタッチされたIPLが、このIPPにおける近隣ポータルシステムによってループ中断リンクとして識別されることを示すブール。
値:ブール
【0208】
DRF_Neighbor_Network/IPL_IPLEncap_Digest:このIPPにおける近隣ポータルシステムのaDrniIPLEncapMapの最後に受信したダイジェスト。
値:MD5ダイジェスト
【0209】
DRF_Neighbor_Network/IPL_NetEncap_Digest:このIPPにおける近隣ポータルシステムの共有ネットワークリンクにおける交換のための、aDrniNetEncapMapの最後に受信したダイジェスト。
値:MD5ダイジェスト
【0210】
DRF_Neighbor_Network/IPL_Sharing_Method:このIPPにおける近隣ポータルシステムの使用される最後に受信したネットワーク/IPL共有方法。
値:4オクテット(この方法を定義する役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定の方法を識別する1オクテット)。
【0211】
DRF_Neighbor_Oper_Aggregator_Key:このIPPにおける近隣ポータルシステムの最後に受信した動作アグリゲータキー値。
値:整数
【0212】
DRF_Neighbor_Oper_Partner_Aggregator_Key:このIPPにおける近隣ポータルシステムの動作パートナーアグリゲータキー値。DRCPDUにおいて送信される。
値:整数
【0213】
DRF_Neighbor_Oper_DRCP_State:近隣のDRCP状態パラメータの現在の値のこのポータルシステムのビューの動作値。ホームDR機能部は、この変数を、DRCPDUにおいて近隣ポータルシステムから受信した値にセットする。この値は、本明細書において上記で説明されたように以下の変数組からなる:
・HomeGateway
・NeighborGateway
・OtherGateway
・IPPActivity
・Timeout
・GatewaySync
・PortSync
・Expired
値:8ビット
【0214】
DRF_Neighbor_Conf_Portal_System_Number:このIPPにおいて最後に受信されたこのポータルシステムのための近隣ポータルシステムの設定ポータルシステム番号値。
値:範囲[1...3]内の整数。
【0215】
DRF_Neighbor_Port_Algorithm:近隣ポータルシステムによって、このIPPにおいて受信されたポートカンバセーションIDにフレームを割り当てるのに用いられるアルゴリズムの値。
値:4オクテット(このアルゴリズムをセットする役割を果たす組織を識別する3オクテットのOUIと、それに続く、この特定のアルゴリズムを識別する2オクテット)。別の実施形態では、5オクテットが用いられる。
【0216】
DRF_Neighbor_Portal_System_Number:このIPPにおける近隣ポータルシステムの最後に受信した識別子。
値:範囲[1...3]内の整数。
【0217】
DRF_Neighbor_Portal_Topology:このIPPにおける近隣のポータルトポロジの最後に受信された識別子。
値:範囲[1...3]内の整数。
【0218】
DRF_Neighbor_State:このIPPにおける直接近隣ポータルシステムの動作状態。
値:近隣ポータルシステムのゲートウェイの動作状態を示すブールフラグ(TRUEは動作中を示す)、及びこのIPPにおける動作アグリゲーションポートのポートIDのリスト(おそらく空)。
【0219】
Drni_Neighbor_ONN
トポロジ状態フィールド内に保有される、このIPPにおける近隣ポータルシステムの最後に受信したONNフラグ。
値:整数
【0220】
DRF_Other_Neighbor_Admin_Aggregator_Key:このIPPに関連付けられた他の近隣ポータルシステムの管理アグリゲータキー値。DRCPDUにおいて送信される。
値:整数
【0221】
DRF_Other_Neighbor_Oper_Partner_Aggregator_Key:このIPPに関連付けられた他の近隣ポータルシステムの動作パートナーアグリゲータキー値。DRCPDUにおいて送信される。
値:整数
【0222】
DRF_Other_Neighbor_State:このIPPにおける他の近隣ポータルシステムの動作状態。
値:他の近隣ポータルシステムのゲートウェイの動作状態を示すブールフラグ(TRUEは動作中を示す)、及びこのIPPにおける動作アグリゲーションポートのポートIDのリスト(おそらく空)。
【0223】
Drni_Neighbor_Portal_Addr:このIPPにおける近隣ポータルシステムのポータルのシステムIDの最後に受信したMACアドレスコンポーネント。
値:48ビット
【0224】
Drni_Neighbor_Portal_Priority:このIPPにおける近隣ポータルシステムの最後に受信したシステム優先度。
値:整数
【0225】
Drni_Neighbor_PortalID:このIPPにおける近隣ポータルシステムのポータルシステムIDの最後に受信したMACアドレスコンポーネント。
値:48ビット
【0226】
Drni_Neighbor_State[]:このIPPにおける近隣ポータルシステムによって用いられるDrni_Portal_System_State[]の最後に受信した動作値。
値:ポータルシステムごとに、現在のポータルシステムのゲートウェイの動作状態を示すブールフラグ(TRUEは動作中を示す)、及びこのIPPにおける近隣ポータルシステムによって報告されるような、このポータルシステムにおける動作アグリゲーションポートのポートIDのリスト(おそらく空)。
【0227】
Enabled_Time_Shared:このIPPにおける近隣ポータルシステム及びホームポータルシステムが一貫して設定され、本明細書において指定される時間によるネットワーク/IPL共有方法が有効にされていることを示すブール。
値:ブール
【0228】
Enabled_EncTag_Shared:このIPPにおける近隣ポータルシステム及びホームポータルシステムが、aDrniEncapsulationMethodによって選択されるネットワーク/IPL方法によって命令されるように、タグによるネットワーク/IPL共有のタグマニピュレーション方法又はカプセル化によるネットワーク/IPL共有を用いるように一貫して設定されていることを示すブール。
値:ブール
【0229】
Ipp_Other_Gateway_Conversation:このIPPにおける直接の近隣によって報告されるような、いずれのポータルシステムのゲートウェイ(存在する場合)が各ゲートウェイカンバセーションIDを通すかを列挙する動作ベクトル。
値:ゲートウェイカンバセーションIDによってインデックス付けされる、ポータルシステム番号(ない場合、0)のシーケンス。初期化時、及び管理されたオブジェクトが変化するか又はGatewayConversationUpdateがFALSEであるときはいつでもaDrniConvAdminGateway[]及びDRF_Neighbor_State[]から計算される値。
【0230】
Ipp_Other_Port_Conversation_Portal_System:このIPPにおける直接の近隣によって報告されるような、いずれのポータルシステム(存在する場合)が各ポートカンバセーションIDを通すかを列挙する動作ベクトル。
値:ポートカンバセーションIDによってインデックス付けされる、ポータルシステム番号(ない場合、0)のシーケンス。初期化時、及び管理されたオブジェクトが変化するか又はPortConversationUpdateがFALSEであるときはいつでもaAggConversationAdminPort[]及びDRF_Neighbor_State[]から計算される値。
【0231】
IPP_port_enabled:リンクが確立され、IPPが動作可能であることを示す変数。
値:ブール
IPPが動作可能である場合、TRUE(MAC_Operational==TRUE)。
そうでない場合、FALSE。
注記−基礎を成すMACによってIPP_port_enabled変数の値を生成する手段は実施態様に依拠する。
【0232】
Ipp_Portal_System_State[]:このIPPからのDRCPDUにおいて最後に受信された、このIPPを通じて到達可能なポータルシステムの状態のリスト。この変数は、updatePortalSystem関数によって更新される。
値:ポータルシステムごとに、このIPPを通じて到達可能な現在のポータルシステムのゲートウェイの動作状態を示すブールフラグ(TRUEは動作中を示す)、及びそのポータルシステムにおける動作アグリゲーションポートのポートIDのリスト(おそらく空)。
このリストにおいて、直接隣接するポータルシステムの状態は、リストにおける第1の状態である。リストは、最大で2つのポータルシステムの状態を有することができる。
【0233】
NTTDRCPDU:TRUEは、このIPPにおいて送信されるべき新たなプロトコル情報が存在するか、又は近隣ポータルシステムが古い情報を再認識する必要があることを示す。そうでない場合、FALSEが用いられる。
【0234】
ONN
他の非近隣フラグ。この値はupdatePortalState関数によって更新され、3つのポータルシステムからなるポータルに対してのみ適用可能である。DRCPDUにおいて送信される。
値:ブール
TRUEは、他のポート情報TLVが、このポータルシステムの直接の近隣に関連付けられていないことを示す。FALSE(0として符号化される)は、他のポート情報TLVが、このポータルシステムにおける他のIPPにおける直接の近隣であることを示す。
【0235】
DRCP_current_while_timer
このタイマは、受信したプロトコル情報が満了したか否かを検出するのに用いられる。DRF_Home_Oper_DRCP_State.DRCP_Timeoutが短いタイムアウトに設定される場合、タイマは値Short_Timeout_Timeから開始する。そうでない場合、タイマは値Long_Timeout_Timeから開始する。
【0236】
DRCP_periodic_timer(time_value)
このタイマは、周期的送信を生成するのに用いられる。タイマは、周期的送信状態マシンにおいて指定されるような値Slow_Periodic_Time又はFast_Periodic_Timeを用いて始動される。
【0237】
定数
この従属節において指定される全てのタイマは、±250msの実施公差を有する。
【0238】
Drni_Fast_Periodic_Time
短いタイムアウトを用いた周期的送信間の秒数。
値:整数
1
【0239】
Drni_Slow_Periodic_Time
長いタイムアウトを用いた周期的送信間の秒数。
値:整数
30
【0240】
Drni_Short_Timeout_Time
短いタイムアウトを用いるときに受信DRCPDU情報を無効にする前の秒数(3×Fast_Periodic_Time)
値:整数
3
【0241】
Drni_Long_Timeout_Time
長いタイムアウトを用いるときに受信DRCPDU情報を無効にする前の秒数(3×Slow_Periodic_Time)。
値:整数
90
【0242】
状態マシンの動作をマネージメントするために用いられる変数
以下の論考は、本発明の1つの実施形態による、状態マシンの動作をマネージメントするために用いられる多岐にわたる変数に焦点を当てる。
BEGIN:この変数は、DRCPプロトコルエンティティの初期化(又は再初期化)を示す。システムが初期化又は再初期化されるときにTRUEにセットされ、(再)初期化が完了するとFALSEにセットされる。
値:ブール
【0243】
DRCP_Enabled
この変数は、関連付けられたIPPがDRCPを操作していることを示す。リンクがポイントツーポイントリンクでない場合、DRCP_Enabledの値はFALSEとなる。そうでない場合、DRCP_Enabledの値はTRUEとなる。
値:ブール
【0244】
GatewayConversationUpdate:この変数は、ゲートウェイごとのカンバセーションIDの配分が更新される必要があることを示す。
値:ブール
【0245】
IppGatewayAllUpdate:この変数は、このポータルシステムにおける全てのIPPについてのIppGatewayUpdate変数の論理ORである。
値:ブール
【0246】
IppGatewayUpdate:この変数は、関連付けられたIPPにおけるゲートウェイごとのカンバセーションIDの配分が更新される必要があることを示す。このポータルシステムにおいて、IPPあたり1つのIppGatewayUpdate変数が存在する。
値:ブール
【0247】
IppPortAllUpdate:この変数は、このポータルシステムにおける全てのIPPについてのIppPortUpdate変数の論理ORである。
値:ブール
【0248】
IppPortUpdate:この変数は、関連付けられたIPPにおけるポートごとのポートカンバセーションIDの配分が更新される必要があることを示す。このポータルシステムにおいて、IPPあたり1つのIppPortUpdate変数が存在する。
値:ブール
【0249】
PortConversationUpdate:この変数は、ポートごとのポートカンバセーションIDの配分が更新される必要があることを示す。
値:ブール
【0250】
関数
以下の論考は、本発明の1つの実施形態による多岐にわたる関数に焦点を当てる。
【0251】
extractGatewayConversationID
この関数は、DR機能部のポートのうちの1つにおけるISSプリミティブの受信時にDR機能部の中継エンティティにおいて呼び出されるサービスプリミティブのパラメータの値にゲートウェイアルゴリズムを適用することによって、ゲートウェイカンバセーションID値を抽出する。DR機能部の中継エンティティポートにおけるISSプリミティブ及びサービスプリミティブに対するパラメータ値の関係は、これらのポート及びポートの設定における関連付けられたサポート関数によって提供される。
注記−これらのサポート関数は、プロバイダブリッジにおける顧客ネットワークポート又はプロバイダネットワークポートにおいてサポートされるDRNIの場合、IEEE Std802.1Q−2011の6.9に指定されるEISSサポート関数と同程度に単純にすることもできるし(IEEE Std802.1Qにおける節15)、バックボーンエッジブリッジにおいて、それぞれプロバイダインスタンスポート又は顧客バックボーンポートにおいてサポートされるDRNIの場合、IEEE Std802.1Q−2011において6.10若しくは6.11に指定されるEISSサポート関数のように(IEEE Std802.1Qにおける節16)、若しくは、プロバイダエッジブリッジにおいて、それぞれ顧客エッジポート又はリモートアクセスポートによってサポートされるDRNIの場合、IEEE Std802.1Q−2013において15.4若しくは15.6に指定されるCタグ付きサービスインターフェースサポート関数又は遠隔顧客サービスインターフェースサポート関数のように、より複雑にすることもできる。
値:0〜4095の範囲の整数。
【0252】
extractPortConversationID
この関数は、他のDR機能部のポートのうちの1つにおけるISSプリミティブの受信時にアグリゲータにおいて呼び出されるサービスプリミティブのパラメータの値にポートアルゴリズムを適用することによって、ポートカンバセーションID値を抽出する。アグリゲータにおけるISSプリミティブ、及びDR機能部のポートにおける対応するサービスプリミティブに対するパラメータ値の関係は、アグリゲータ及びDR機能部並びにこれらの設定における関連付けられたサポート関数によって提供される。上記の注記をチェックされたい。
値:0〜4095の範囲の整数。
【0253】
InitializeDRNIGatewayConversation
この関数は、Drni_Portal_System_Gateway_Conversationを、ゲートウェイカンバセーションIDによってインデックス付けされたゼロのシーケンスになるようにセットする。
【0254】
InitializeDRNIPortConversation
この関数は、Drni_Portal_System_Port_Conversationを、ポートカンバセーションIDによってインデックス付けされたゼロのシーケンスになるようにセットする。
【0255】
InitializeIPPGatewayConversation
この関数は、Ipp_Gateway_Conversation_Directionを、ゲートウェイカンバセーションIDによってインデックス付けされたゼロのシーケンスになるようにセットする。
【0256】
InitializeIPPPortConversation
この関数は、Ipp_Port_Conversation_Passesを、ポートカンバセーションIDによってインデックス付けされたゼロのシーケンスになるようにセットする。
【0257】
recordDefaultDRCPDU
この関数は、管理者によって提供された、IPPにおける近隣ポータルシステムのためのデフォルトパラメータ値を、現在の近隣ポータルシステムの動作パラメータ値に以下のようにセットする:
・ DRF_Neighbor_Port_Algorithm=DRF_Neighbor_Admin_Port_Algorithm;
・ DRF_Neighbor_Gateway_Algorithm=DRF_Neighbor_Admin_Gateway_Algorithm;
・ DRF_Neighbor_Conversation_PortList_Digest
・ =DRF_Neighbor_Admin_Conversation_PortList_Digest;
・ DRF_Neighbor_Conversation_GatewayList_Digest
・ =DRF_Neighbor_Admin_Conversation_GatewayList_Digest;
・ DRF_Neighbor_Oper_DRCP_State=DRF_Neighbor_Admin_DRCP_State;
・ DRF_Neighbor_Aggregator_Priority=aAggPortPartnerAdminSystemPriority;
・ DRF_Neighbor_Aggregator_ID=aAggPortPartnerAdminSystemID;
・ Drni_Neighbor_Portal_Priority=aAggPortPartnerAdminSystemPriority;
・ Drni_Neighbor_Portal_Addr=aAggPortPartnerAdminSystemID;
・ DRF_Neighbor_Portal_System_Number
・ =DRF_Home_Conf_Neighbor_Portal_System_Number;
・ DRF_Neighbor_Portal_Topology=Drni_Portal_Topology;
・ DRF_Neighbor_Loop_Break_Link=DRF_Home_Loop_Break_Link、及び;
・ DRF_Neighbor_Conf_Portal_System_Number=DRF_Portal_System_Number。
【0258】
加えて、IPPにおいて近隣ポータルシステムに対し:
・DRF_Neighbor_StateがNULLにセットされ(近隣ポータルシステムのゲートウェイのためのブールフラグはFALSEにセットされ、このIPPにおける近隣ポータルシステムの動作アグリゲーションポートのリストが空にされる)、aDrniPortalTopologyが3つのポータルシステムを含むように設定される場合、DRF_Other_Neighbor_StateもNULLにセットされる(他の近隣ポータルシステムのゲートウェイのためのブールフラグがFALSEにセットされ、このIPPにおける他の近隣ポータルシステムの動作アグリゲーションポートのリストが空にされる)。このIPPにおけるいかなるポータルシステムにもポータルシステム状態情報が利用可能でない;
・このIPPにおけるDRF_Neighbor_Admin_Aggregator_Keyはゼロにセットされる;
・このIPPにおけるDRF_Other_Neighbor_Admin_Aggregator_Keyはゼロにセットされる;
・このIPPにおけるDRF_Neighbor_Oper_Partner_Aggregator_Keyはゼロにセットされる;
・このIPPにおけるDRF_Other_Neighbor_Oper_Partner_Aggregator_Keyはゼロにセットされる;かつ
・変数ChangePortalはTRUEにセットされる。
【0259】
最終的に、CC_Time_Shared及びCC_EncTag_SharedをFALSEにセットする。
【0260】
recordNeighborState
この関数は、IPPにおいて受信されるDRCPDUにおいて保有されるDrni_Portal_System_State[]及びDRF_Home_Oper_DRCP_Stateのパラメータ値を、このIPPにそれぞれ関連付けられたDrni_Neighbor_State[]及びDRF_Neighbor_Oper_DRCP_Stateの現在のパラメータ値として記録し、DRF_Neighbor_Oper_DRCP_State.IPP_ActivityをTRUEにセットする。
【0261】
また、この関数は変数を以下のように記録する:
・IPPにおいて受信されるDRCPDUにおいて保有される、DRF_Home_Oper_DRCP_StateにおけるHome_Gateway及びホームポート情報TLVにおけるActive_Home_Portsのパラメータ値が、このIPPにおけるDRF_Neighbor_Stateのための現在の値として用いられ、このIPPにおけるこのポータルシステム状態情報を、DRF_Neighbor_Portal_System_Numberによって識別されるポータルシステムと関連付ける;
・IPPにおいて受信されるDRCPDUにおいて保有される、DRF_Home_Oper_DRCP_StateにおけるOther_Gateway及び他のポート情報TLVにおけるOther_Neighbor_Portsのパラメータ値が、このIPPにおけるDRF_Other_Neighbor_Stateのための現在の値として用いられ、このポータルシステム状態情報を、受信したDRCPDUにおける他のポート情報TLV内で保有されるDRF_Other_Neighbor_Admin_Aggregator_Keyの最上位2ビットに割り当てられた値によって識別されるポータルシステムと関連付ける。受信したDRCPDUにおいて他のポート情報TLVが保有されておらず、ポータルトポロジが3つのポータルシステムを有する場合、DRF_Other_Neighbor_StateがNULLにセットされ(Other_GatewayはFALSEにセットされ、このIPPにおける他の近隣ポータルシステムにおける動作アグリゲーションポートのリストが空にされる)、このIPPにおいて、ポータルシステム状態情報は、このIPPにおける離れた近隣ポータルシステムに利用可能でない;
・ DRF_Neighbor_Admin_Aggregator_Key=DRF_Home_Admin_Aggregator_Key;
・ DRF_Neighbor_Oper_Partner_Aggregator_Key=DRF_Home_Oper_Partner_Aggregator_Key;
・ DRF_Other_Neighbor_Admin_Aggregator_Key=DRF_Other_Neighbor_Admin_Aggregator_Key、及び;
・ DRF_Other_Neighbor_Oper_Partner_Aggregator_Key
N=DRF_Other_Neighbor_Oper_Partner_Aggregator_Key。
・ 受信DRCPDUが他のポート情報TLVを含まないとき、DRF_Other_Neighbor_Admin_Aggregator_Key及びDRF_Other_Neighbor_Oper_Partner_Aggregator_Keyの双方がNULLにセットされる。
【0262】
加えて、時間によるネットワーク/IPL共有がサポートされる場合、関数は、受信されるネットワーク/IPL共有方法TLVにおいて保有されるDRF_Home_Network/IPL_Sharing_Methodのパラメータ値を、DRF_Neighbor_Network/IPL_Sharing_Methodの現在のパラメータ値として記録し、これがシステムのDRF_Home_Network/IPL_Sharing_Methodと同じである場合、CC_Time_SharedをTRUEにセットし、そうでない場合、CC_Time_SharedをFALSEにセットする。
【0263】
更に、タグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有がサポートされる場合、関数は、IPPから受信されるネットワーク/IPL共有TLVにおいて保有される近隣ポータルシステムのネットワーク/IPL共有関連パラメータ値を、このIPPにおける直接近隣ポータルシステムのための現在の動作パラメータ値として以下のように記録する:
DRF_Neighbor_Network/IPL_Sharing_Method=受信されるネットワーク/IPL共有方法TLVにおいて保有されるDRF_Home_Network/IPL_Sharing_Method;
DRF_Neighbor_Network/IPL_IPLEncap_Digest=受信されるネットワーク/IPL共有カプセル化TLVにおいて保有されるDRF_Home_Network/IPL_IPLEncap_Digest;及び
DRF_Neighbor_Network/IPL_NetEncap_Digest=受信されるネットワーク/IPL共有カプセル化TLVにおいて保有されるDRF_Home_Network/IPL_NetEncap_Digest。
【0264】
次に、この関数は、近隣ポータルシステムの新たに更新された値を、このポータルシステムの期待値と比較し、
DRF_Neighbor_Network/IPL_Sharing_Method==DRF_Home_Network/IPL_Sharing_Method、及び、
DRF_Neighbor_Network/IPL_IPLEncap_Digest==DRF_Home_Network/IPL_IPLEncap_Digest、及び
DRF_Neighbor_Network/IPL_NetEncap_Digest==DRF_Home_Network/IPL_NetEncap_Digest
である場合、CC_EncTag_SharedをTRUEにセットする;
そうでない場合には、比較のうちの1つ又は複数が、値が異なることを示す場合、
CC_EncTag_SharedをFALSEにセットする。
【0265】
次に、この関数は、このポータルシステムのDrni_Portal_System_State[]によって報告されるようなポータルシステムごとのゲートウェイ動作状態を、Drni_Neighbor_State[]によって報告されるのと同じポータルシステムについてのゲートウェイ動作状態と比較し、これらのうちのいずれかが異なる場合、GatewayConversationUpdateをTRUEにセットし、DRF_Home_Oper_DRCP_State.Gateway_SyncをFALSEにセットする。そうでない場合、GatewayConversationUpdateは変更されないままであり、DRF_Home_Oper_DRCP_State.Gateway_SyncはTRUEにセットされる。
【0266】
また、この関数は、このポータルシステムのDrni_Portal_System_State[]によって報告されるようなポータルシステムごとの動作アグリゲーションポートのポートIDのリストを、Drni_Neighbor_State[]によって報告されるのと同じポータルシステムについての動作アグリゲーションポートのポートIDのリストと比較し、これらのうちのいずれかが異なる場合、PortConversationUpdateをTRUEにセットし、DRF_Home_Oper_DRCP_State.Port_SyncをFALSEにセットする。そうでない場合、PortConversationUpdateは変更されないままであり、DRF_Home_Oper_DRCP_State.Port_SyncはTRUEにセットされる。
【0267】
recordPortalConfValues
この関数は、IPPから受信されるDRCPDUにおいて保有される近隣ポータルシステムの設定されたパラメータ値を、このIPPにおける直接近隣ポータルシステムのための現在の動作パラメータ値として以下のように記録する:
DRF_Neighbor_Portal_System_Number=DRF_Portal_System_Number;
DRF_Neighbor_Portal_Topology=Drni_Portal_Topology;
DRF_Neighbor_Conf_Portal_System_Number=DRF_Home_Conf_Neighbor_Portal_System_Number;
DRF_Neighbor_Loop_Break_Link=DRF_Home_Loop_Break_Link;
DRF_Neighbor_Oper_Aggregator_Key=DRF_Home_Oper_Aggregator_Key;
DRF_Neighbor_Port_Algorithm=DRF_Home_Port_Algorithm;
DRF_Neighbor_Conversation_PortList_Digest=DRF_Home_Conversation_PortList_Digest;
DRF_Neighbor_Gateway_Algorithm=DRF_Home_Gateway_Algorithm;及び
DRF_Neighbor_Conversation_GatewayList_Digest=DRF_Home_Conversation_GatewayList_Digest
【0268】
次に、この関数は、近隣ポータルシステムの新たに更新された値を、このポータルシステムの期待値と比較し、
DRF_Neighbor_Portal_System_Number==DRF_Home_Conf_Neighbor_Portal_System_Number、かつ
DRF_Neighbor_Portal_Topology==Drni_Portal_Topology、かつ
DRF_Neighbor_Loop_Break_Link==DRF_Home_Loop_Break_Link、かつ
DRF_Neighbor_Conf_Portal_System_Number==DRF_Portal_System_Number、かつ
DRF_Neighbor_Oper_Aggregator_Key==DRF_Home_Oper_Aggregator_Key、かつ
DRF_Neighbor_Port_Algorithm==DRF_Home_Port_Algorithm、かつ
DRF_Neighbor_Conversation_PortList_Digest==DRF_Home_Conversation_PortList_Digest、かつ
DRF_Neighbor_Gateway_Algorithm==DRF_Home_Gateway_Algorithm、かつ
DRF_Neighbor_Conversation_GatewayList_Digest==DRF_Home_Conversation_GatewayList_Digest
である場合には、変数Differ_Conf_PortalはFALSEにセットされる;
そうでない場合には、比較のうちの1つ又は複数が、値が異なることを示す場合、
変数Differ_Conf_PortalはTRUEにセットされ、異なる値を有する変数の関連付けられた対がaDrniIPPDebugDiffePortalReasonにおいて利用可能になる。
【0269】
recordPortalValues
この関数は、IPPから受信されるDRCPDUにおいて保有される、Drni_Aggregator_Priority、Drni_Aggregator_ID、Drni_Portal_Priority及びDrni_PortalIDのためのパラメータ値を、このIPPにおける直接近隣ポータルシステムのための現在の動作パラメータ値として以下のように記録する:
DRF_Neighbor_Aggregator_Priority=Drni_Aggregator_Priority;
DRF_Neighbor_Aggregator_ID=Drni_Aggregator_ID;
Drni_Neighbor_Portal_Priority=Drni_Portal_Priority、及び;
Drni_Neighbor_Portal_Addr=Drni_Portal_Addr
【0270】
次に、この関数は、近隣ポータルシステムの新たに更新された値を、このポータルシステムの期待値と比較し、
DRF_Neighbor_Aggregator_Priority==Drni_Aggregator_Priorityかつ
DRF_Neighbor_Aggregator_ID==Drni_Aggregator_IDかつ
Drni_Neighbor_Portal_Priority==Drni_Portal_Priorityかつ
Drni_Neighbor_Portal_Addr==Drni_Portal_Addr
である場合には、変数Differ_PortalはFALSEにセットされる;
そうでない場合には、比較のうちの1つ又は複数が、値が異なることを示す場合、
変数Differ_PortalはTRUEにセットされ、異なる値を有する変数の関連付けられた組がaDrniIPPDebugDiffePortalReasonにおいて利用可能になる。
【0271】
reportToManagement
この関数は、誤設定されたDRCPDUの受信に起因するこのポータルにおけるポータルシステム設定誤りの潜在的な存在についてマネージメントシステムにアラートし、受信した誤設定されたDRCPDUからの矛盾する情報をマネージメントシステムに送信する。
【0272】
setDefaultPortalSystemParameters
この関数は、このポータルシステムの変数を、以下のように管理セット値にセットする。
・ Drni_Aggregator_Priority=aAggActorSystemPriority;
・ Drni_Aggregator_ID=aAggActorSystemID;
・ Drni_Portal_Priority=aDrniPortalPriority;
・ Drni_Portal_Addr=aDrniPortalAddr;
・ DRF_Portal_System_Number=aDrniPortalSystemNumber;
・ DRF_Home_Admin_Aggregator_Key=aAggActorAdminKey;
・ DRF_Home_Port_Algorithm=aAggPortAlgorithm;
・ DRF_Home_Gateway_Algorithm=aDrniGatewayAlgorithm;
・ DRF_Home_Conversation_PortList_Digest=aDrniConvAdminGateway[]におけるMD5ダイジェスト;
・ DRF_Home_Conversation_GatewayList_Digest=aAggConversationAdminPort[]におけるMD5ダイジェスト、及び;
・ DRF_Home_Oper_DRCP_State=DRF_Neighbor_Admin_DRCP_State。
【0273】
加えて、ポータル内の全てのゲートウェイがFALSEとして報告され、いずれのポータルシステムにおけるアグリゲーションポートも動作中として報告されない場合には、Drni_Portal_System_State[]をセットする。
【0274】
setGetwayConversation
この関数は、Drni_Gateway_Conversationを、aDrniConvAdminGateway[]及び現在のDrni_Portal_System_State[]から計算された値に、以下のようにセットする:
全てのインデックス付けされたゲートウェイカンバセーションIDについて、Drni_Portal_System_State[]変数のゲートウェイブールフラグによって提供されるような動作中のゲートウェイのみが含まれるとき、aDrniConvAdminGateway[]によって提供されるポータルシステム番号のリスト内の最も高い優先度のポータルシステム番号を選択することによって、ポータルシステム番号が識別される。
【0275】
setIPPGatewayConversation
この関数は、Ipp_Other_Gateway_Conversationを、aDrniConvAdminGateway[]及びDrni_Neighbor_State[]から計算された値に以下のようにセットする:
全てのインデックス付けされたゲートウェイカンバセーションIDについて、Drni_Neighbor_State[]変数のゲートウェイブールフラグによって提供されるような動作中のゲートウェイのみが含まれるとき、aDrniConvAdminGateway[]によって提供されるポータルシステム番号のリスト内の最も高い優先度のポータルシステム番号を選択することによって、ポータルシステム番号が識別される。
【0276】
setIPPGatewayUpdate
この関数は、このポータルシステムにおける全てのIPPにおいてIppGatewayUpdateをTRUEにセットする。
【0277】
setIPPPortConversation
この関数は、Ipp_Other_Port_Conversation_Portal_Systemを、aAggConversationAdminPort[]及びDrni_Neighbor_State[]から計算された値に、以下のようにセットする:
全てのインデックス付けされたポートカンバセーションIDについて、Drni_Neighbor_State[]変数の関連付けられたリストによって提供されるような動作アグリゲーションポートのみが含まれるとき、aAggConversationAdminPort[]によって提供されるポータルシステム番号のリスト内の最も高い優先度のポータルシステム番号を選択することによって、ポータルシステム番号が識別される。
【0278】
setIPPPortUpdate
この関数は、このポータルシステムにおける全てのIPPにおいてIppPortUpdateをTRUEにセットする。
【0279】
setPortConversation
この関数は、Drni_Port_Conversationを、aAggConversationAdminPort[]及び現在のDrni_Portal_System_State[]から計算された値に以下のようにセットする:
全てのインデックス付けされたポートカンバセーションIDについて、Drni_Portal_System_State[]変数の関連付けられたリストによって提供されるような動作アグリゲーションポートのみが含まれるとき、aAggConversationAdminPort[]によって提供されるポートIDのリスト内の最も高い優先度のポートID(6.3.4)の優先度コンポーネントの最下位2ビットを抽出することによって、ポータルシステム番号が識別される。
【0280】
updateDRFHomeState
この関数は、ローカルポートの動作状態に基づいて、DRF_Home_Stateを以下のように更新する:
ゲートウェイは、ローカルゲートウェイの動作状態を識別するのに用いられるメカニズムによってTRUE又はFALSEにセットされる(TRUEは動作可能であること及び接続性がネットワーク制御プロトコルの動作によってブロックされないことを示す);
動作アグリゲーションポートのリストは、アタッチされたアグリゲータが、Actor_Oper_Port_State.Distributing==TRUE(関連付けられたアグリゲーションポートが動作不可能である(port_enabled=FALSE)か、満了状態にあるか、又はLAG内にない場合を除外する条件)を有するものとして報告するアグリゲーションポートIDのみを含むことによって作成され、PSIは、このポータルシステムにおける全てのIPPにおいてDRF_Neighbor_Oper_DRCP_State.IPP_Activity==FALSEである場合、TRUEにセットされ、そうでない場合、PSIはFALSEにセットされる。
【0281】
加えて、PSI==TRUEかつゲートウェイ==FALSEである場合、このポータルシステムにおける全てのアグリゲーションポートにおいてActor_Oper_Port_State.SyncがFALSEにセットされる。
【0282】
この関数はまた、
ゲートウェイの動作状態又はDrni_Conversation_GatewayList[]の設定されたリストが変更された場合、GatewayConversationUpdateをTRUEにセットし、関連付けられたActor_Oper_Port_State.Distributing変数又はDrni_Conversation_PortList[]の設定されたリストにおける変更によって報告されるような、動作アグリゲーションポートのリストにおける何らかの変更があった場合、PortConversationUpdateをTRUEにセットし、そうでない場合;
GatewayConversationUpdate及びPortConversationUpdateは変更されないままである。
【0283】
updateIPPGatewayConversationDirection
この関数は、Ipp_Gateway_Conversation_Directionのための値を以下のように計算する:
ゲートウェイカンバセーションIDごとに、値は以下の場合に限りTRUEである:
a)変数Drni_Gateway_Conversation及びIpp_Portal_System_State[]が、このゲートウェイカンバセーションIDのためのターゲットポータルシステムがこのIPPの後ろにあることを示し、かつ、
b)Drni_Gateway_Conversation及びIpp_Other_Gateway_Conversationが、いずれのポータルシステムがこのゲートウェイカンバセーションIDを得るべきかに関して合意している。
【0284】
加えて、Drni_Gateway_Conversation及びIpp_Other_Gateway_ConversationがいずれかのゲートウェイカンバセーションIDについて合意していない場合、
この関数は、DRF_Home_Oper_DRCP_State.Gateway_SyncをFALSEにセットし、かつ;
NTTDRCPDUをTRUEにセットする。
そうでない場合:
DRF_Home_Oper_DRCP_State.Gateway_Sync及びNTTDRCPDUは変更されないままである。
Ipp_Gateway_Conversation_DirectionがFALSEに初期化され、その寄与する変数のいずれかが変化する度に再計算される。
【0285】
updateIPPPortConversationPasses
この関数はIpp_Port_Conversation_Passesの値を以下のように計算する:
ポートカンバセーションIDごとに、値は以下の場合にのみTRUEである(IDが通過する):
a)変数Drni_Port_Conversation及びIpp_Portal_System_State[]が、このポートカンバセーションIDのためのターゲットポータルシステムがこのIPPの後ろにあることを示し、かつ、
b)Drni_Port_Conversation及びIpp_Other_Port_Conversation_Portal_Systemが、いずれのポータルシステムがこのポートカンバセーションIDを得るべきかに関して合意している。
【0286】
加えて、Drni_Port_Conversation及びIpp_Other_Port_Conversation_Portal_SystemがいずれかのポートカンバセーションIDについて合意していない場合、
この関数は、DRF_Home_Oper_DRCP_State.Port_SyncをFALSEにセットし、かつ;
NTTDRCPDUをTRUEにセットする。
そうでない場合:
DRF_Home_Oper_DRCP_State.Port_Sync及びNTTDRCPDUは変更されないままである。
Ipp_Port_Conversation_PassesはFALSEに初期化され、その寄与する変数のいずれかが変化する度に再計算される。
【0287】
updateKey
この関数は、以下のように動作アグリゲータキー、DRF_Home_Oper_Aggregator_Keyを更新する:
enable_long_pdu_xmit==TRUEの場合:
DRF_Home_Oper_Aggregator_Keyが、その最上位2ビットを値01で置き換えることによって、DRF_Home_Admin_Aggregator_Keyの値にセットされる;そうでない場合、DRF_Home_Oper_Aggregator_Keyが、各IPPにおけるDRF_Home_Admin_Aggregator_Key、DRF_Neighbor_Admin_Aggregator_Key及びDRF_Other_Neighbor_Admin_Aggregator_Keyの値を含む組の非ゼロの最も低い数値にセットされる。
【0288】
updateNTT
この関数は、DRF_Home_Oper_DRCP_State.GatewaySync又はDRF_Home_Oper_DRCP_State.PortSync又はDRF_Neighbor_Oper_DRCP_State.GatewaySync又はDRF_Neighbor_Oper_DRCP_State.PortSyncのいずれかFALSEである場合に、NTTをTRUEにセットする。
【0289】
updatePortalState
この関数に関連付けられる全ての動作において、IPPにおけるDRF_Other_Neighbor_Stateによって提供される情報は、同じIPPにおけるDrni_Neighbor_ONNがFALSEである場合にのみ考慮される;
この関数は、Drni_Portal_System_State[]を以下のように更新する:ポータルシステム番号によってインデックス付けされるこのポータルシステムの情報DRF_Home_Stateは、Drni_Portal_System_State[]に含まれる。ポータル内の他のポータルシステムのそれぞれについて、他のポータルシステムの状態情報のいずれかがこのポータルシステム内の2つのIPPから利用可能である場合:
そのポータルシステムについて、ポータルシステム番号によってインデックス付けされた、近隣ポータルシステムとして他のポータルシステムを有するIPPにおけるDRF_Neighbor_Stateによって提供されるポータルシステム状態情報のみがDrni_Portal_System_State[]に含まれる。
【0290】
そうでない場合には、ポータルシステムの状態情報が、このポータルシステムにおける単一のIPPからのみ利用可能である場合:
関連付けられたポータルシステム番号によってインデックス付けされたそのポータルシステムの状態情報は、その情報がこのIPPにおけるDRF_Neighbor_Stateによって提供されるか又はDRF_Other_Neighbor_Stateによって提供されるかと無関係にDrni_Portal_System_State[]に含まれることになる。ポータルシステムのための情報がこのIPPにおけるDRF_Other_Neighbor_Stateからのみ利用可能である場合、ONNはこのIPPにおいてTRUEにセットされる。
【0291】
ポータルシステム状態情報がIPPのうちのいずれからも入手可能でないポータルトポロジに含まれる全てのポータルシステムが、自身の関連付けられたポータルシステム状態情報Drni_Portal_System_State[]をNULLにセットされている(ゲートウェイはFALSEにセットされ、ポータルシステムにおける動作アグリゲーションポートのリストが空にされる)。
【0292】
この関数は、このポータルシステムにおけるIPPごとのIpp_Portal_System_State[]も、以下のように更新する:
何らかの他のポータルシステムの状態情報が2つのIPPから入手可能である場合:
ホームポータルシステムがループ中断リンクとして設定されたIPLを一切有しない場合、ポータルシステム上の全てのIPPについて、そのIPP上のDRF_Neighbor_Stateによって提供されるポータルシステム状態情報のみが、関連付けられたポータルシステム番号によってインデックス付けされて、関連付けられたIpp_Portal_System_State[]に含まれ、そうでない場合;
関連付けられたポータルシステム番号によってインデックス付けされた、IPPにおけるDRF_Neighbor_Stateが、対応するIpp_Portal_System_State[]において第1の状態として含まれ、関連付けられたポータルシステム番号によってインデックス付けされた、このIPPにおける受信DRCPDUにおいて報告される別のポータルシステムに関連付けられた任意の他の追加状態は、同じIPPにおけるDrni_Neighbor_ONNがFALSEである場合にのみ、Ipp_Portal_System_State[]に第2の状態として含まれる。
[Drni_PortaL_System_State[]と同様に、ポータルシステム状態情報がIPPのうちのいずれからも入手可能でないポータルトポロジに含まれる全てのポータルシステムが、自身の関連付けられたポータルシステム状態情報Ipp_Portal_System_State[]をNULLにセットされている(ゲートウェイはFALSEにセットされ、ポータルシステムにおける動作アグリゲーションポートのリストが空にされる)。]
【0293】
updatePortalSystemGatwayConversation
この関数は、Drni_Portal_System_Gateway_Conversationを、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたゲートウェイカンバセーションIDエントリをFALSEにセットすることによってDrni_Gateway_Conversationから構築されたブールベクトルと、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたゲートウェイカンバセーションIDエントリをFALSEにセットすることによって全てのIPP Ipp_Other_Gateway_Conversationから構築されたブールベクトルとの間の論理AND演算の結果にセットする。
【0294】
updatePortalSystemPortConversation
この関数は、Drni_Portal_System_Port_Conversationを、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたポートカンバセーションIDエントリをFALSEにセットすることによってDrni_Port_Conversationから構築されたブールベクトルと、ポータル内の他のポータルシステムに関連付けられた全てのインデックス付けされたポートカンバセーションIDエントリをFALSEにセットすることによってIpp_Other_Port_Conversation_Portal_Systemから構築されたブールベクトルとの間の論理AND演算の結果にセットする。
【0295】
タイマ
以下の論考は、本発明の1つの実施形態に従って適用可能な多岐にわたるタイマに焦点を当てる。
【0296】
current_while_timer:このタイマは、受信したプロトコル情報が満了したか否かを検出するのに用いられる。Actor_Oper_State.LACP_TimeoutがShortTimeoutにセットされる場合、タイマは、値Short_Timeout_Timeから開始される。そうでない場合、タイマは値Long_Timeout_Timeから開始される。
【0297】
periodic_timer(time_value):このタイマは、周期的送信を生成するのに用いられる。このタイマは、周期的送信状態マシンにおいて指定されるような、値Slow_Periodic_Time又はFast_Periodic_Timeを用いて開始される。
【0298】
wait_while_timer:このタイマは、アグリゲーション変更を行う前にヒステリシスを提供し、関連付けられたリンクアグリゲーショングループに参加する全てのリンクがこれを行うことを可能にする。タイマは、値Aggregate_Wait_Timeを用いて開始される。
【0299】
メッセージ
1つの実施形態において、1つのメッセージのみが利用される:
IppM:M_UNITDATA.indication(DRCPDU):このメッセージは、DRCPDUの受信結果としてDRCP制御パーサによって生成される。
DRCPCtrlMuxN:M_UNITDATA.indication(DRCPDU)
このメッセージは、DRCPDUの受信結果としてDRCP制御パーサ/マルチプレクサによって生成される。
【0300】
2つのメッセージは、2つの異なる実施形態について同様のメッセージであることに留意されたい。
【0301】
状態マシン動作
全体状態マシンプロセスの動作に戻ると、
図7のフローチャートは、1つの実施形態において、本明細書において上記で説明した機能、変数及びメッセージに頼る1組の動作を規定する。プロセスは、DRCPDUの受信に応答して始動され得る。このDRCPDUは最初に受信ユニットに渡される(ブロック702)。近隣状態情報をラベル付けされた矢印の組は、新たな近隣情報を表す。この新たな近隣情報は、到来するDRCPDUに含まれるか、又はDRCPDU受信マシンによって各状態マシンに供給される管理デフォルト値によって供給される。ホーム状態情報をラベル付けされた矢印の組は、状態マシン間の更新されたホーム状態情報のフローを表す。DRCPDUの送信は、周期的マシンが、周期的DRCPDUを送信する必要性を判定した結果、又は近隣に通信する必要があるホームの状態情報に対する変化の結果のいずれかとして生じる。DRCPDUを送信する必要性は、NTTDRCPDUをアサートすることによって送信マシンにシグナリングされる。残りの矢印は、状態マシンが別の状態マシンにおいてイベントを生じさせることを可能にする状態マシン記述における共有変数を表す。
【0302】
受信マシンは、NTTDRCPDUを生成し、ポート変更動作、ゲートウェイカンバセーション更新及びポートカンバセーション更新を実行する。
【0303】
周期的マシン704は、近隣状態情報を受信し、ホーム状態情報を返す。周期的マシン(ブロック704)はNTTDRCPDUを生成する。
【0304】
ポータルシステムマシン(ブロック706)は、ホームポータルシステムのIPPにおいて受信されたローカル情報及びDRCPDUに基づいてポータルにおける全てのゲートウェイ及びアグリゲーションポートの動作ステータスを更新する役割を果たす。この状態マシンはポータルシステムごとにある。
【0305】
DRNIゲートウェイ及びアグリゲータマシン(708)は、このDR機能部のゲートウェイを通過することを許可されたゲートウェイカンバセーションIDと、このDR機能部のアグリゲータを通じて配分されることを許可されたポートカンバセーションIDとを設定する役割を果たす。これらの状態マシンはポータルシステムごとにある。
【0306】
DRNI IPPマシン(710)は、このDR機能部のIPPを通過することを許可されたゲートウェイカンバセーションID及びポートカンバセーションIDを設定する役割を果たす。
【0307】
送信マシン(712)は、他の状態マシンからの要求時及び周期的ベースの双方のDRCPDUの送信を扱う。
【0308】
DRCPDU受信マシン
受信マシンは、
図8に指定される関数を、本明細書において上記で論考したこの関数の関連パラメータで実装することができる。機能が有効にされ、かつrecordDefaultDRCPDU()が実行され、かつDRF_Neighbor_Oper_DRCP_State.IPP_ActivitiyがFALSEであるとき、プロセスが初期化され得る(ブロック802)。次に、満了状態(ブロック804)に入り、DRCPDUの受信時に、状態マシンはPORTAL_CHECK状態に入る(ブロック808)。recordPortalValues関数は、DRCPDUがこのポータルに関連付けられているか否かをチェックする。関連付けられていない場合、イベントがマネージメントシステムに報告され、DRCPDUの更なる処理は、このポータルの状態マシンのうちのいずれによっても行われない。recordPortalValuesが、受信DRCPDUがrecordPortalConfValues関数によってチェックされるCOMPATIBILITY_CHECK状態(ブロック809)に入ることを識別する場合。この関数は、このポータルに関連付けられた管理設定値を、受信した情報と比較し、これらが異なっている場合、システムはREPORT_TO_MANAGEMENT状態に入り(ブロック810)、誤設定されたDRCPDUがマネージメントシステムに報告される。受信マシンは、新たなDRCPDUが受信された(又はIPPが無効にされた)ときにREPORT_TO_MANAGEMENT状態を出る。
【0309】
受信DRCPDUがこのポータルの期待値に従って設定される場合、受信マシンはCURRENT状態に入る(ブロック812)。
【0310】
このため、実施形態は:DRCPDUを受信するステップと;受信DRCPDUがポータルに関連付けられているか否かをチェックするステップと;ポータルに関連付けられた設定値を、受信DRCPDUの値と比較するステップと;比較された値が異なる場合に報告を送信するステップとを含むことができる。
【0311】
1つの実施形態において、DRCPDUの受信時に、状態マシンはPORTAL_CHECK状態に入る。recordPortalValues関数は、DRCPDUがこのポータルに関連付けられているか否かをチェックする。関連付けられていない場合、状態マシンはREPORT_TO_MANAGEMENT状態に入り、受信DRCPDUがマネージメントシステムに報告される。REPORT_TO_MANAGEMENT状態において、システムは、新たなDRCPDUが受信されていない場合、PORTAL_CHECK状態に出るか、又はDRCP_current_while_timerが満了した場合、EXPIRED状態に出る。recordPortalValuesが、受信DRCPDUを、このポータルに関連付けられているものとして識別する場合、状態マシンはrecordPortalConfValues関数によってチェックされるCOMPATIBILITY_CHECK状態に入る。この関数は、このポータルに関連付けられた管理設定値を、受信した情報と比較し、これらが異なっている場合、システムはREPORT_TO_MANAGEMENT状態に入り、誤設定されたDRCPDUがマネージメントシステムに報告される。ポータルシステムが、短いタイムアウトの2倍よりも長い期間にわたって、管理設定期待値に合致しないDRCPDUを受信し続ける場合、状態マシンはDEFAULTED状態に遷移し、このIPPにおけるポータルシステムの現在の動作パラメータが、管理設定値で上書きされ、ポータルシステム更新がトリガされる。
【0312】
受信DRCPDUがこのポータルのための期待値に従って設定される場合、DRCPDU受信マシンはCURRENT状態に入る。
【0313】
recordNeighborState関数は、近隣のポータル状態動作変数内のDRCPDUに含まれる近隣のポータル状態情報を記録し、自身のホームポータル状態変数を更新する。それらが異なる場合、近隣に通知するトリガがセットされるのみでなく、ローカルポータルシステムマシン(PS−
図10を参照されたい)、DRNIゲートウェイ及びアグリゲータマシン(DGA−
図11を参照されたい)及びDRNI IPPマシン(IPP−
図12を参照されたい)における更新をトリガするローカルイベント変数がセットされる。
【0314】
recordPortalValues関数、recordPortalConfValues関数及びrecordNeighborState関数を実行するプロセスにおいて、本明細書に準拠する受信マシンは、受信DRCPDUにおけるバージョン番号、TLV_type又は確保済みフィールドを検証しない場合がある。これらのフィールドにおいて受信する値にかかわらず同じアクションが取られる。受信マシンは、Portal_Information_Lengthフィールド、Portal_Configuration_Information_Lengthフィールド、DRCP_State_Lengthフィールド又はTerminator_Lengthフィールドを検証することができる。これらの挙動は、未来のプロトコル強化に対する制約と合わせて、本明細書において上記で論考した。
【0315】
上記で表されたルールは、バージョン1のデバイスがプロトコルの未来の改訂に準拠することを可能にする。
【0316】
updateNTT関数は、未来のプロトコル送信が必要とされるか否かを判定するのに用いられる;NTTDRCPUは、ホームの動作ポータル状態変数の近隣のビューが最新でない場合、TRUEにセットされる。次に、current_whileタイマが開始される。タイマを開始するのに用いられる値は、アクターのタイムアウト動作値に依拠してShort_Timeout_Time又はLong_Timeout_Timeのいずれかである。
【0317】
current_whileタイマが満了する前にDRCPDUが受信されない場合、状態マシンはEXPIRED状態に遷移する。DRF_Neighbor_Oper_DRCP_State.IPP_ActivityはFALSEにセットされ、近隣のタイムアウト変数の現在の動作値は短いタイムアウトにセットされ、current_whileタイマはShort_Timeout_Timeの値で開始される。これは過渡状態であり;タイムアウト設定は、ホームポータルシステムが近隣との通信の再確立を試みてDRCPDUを迅速に送信することを可能にする。
【0318】
current_whileタイマが再び満了する前にDRCPDUが受信されない場合、状態マシンはDEFAULTED状態に遷移する。recordDefaultDRCPDU関数は、管理設定値を用いて近隣ポータルシステムの現在の動作パラメータを上書きし、ポータルシステム更新をトリガし、条件がマネージメントシステムに報告される。
【0319】
IPPが動作不可能になる場合、状態マシンはINITIALIZE状態に入る。DRF_Neighbor_Oper_DRCP_State.IPP_ActivityはFALSEにセットされ、recordDefaultDRCPDU関数は、パートナーパラメータの管理値が現在の動作値として用いられるようにする。これらのアクションは、PSマシンにポータルから近隣ポータルシステムを強制的に切り離させ、ゲートウェイ及びポートカンバセーションIDフィルタを再計算させる。
【0320】
受信マシンは、
図16に指定される関数を、関連付けられたパラメータで実施することもできる。
図16における受信マシンは、
図8と比較していくつかの異なるフロー経路を辿る。
図16における代替の受信マシンの項目及び関数は
図8に示すものに類似している。当業者であれば、示した受信マシンの原理及び構造に一貫した他の実施態様が可能であることを理解するであろう。
【0321】
図33は、本発明の一実施形態による、DRNIリンクアグリゲーショングループのノードにおける近隣と同期するための方法を示す。方法3300は、
図1BのノードK〜O及び
図1Cのネットワークデバイス132及び134等のDRNIの一部としてDRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施することができる。オプションのステップが、
図33に示すように点線のボックスとして表されることに留意されたい。
【0322】
参照符号3302において、ノードは、IPLを用いて近隣ノードに結合されたIPPにおいてDRCPを操作するために初期化される。ノード及び近隣ノードはポータル内に含まれ、1つの実施形態では、ポータルは追加の近隣ノードを含むことができる。ノードは、IPLを用いてIPPを介して近隣ノードに結合される。1つの実施形態では、初期化は、IPPにおける近隣ノードのためのデフォルトパラメータ値を、ポータルの管理者によって提供される近隣ノードの現在の動作パラメータとなるようにセットすることを含む。パラメータは、DRF_Neighbor_Port_Algorithm等の近隣ポートアルゴリズム(DRF_Neighbor_Admin_Port_Algorithmとなるようにセットされる)、DRF_Neighbor_Gateway_Algorithm等の近隣ポートゲートウェイアルゴリズム(DRF_Neighbor_Admin_Gateway_Algorithmとなるようにセットされる)、及びrecordDefaultDRCPDUの機能に関して本明細書において上記で検討された他のものを含む。1つの実施形態では、初期化は、DRF_Neigbhor_Oper_DRCP_State.IPP_ActivityをFALSEとなるようにセットすることを通じて、近隣ノードのIPPアクティビティを非アクティブとなるようにセットすることを更に含む。
【0323】
参照符号3304において、ノードは、DRCPがIPPにおいて有効にされていると判定する。チェックすることは、IPPが動作中のDRCPであることを示す変数(例えば、IPP_port_enabled)を判定することを含む。1つの実施形態では、判定することは、IPPのための2つの変数をチェックすることによって行われる。一方は、IPPが動作中のDRCPであることを(例えば、本明細書において上記で論考したDRCP_enabledにより)示す変数であり、他方は、IPLが確立され、IPPが動作可能であることを(例えば、本明細書において上記で論考したIPP_port_enabledにより)示す変数である。
【0324】
参照符号3306において、ノードは満了状態に入る。満了状態において、ノードは1つの実施形態において以下を実行する:ノードは、ノードのDRCP状態パラメータを満了にセットし(例えば、本明細書において上記で論考したDRF_Home_Oper_DRCP_State.Expiredを真にセットする)、また、近隣ノードのIPPアクティビティを、DRF_Neigbhor_Oper_DRCP_State.IPP_Activityを偽にセットすることを通じて非アクティブにセットする。ノードは、タイマを、DRCPDUが受信されない場合に満了するようにセットする。1つの実施形態では、タイマ設定は、DRF_Neighbor_Oper_DRCP_State.DRCP_Timeout=Short Timeoutをセットし、DRCP_current_while_timerを開始することにより実行される(短いタイムアウト)。
【0325】
タイマが満了すると、フローは参照符号3352に進み、ノードはデフォルト状態に進む。1つの実施形態では、デフォルト状態において、ノードはIPPにおける近隣ノードのためのデフォルトパラメータ値を、本明細書において上記で論考したrecordDefaultDRCPDU等の関数を通じてポータルの管理者によって提供される近隣ノードの現在の動作パラメータとなるようにセットする。また、デフォルト状態は、本明細書において上記で論考したreportToManagement等の関数を通じてステータスをマネージメントに報告することを含む。
【0326】
参照符号3307において、ノードはDRCPDUを受信する。DRCPDUは、
図5に示すPDU構造を含み、PDU構造は、表4に列挙されるTLV等のTLVを有する。PDU構造は、ホームポート情報TLV及びDRCP状態TLVを含む。1つの実施形態では、DRCPDUの受信は、DRCPCtrolMuxN:M_UNITDATA.indication(DRCPDU)等のDRCPDUの受信の結果としてDRCP制御パーサ/マルチプレクサによって生成されるメッセージにおいて示される。
【0327】
次に、参照符号3308において、ノードは、受信DRCPDUがポータルに関連付けられていると判定する。1つの実施形態では、判定は、受信DRCPDUがポータルに関連付けられているか否かを示す変数(例えば、本明細書において上記で論考したDiffer_Portal)をチェックすることを含む。1つの実施形態では、判定は、IPPにおける近隣ノードのための対応する現在の動作パラメータ値として受信DRCPDUにおいて保有されるポータルパラメータ値を記録する関数(例えば、recordPortalValues)を実行することを含む。1つの実施形態において、本明細書において上記でrecordPortalValuesの定義において論考されたようなポータルパラメータ値は、アグリゲータ優先度(例えば、Drni_Aggregator_Prioirty)、アグリゲータID(例えば、Drni_Aggregator_ID)、近隣ポータル優先度(Drni_Portal_Priority)及びポータルアドレス(例えば、Drni_Portal_Addr)を含む。
【0328】
受信DRCPDUがポータルに関連付けられていない場合、ノードはオプションで、本明細書において上記で論考したreportToManagement等の関数を通じてステータスをマネージメントに報告することができる。後に、ノードが別のDRCPDU受信する場合、フローは参照符号3308に戻って再び関連付けを判定する。同様に、ノードが参照符号3352においてデフォルト状態にあるとき、ノードはDRCPDUを受信し、フローは関連付けを判定するために参照符号3308に進む。
【0329】
受信DRCPDUがポータルに関連付けられていると判定した後、フローは参照符号3310に進み、ここでノードは、受信DRCPDUがノードと互換性があると判定する。判定は、ポータルに関連付けられた管理設定値がDRCPDUからの受信値と一貫していると判定することを含む。1つの実施形態では、チェックすることは、受信DRCPDUにおいて保有される近隣ノードの設定パラメータ値を、IPPにおける近隣ノードのための対応する現在の動作パラメータ値として記録する関数(例えば、recordPortalConfValues)を実行することを含む。recordPortalConfValue等の関数における設定パラメータ値は、recordPortalValue等のポータルパラメータ値と異なり、この差異は、recordPortalConfValues及びrecordPortalValuesの定義において本明細書において上記で論考されている。
【0330】
受信DRCPDUがノードと互換性がない場合、ノードはオプションで、本明細書において上記で論考したreportToManagement等の関数を通じてステータスをマネージメントに報告することができる。後に、ノードが別のDRCPDUを受信する場合、フローは参照符号3308に戻って、再び関連付けを判定する。reportToManagement等の関数を実行するとき、ノードはDRCPDUが受信されない場合に満了する別のタイマをセットし、このタイマを開始する。タイマが満了すると、フローは参照符号3306に戻る。
【0331】
受信DRCPDUがノードと互換性があると判定した後、ノードは、参照符号3312において、受信DRCPDUにおいて含有される近隣ノードの状態情報を近隣ノードの状態動作変数として記録する。1つの実施形態において、関数(例えば、recordNeighborState)は、受信DRCPDUにおいて保有されるポータルシステム状態等のパラメータ値(例えば、Drni_Portal_System_State)、及びホームノード動作DRCP状態(例えば、DRF_Home_Oper_DRCP_State)を、Drni_Neigbhor_State及びDRF_Neighbor_Oper_DRCP_State等の対応する近隣ノードの動作変数として記録する。
【0332】
オプションで、記録された近隣ノードの状態動作変数がノードの状態動作変数と異なるとき、参照符号3314において、ノードは近隣ノードに通知する1つ又は複数のトリガをセットする。1つの実施形態では、本明細書において上記で論考されたように、関数(例えば、updateNTT)を用いて、更なるプロトコル送信が必要とされるか否かが判定される。
【0333】
本明細書において論考される方法は、DRCPノードが近隣DRCPノードから受信したDRCPDUに埋め込まれた情報を処理するための効率的な方法を提供する。情報は段階的に処理され、近隣ノードの状態情報を記録する前に、受信DRCPDUがDRCPノードのポータルと関連付けられており、ノードと互換性があると判定される。加えて、ノードが待機状態でスタックされることを阻止するためのタイマが挿入される。
【0334】
DRCP周期的送信マシン
DRCP周期的送信マシンは、
図9に指定される関数を、本明細書において上記で論考されたその関連パラメータで実装することができる。
【0335】
DRCP周期的送信マシンは、ホームポータルシステム及び近隣ポータルシステムが、ポータルを維持するためにIPPにおいて周期的DRCPDUを交換する要望を確立し、これらの周期的送信がどのような頻度で行われるべきかを確立する。いずれかの参加者が望む場合、周期的送信が行われる。送信は、近隣ポータルシステムによって決定されるレートで行われる。このレートは、近隣ポータルシステムが受信情報をタイムアウトにする速度にリンクされる。
【0336】
状態マシンは4つの状態を有する。それらは以下の通りである:
NO_PERIODIC(ブロック902)。この状態にある間、周期的送信は無効にされ、stop periodic_timer関数が実行される。FAST_PERIODIC(ブロック904)。この状態において、周期的送信は、高速送信レートで有効にされる。この状態には、無条件遷移(UCT)に応答してNO_Periodic状態(ブロック902)から入る。Fast_Periodic状態は、周期的送信(ブロック910)及びslow_periodic状態(ブロック905)に遷移することができる。SLOW_PERIODIC状態906には、長いタイムアウトが判定されたときに、FAST_PERIODIC904から入ることができる。この状態において、周期的送信は低速の送信レートにおいて有効にされる。周期的タイマが満了した場合、状態はPERIODIC_TXに遷移する(ブロック910)。PERIODIC_TX。これは、periodic_timer満了時に入る一時的状態であり、これによりNTTをアサートし、次に近隣のDRCP_Timeoutセッティングに依拠してFAST_PERIODIC又はSLOW_PERIODICに出る。
【0337】
周期的送信が有効にされる場合、これらが行われるレートは、DRF_Neighbor_Oper_DRCP_State.Timeout変数の値によって判定される。この変数が短いタイムアウトにセットされる場合、値fast_periodic_timeを用いて周期的送信間の時間間隔が判定される。そうでない場合、slow_periodic_timeを用いて時間間隔を判定する。
【0338】
このため、実施形態は、送信が無効にされる非周期的状態において初期化するステップと、高速な周期的状態に遷移するステップと、高速な周期的時間のためのタイマを開始するステップと、それぞれ、長いタイムアウトに応答して、又は高速な周期的タイムアウトセッティングを有する近隣に応答して、低速な周期的状態又は周期的送信状態に遷移するステップと、近隣における短いタイムアウトセッティング又はタイマ満了に応答して、低速な周期的タイムアウトから周期的送信状態に遷移するステップと、それぞれ短いタイムアウト又は長いタイムアウトセッティングへの近隣のタイムアウトセッティング変更に応答して周期的送信状態から高速な周期的状態又は短い周期的状態のいずれかに遷移するステップと、を含むプロセスを提供する。
【0339】
DRCP周期的送信マシンはまた、
図17に指定される関数を、この関数の関連パラメータで実装することができる。
図17は、様々な項目(例えば、
図9におけるような、それぞれperiodic_timer及びNTTではなくDRCP_periodic_timer及びNTTDRCPDU)を含むが、他の点ではフローは同じである。
図17における代替的な送信マシンの項目及び関数は
図9に示すものに類似している。当業者であれば、示した送信マシンの原理及び構造に一貫した他の実施態様が可能であることを理解するであろう。
【0340】
ポータルシステムマシン
ポータルシステムマシンは、
図10に指定される関数を、本明細書において上記で論考されたその関連付けられたパラメータで実装することができる。このプロセスは、ポータルシステム初期化状態に初期化することができる(ブロック1002)。setDefaultPortalSystemParameters及びupdateKey関数が実行される。ChangePortal又はChangeDRFPortsが真である場合、プロセスはポータルシステム更新状態に遷移する(ブロック1004)。ポータルシステム更新状態において、ChangePortalは偽にセットされ、changeDRFPortsはFalseにセットされ、updateDRFHomeState、updatekeyが実行される。次の更新は、ChangePortal又はChangeDRFPortsが真に更新されるときにトリガされる。
【0341】
このため、実施形態は、デフォルトポータルシステムパラメータが生成され、キーが更新されるポータル初期化状態に初期化するステップと、ChangePortal又はChangeDRFPorts変数がブール真になるのに応答してポータルシステム更新状態に遷移するステップと、ポータルシステム更新状態において、ChangePortal変数を偽にセットし、changeDRFPorts変数を偽にセットするステップと、updateDRFHomeStateを実行するステップと、キーを更新するステップと、ChangePortal又はChangeDRFPorts変数が真であることを検出すると、ポータルシステム更新状態に再度入るステップと、を含むプロセスを提供する。
【0342】
初期化時に、ポータルシステムの変数は、これらの変数の管理セッティングによって設定されるような、このポータルのためのこれらの変数のデフォルト値にセットされる。特に、ポータルにおける全てのゲートウェイ、アグリゲーションポート及びIPPのデフォルト動作状態がFALSEにセットされる。加えて、これらのデフォルト値に基づいて、関連付けられたアグリゲータによって用いられる動作キーが、このポータルシステムに割り当てられる管理キー値になるように計算される。
【0343】
ポータルシステムのゲートウェイの動作状態、又は関連付けられたアグリゲータによって報告されるような、アタッチされたアグリゲーションポートのうちの任意のものの配分状態に対する任意のローカルな変更、又はRX状態マシンによって報告されるような近隣ポータルシステムの動作状態における任意の変更が、PORTAL_SYSTEM_UPDATE状態への遷移をトリガする。これによって、関数updateDRFHomeStateは変数を再評価し、ゲートウェイの動作状態及びポータルシステムのアグリゲータにおける全てのアグリゲーションポートに関する更新されたローカル情報に基づいて、ポータルシステムの独自の状態(DRF_Home_State)を提供する。ポータルシステムのゲートウェイの動作状態における任意の変更は、ポートの状態マシン及びIPPにおける状態遷移をトリガするのに用いられるGatewayConversationUpdateに反映される。同様に、ポータルシステムのアグリゲータポートに関連付けられるアグリゲーションポートの動作状態における任意の変更は、同じ状態マシンにおける状態遷移をトリガするのに用いられるPortConversationUpdateに反映される。最終的に、updateKey関数は、ポータル内の全てのアクティブなポータルシステムの管理キーの値を含む組の最も低い数の非ゼロ値を選択することによって、ポータルシステムのアグリゲータによって用いられる動作キーを更新する。
【0344】
状態マシンは、DR機能部のポートのうちのいずれかの動作状態が変更されるといつでも、PORTAL_SYSTEM_UPDATE状態に戻る。
【0345】
ポータルシステムマシンはまた、
図18に指定される関数を、この関数の関連パラメータで実装することができる。
図18は
図10と同様であるが、
図18ではシステムがUpdatePortalState関数を用いてポータル情報更新を実行する点が異なる。
図18における代替的なポータルシステムマシンの項目及び関数は、
図10のものと類似している。当業者であれば、示したポータルシステムマシンの原理及び構造に一貫した他の実施態様が可能であることを理解するであろう。
【0346】
図34は、本発明の一実施形態による分散レジリエントネットワーク相互接続(DRNI)におけるノードの動作状態を更新する方法を示す。方法3400は、
図1BのノードK〜O及び
図1Cのネットワークデバイス132及び134等のDRNIの一部としてDRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施することができる。オプションのステップが、
図34に示すように点線のボックスとして表されることに留意されたい。
【0347】
参照符号3402において、ノードはリンクアグリゲーションのために初期化する。初期化は、管理セッティングによって設定されるような、自身が属するポータルのノードのセッティング変数を含む。1つの実施形態において、初期化は、関数(例えば、
図10におけるsetDefaultPortalSystemParameters)を実行することによって行われる。関数は、ノードの変数を、本明細書において上記で論考したsetDefaultPortalSystemParametersの定義において挙げられているような管理セット値にセットする。これには、ノードのアグリゲータのシステム優先度(例えば、Drni_Aggregator_Priority)、ノードのアグリゲータのシステム識別子(例えば、Drni_Aggregator_ID)、ポータルのシステム優先度(例えば、Drni_Portal_Priority)、ポータル内のノードの識別子(例えば、DRF_Portal_System_Number)、アグリゲータに関連付けられた管理アグリゲータキー値(例えば、DRF_Home_Admin_Aggregator_Key)、ノードのDR機能部によってフレームをポートカンバセーションIDに割り当てるのに用いられるポートアルゴリズム(例えば、DRF_Home_Port_Algorithm)、ノードのDR機能部によって、フレームをゲートウェイカンバセーションIDに割り当てるのに用いられるゲートウェイアルゴリズム(例えば、DRF_Home_Gateway_Algorithm)等が含まれる。
【0348】
参照符号3404において、ノードはポータルに関連付けられた動作状態が変更されたと判定する。動作状態の変更は、近隣ネットワークデバイスのIPPアクティビティの値のネットワークデバイスビューの動作値がアクティブであるときに真にセットされるブール変数によって示され得る。1つの実施形態では、本明細書において上記で論考されたChangePortal等の変数はそのようなブール変数である。動作状態の変更は、ノードのゲートウェイの動作状態が変化したときに真にセットされるブール変数によっても示され得る。動作状態の変更は、第1のポータルに関連付けられたノードのアグリゲーションポートの動作状態のうちの1つが変化したときに真にセットされるブール変数によっても示され得る。1つの実施形態では、本明細書において上記で論考されたChangeDRFPorts等の変数は、ゲートウェイ及びアグリゲーションポートの動作状態の双方の変化のためのそのようなブール変数である。
【0349】
参照符号3406において、ノードは、ポータルに関連付けられた動作状態変更がないことを示す1つ又は複数の変数をセットすることができる。1つの実施形態では、これは、ChangePortal及びChangeDRFPorts等の変数を、
図10に示すようにFALSEにセットすることによって実行される。セッティングによって、ノードが変化を検出することができるように、ChangePortal及びChangeDRFPortsの動作状態トリガ更新の更なる変更が可能になる。
【0350】
参照符号3408において、ノードは動作状態変更に応答して、リンクアグリゲーションのためのノードの動作状態の組を更新する。ここで、動作状態の組は、ノードのためのゲートウェイの動作状態を含む。1つの実施形態では、更新は、本明細書において上記で論考した、updateDRFHomeState等の関数を実行することを通じて行われる。1つの実施形態では、更新はまた、動作可能なアグリゲーションポート識別子(ID)のみを含めることによって動作アグリゲーションポートのリストを作成する(例えば、アタッチされたアグリゲータは、これらを、Actor_Oper_Port_State.Distributing==TRUE(関連付けられたアグリゲーションポートが非動作可能状態若しくは満了状態であるか、又はリンクアグリゲーショングループ内にない場合を除外する条件)を有するものとして報告する)。
【0351】
本方法は、DRCPノードが属するポータルの変化に基づいて、DRCPノードの動作状態を近隣DRCPノードと同期させる効率的な方法を提供する。
【0352】
DRNIゲートウェイ及びアグリゲータマシン
DRNIゲートウェイ及びアグリゲータマシンは、
図11に指定される関数を、本明細書において上記で論考したこの関数の関連パラメータで実装することができる。ポータルシステム上に2つのDRNIゲートウェイ及びアグリゲータマシンが存在する。それぞれがカンバセーションIDタイプに関連付けられる:ゲートウェイカンバセーションIDのためのものとポートカンバセーションIDのためのものが存在する。
図11Aは、DRNIゲートウェイ初期化状態において初期化するDRNIゲートウェイプロセスである(ブロック1102)。この状態において、InitializeDRNIGatewayConversation関数が実行され、GatewayCoversationUpdateがFALSEにセットされ、GatewayCoversationUpdateが生じると、プロセスはDRNIゲートウェイ更新状態に遷移する(ブロック1104)。DRNIゲートウェイ更新状態(ブロック1104)において、プロセスはGatewayConversationUpdateを偽にセットし、updatePortalState、setGatewayConversaion動作及びsetIPPGatewayUpdateが実行され、updatePortalSystemGatewayConversationが実行される。DRNIゲートウェイ更新は、GatewayConversationUpdateが発生する度にトリガされる。
【0353】
プロセスの実施形態は、DRNIゲートウェイ初期化状態に初期化するステップと、DRNIゲートウェイカンバセーション及びGatewayCoversationUpdateをFALSEに初期化するステップと、ゲートウェイカンバセーション更新変数が真であることを検出すると、DRNIゲートウェイ更新状態に遷移するステップと、updatePortalStateをセットするステップと、IPPゲートウェイ更新トリガをセットするステップと、ゲートウェイカンバセーション更新変数を偽にセットするステップと、ゲートウェイカンバセーションをセットするステップと、ポータルシステムゲートウェイカンバセーションを更新するステップと、ゲートウェイカンバセーション更新変数が真にセットされると、DRNIゲートウェイ更新状態に再度入るステップとを含む。
【0354】
図11Bは、DRNIポート更新プロセスである。このプロセスにおいて、DRNIポート更新プロセスはDRNIポート初期化状態において開始する(ブロック1112)。initializeDRNIPortConversation関数が実行され、PortCoversationUpdateがFALSEにセットされ、PortConversationUpdateの発生に応じてプロセスが継続する。これによって状態がDRNIPortUpdateに遷移する(ブロック1114)。DRNIポート更新状態において、プロセスは、PortConversationUpdateを偽にセットし、updatePortalState、setPortConversation、setIPPPortUpdate動作及びupdatePortalSystemPortConversation動作が実行される。PortConversationUpdateの値に対する変更があるとき、DRNIポート更新は、再度トリガされる。
【0355】
プロセスの実施形態は、DRNIポート初期化状態に初期化するステップと、DRNIポートカンバセーション及びPortCoversationUpdateをFALSEに初期化するステップと、ポートカンバセーション更新変数が真であることを検出すると、DRNIポート更新状態に遷移するステップと、IPPポート更新トリガをセットするステップと、ポートカンバセーション更新変数を偽にセットするステップと、ポートカンバセーションをセットするステップと、ポータルシステムポートカンバセーションを更新するステップと、ポートカンバセーション更新変数が真であることを検出するのに応答してDRNIポート更新状態に再度入るステップと、を含む。
【0356】
これらの状態マシンは、合意された優先度規則及びDRCPの動作に基づいて、このDR機能部のゲートウェイ及びアグリゲータを通過することが許可されたゲートウェイカンバセーションID及びポートカンバセーションIDを設定する役割を果たす。
【0357】
PS状態マシン(
図10)又はDRX状態マシン(
図8)からのトリガ時に、ゲートウェイの動作状態が変化したことを宣言し、状態マシンはDRNI_GATEWAY_UPDATE状態に入る。これによって、トリガパラメータ(GatewayConversationUpdate)がFALSEにリセットされる。次に、関数updatePortalStateが、更新されたDRF_Home_Stateを、ポータルシステムのIPPにおいて受信されるDRCPDUによって報告され、DRX状態マシン(
図8)によって記録されるような、他のポータルシステムにおけるポートの動作状態からの情報と組み合わせることによって、全てのポータルシステムの状態を提供する変数(Drni_Portal_System_State[])を更新し、ポータルシステムにおける全てのIPPにおけるIppGatewayUpdateをTRUEにセットして、IPP状態マシン(
図12)における更なる更新をトリガする。その後、setGetwayConversation関数が起動され、(ローカルゲートウェイの動作状態、及び近隣ポータルシステムの、これらの近隣ポータルシステムから受信された最も近時のDRCPDUによって保有されるこれらの近隣システム独自のゲートウェイの宣言された動作状態に基づいて)このポータルシステムによって知られている合意された選択優先度及びゲートウェイ動作状態に基づいて、各ゲートウェイカンバセーションIDを担当するポータルシステムが識別される。最終的に、ゲートウェイカンバセーションIDがインデックス付けされると、ポータルシステムのゲートウェイを通過することを許可されたゲートウェイカンバセーションIDに対するこのポータルシステムのビューと、このポータルシステムのゲートウェイを通過することを許可されたゲートウェイカンバセーションIDに対する全ての近隣のビューとの間の合意[これらのDRCPDUを通じて宣言され、このポータルシステムのDRX状態マシン(
図8)によって記録される]に基づいてブールベクトルが計算される。これによって、全てのポータルシステム間の合意に達しない限り、いずれのゲートウェイカンバセーションIDもこのポータルシステムのゲートウェイを通過することを許可されないことが確実になる。
【0358】
状態マシンは、全てのゲートウェイカンバセーションIDが破棄された状態で初期化され、トリガGatewayConversationUpdateがセットされるといつでもDRNI_GATEWAY_UPDATE状態に遷移する。
【0359】
ポートカンバセーションIDによりインデックス付けされたブールベクトルが、同様の状態マシン動作を通じてセットされ、唯一の違いは、優先度選択規則が、合意されたゲートウェイカンバセーションID及びゲートウェイアルゴリズムの代わりに合意されたポートカンバセーションID及びポートアルゴリズムに基づくことである。
【0360】
図35は、本発明の一実施形態による、分散レジリエントネットワーク相互接続(DRNI)におけるネットワークデバイスにおいてアグリゲータ又はゲートウェイのための1組のカンバセーションIDを設定するための方法を示す。方法3500は、
図1BのノードK〜O並びに
図1Cのネットワークデバイス132及び134等のDRNIの一部として、DRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施され得る。オプションのステップが、
図35に示すように点線のボックスとして表されることに留意されたい。
【0361】
参照符号3502において、ノードは1組のカンバセーションIDを初期化し、初期化は、この1組のカンバセーションIDに関連付けられたブールベクトルのエントリを、ゼロのシーケンスになるようにセットすることを含む。カンバセーションIDはゲートウェイカンバセーションID又はポートカンバセーションIDである。ブールベクトルは、ノードのゲートウェイ又はアグリゲータによる1組のカンバセーションIDの処理を示す値を含む。この値は初期化を通じてゼロ(処理なし)にセットされる。DRCPノードは、単一のゲートウェイ及び単一のアグリゲータを含むことに留意されたい。
【0362】
初期化は、本明細書において上記で論考したInitializeDRNIGatewayConversation及びInitializeDRNIPortConversation等の関数によって行われ得る。ブールベクトルは、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのDrni_Portal_System_Gateway_Conversation又はDrni_Portal_System_Port_Conversationであり得る。1つの実施形態では、カンバセーションIDのインジケータは、エントリのブール値である(例えば、真は、ゲートウェイを通過するか又はアグリゲータを通じて分配されることを意味する)。初期化は、全ての値をゼロにするので、通過させない。
【0363】
参照符号3504において、ノードは、1組のカンバセーションIDの配分が更新される必要があると判定する。1つの実施形態では、判定を下すことは、ブール変数(例えば、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのための本明細書において上記で論考したGatewayConversationUpdate及びPortConversationUpdate等の変数)をチェックすることを含む。
【0364】
参照符号3506において、ノードは、カンバセーションIDによってインデックス付けされた動作ベクトルの値をセットする。ここで、動作ベクトルは、ポータルのいずれのノードが1組のカンバセーションIDのそれぞれを処理するかを列挙する。1つの実施形態では、動作ベクトルは、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのDrni_Gateway_Converstaion及びDrni_Port_Conversationである。ゲートウェイカンバセーションIDについて、動作ベクトルは、ポータルのいずれのノードが各ゲートウェイカンバセーションIDを通すかを列挙する。ポートカンバセーションIDについて、動作ベクトルは、ポータルのいずれのノードが各ポートカンバセーションIDを通すかを列挙する。
【0365】
参照符号3508において、ノードは、カンバセーションIDによってインデックス付けされたブールベクトルの値をセットし、ここで、ブールベクトルは、ネットワークデバイスの単一のゲートウェイ又は単一のアグリゲータがカンバセーションIDのそれぞれに関連付けられているか否かを列挙する。動作ブールベクトルは、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのDrni_Portal_System_Gateway_Conversation又はDrni_Portal_System_Port_Conversationとすることができる。ゲートウェイカンバセーションIDについて、ブールベクトルにおける各エントリは、ゲートウェイカンバセーションIDがノードの単一のゲートウェイを通過することを許可されるか否かを示す。ポートカンバセーションIDについて、ブールベクトルにおける各エントリは、ポートカンバセーションIDがノードの単一のアグリゲータを通じて配分されることを許可されるか否かを示す。
【0366】
次に、オプションで参照符号3510において、ノードはポータルの全てのノードの動作状態を更新する。1つの実施形態において、更新は、本明細書において上記で論考したupdatePortalState等の関数によって実行される。
【0367】
また、オプションで参照符号3512において、ノードは、1組のカンバセーションIDの配分が更新される必要があることを示す変数をセットする。1つの実施形態において、変数は、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのsetIPPGatewayUpdate及びsetIPPPortupdate(本明細書において上記で論考された)である。
【0368】
このため、本発明の実施形態は、関連付けられたカンバセーションが、DRNIを含むリンクアグリゲーショングループにおいて適切に送信され得るようにカンバセーションIDを設定する効率的な方法を提供する。
【0369】
DRNI IPPマシン
DRNI IPPマシンは、
図12A及び
図12Bにおいて指定される関数を、本明細書において上記で論考されたこの関数の関連パラメータで実装することができる。
図12Aは、本発明の1つの実施形態による、IPPゲートウェイカンバセーションを更新する状態マシンを示す。プロセスは1202において開始し、ここでIPPゲートウェイが初期化される。この実施形態において、IPPゲートウェイ初期化は、2つの初期化関数を通じて達成される。IPPGatewayUpdate=FALSEを通じて、ネットワークデバイスは、IPPゲートウェイ更新トリガをFALSEにセットする。InitializeIPPPortConversation()関数を通じて、ネットワークデバイスはカンバセーション通過(conversation pass)(例えば、Ipp_Gateway_Conversation_Direction等)を、ここでもゲートウェイカンバセーションIDによってインデックス付けされる、ゼロのシーケンスになるようにセットする。
【0370】
初期化後、状態マシンはブロック1204に進み、ブロック1204において、IPPゲートウェイは更新される。送信は、変数変更によってトリガされる。変数IppGatewayUpdateは、IPPゲートウェイごとのカンバセーションIDの配分が更新される必要があることを示す。1つの実施形態において、IppGatewayUpdateはブール値であり、ブール値がTRUEになると、状態マシンはブロック1204に進む。ブロック1204において、関数setGetwayConversationを通じてゲートウェイカンバセーションをセットする。本明細書において上記で論考したように、関数は、DRNIゲートウェイカンバセーション値を、(aDrniConvAdminGateway[]等の変数を通じて)分散中継器のためのゲートウェイ選択優先度リストの現在の管理値及び(1つの実施形態ではDrni_Portal_System_State[]を読み取ることによって)現在のDRNIポートシステム状態から計算された値にセットする。また、ブロック1204において、ネットワークデバイスは、関数setIPPGatewayConversation()を通じてIPPゲートウェイカンバセーションをセットする。加えて、ネットワークデバイスは、関数updateIPPGatewayConversationDirection()を通じてIPPゲートウェイカンバセーション指示(IPP gateway conversation direction)を更新し、最終的に、ネットワークデバイスはIppGatewayUpdateをFALSEにリセットする。ブロック1204は、ゲートウェイカンバセーション更新が必要とされるときはいつでも繰り返される。
【0371】
このため、プロセスの実施形態は、IPPゲートウェイ初期化状態に初期化するステップと、IPPゲートウェイ更新トリガをFALSEに初期化するステップと、IPPゲートウェイカンバセーションを初期化するステップと、IPPゲートウェイ更新変数が真であることを検出すると、IPPゲートウェイ更新状態に遷移するステップと、ゲートウェイカンバセーションをセットするステップと、IPPゲートウェイカンバセーションをセットするステップと、IPPゲートウェイカンバセーション指示を更新するステップと、Ippゲートウェイ更新変数を偽にセットするステップと、ゲートウェイカンバセーション更新変数が真であることを検出するのに応答してIPPゲートウェイ更新状態に再度入るステップと、を含む。
【0372】
図12Bは、本発明の1つの実施形態による、IPPポートカンバセーションを更新する状態マシンを示す。IPPポートを更新するためのプロセスは、ゲートウェイカンバセーションを更新するためのプロセスと類似しており、このため、
図12Bにおけるプロセスは
図12Aと類似であるが、IPPポートカンバセーション更新のためにIPPポートのための関数及び変数が利用される。
【0373】
このプロセスの実施形態は、IPPポート初期化状態に初期化するステップと、IPPポート更新トリガをFALSEに初期化するステップと、IPPポートカンバセーションを初期化するステップと、IPPポート更新変数が真であることを検出すると、IPPポート更新状態に遷移するステップと、ポートカンバセーションをセットするステップと、IPPカンバセーションをセットするステップと、IPPポートカンバセーション通過を更新するステップと、IppPortUpdate変数を偽にセットするステップと、PortConversationUpdateが真であることを検出するのに応答してIPPポート更新状態に再度入るステップと、を含む。
【0374】
1つの実施形態において、これらの状態マシンは、合意された優先度規則及びDRCPの動作に基づいて、この近隣ポータルシステムのIPPを通過することが許可されたゲートウェイカンバセーションID及びポートカンバセーションIDを設定する役割を果たす。
【0375】
DRX状態マシン(
図8)からのトリガ時に、IppGatewayUpdateがTRUEにセットされたことを宣言し、状態マシンはIPP_GATEWAY_UPDATE状態に入る。これによって、setGetwayConversation関数が起動される。これによって、(ローカルゲートウェイの動作状態、及び近隣の、これらの近隣から受信された最も近時のDRCPDUによって保有されるこれらの近隣独自のゲートウェイの宣言された動作状態に基づいて)このポータルシステムによって知られている合意された選択優先度及びゲートウェイ動作状態に基づいて、各ゲートウェイカンバセーションIDを担当するポータルシステムが識別される。次に、setIPPGatewayConversation関数が、合意された選択優先度、及びこのIPPにおいて近隣ポータルシステムによって(近隣ポータルシステムのゲートウェイ動作状態、及びこのIPPにおいて近隣ポータルシステムから受信された最も近時のDRCPDUによって保有される、ポータル内の他のゲートウェイのビューにおけるこの近隣ポータルシステムの宣言された動作状態に基づいて)宣言されるようなゲートウェイ動作状態に基づいて、各ゲートウェイカンバセーションIDを担当するポータルシステムを識別する。その後、ゲートウェイカンバセーションIDがインデックス付けされ、ポータルシステムのIPPを通過することを許可されたゲートウェイカンバセーションIDに対するこのポータルシステムのビューと、同じIPPを通過することを許可されたゲートウェイカンバセーションIDに対するIPP近隣ポータルシステムのビューとの間の合意[これらのポータルシステムのDRCPDUを通じて宣言され、このポータルシステムのDRX状態マシン(
図8)によって記録される]に基づいてブールベクトルが計算される。これによって、このポータルシステムと近隣のポータルシステムとの間の合意に達しない限り、いずれのゲートウェイカンバセーションIDもこのIPPを通過することを許可されないことが確実になる。最終的に、IppGatewayUpdateはFALSEにリセットされる。
【0376】
状態マシンは、全てのゲートウェイカンバセーションIDが破棄された状態で初期化され、トリガGatewayConversationUpdateがセットされるといつでもIPP_GATEWAY_UPDATE状態に遷移する。
【0377】
ポートカンバセーションIDによりインデックス付けされたブールベクトルが、同様の状態マシン動作を通じてセットされ、唯一の違いは、優先度選択規則が、合意されたゲートウェイカンバセーションID及びゲートウェイアルゴリズムの代わりに合意されたポートカンバセーションID及びポートアルゴリズムに基づくことである。
【0378】
図36は、本発明の一実施形態による、分散レジリエントネットワーク相互接続(DRNI)におけるDRCPノードにおいてIPPのための1組のカンバセーションIDを設定するための方法を示す。方法3600は、
図1BのノードK〜O並びに
図1Cのネットワークデバイス132及び134等のDRNIの一部として、DRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施され得る。
【0379】
参照符号3602において、ノードは1組のカンバセーションIDを初期化し、初期化は、1組のカンバセーションIDに関連付けられたブールベクトルのエントリを、ゼロのシーケンスになるようにセットすることを含む。カンバセーションIDはゲートウェイカンバセーションID又はポートカンバセーションIDである。ブールベクトルは、ノードのIPPによる1組のカンバセーションIDの処理を示す値を含む。
【0380】
初期化は、本明細書において上記で論考したInitializeIPPGatewayConversation及びInitializeIPPPortConversation等の関数によって行われ得る。ブールベクトルは、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのIpp_Gateway_Conversation_Direction又はIpp_Port_Conversation_Passesであり得る。1つの実施形態では、カンバセーションIDの値は、エントリのブール値である。例えば、ゲートウェイカンバセーションIDのためのTRUEの値は、あるゲートウェイがこのIPPを通じて到達可能であることを示す。初期化は、全ての値をゼロにするので、通過させない。
【0381】
参照符号3604において、ノードは、1組のカンバセーションIDの配分が更新される必要があると判定する。1つの実施形態では、判定を下すことは、ブール変数をチェックすることを含む。1つの実施形態では、ブール変数は、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのIppGatewayUpdate及びIppPortUpdateである。別の実施形態では、ブール変数は、それぞれゲートウェイカンバセーションID及びポートカンバセーションIDのためのGatewayConversationUpdate及びPortConversationUpdateである。
【0382】
参照符号3606において、ノードは、カンバセーションIDによってインデックス付けされた第1の動作ベクトルの値をセットする。ここで、動作ベクトルは、ポータルのいずれのノードが、ノードによって割り当てられるようなカンバセーションIDのそれぞれを処理するかを列挙する。1つの実施形態では、ノードは、それぞれDrni_Gateway_Conversation及びDrni_Port_Conversation等の第1の動作ベクトルをセットするために、setGetwayConversation及びsetPortConversation等の関数を通じて値をセットする。ゲートウェイカンバセーションIDについて、Drni_Gateway_Conversationは、いずれのノードのゲートウェイ(存在する場合)が各ゲートウェイカンバセーションIDを通すかを列挙する。ポートカンバセーションIDについて、Drni_Port_Conversationは、いずれのノードが各ポートカンバセーションIDを通すかを列挙する。
【0383】
参照符号3608において、ノードは、カンバセーションIDによってインデックス付けされた第2の動作ベクトルの値をセットし、ここで、動作ベクトルは、ポータルのいずれのノードが、近隣ノードによって割り当てられるようなカンバセーションIDのそれぞれを処理するかを列挙する。1つの実施形態では、ノードは、それぞれIpp_Other_Gateway_Conversation及びIpp_Other_Port_Conversation_Portal_System等の第2の動作ベクトルをセットするために、setIPPGatewayConversation及びsetIPPPortConversation等の関数を通じて値をセットする。本明細書において上記で論考したように、ゲートウェイカンバセーションIDについて、Ipp_Other_Gateway_Conversationは、いずれのノード(すなわちポータルシステム)(存在する場合)が、このIPPにおいて近隣ノードによって割り当てられるような各ゲートウェイカンバセーションIDを通すかを列挙する。ポータルが3つ以上のノードを含むとき、近隣ノードは直接近隣ノードである。同様に、ポートカンバセーションIDについて、Ipp_Other_Port_Conversation_Portal_Systemは、いずれのノードがこのIPPにおいて直接近隣ノードによって割り当てられるような各ゲートウェイカンバセーションIDを通すかを列挙する。
【0384】
参照符号3610において、ノードは、カンバセーションIDによってインデックス付けされたブールベクトルの値をセットし、ここで、ブールベクトルは、ノードのIPPがカンバセーションIDのそれぞれに関連付けられているか否かを列挙する。1つの実施形態では、本明細書において上記で論考したように、ブールベクトルは、ゲートウェイカンバセーションIDについてIpp_Gateway_Conversation_Directionであり、ポートカンバセーションIDについてIpp_Port_Conversation_Passesである。
【0385】
このため、方法3500と同様に、ここで本発明の実施形態は、DRNIを含むリンクアグリゲーショングループにおいて関連付けられたカンバセーションが適切に送信され得るようにカンバセーションIDを設定する効果的な方法を提供する。
【0386】
送信マシン
送信マシン(図示せず)は、送信のためのDRCPDUを作成するとき、以下のフィールドを、本発明の1つの実施形態によるこのIPPのための対応する動作値で埋めることができる。
・アグリゲータID及び優先度
・ポータルID及び優先度
・ポータルシステム番号
・トポロジ状態
・動作アグリゲータキー
・ポートアルゴリズム
・ゲートウェイアルゴリズム
・ポートダイジェスト
・ゲートウェイダイジェスト
・DRCP状態
・ホームポータルシステム及びポータルを形成する能力が検証された任意の他のポータルシステムの、動作アグリゲーションポート、管理アグリゲータキー及び動作パートナーアグリゲータキー
【0387】
周期的マシンがNO_PERIODIC状態にあるとき、送信マシンは:
・DRCPDUを一切送信するべきではなく、かつ
・NTTDRCPDUの値をFALSEにセットするべきである。
【0388】
DRCP_Enabled変数がTRUEであり、かつNTTDRCPDU変数がTRUEであるとき、送信マシンは、任意のFast_Periodic_Time間隔において特定の数以下のLACPDUが送信され得るという制約の下で、適切にフォーマット設定されたDRCPDUが送信されることを確保する[すなわち、DRCPCtrlMuxN:M_UNITDATA.Request(DRCPDU)サービスプリミティブを発行する]ことができる。特定の数は、実施態様に依拠して変動することができる(例えば、10又は20)。この制限が強制されているときにNTTDRCPDUがTRUEにセットされる場合、制約がもはや強制されなくなるような時点まで送信が遅延され得る。送信マシンがDRCPDUを送信したとき、NTTDRCPDU変数はFALSEにセットされ得る。
【0389】
上記の制約に起因してDRCPDUの送信が遅延される場合、DRCPDUにおいて送信される情報は、NTTDRCPDUが最初にTRUEにセットされた時点ではなく、送信時点におけるIPPの動作値に対応する。換言すれば、DRCPDU送信モデルは、送信メッセージをキューに入れることと対照的に、送信機会が生じる時点で最新である状態情報の送信に基づく。
【0390】
DRCP_Enabled変数がFALSEであるとき、送信マシンはDRCPDUを一切送信しない場合があり、NTTDRCPDUの値をFALSEにセットすることができる。
【0391】
ネットワーク/IPL共有マシン
ネットワーク/IPL共有マシンは、
図30に指定される関数を、この関数の関連パラメータで実装することができる。サポートされるネットワーク/IPL共有方法のために、ポータルシステム内のIPPごとに1つのネットワーク/IPL共有マシンが存在する。このマシンは、ネットワーク/IPL共有方法、時間によるネットワーク/IPL共有、タグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有が実施されるときにのみ必要とされる。
【0392】
本明細書において以下で論考される
図31の方法3100に対応するネットワーク/IPL共有マシンは、同じポートにおいて受信されるDRCPDUが、近隣ポータルシステムによる同じネットワーク/IPL共有設定を報告する場合にのみ共有ネットワーク/IPLリンクにおいて送信されるフレームの送信及び操作を可能にし、これによって、結果として、複数のIPL及びネットワークリンクが同じ物理リンク又はリンクアグリゲーションを共有することになる。
【0393】
状態マシンは3つの状態を有する。これらは以下の通りである:
NO_MANIPULATED_FRAMES_SENT。この状態にある間、IPLは物理リンク又はアグリゲーションリンクによってのみサポートされ得る。
TIME_SHARED_Method。この状態にある間、本明細書において上記で指定された時間によるネットワーク/IPL共有方法が有効にされる。
MANIPULATED_FRAMES_SENT。この状態にある間、aDrniEncapsulationMethodによって選択されるネットワーク/IPL共有方法によって命令されるように、タグによるネットワーク/IPL共有のタグマニピュレーション方法又はカプセル化によるネットワーク/IPL共有が有効にされる。
【0394】
システムは、NO_MANIPULATED_FRAMES_SENTにおいて初期化され、IPLフレームが専用物理リンクにおいて送信される。ホームポータルシステムが、aDrniEncapsulationMethodにおける1の値によって示される、時間によるネットワーク/IPL共有動作モードのために設定されている場合、システムは、DRX状態マシン(DRX−
図8)がCC_Time_SharedをTRUE(このIPPにおける近隣ポータルシステムも時間によるネットワーク/IPL共有動作モードのために設定されていることを示す)にセットする場合にTIME_SHARED_Methodに遷移する。受信DRCPDUがCC_Time_SharedをFALSEにセットするまで、システムはTIME_SHARED_METHOD状態にとどまる。これは、NO_MANIPULATED_FRAMES_SENT状態への状態遷移をトリガし、IPLフレームが専用物理リンクにおいて送信される。
【0395】
同様に、ホームポータルシステムが、aDrniEncapsulationMethodにおける値によって示されるように、タグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有動作モードのために設定される場合、システムは、DRX状態マシン(DRX−
図8)がCC_EncTag_SharedをTRUE(このIPPにおける近隣ポータルシステムも、それぞれタグによるネットワーク/IPL共有又はカプセル化によるネットワーク/IPL共有動作モードのために設定されていることを示す)にセットする場合にMANIPULATED_FRAMES_SENTに遷移する。受信DRCPDUがCC_EncTag_SharedをFALSEにセットするまで、システムはMANIPULATED_FRAMES_SENT状態にとどまる。これは、NO_MANIPULATED_FRAMES_SENT状態への状態遷移をトリガし、IPLフレームが専用物理リンクにおいて送信される。
【0396】
図31は、本発明の一実施形態によるノードにおけるネットワーク/IPL共有のための方法を示す。方法3100は、
図1BのノードK〜O及び
図1Cのネットワークデバイス132及び134等のDRNIの一部としてDRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(ポータルのポータルシステム、例えば、ネットワークデバイスとも呼ばれる)において実施することができる。オプションのステップが、
図31に示すように点線のボックスとして表されることに留意されたい。
【0397】
参照符号3102において、DRCPノード(ローカルポータルシステム)は、正常動作状態にあり、IPLフレームは近隣DRCPノード(近隣ポータルシステム)に向けた専用物理リンク又はアグリゲーションリンクをまたがって送信される。参照符号3104において、ノードが近隣ノードと一貫して設定されているか否かが判定される。例えば、これは、少なくとも、近隣ノードからのネットワーク/IPL共有のために用いられるTLVにおいて保有されるパラメータ値、例えば、表6におけるフィールドDRF_Home_Network/IPL_sharing_Methodを記録する、recordNeighborState等のパラメータ記録関数を用いて実行され得る。次に、記録されるパラメータ値は、ノードによって用いられる現在の対応するパラメータ値と比較され得る。ネットワーク/IPL共有がノードにおいて実装される場合、及びパラメータ値がノードにおいて一貫して設定される場合、方法は参照符号3106に進み、ここでフレームはネットワーク/IPL共有を用いてノードから近隣ノードに送信される。
【0398】
オプションで、ノードは、参照符号3108において近隣ノードにおけるネットワーク/IPL共有の変更を検出するまで、一貫したネットワーク/IPL共有方法を用い続ける。例えば、CC_Time_Shared又はCC_Enctag_Sharedは、ホーム/近隣ノードが一貫した共有方法を用いているか否かを示す。2つのノードが一貫した共有方法を用いていない場合、フローは参照符号3102に戻り、ここで専用リンク又はアグリゲーションリンクが用いられる。
【0399】
本発明の実施形態は、ポート間リンクが他のポート間リンク又はネットワークリンクと物理リンクを共有することができるように、リンクアグリゲーショングループにおけるネットワーク及びポート間リンク共有をサポートする効率的な方法を提供する。
【0400】
DRCPステータスとLACPステータスとの間の協調:第1の1組の実施形態
図1B〜
図1Cに示すようなDRNIポータルシステムにおいて、システムが適切に機能するために、DRCPステータス及びLACPステータスは一貫しているべきである。
図1Cにおいて、一貫性は維持するのがより容易である。
図1Cを参照すると、ネットワークデバイス130とネットワークデバイス134との間のリンクは稼働中のリンク(リンク172)であり、ネットワークデバイス130とネットワークデバイス132との間のリンクはサービスのための保護リンク(リンク174)である。ネットワークデバイス134及び132間のIPLリンク(図示せず)は、自身のDRCPステータスを同期して保持する。ネットワークデバイス130(単一のノードを有するポータル142)の観点から、このIPLリンクは単一のシステム(ポータル144)に接続され、ネットワークデバイス132又は134の個々に関する情報は、ネットワークデバイス130に明示的に通信されない。
【0401】
ネットワークデバイス132及び134間のIPLリンクがダウンするとき、双方のネットワークデバイス134(現在稼働中のノード)及び132(現在保護ノード)が、トラフィックを送信するノードとして引き継ぐことを試みる。これらのネットワークデバイスのそれぞれの観点から、適切に動作していないのは近隣ノードである。ネットワークデバイス132は、保護ノードとして、リンク130〜132及び130〜134(それぞれリンク172及び174)の双方が複製トラフィックを搬送する状況を回避するために、自身のLAG識別子(ID)を更新する。ポータル142において、いずれのリンクがリンクアグリゲーショングループ(すなわち、稼働中のリンク)にとどまるべきかの判定は、ネットワークデバイス130による判断に基づき、これは正常リンクアグリゲーション動作を適用して選択を行う。特に、ネットワークデバイス130は、リンク130〜132を保留にして、リンク130〜134が依然としてリンクアグリゲーショングループ(すなわち、トラフィックを搬送する稼働中のリンク)内にあるか否かをチェックする。リンク130〜134がリンクアグリゲーショングループ内にない場合、リンク130〜132上のトラフィックを有効にする。ネットワークデバイス134及び132間のIPLリンクが再び立ち上がる場合、DRCPステータスは更新され、リンク130〜132はブロックされたままであり、LACPステータスは、プロセス全体を通じてリンク130〜134を稼働中のリンクに保持する(このため、トラフィック停止がない)。
【0402】
2つ以上のネットワークデバイスを含む各ポータルを有するDRCPシステムの場合、DRCP及びLACPステータス間の一貫性を維持するには更なる労力を要する。ポータルを同期させておくには、ポータルとノードとの間で更なる情報が交換される必要がある。特に、少なくとも2つの動作キー(動作中のパートナーポータルシステムごとに1つ)を導入して同期を協調させることができる。1つは動作パートナーアグリゲータキーである。動作パートナーアグリゲータキーは、ノードのアグリゲーションリンクアグリゲーショングループ識別子(LAG ID)に関連付けられる(ノードはパートナーノードである)。動作パートナーアグリゲータキーはDRCPDUにおいて送信される。1つの実施形態では、動作パートナーアグリゲータキーは、DRF_Home_Oper_Partner_Aggregator_Keyという名称の変数に記憶される。これは、本明細書において上記で論考したネットワークデバイス(ポータルのノード)のLAG IDに関連付けられた動作パートナーアグリゲータキーとして定義される。他方は、パートナーポータルにおけるパートナーポータルシステムのそれぞれのための動作キーである。動作近隣のポータルキーもノードのLAG IDに関連付けられる(ノードは近隣ノードである)。動作近隣(直接の近隣又は離れた近隣)のポータルキーがDRCPDUにおいて送信される。1つの実施形態では、動作近隣アグリゲータキーは、DRF_Neigbhor_Oper_Partner_Aggregator_Key(第3のポータルシステムの場合、DRF_Other_Neigbhor_Oper_Partner_Aggregator_Key)という名称の変数に記憶される。これは、関連付けられたポータル内ポート(IPP)における近隣ノード(第3のポータルシステムの場合、他の近隣)の最後に受信した動作パートナーアグリゲータキー値として定義される。
【0403】
アグリゲータキーが交換されるために、DRCPDUは、パートナー動作キーを保持する新たなフィールドを追加することができる。そのようなフィールドは、DRCPDU内の1つのノードのDRF_Home_Oper_Partner_Aggregator_Keyを保有するのに用いられる。IPPからの受信DRCPDUにおいて保有される近隣ノードの設定パラメータ値を記録する関数も更新され得る。本明細書において上記で論考したrecordNeighborState等のそのような関数は、受信した動作パートナーアグリゲータキーを、最後の既知の動作近隣アグリゲータキーになるようにセットする(例えば、DRF_Neigbhor_Oper_Partner_Aggregator_Keyを、受信したDRF_Home_Oper_Partner_Aggregator_Keyに等しくなるようにセットする)のに用いられ得る。ポータルが3つ以上のノードを含むとき、近隣ノードごとに1つ、複数のDRF_Neigbhor_Oper_Partner_Aggregator_Key又は潜在的にDRF_Other_Neigbhor_Oper_Partner_Aggregator_Keyが保存されることに留意されたい。
【0404】
図1Bを参照すると、リンクK−Mは稼働中のリンクであり、リンクL−Oは保護リンクである。ノードKとノードLとの間及びノードMとノードOとの間にそれぞれIPLリンクが存在し、これらのDRCPステータスの同期を保つ。
【0405】
ネットワークノードM及びO間のIPLリンクがダウンするとき、サービスのための双方のノードM(現在稼働中のノード)及びO(現在保護ノード)が、トラフィックを送信するノードとして引き継ぐことを試みる。これらのネットワークノードのそれぞれの観点から、動作していないのは近隣ノードである。保護ノードとしてのノードOは、リンクK−M及びL−Oの双方が複製トラフィックを搬送する状況を回避するために、自身のLAG識別子(ID)を更新する。ポータル112において、ノードK及びLは、リンクK−M及びL−Oにおけるトラフィックを破棄するか又は可能にするかに関する判断を独立して行う必要がある。1つの実施形態において、判断は、近隣ノード間でDRCPDUを交換することを通じて行われ得る。加えて、各ノードによって適用される選択ロジックは、交換された情報を考慮に入れるために変更され得る。ノードK及びLは、自身の動作パートナーアグリゲータキー及び自身の動作近隣ポータルキーを含む1組の値の中で、自身の動作パートナーアグリゲータキー値が最低値であるときにのみ、トラフィックがそれぞれ自身の関連付けられたリンクK−M及びL−Oを通過することを可能にするように更新され得る。選択が機能するために、保護ノードとしてのノードOは、自身のLAG IDを更新するときに、自身の動作キー値を更新することができる(1つの実施形態では、動作キー値は、本明細書において上記で論考したupdateKey関数等の更新関数を用いて更新される)。
【0406】
図19は、本発明の1つの実施形態による、DRCPノードが自身の近隣ノードとの通信を失ったときの動作を示す。本方法は、1つ又は複数の近隣ノードに結合された任意のDRCPノードにおいて実施され得る。1902において、DRCPノードは、自身がもはや近隣ノードと通信していないと判定する。通信の損失は、IPPが無効にされているか若しくは機能不良であること、又は近隣のノードが無効にされているか若しくは機能不良であることに起因し得る。1904において、DRCPノードは次に、自身が現在トラフィックを搬送していないノードであると判定する。DRCPノードは、サービスのためのポータルの稼働中のノード又は保護ノードとして動作し得ることに留意されたい。DRCPノードが稼働中のノードである場合、更なるアクションは必要とされず、アクティブなトラフィックを搬送し続ける。DRCPノードが保護ノードである場合、方法は1906に続き、1906において、DRCPノードは自身の動作キーを更新し、アクティブなトラフィックを搬送する。更新された動作キーは、各IPPにおいて、このノードのキー(例えば、このノードのAdmin_Aggregator_Key)、近隣ノードのキー(例えば、近隣ノードのAdmin_Aggregator_Key)、及び他の近隣ノードのキー(例えば、他の近隣ノードのAdmin_Aggregator_Key)の値を含む(ポータルが3つのポータルシステムを含むとき)組の非ゼロの最も低い数値にセットされる。更新された動作キーは自身のパートナーノードまで送信される。
【0407】
このため、実施形態によれば、複数のネットワークデバイスを含むポータル内のネットワークデバイス、すなわち、少なくとも1つの近隣ネットワークデバイスに結合されたネットワークデバイスによって実行される方法が提供される。本方法は、ネットワークデバイスが1つ又は複数の近隣ネットワークデバイスとの通信を失ったと判定することを含む。次に、ネットワークデバイスは、自身がリンクアグリゲーショングループを介してパートナーネットワークデバイスへのトラフィックを搬送していない、すなわち、自身が保護ノードとして動作していると判定する。ネットワークデバイスが保護ノードであると判定した後、このネットワークデバイスは自身の動作キーを更新し、リンクアグリゲーショングループを介してトラフィックを搬送し始める。
【0408】
図20は、本発明の1つの実施形態による、DRCPノードが複数のトラフィックストリームを受信したときの、自身の近隣ノードとの協調動作を示す。本方法は、1つ又は複数の近隣ノードに結合された任意のDRCPノードにおいて実施され得る。ステップ2202において、DRCPノードは、自身のパートナーからトラフィックを受信していると判定する。パートナーは、複数のノード又は単一のノードを含むポータルであり得る。DRCPノードは、ポータルの単一のノードであり得、この場合、DRCPノードは通常のリンクアグリゲーション動作を適用して、自身のパートナーから複数のトラフィックを受信した場合にいずれのトラフィックに通過を許可するか(例えば、リンク及び対応するアグリゲーションポートが依然としてリンクアグリゲーショングループ内にあると判定した後に現在の稼働中のリンクにおけるトラフィックの通過を許可する一方で、稼働中のリンクがもはやリンクアグリゲーショングループ内にないと判定した後、現在の保護リンクにおけるトラフィックを許可する)の選択を行う。他方で、2004において、DRCPノードは、自身が少なくとも1つの近隣ノードに結合されていると判定する。DRCPノードが少なくとも1つの近隣ノードに結合されているとき、DRCPノードは、受信したパートナー動作キーがポータルの全ての近隣ノードのパートナー動作キーのうちの最も低いものであるときにのみ自身のパートナーノードからのトラフィックの通過を許可する。1つの実施形態では、これは、ノードのDRF_Home_Oper_Partner_Aggregator_Keyがポータルの全てのDRF_Neighbor_Oper_Partner_Aggregator_Keysよりも低いと判定することである。
【0409】
このため、実施形態によれば、ネットワークデバイスによって実行される方法が提供される。本方法は、ネットワークデバイスが、リンクアグリゲーショングループを介してパートナーネットワークデバイスからトラフィックを受信すると判定することを含む。本方法は、ネットワークデバイスが少なくとも1つの近隣ネットワークデバイスに結合されると判定することを含む。ネットワークデバイス及び少なくとも1つの近隣ネットワークデバイスはポータルの一部である。本方法は、パートナーネットワークデバイスの動作キーを受信することと、パートナーネットワークデバイスの動作キーとポータルのネットワークデバイスの動作キーとの比較に基づいて、パートナーネットワークデバイスからのトラフィックを許可するか否かを判定することとを更に含む。これは、パートナーネットワークデバイスの動作キーがポータルのネットワークデバイスの動作キー未満であると判定することによって実行され得る。
【0410】
図27は、本発明の1つの実施形態による、通信障害条件時にDRCPノードが自身の近隣ノードと協調する動作を示す。方法2700は、
図1BのノードK〜O及び
図1Cのネットワークデバイス132及び134等のDRNIの一部としてDRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施することができる。ここで、ノードは1つ又は複数の近隣ノードに結合される。2702において、DRCPノードは、自身のパートナーからトラフィックを受信していると判定する。パートナーは、複数のノード又は単一のノードを含むポータルであり得る。DRCPノードは、ポータルの単一のノードであり得、この場合、DRCPノードは通常のリンクアグリゲーション動作を適用して、自身のパートナーから複数のトラフィックを受信した場合にいずれのトラフィックに通過を許可するか(例えば、リンク及び対応するアグリゲーションポートが依然としてリンクアグリゲーショングループ内にあると判定した後に現在の稼働中のリンクにおけるトラフィックの通過を許可する一方で、稼働中のリンクがもはやリンクアグリゲーショングループ内にないと判定した後、現在の保護リンクにおけるトラフィックを許可する)の選択を行う。他方で、2704において、DRCPノードは、自身が少なくとも1つの近隣ノードに結合されていると判定する。
【0411】
2706において、DRCPノードは、受信した動作キーが更新されているか否かを判定する。1つの実施形態では、更新は、失敗した/機能不良のIPLに起因する。DRCPノードは、受信したPartner_Oper_Keyの最上位2ビットが値2又は3に等しく、かつアグリゲーションポートのPartner_Oper_Port_Priorityの最下位2ビットが値2又は3に等しい場合に、パートナーシステムが失敗した/機能不良のIPLを被っていると判定することができる。
【0412】
2708において、DRCPノードは、自身が同じポータルの自身の近隣ノードから分離しているか否かを判定する。DRCPノードは、失敗した/機能不良のIPLに起因して、自身の近隣ノードから分離され得る。その場合、DRCPノードは、ローカル及びリモートの双方のポータルにおけるIPL通信が失敗したと判定する。
【0413】
2710において、DRCPノードは、自身がより高い優先度のポータルシステム内にあるか否かを判定し、より高い優先度のポータルシステム内にある場合、複製されたトラフィックを防ぐように動作する。1つの実施形態において、DRCPノードは、自身のパートナーポータルよりも自身が高い優先度のポータルシステム識別子を有するか否かを判定し(例えば、
図1Bにおいて、ポータル112はポータル114よりも高い優先度のポータルであり得、この場合、2710を実行する)、より高いポータルシステム識別子を有する場合、受信したトラフィックをドロップする。
【0414】
このため、実施形態によれば、ネットワークデバイスによって実行される方法が提供される。本方法は、ネットワークデバイスが、パートナーネットワークデバイスからリンクアグリゲーショングループを介してトラフィックを受信すると判定することを含む。本方法は、ネットワークデバイスが少なくとも1つの近隣ネットワークデバイスに結合されていると判定することを更に含み、ネットワークデバイス及び少なくとも1つの近隣ネットワークデバイスは、少なくとも1つの近隣ノードに結合されたポータルの一部である。本方法は、ネットワークデバイスが、受信した動作キーが更新されたか否かを判定することを更に含み、ネットワークデバイスは、自身が同じポータルの自身の近隣ノードから分離しているか否かを判定することを更に含む。本方法は、ネットワークデバイスが、自身のパートナーポータルよりも高いポータルシステム識別子を有する場合に、受信したトラフィックをドロップすることを更に含む。このため、本発明の実施形態は、近隣ノード及びパートナーノードのステータスを協調させ、複製されたトラフィックがDRCPを実装するリンクアグリゲーショングループ内のトラフィック受信を妨害しないようにする効率的な方法を提供する。
【0415】
DRCPステータスとLACPステータスとの間の協調:第2の1組の実施形態
DRCPステータスとLACPステータスとの間の協調のために、代替的な方法は、いくつかの既存の関数/変数を更新することであり、ローカルDRCPノード及びパートナーDRCPノードの双方が自身のIPLステータスを通信することができる場合に異なる形で動作する。
【0416】
図26Aは、本発明の1つの実施形態による、アグリゲーションポートのためのカンバセーションマスクTLVを示す。カンバセーションマスクTLVは、参照によりその全体が本明細書に援用される米国特許出願第14/135,556号の
図4Aに示されているものと同じであることに留意されたい。
図26Bは、本発明の1つの実施形態によるアグリゲーションポートのカンバセーションマスクTLV内のカンバセーションマスク状態フィールドを示している。
図26Bは、参照符号2611における1つのフィールド、PSI(ポータル状態分離)が確保済みビットに取って代わるという点で、米国特許出願第14/135,556号の
図4Bと異なっている。このフラグは、ポータルシステムにのみ適用可能であり、ポータルシステムがポータル()内の他のポータルシステムから分離しているか否かを示すのに用いられる。このポータルシステムにおける全てのIPPにおいてDRF_Neighbor_Oper_DRCP_State.IPP_Activity==FALSEの場合、TRUEである(1として符号化される)。そうでない場合、その値はFALSEである(0として符号化される)。
【0417】
加えて、米国特許出願第14/135,556号において開示されるReceivedConversationMaskTLV関数は、以下の追加の動作で更新され得る:この関数は、受信したポートカンバセーションマスクにおいて保有されるPSIのためのパラメータ値も、Partner_PSIのための現在の動作パラメータ値として記録する。
【0418】
更に、米国特許出願第14/135,556号に開示されているupddateConversationMaskTLV関数は、以下の追加動作を用いて更新され得る:この関数が、1と異なる値にセットされたDRF_Portal_System_Number値ととともにDRCPポータルシステムによって実装され、ポータルシステム識別子がパートナーのシステム識別子よりも数値的に低い値にセットされ、かつPSI==Partner_PSI==TRUEである場合、Comp_Oper_Conversation_MaskがNULLにセットされる。
【0419】
例えば、
図1Bを参照すると、K/L及びM/Oの双方のIPLが失敗するとき、全てのノードがトラフィックを送信する−アクティブノードK及びMはアクティブノードであるのでトラフィックを送信し、保護ノードL及びMも、アクティブノードから分離されており、このとき自身をアクティブであるとみなしているのでトラフィックを送信する。PSIがポータル112及び114の双方においてサポートされるとき、PSI及び受信したパートナーPSIはTRUEである。ポータル112がより高い優先度ポータルである(例えば、ポータル112のシステム識別子がポータル114のシステム識別子よりも低く、このため優先度がより高い)と仮定すると、ノードLは、自身のポータルシステム番号(2ノードポータルであるので2を仮定し、稼働中のノードKはポータルシステム番号1を有する)が最低でないと判定し、自身の動作カンバセーションマスクをヌルに更新し、トラフィックを送信も受信もしない。
【0420】
図28は、本発明の1つの実施形態による、通信障害時のDRCPノードの動作を示す。方法2800は、
図1BのノードK〜O及び
図1Cのネットワークデバイス132及び134等のDRNIの一部としてDRCPポータル(ローカルポータルと呼ばれる)のDRCPノード(例えば、ネットワークデバイス)において実施することができる。2802において、DRCPノードは、自身がもはや近隣ノードと通信していないと判定する。通信の損失は、IPPが無効にされているか若しくは機能不良であること、又は近隣のノードが無効にされているか若しくは機能不良であることに起因し得る。1つの実施形態において、通信の損失は、TRUEにセットされたPSIビットにおいて示され得る(これは本明細書において上記で論考したLACPDUにおけるTLVを通じて送信される)。
【0421】
2804において、ノードは、自身のパートナーノードがもはやパートナーの近隣ノードと通信していないと判定する。パートナーノードは、自身のPSIステータスを自身のLACPDUを介して送信することができ、PSIはパートナーのrecordReceivedConversationMaskTLV関数によって記録されることになる。パートナーノードがもはやパートナーの近隣ノードと通信していないとき、受信したPSIステータスはTRUEにセットされ、この場合、PSI==Partner_PSI==TRUEである。
【0422】
2806において、ノードは、自身のポータルが自身のパートナーノードよりも高い優先度のポータルであると判定する。1つの実施形態において、より高い優先度のポータルであるポータルは、ノード及びパートナーノードのポータルのシステム識別子に基づいて判定され得る。
【0423】
2808において、ノードは、自身がポータルの最も高い優先度のノードでないと判定する。ポータル内のノードの優先度は、ノードのポータルシステム番号によって判定され得る。1つの実施形態では(最大3ノードまでのポータルの場合)、この番号は、1〜3である。1つの実施形態において、ノードは、自身のポータルシステム番号が1でない場合、自身がポータルの最も高い優先度のノードでないと判定する。
【0424】
2810において、ノードはリンクアグリゲーショングループのトラフィックの送受信を停止する。1つの実施形態において、ノードは自身のComp_Oper_Conversation_Maskをセットする。これは、カンバセーションマスク更新関数(例えば、updateConversationMask)によって計算されるノードの動作カンバセーションマスクの動作値である。
【0425】
このため、実施形態によれば、複数のネットワークデバイスを含むポータル内のネットワークデバイス、すなわち、少なくとも1つの近隣ネットワークデバイスに結合されたネットワークデバイスによって実行される方法が提供される。本方法は、自身のパートナーノードがもはやパートナーの近隣ノードと通信していないと判定することを含む。次に、ネットワークデバイスは、自身のポータルが、自身のパートナーノードよりも高い優先度のポータルであると判定する。次に、ネットワークデバイスは、自身がポータルの最も高い優先度のノードではないと判定し、判定時にトラフィックの送受信を停止する。このため、本発明の実施形態は、近隣ノード及びパートナーノードのステータスを協調させ、複製されたトラフィックがDRCPを含むリンクアグリゲーショングループ内のトラフィック受信を妨害しないようにする効率的な方法を提供する。
【0426】
ネットワークデバイスの実施形態
図13は、本明細書において説明されるDRNI機能を実行するネットワークデバイスの1つの例示的な実施形態の図である。ネットワークデバイス1380は、本明細書において
図2に関して上記で説明したようなリンクアグリゲーションサブレイヤ1370を実施するルータ又は同様のデバイスとすることができ、本明細書において上記で説明したリンクアグリゲーション機能をサポートする。ネットワークデバイス1380は、ネットワークプロセッサ1300と、1組のポート1340と、ストレージデバイス1350と、同様のネットワークデバイスコンポーネントとを含むことができる。ネットワークデバイスのコンポーネントは例として提供され、限定するものではない。ネットワークデバイス1380は、任意の数又はタイプのプロセッサを用いて任意の設定で、アグリゲーション機能及びリンクアグリゲーションサブレイヤ1370を実装することができる。他の実施形態では、アグリゲーション機能及びリンクアグリゲーションサブレイヤ及び関連コンポーネントは、1組のネットワークプロセッサ、1組のラインカード及びこれらの構成要素である汎用プロセッサ及び特定用途向けプロセッサ、又はネットワークデバイスアーキテクチャにおいて実装される同様のものにわたって分散される。
【0427】
ポート1340は、イーサネット、光ファイバ、又は同様の媒体等の物理媒体を介して、ネットワークデバイスを任意の数の他のネットワークデバイスと接続することができる。任意の数の多岐にわたるポートがネットワークデバイス1380内に存在し得る。ポート1340の任意の組み合わせ又はサブセットを組織化し、リンクアグリゲーショングループ又はDRNIポータルとしてマネージメントすることができ、このとき、ネットワークデバイスはアグリゲーションシステムとして機能する。このため、ポートは、1つ又は複数のリンクアグリゲーショングループのためのアグリゲーションポートとすることができる。
【0428】
ネットワークデバイス1380内の1組のストレージデバイス1350は、ワーキングメモリ及び/又は永久ストレージとして用いるための任意のタイプのメモリデバイス、キャッシュ、レジスタ又は同様のストレージデバイスとすることができる。任意の数の多岐にわたるストレージデバイス1350を利用して、ネットワークデバイス1380によって処理されるプログラムされたデータ及び受信データトラフィックを含むネットワークデバイスのデータを記憶することができる。1つの実施形態では、本明細書において上記で説明したカンバセーションサービスマッピングダイジェスト、カンバセーションマスク、及び同様のデータ構造のDRNIデータ構造又は同様の組織化は、そのようなデータ構造に記憶され得る。ストレージデバイス1350内に記憶される他のデータ構造は、本明細書において上記で説明したものを含むことができる。他の実施形態では、これらのデータ構造は独立していると考えることができ、ネットワークデバイス1380内の任意の数の別個のストレージデバイス1350にわたって分散させることができる。
【0429】
1組のネットワークプロセッサ1300は、本明細書において上記で説明したアグリゲーション及びDRNI機能及びリンクアグリゲーションサブレイヤ1370を実装することができる。アグリゲーション機能は、アグリゲータクライアント1372及びリンクアグリゲーションサブレイヤ1370を含むことができ、これらは、制御パーサ/マルチプレクサ1302、アグリゲーションコントローラ1306、フレーム収集器1325、フレーム分配器1320及びDRNI1313を含むことができる。
【0430】
本明細書において上記で更に説明したアグリゲーションコントローラ1306は、リンクアグリゲーション制御及びリンクアグリゲーション制御プロトコル機能を実施することができる。これらの機能はリンクアグリゲーショングループ、DRNIポータル及び同様の態様の設定及び配分をマネージメントする。制御パーサ及びマルチプレクサ1302は、アグリゲーションポートにおいて受信された他のデータトラフィックからのLACPDUを識別及び転送し、LACPDUをアグリゲーションコントローラ1306に送信し、他のデータトラフィックをリンクアグリゲーションサブレイヤ1370内で送信する。
【0431】
本明細書において上記で更に説明したリンクアグリゲーションサブレイヤ1370は、分配アルゴリズムに従ってフレームの収集及び分配をマネージメントする。リンクアグリゲーションサブレイヤ1370内で、フレーム収集器1325はフレームを受信し、これらのフレームを、リンクアグリゲーショングループにわたってパートナーシステムと共有された分配アルゴリズムに従って組織化する。フレーム分配器1320は、分配アルゴリズムに従って、1組のアグリゲーションポートにわたって送信するためのアウトバウンドフレームを準備し選択する。クライアントインターフェースは、アグリゲータクライアント1372との間でフレームを送受信する。インバウンドフレームは、フレーム収集器1325からアグリゲータクライアント1372に渡され、アウトバウンドフレームはフレーム分配器1320からアグリゲータクライアント1372に渡される。本明細書において上記で説明されたDRNI関数1311は、ネットワークプロセッサ1311によって実行される。
【0432】
本発明は、いくつかの例示的な実施形態の観点で説明されてきたが、当業者であれば、本発明は説明された実施形態に限定されず、添付の特許請求の範囲の趣旨及び範囲内での変更及び代替を用いて実施され得ることを認識するであろう。このため、説明は限定ではなく例示とみなされるものとする。