特許第5985758号(P5985758)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テレフオンアクチーボラゲット エル エム エリクソン(パブル)の特許一覧

特許5985758スプリットアーキテクチャデバイスへのデバイスワイドなケイパビリティ及びパラメータの追加
<>
  • 特許5985758-スプリットアーキテクチャデバイスへのデバイスワイドなケイパビリティ及びパラメータの追加 図000002
  • 特許5985758-スプリットアーキテクチャデバイスへのデバイスワイドなケイパビリティ及びパラメータの追加 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5985758
(24)【登録日】2016年8月12日
(45)【発行日】2016年9月6日
(54)【発明の名称】スプリットアーキテクチャデバイスへのデバイスワイドなケイパビリティ及びパラメータの追加
(51)【国際特許分類】
   H04L 12/773 20130101AFI20160823BHJP
【FI】
   H04L12/773
【請求項の数】12
【全頁数】12
(21)【出願番号】特願2015-540239(P2015-540239)
(86)(22)【出願日】2013年10月22日
(65)【公表番号】特表2016-502318(P2016-502318A)
(43)【公表日】2016年1月21日
(86)【国際出願番号】IB2013059554
(87)【国際公開番号】WO2014068444
(87)【国際公開日】20140508
【審査請求日】2015年5月25日
(31)【優先権主張番号】13/667,875
(32)【優先日】2012年11月2日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100095957
【弁理士】
【氏名又は名称】亀谷 美明
(74)【代理人】
【識別番号】100096389
【弁理士】
【氏名又は名称】金本 哲男
(74)【代理人】
【識別番号】100101557
【弁理士】
【氏名又は名称】萩原 康司
(74)【代理人】
【識別番号】100128587
【弁理士】
【氏名又は名称】松本 一騎
(72)【発明者】
【氏名】ハルパーン,ジョエル
【審査官】 安藤 一道
(56)【参考文献】
【文献】 LIGANG DONG et. al.,Definition and Implementation of Logical Function Blocks Compliant to ForCES Specification,PROCEEDINGS OF 2007 15TH IEEE INTERNATIONAL CONFERENCE ON NETWORKS (ICON),2007年11月 1日,P531-536
【文献】 JOACHIMPILLAI VERIZON,ForCES Inter-FE LFB; draft-joachimpillai-forces-interfelfb-00.txt,IETF STANDARD-WORKING-DRAFT,IETF,2012年10月11日,P1-16
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/773
(57)【特許請求の範囲】
【請求項1】
ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のための、ネットワークエレメントにおいて実装される方法であって、前記ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、前記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定し、前記方法は、
前記一群の制御エレメント内の制御エレメントにより、前記一群の転送エレメント内の転送エレメントとの通信を開始するステップ(201)と、
前記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを、前記制御エレメントにより前記転送エレメントへ要求するステップ(203)と、
前記要求への応答として、前記転送エレメントから前記一群の論理機能ブロック識別子を受信するステップ(205)と、
前記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して、前記転送エレメントのケイパビリティを判定するステップ(207)と、
前記転送エレメントの前記ケイパビリティで、転送エレメントケイパビリティモデルを更新するステップ(209)と、
サポートされる論理機能ブロックの新たな論理機能ブロック識別子を新たな論理機能ブロックのインスタンス化後に提供するように前記転送エレメントを構成するステップ(211)と、
を含む方法。
【請求項2】
前記要求への応答として、少なくとも1つの論理機能ブロックからケイパビリティパラメータを受信するステップ、
をさらに含む、請求項1の方法。
【請求項3】
前記制御エレメントにより、前記転送エレメントへ周期的にポーリングして、転送エレメントケイパビリティを表現する追加的な論理機能ブロックがインスタンス化されたかを判定するステップ、
をさらに含む、請求項1の方法。
【請求項4】
前記転送エレメントにより、前記制御エレメントへ返却されるように転送エレメントオブジェクトから前記一群の論理機能ブロック識別子を取得するステップ、
をさらに含む、請求項1の方法。
【請求項5】
前記転送エレメントは、前記ネットワークエレメントのコンポーネントである、請求項1の方法。
【請求項6】
前記転送エレメントは、ネットワーク接続上で前記ネットワークエレメントとの通信関係にある他のネットワークエレメントのコンポーネントである、請求項1の方法。
【請求項7】
ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のためのプロセスを実装するネットワークエレメント(101)であって、前記ネットワークエレメントコンポーネントは、一群の制御エレメント(103)を含み、前記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定し、前記ネットワークエレメントは、
転送エレメントケイパビリティモデル(105)を記憶するメモリ(125)と、
前記メモリへ連結されるプロセッサ(123)と、
を備え、
前記転送エレメントケイパビリティモデルは、前記一群の転送エレメント内の各転送エレメントのケイパビリティを記憶し、
前記プロセッサは、転送エレメントケイパビリティ管理モジュール(107)を実行し、
前記転送エレメントケイパビリティ管理モジュールは、前記一群の転送エレメント内の転送エレメントとの通信を開始し、前記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを前記転送エレメントへ要求し、前記要求への応答として、前記転送エレメントから前記一群の論理機能ブロック識別子を受信し、前記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して前記転送エレメントのケイパビリティを判定し、前記転送エレメントの前記ケイパビリティで、転送エレメントケイパビリティモデルを更新し、サポートされる論理機能ブロックの新たな論理機能ブロック識別子を新たな論理機能ブロックのインスタンス化後に提供するように前記転送エレメントを構成する、ように構成される、
ネットワークエレメント。
【請求項8】
前記転送エレメントケイパビリティ管理モジュールは、前記要求への応答として、少なくとも1つの論理機能ブロックからケイパビリティパラメータを受信する、ようにさらに構成される、請求項のネットワークエレメント。
【請求項9】
前記転送エレメントケイパビリティ管理モジュールは、前記転送エレメントへ周期的にポーリングして、転送エレメントケイパビリティを表現する追加的な論理機能ブロックがインスタンス化されたかを判定する、ようにさらに構成される、請求項のネットワークエレメント。
【請求項10】
前記制御エレメントへ返却されるように転送エレメントオブジェクト(117)から前記一群の論理機能ブロック識別子を取得するように構成される転送エレメントケイパビリティモジュール(113)、
をさらに備える、請求項のネットワークエレメント。
【請求項11】
前記転送エレメント(109)は、前記ネットワークエレメントのコンポーネントである、請求項のネットワークエレメント。
【請求項12】
前記転送エレメントは、ネットワーク接続上で前記ネットワークエレメントとの通信関係にある他のネットワークエレメントのコンポーネントである、請求項のネットワークエレメント。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ネットワークエレメントの構成の分野に関し、より具体的には、スプリットアーキテクチャを有するネットワークエレメントにおける制御エレメントによる転送エレメントケイパビリティの判定に関する。
【背景技術】
【0002】
ルータ、ブリッジ及び類似のネットワークエレメントは、ネットワークの一端からネットワークの他端へのデータの通信を可能にする多数の機能を実装する。それらネットワークエレメントにより実行される機能は、ネットワークエレメントの構成及び基本的なデータ転送といったハイレベルの制御に関する機能を包含し得る。しばしば制御プレーン及びデータプレーンという別個のプレーンでのデータのハンドリングとして、その機能の分割が説明される。
【0003】
その分割は、ネットワークエレメントのアーキテクチャにおいて明らかでもあり得る。データプレーンの機能性は、転送エレメントとして言及される一群のコンポーネントにおいて大部分は実装され得る。一方で、制御プレーンの機能性は、制御エレメントとして言及される一群のコンポーネントにおいて大部分は実装され得る。そうしたハードウェアコンポーネントの個別の分割を伴うネットワークエレメント群は、しばしばスプリットアーキテクチャを有するものとして説明される。制御エレメント及び転送エレメントは、しばしば別個のラインカードとして実装される。ラインカードは、ネットワークエレメントへ取外し可能に連結される個別のコンポーネントである。ネットワークエレメントは、それらラインカードをいくつでも含むことができ、多数のネットワーク接続をハンドリングするためにスケーリングすることが可能となる。ネットワークエレメントは、複数の制御エレメント及びそれらの対応するラインカードを含んで、分散された制御プレーン実装又は制御プレーンにおける冗長的なバックアップを提供することができる。ラインカードは、ネットワークエレメントのケイパビリティを改善するために置き換えられることができる。ラインカードは、それらのソフトウェア及びハードウェアをアップグレードさせて、ラインカードを交換することなく新たなケイパビリティを取り込めるようにすることも可能である。
【発明の概要】
【0004】
ネットワークエレメントコンポーネントのケイパビリティを、ネットワークエレメント及びプロセスが判定し及び構成する。ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、当該一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定する。本方法は、ある制御エレメントにより、上記一群の転送エレメント内の転送エレメントとの通信を開始すること、を含む。上記制御エレメントは、上記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを、上記転送エレメントへ要求する。すると、上記要求への応答として、上記転送エレメントから上記一群の論理機能ブロック識別子が受信される。上記一群の論理機能ブロック識別子は、上記転送エレメントのケイパビリティを判定するために、既知の転送エレメントケイパビリティと照合される。そして、上記転送エレメントの上記ケイパビリティで、転送エレメントケイパビリティモデルが更新される。
【0005】
ネットワークエレメントは、ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のためのプロセスを実装する。上記ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、上記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定する。上記ネットワークエレメントは、さらに、転送エレメントケイパビリティモデルを記憶するメモリと、上記メモリへ連結されるプロセッサと、を含み、上記転送エレメントケイパビリティモジュールは、上記一群の転送エレメント内の各転送エレメントのケイパビリティを記憶し、上記プロセッサは、転送エレメントケイパビリティ管理モジュールを実行する。上記転送エレメントケイパビリティ管理モジュールは、上記一群の転送エレメント内の転送エレメントとの通信を開始する。また、上記転送エレメントケイパビリティ管理モジュールは、上記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを上記転送エレメントへ要求する。そして、上記転送エレメントケイパビリティ管理モジュールは、上記要求への応答として、上記転送エレメントから上記一群の論理機能ブロック識別子を受信し、上記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して上記転送エレメントのケイパビリティを判定し、上記転送エレメントの上記ケイパビリティで、転送エレメントケイパビリティモデルを更新する。
【図面の簡単な説明】
【0006】
本発明は、本発明の実施形態を例示するために使用される以下の説明及び添付図面を参照することにより、最もよく理解され得る。図面は次の通りである:
【0007】
図1】スプリットアーキテクチャを伴うネットワークエレメントの1つの実施形態の図である。
図2】フォワーダケイパビリティを判定するためのプロセスの1つの実施形態のフローチャートである。
【発明を実施するための形態】
【0008】
以下の説明は、スプリットアーキテクチャのケイパビリティ管理のための方法及び装置を説明する。以下の説明において、本発明のより徹底した理解を提供するために、ロジック実装、オプコード、オペランドを特定する手段、リソースの分割/共有/二重化の実装、システムコンポーネントのタイプ及び相互関係、並びにロジックの分割/統合の選択といった、多くの具体的詳細が説明される。しかしながら、本発明はそのような特定の詳細なしに実践され得ることが、当業者により理解されるであろう。他の例において、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは、本発明を曖昧にしないため詳細には示されない。当業者は、包含される説明によって、過度の実験なしに適切な機能性を実装することができるであろう。
【0009】
“1つの実施形態”、“一実施形態”、“例示的な実施形態”等への本明細書内での言及は、説明される実施形態が特定の特徴、構造又は特性を含み得ることを示しており、但し、あらゆる実施形態が当該特定の特徴、構造又は特性を必ずしも含まなくてもよい。さらに、そのようなフレーズは、必ずしも同一の実施形態へ言及しているわけではない。さらに、特定の特徴、構造又は特性が、ある実施形態に関連して説明される場合、明示的に記載されるか否かに関わらず、他の実施形態に関連してそのような特徴、構造又は特性を作用させることは、当業者の知識の範囲内であると考えられる。
【0010】
以下の説明及び特許請求の範囲において、“連結される(coupled)”及び“接続される(connected)”との用語が、それらの派生語と共に使用され得る。これらの用語は、互いに同義語として意図されないことを理解すべきである。“連結される”は、直接物理的若しくは電気的に互いに接触し、協働し若しくは互いにインタラクションし、又はそうしない可能性がある、2つ以上のエレメントを示すために使用される。“接続される”は、互いに連結される2つ以上のエレメント間の通信の確立を示すために使用される。
【0011】
理解を容易にするために、ある項目のオプションとしての性質(例えば、本発明の所与の実装によりサポートされない特徴、所与の実装によりサポートされるが、ある状況では用いられ他では用いられない特徴)を表すために、図において破線が使用されている。
【0012】
図に示された技法は、1つ以上の電子デバイス上に記憶され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的で有形のコンピュータ可読記憶媒体(例えば、磁気ディスク、光ディスク、読取り専用メモリ、フラッシュメモリデバイス、相変化メモリ)、及び一時的なコンピュータ可読通信媒体(例えば、搬送波、赤外線信号、デジタル信号等といった、電気的、光学的、音響的、又は他の形式の伝搬信号)を用いてコード及びデータを記憶し、並びに(内部的に及び/又はネットワーク上で他の電子デバイスと)通信する。さらに、そのような電子デバイスは、典型的には、記憶デバイス、1つ以上のユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続といった1つ以上の他のコンポーネントと連結される1つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、1つ以上のバス又はブリッジ(バスコントローラとも呼ばれる)を通じて行われる。記憶デバイス及びネットワークトラフィックを搬送する信号は、1つ以上の非一時的で有形のコンピュータ可読媒体及び一時的なコンピュータ可読通信媒体をそれぞれ表現する。従って、所与の電子デバイスの記憶デバイスは、典型的には、その電子デバイスの1つ以上のプロセッサのセット上での実行のためのコード及び/又はデータを記憶する。当然ながら、本発明の実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの様々な組み合わせを用いて実装されてよい。
【0013】
[概要]
スプリットアーキテクチャデバイスは、データプレーンと制御プレーンとの間の機能性を分割するデバイスである。1つのネットワークエレメント内でその分割を厳密に行うことができ、又は、一群の転送エレメントとは別個に制御エレメントをハウジングするといったように、ネットワークエレメントの内部的な部分及び外部的な部分の双方に分割が関与することもできる。ここで使用されるところによれば、ネットワークエレメントは、単一の物理的筐体内にいくつの転送エレメント及び制御エレメントを収容していてもよいデバイスをいう。但し、実施形態は、単一のネットワークエレメント内での実装には制限されない。本方法及びシステムは、分散的な実装を包含することができ、その場合には、別個のネットワークエレメント内にハウジングされる転送エレメント及び/又は制御エレメントが、ここで説明されるプロセスを実装する。例えば、制御エレメントは、転送エレメントとは別個の物理的筐体内にあってもよい。1つの実施形態において、ネットワークエレメントは、(RFC5810及びRFC5912により定義されている通りの)IETF(Internet Engineering Task Force) ForCES(Forwarding and Control Element Separation)プロトコルスイートに準拠し得る。ForCESプロトコルスイートは、各転送プレーンエレメントのケイパビリティについての記述の単位として、論理機能ブロック(LFB)を使用する。制御エレメント(CE)がFEの構成情報を取得し及び変更することができるように、FE内のデータプレーンハンドリングの構成を記述するために、それらブロックが使用される。
【0014】
各LFBは、関連付けられるFEにとって固有であり、LFBの定義は、LFBのセマンティクスの英語での記述と共に、パケットを送受信するためのポートのフォーマルな定義、パケットに関連付けられるメタデータ、及びLFBのどの部分をCEが読み書き可能であるかを左右するブロックのパラメータを含む。RFC5810及びRFC5812の定義は、FEプロトコルLFB及びFEオブジェクトLFBという2つの特別なLFBを含む。これらは、各FEによりインスタンス化されることを要し、各FEは、このクラスのLFBのインスタンスをちょうど1つ有する。LFBクラスの定義は、全てのFEにとって共通であり、CEに知られている。各FEは、自ら又はCEの指示で、LFBクラスのローカルインスタンスをインスタンス化する(即ち、生成する)。よって、各LFBインスタンスは、所与のFE内にあり、その明細(particulars)は当該FEにとって固有である。LFBのクラス定義は符号化され、クラスの機能及び変数の書面化された説明をなす。1つの実施形態において、CEは事前にクラスと2つのLFBインスタンス(即ち、FEプロトコルLFB及びFEオブジェクトLFB)についてのインスタンス識別子(ID)とを知得しており、したがって、その中の情報を読み取り及びその中に情報を設定してFEとのインタラクションを開始することができる。
【0015】
FEプロトコルLFBは、FEとCEとの間のプロトコルインタラクションについての情報を表現する。これは、サポートされるプロトコルバージョンについての情報を含む。FEオブジェクトLFBは、どのLFBクラスをサポートするか、FE上にどのLFBインスタンスがその時点で存在するか、及びそれらインスタンスがどのように相互接続されているかといった、FEについての全ての情報を表現する。ForCESの実装が例示の手法で提供されているが、ここで説明される原理及び構造が他のスプリットアーキテクチャシステム及び類似のスプリットアーキテクチャシステムにも適用可能であることが当業者により理解されるはずである。
【0016】
スプリットアーキテクチャのケイパビリティ管理のための方法及び装置の本実施形態の利点は、実装されている基本的なプロトコルの仕組み及び構造を変更することなく、システムワイドに(即ち、ネットワークエレメント並びに/又は全ての関連するCE及びFeを通じて)プロトコル及び転送ケイパビリティに柔軟な変更を行うことをそれらが可能とすることを含む。プロトコルの機構の変更無しで複数のデバイスケイパビリティをサポートすることができ、プロトコルの変更さえ容易に追加することができる。1つの実施形態では、それら利点は、ForCESシステムに向けて設計された仕組みを活用することにより獲得される。
【0017】
従来技術は、多くの問題及び欠点によって制限を受けており、それらはここで説明される実施形態により克服される。(例えば、RFC5810に記述されている通りの)ForCESはベースであるFEオブジェクトLFBの新たなバージョンを許容するが、それをサポートすることは困難であり、そうした変更はコアなForCESの変更を反映するためにのみなされるべきである。そうしたForCESへの変更は、新たな標準の採択と合意とを要するが、それは困難かつ獲得のために時間を浪費する。そうした根本的な変更が無ければ、従来技術は、FEがある特定のデバイスワイドなケイパビリティを有することをCEへ通知することのできる手段としての仕組みを提供しない。特定のLFBクラスをサポートする能力によってケイパビリティを表現可能であれば、それは既に定義されている。しかしながら、FEがCEと通信する必要のあるシステムワイドなパラメータといったように、変更がより一般的であれば、FEオブジェクトLFBの新たなバージョンの生成は、そうした問題に対して明らかに間違った解である。例えば、新たなプロトコルの拡張がサポートされるかが課題である場合にはどうであろうか?
【0018】
本発明の実施形態は、従来技術のこれら制限及び欠点を解決する。本方法及びシステムは、対象の特定のドメインについてのシステムワイドなケイパビリティに結び付けられる新たなLFBクラスの生成によって表現されるFEケイパビリティの検出を可能とする。そして、FEは、どのようなインスタンスIDが選択されようともそれと共に当該クラスの単一のインスタンスを生成することができる。CEは、その情報を取得し及び利用して、FEが特定のケイパビリティをサポートしているかを判定することができる。RFC5812内に含まれる定義済みのXMLスキーマに適合するXMLファイルとして、新たなLFBの定義が生成される。このケースでは、LFBは、メタデータを有さず、パケットフォーマットが無く、及び入出力ポートが無いという点において独特となる。
【0019】
よって、1つの例示的な応用例において、(ForCESプロトコルを用いて)OpenFlowスキーマのサポートされるバージョンについての情報を提供する必要があれば、OpenFlowサポートLFBを定義することができ、FEがそのインスタンスを生成することになり、CEはそれを読み取る(及び、適切であれば書き込む)ことができる。同様に、他の例示的な応用例において、動作のスタート時間及びストップ時間を追加するプロトコル拡張のサポートを示すように、新たなLFBを定義することができる。これは、プロトコルの新たなバージョンではないが、新たなプロトコルケイパビリティである。そのケイパビリティを示すためには、CEに知られている新たなLFBクラスをサポート可能であることをFEがレポートすることで十分なはずであり、新たなLFBクラスを例えばStartStopTimeProtocolという。それどころか、これはプロトコル変更の一種であり、CommissioningInteractionProtocolのための新たなLFBがサポートされるはずであって、これはFEがサポート可能な多様なケイパビリティを表現するフィールドを有するであろう。その値は、FEにより、実際に何を行い得るかを反映させるように生成されるLFBのインスタンスにおいてレポートされる。LFBを用いるこの方法及びシステムは、リソース、セキュリティ又は他のシステムワイドなケイパビリティを反映をするようにも拡張されることができる。
【0020】
図1は、スプリットアーキテクチャを伴うネットワークエレメントの1つの実施形態の図である。1つの実施形態において、ネットワークエレメントは、ルータ101、ブリッジ又は類似のネットワーキングデバイスである。ルータ101は、いかなる数の制御エレメント(CE)103A、B及びいかなる数の転送エレメント(FE)109A〜Cを含むこともできる。CE103A、Bは、バス127、インターコネクト又は類似の通信メカニズム上で、FEと通信することができる。1つの実施形態において、CEは、ルータ101から遠隔に、他のルータ又はコンピューティングデバイス内にあってもよく、ネットワーク111又は類似の通信メカニズム上でFEと通信することができる。
【0021】
1つの実施形態において、CE103A、Bは、ルータ又は類似のネットワークエレメントのコンポーネント内のラインカード上に実装される。他の実施形態において、CEは、汎用プロセッサにより実装される。図1は、複数のプロセッサとメモリとを包含する一群のCE及びFEを示しており、CEがそれらリソースの組合せとして実装される様子を描いている。リソースは、別個のラインカード上、共通のマザーボード上に配置されてもよく、又は同様に実装され得る。上で注記したように、CE及びFEを、複数のネットワークエレメント内に又はそれらをまたいで分散して実装することもできる。注記したように、各CE103A、Bは、プロセッサ123、メモリ125及びネットワークエレメントの類似のコンポーネントにより実装され得る。当業者は、ルータ101及びFE109A〜Cの動作を制御し及び構成するためのCEの機能性を実装する、通信インタフェース、インターコネクト、特殊処理デバイス及び類似のコンポーネントにCEが依拠することができることを理解するであろう。その機能は、FEケイパビリティ管理モジュール107により実装される転送エレメント(FE)ケイパビリティ管理を含み、FEケイパビリティ管理モジュール107は、FEケイパビリティモデル105を維持する。FEケイパビリティモデル105は、Fe109A〜Cの各々のケイパビリティを記憶するデータ構造である。この情報を利用して、あるタイプのトラフィックを処理し、ある特定のFEのケイパビリティを活用するためにデータトラフィックをそれらFEへルーティングする、ようにFE109A〜Cを構成することができる。
【0022】
FEケイパビリティ管理モジュール107は、それぞれのFE109A〜Cの各々から、FEケイパビリティを取得し得る。FEケイパビリティ管理モジュール107は、図2を基準にこれ以降で議論するようにして、この情報を取得し得る。FEケイパビリティ管理モジュール107は、FE109A〜C上のFEケイパビリティモジュール113と通信して、ケイパビリティ情報を取得することができる。一旦受信されると、ケイパビリティ情報は、FEケイパビリティ管理モジュール107により、FEケイパビリティモデル105内で記憶され又は更新される。FEケイパビリティ管理及びモデルを複数のCE103A、Bにわたって分散させることができ、又は、CE103A、Bの双方が障害のケースでのバックアップを提供するように冗長的に機能を実行することができる。
【0023】
各FE109A〜Cは、ネットワーク111上の一群のポートを通じて受信されるデータパケットの処理及び転送を管理し得る。ネットワーク111は、IP(Internet Protocol)ネットワーク、イーサネットベースのLAN(local area network)又は類似のネットワークを含むいかなるタイプのネットワークであってもよい。他の実施形態において、ルータ101は、FE109A〜Cの様々なポートを通じて複数のネットワーク111へ接続され得る。FE109A〜Cは、バス127又は類似の通信メカニズムを通じてCE103A、Bと通信する。FE109A〜Cは、バス127、スイッチファブリック又は類似の通信メカニズムを通じて互いに通信し得る。FE109A〜Cは、自身のネットワーク111ポートを通じて受信されるデータパケットを、各データパケットのルートに沿ったネクストホップへつながるネットワーク111ポートを有する他のFE109A〜Cへ転送する。
【0024】
上で議論したCEに関し、FE109A〜Cは、データパケットの処理及び転送、並びにFE109A〜Cの類似の機能のための、プロセッサ119、メモリ115及び類似のコンポーネントによって実装され得る。プロセッサ119及びメモリ115は、ラインカード、ネットワークエレメントの個別コンポーネント若しくはネットワークエレメントの共有コンポーネント、又は同様に構成されるデバイスといったコンポーネントであり得る。プロセッサ119は、レベル2及びレベル3のデータパケット処理を実行し、転送テーブル内でネクストホップ情報をルックアップし、並びに類似のルーティング及び転送の機能性を提供することができる。1つの実施形態において、FE109A〜Cは、各FE109A〜Cのケイパビリティ及び/又はステートを表現するデータ構造であるFEオブジェクトをインスタンス化し及び維持する。FEケイパビリティモジュール113は、制御エレメント103からの通信信号及び情報要求を、FEケイパビリティ管理モジュール107からFEケイパビリティモジュール113を通じて受信することができる。1つの実施形態において、FEケイパビリティモジュール113は、FEケイパビリティ関連のサービスの目的のために特化したモジュールである。他の実施形態において、FEケイパビリティモジュール113は、その機能に適用される、より汎用的なプロセスとして実装される。例えば、FE109A〜Cは、CE103A、BがFEオブジェクト117からのデータを要求し又は当該データにアクセスすることを可能とするForCESプロトコルを実装することができる。この例において、CE103A、Bは、標準的なForCESプロトコルの特徴を用いて、各FE109A〜Cによりサポートされ又はインスタンス化されるLFBのリストへアクセスし、この場合、FEケイパビリティ管理モジュール107は、個々のFEケイパビリティへのそれらLFBの対応関係を認識している。
【0025】
FEオブジェクト117及びFEケイパビリティモジュール113は、FE109A〜Cのメモリ115内に記憶され得る。メモリ115は、プロセッサ119によるデータ処理のための汎用メモリであってもよく、又はFEオブジェクト117及び/若しくはFEケイパビリティモジュール113のために特に専用化された記憶スペースであってもよい。各FEは、同様のハードウェア構成を有してもよく、又は異なるハードウェア実装を有してもよく、各々はForCES又は類似のプロトコルを用いてFEケイパビリティ管理モジュール107との通信をサポートする。
【0026】
図2は、ネットワークエレメントにおいて転送エレメントのケイパビリティを判定するためのプロセスの1つの実施形態のフローチャートである。1つの実施形態において、プロセスは、制御エレメントがネットワークエレメント内の各転送エレメントとの通信をスタートすることにより開始される(ブロック201)。制御エレメントは、転送エレメントの各々を通じた反復を行い、又はそれらと並列的に通信することができる。簡明さのために、単一の転送エレメントと通信するプロセスが説明される。しかしながら、当業者は、単一の転送エレメントとの通信に関してここで説明されるプロセス及び原理が複数の転送エレメントのケイパビリティを通信し及び収集することへ適用可能であることを理解するはずである。同様に、制御エレメントと転送エレメントとの間の通信は、例えばバス又は類似のインターコネクト上での単一のネットワークエレメントの範囲内のものとしてここで説明される。しかしながら、当該プロセス及び原理は、任意の数の中間的なコンピューティングデバイス及びネットワーキングデバイスを通じたネットワーク上で接続される別個のネットワークエレメント又はコンピューティングデバイス内の制御エレメントと転送エレメントとの間の通信にも適用可能である。
【0027】
1つの例示的な実施形態において、制御エレメントと転送エレメントとの間の通信は、制御エレメントが転送エレメントのデータを交換し転送エレメントのデータ構造の読み書きをすることを可能とするために、ForCESプロトコルを利用する。リモートでの実施形態において、ForCESといったプロトコルを、一般的なネットワーキングプロトコル、及び転送エレメントと制御エレメントとの間の通信を可能にするためのカプセル化に組合せることができる。通信の開始は、転送エレメントと制御エレメントとの間の通信チャネルのオープンという形式をとり得る。他の実施形態において、通信の開始は、制御エレメントが転送エレメントを認識するようになり及び転送エレメントを特定できるための手段であるディスカバリプロセス、構成プロセス又は類似のプロセスであり得る。
【0028】
制御エレメントは、転送エレメントに当該転送エレメントによりサポートされ又はインスタンス化された論理機能ブロックの一群の論理機能ブロック識別子を提供させるための要求を送信し得る(ブロック203)。上述したように、論理機能ブロックは、定義される一群のトラフィック及びポートについて実行されるべき機能又は動作を記述するために使用される。しかしながら、これら論理機能ブロックは、特定のケイパビリティと共にそれらケイパビリティのパラメータを表現するために生成され得る。そうした論理機能ブロックはポート定義及び類似のデータを有さず、表現されるケイパビリティは制御エレメントのFEケイパビリティ管理モジュールにとって既知でなければならない。インスタンス化され又はサポートされる論理機能ブロックの識別子のリストは、各転送エレメントのFEオブジェクト内で維持される。識別子のリストは、制御エレメントにとってアクセス可能であり、要求を受けて提供され得る(ブロック205)。他の実施形態において、それら識別子は、制御エレメントにより特に要求されることなく提供され得る。代わりに、転送エレメントは、システムスタートアップ時に及び/又は各論理機能ブロックがインスタンス化され若しくは追加される際に、自動的に識別子のリストを提供する。
【0029】
論理機能ブロック識別子のリストの受信後に、識別子のいずれかが転送エレメントについての既知のケイパビリティにマッチするかの判定のためのチェックが行われる(ブロック207)。ケイパビリティは、運用上の構成又は類似のプロビジョニングによって知得されることができる。いかなる数の異なるケイパビリティをもそのやり方で定義することができる。同様に、ケイパビリティが一群のパラメータを包含する場合、その追加的なデータがFEオブジェクトから取得され、又は当該データは識別子のリストと同じ時に提供されることができる。そして、制御エレメントにより維持されるFEケイパビリティモデル内の当該転送エレメントに関連付けられるケイパビリティを更新するために、その受信データが使用される(ブロック209)。FEケイパビリティモデルは、個々の任意の数の転送エレメントのケイパビリティを追跡可能な、任意のタイプの又はサイズのデータ構造であり得る。
【0030】
制御エレメントがスタートアップ又は初期化の時にケイパビリティデータを要求するように構成されるケースでは、制御エレメントは、転送エレメントで何らかの新たな又は追加的なケイパビリティがインスタンス化され又は追加されたかを制御エレメントへ通知するように転送エレメントを構成することもできる(ブロック211)。新たな又は追加的なケイパビリティは、転送エレメントの更新されたファームウェア又は類似のソフトウェア、転送エレメントの構成の変化、及び類似のイベントに基づくことができる。他の実施形態において、制御エレメントは、転送エレメントに周期的にポーリングして、新たなケイパビリティが存在するかを判定することができる。
【0031】
ここで説明したように、命令は、ある動作を実行するように構成され若しくは予め決定される機能性を有するASIC(application specific integrated circuits)といったハードウェア、又は、非一時的なコンピュータ可読媒体内で具現化されるメモリ内に記憶されるソフトウェア命令の特定の構成への言及であってよい。従って、図に示された技法は、1つ以上の電子デバイス(例えば、エンドステーション、ネットワークエレメント)上に記憶され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的なコンピュータ可読記憶媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読取り専用メモリ、フラッシュメモリデバイス、相変化メモリ)及び一時的なコンピュータ可読通信媒体(例えば、搬送波、赤外線信号、デジタル信号等といった電気的、光学的、音響的、若しくは他の形式の伝搬信号)、といったコンピュータ可読媒体を使用して、コード及びデータを記憶し、並びに(内部的に及び/又はネットワーク上で他の電子デバイスと)通信する。さらに、そのような電子デバイスは、典型的には、1つ以上の記憶デバイス(非一時的な機械可読記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続といった、1つ以上の他のコンポーネントに連結される1つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、1つ以上のバス及びブリッジ(バスコントローラとも呼ばれる)を通じて行われる。よって、所与の電子デバイスの記憶デバイスは、典型的には、当該電子デバイスの1つ以上のプロセッサのセット上での実行のためのコード及び/又はデータを記憶する。当然ながら、本発明の実施形態の1つ以上の部分が、ソフトウェア、ファームウェア、及び/又はハードウェアの様々な組み合わせを用いて実装されてもよい。
【0032】
図面中のフロー図は本発明のある実施形態により実行される動作の特定の順序を示しているが、そのような順序は例示的なものであることが理解されるべきである(例えば、代替的な実施形態は、異なる順序で動作を実行し、ある複数の動作を組み合わせ、ある複数の動作を重複させるなどしてもよい)。
【0033】
本発明をいくつかの実施形態に関して説明してきたが、本発明は、説明した実施形態に限定されるものではなく、添付の請求項の思想および範囲内で修正及び変形と共に実践されることができることを、当業者は認識するであろう。よって、本説明は、限定の代わりに例示であると捉えられるべきである。
図1
図2