(57)【特許請求の範囲】
【請求項１】
ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のための、ネットワークエレメントにおいて実装される方法であって、前記ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、前記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定し、前記方法は、
前記一群の制御エレメント内の制御エレメントにより、前記一群の転送エレメント内の転送エレメントとの通信を開始するステップ（２０１）と、
前記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを、前記制御エレメントにより前記転送エレメントへ要求するステップ（２０３）と、
前記要求への応答として、前記転送エレメントから前記一群の論理機能ブロック識別子を受信するステップ（２０５）と、
前記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して、前記転送エレメントのケイパビリティを判定するステップ（２０７）と、
前記転送エレメントの前記ケイパビリティで、転送エレメントケイパビリティモデルを更新するステップ（２０９）と、
サポートされる論理機能ブロックの新たな論理機能ブロック識別子を新たな論理機能ブロックのインスタンス化後に提供するように前記転送エレメントを構成するステップ（２１１）と、
を含む方法。
【請求項２】
前記要求への応答として、少なくとも１つの論理機能ブロックからケイパビリティパラメータを受信するステップ、
をさらに含む、請求項１の方法。
【請求項３】
前記制御エレメントにより、前記転送エレメントへ周期的にポーリングして、転送エレメントケイパビリティを表現する追加的な論理機能ブロックがインスタンス化されたかを判定するステップ、
をさらに含む、請求項１の方法。
【請求項４】
前記転送エレメントにより、前記制御エレメントへ返却されるように転送エレメントオブジェクトから前記一群の論理機能ブロック識別子を取得するステップ、
をさらに含む、請求項１の方法。
【請求項５】
前記転送エレメントは、前記ネットワークエレメントのコンポーネントである、請求項１の方法。
【請求項６】
前記転送エレメントは、ネットワーク接続上で前記ネットワークエレメントとの通信関係にある他のネットワークエレメントのコンポーネントである、請求項１の方法。
【請求項７】
ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のためのプロセスを実装するネットワークエレメント（１０１）であって、前記ネットワークエレメントコンポーネントは、一群の制御エレメント（１０３）を含み、前記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定し、前記ネットワークエレメントは、
転送エレメントケイパビリティモデル（１０５）を記憶するメモリ（１２５）と、
前記メモリへ連結されるプロセッサ（１２３）と、
を備え、
前記転送エレメントケイパビリティモデルは、前記一群の転送エレメント内の各転送エレメントのケイパビリティを記憶し、
前記プロセッサは、転送エレメントケイパビリティ管理モジュール（１０７）を実行し、
前記転送エレメントケイパビリティ管理モジュールは、前記一群の転送エレメント内の転送エレメントとの通信を開始し、前記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを前記転送エレメントへ要求し、前記要求への応答として、前記転送エレメントから前記一群の論理機能ブロック識別子を受信し、前記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して前記転送エレメントのケイパビリティを判定し、前記転送エレメントの前記ケイパビリティで、転送エレメントケイパビリティモデルを更新し、サポートされる論理機能ブロックの新たな論理機能ブロック識別子を新たな論理機能ブロックのインスタンス化後に提供するように前記転送エレメントを構成する、ように構成される、
ネットワークエレメント。
【請求項８】
前記転送エレメントケイパビリティ管理モジュールは、前記要求への応答として、少なくとも１つの論理機能ブロックからケイパビリティパラメータを受信する、ようにさらに構成される、請求項７のネットワークエレメント。
【請求項９】
前記転送エレメントケイパビリティ管理モジュールは、前記転送エレメントへ周期的にポーリングして、転送エレメントケイパビリティを表現する追加的な論理機能ブロックがインスタンス化されたかを判定する、ようにさらに構成される、請求項７のネットワークエレメント。
【請求項１０】
前記制御エレメントへ返却されるように転送エレメントオブジェクト（１１７）から前記一群の論理機能ブロック識別子を取得するように構成される転送エレメントケイパビリティモジュール（１１３）、
をさらに備える、請求項７のネットワークエレメント。
【請求項１１】
前記転送エレメント（１０９）は、前記ネットワークエレメントのコンポーネントである、請求項７のネットワークエレメント。
【請求項１２】
前記転送エレメントは、ネットワーク接続上で前記ネットワークエレメントとの通信関係にある他のネットワークエレメントのコンポーネントである、請求項７のネットワークエレメント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークエレメントの構成の分野に関し、より具体的には、スプリットアーキテクチャを有するネットワークエレメントにおける制御エレメントによる転送エレメントケイパビリティの判定に関する。
【背景技術】
【０００２】
ルータ、ブリッジ及び類似のネットワークエレメントは、ネットワークの一端からネットワークの他端へのデータの通信を可能にする多数の機能を実装する。それらネットワークエレメントにより実行される機能は、ネットワークエレメントの構成及び基本的なデータ転送といったハイレベルの制御に関する機能を包含し得る。しばしば制御プレーン及びデータプレーンという別個のプレーンでのデータのハンドリングとして、その機能の分割が説明される。
【０００３】
その分割は、ネットワークエレメントのアーキテクチャにおいて明らかでもあり得る。データプレーンの機能性は、転送エレメントとして言及される一群のコンポーネントにおいて大部分は実装され得る。一方で、制御プレーンの機能性は、制御エレメントとして言及される一群のコンポーネントにおいて大部分は実装され得る。そうしたハードウェアコンポーネントの個別の分割を伴うネットワークエレメント群は、しばしばスプリットアーキテクチャを有するものとして説明される。制御エレメント及び転送エレメントは、しばしば別個のラインカードとして実装される。ラインカードは、ネットワークエレメントへ取外し可能に連結される個別のコンポーネントである。ネットワークエレメントは、それらラインカードをいくつでも含むことができ、多数のネットワーク接続をハンドリングするためにスケーリングすることが可能となる。ネットワークエレメントは、複数の制御エレメント及びそれらの対応するラインカードを含んで、分散された制御プレーン実装又は制御プレーンにおける冗長的なバックアップを提供することができる。ラインカードは、ネットワークエレメントのケイパビリティを改善するために置き換えられることができる。ラインカードは、それらのソフトウェア及びハードウェアをアップグレードさせて、ラインカードを交換することなく新たなケイパビリティを取り込めるようにすることも可能である。
【発明の概要】
【０００４】
ネットワークエレメントコンポーネントのケイパビリティを、ネットワークエレメント及びプロセスが判定し及び構成する。ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、当該一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定する。本方法は、ある制御エレメントにより、上記一群の転送エレメント内の転送エレメントとの通信を開始すること、を含む。上記制御エレメントは、上記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを、上記転送エレメントへ要求する。すると、上記要求への応答として、上記転送エレメントから上記一群の論理機能ブロック識別子が受信される。上記一群の論理機能ブロック識別子は、上記転送エレメントのケイパビリティを判定するために、既知の転送エレメントケイパビリティと照合される。そして、上記転送エレメントの上記ケイパビリティで、転送エレメントケイパビリティモデルが更新される。
【０００５】
ネットワークエレメントは、ネットワークエレメントコンポーネントのケイパビリティの判定及び構成のためのプロセスを実装する。上記ネットワークエレメントコンポーネントは、一群の制御エレメントを含み、上記一群の制御エレメントは、一群の転送エレメントの各々のケイパビリティを判定する。上記ネットワークエレメントは、さらに、転送エレメントケイパビリティモデルを記憶するメモリと、上記メモリへ連結されるプロセッサと、を含み、上記転送エレメントケイパビリティモジュールは、上記一群の転送エレメント内の各転送エレメントのケイパビリティを記憶し、上記プロセッサは、転送エレメントケイパビリティ管理モジュールを実行する。上記転送エレメントケイパビリティ管理モジュールは、上記一群の転送エレメント内の転送エレメントとの通信を開始する。また、上記転送エレメントケイパビリティ管理モジュールは、上記転送エレメントについてのサポートされる論理機能ブロックの一群の論理機能ブロック識別子を提供することを上記転送エレメントへ要求する。そして、上記転送エレメントケイパビリティ管理モジュールは、上記要求への応答として、上記転送エレメントから上記一群の論理機能ブロック識別子を受信し、上記一群の論理機能ブロック識別子を既知の転送エレメントケイパビリティと照合して上記転送エレメントのケイパビリティを判定し、上記転送エレメントの上記ケイパビリティで、転送エレメントケイパビリティモデルを更新する。
【図面の簡単な説明】
【０００６】
本発明は、本発明の実施形態を例示するために使用される以下の説明及び添付図面を参照することにより、最もよく理解され得る。図面は次の通りである：
【０００７】
【図１】スプリットアーキテクチャを伴うネットワークエレメントの１つの実施形態の図である。
【図２】フォワーダケイパビリティを判定するためのプロセスの１つの実施形態のフローチャートである。
【発明を実施するための形態】
【０００８】
以下の説明は、スプリットアーキテクチャのケイパビリティ管理のための方法及び装置を説明する。以下の説明において、本発明のより徹底した理解を提供するために、ロジック実装、オプコード、オペランドを特定する手段、リソースの分割／共有／二重化の実装、システムコンポーネントのタイプ及び相互関係、並びにロジックの分割／統合の選択といった、多くの具体的詳細が説明される。しかしながら、本発明はそのような特定の詳細なしに実践され得ることが、当業者により理解されるであろう。他の例において、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは、本発明を曖昧にしないため詳細には示されない。当業者は、包含される説明によって、過度の実験なしに適切な機能性を実装することができるであろう。
【０００９】
“１つの実施形態”、“一実施形態”、“例示的な実施形態”等への本明細書内での言及は、説明される実施形態が特定の特徴、構造又は特性を含み得ることを示しており、但し、あらゆる実施形態が当該特定の特徴、構造又は特性を必ずしも含まなくてもよい。さらに、そのようなフレーズは、必ずしも同一の実施形態へ言及しているわけではない。さらに、特定の特徴、構造又は特性が、ある実施形態に関連して説明される場合、明示的に記載されるか否かに関わらず、他の実施形態に関連してそのような特徴、構造又は特性を作用させることは、当業者の知識の範囲内であると考えられる。
【００１０】
以下の説明及び特許請求の範囲において、“連結される（coupled）”及び“接続される（connected）”との用語が、それらの派生語と共に使用され得る。これらの用語は、互いに同義語として意図されないことを理解すべきである。“連結される”は、直接物理的若しくは電気的に互いに接触し、協働し若しくは互いにインタラクションし、又はそうしない可能性がある、２つ以上のエレメントを示すために使用される。“接続される”は、互いに連結される２つ以上のエレメント間の通信の確立を示すために使用される。
【００１１】
理解を容易にするために、ある項目のオプションとしての性質（例えば、本発明の所与の実装によりサポートされない特徴、所与の実装によりサポートされるが、ある状況では用いられ他では用いられない特徴）を表すために、図において破線が使用されている。
【００１２】
図に示された技法は、１つ以上の電子デバイス上に記憶され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的で有形のコンピュータ可読記憶媒体（例えば、磁気ディスク、光ディスク、読取り専用メモリ、フラッシュメモリデバイス、相変化メモリ）、及び一時的なコンピュータ可読通信媒体（例えば、搬送波、赤外線信号、デジタル信号等といった、電気的、光学的、音響的、又は他の形式の伝搬信号）を用いてコード及びデータを記憶し、並びに（内部的に及び／又はネットワーク上で他の電子デバイスと）通信する。さらに、そのような電子デバイスは、典型的には、記憶デバイス、１つ以上のユーザ入力／出力デバイス（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）、並びにネットワーク接続といった１つ以上の他のコンポーネントと連結される１つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、１つ以上のバス又はブリッジ（バスコントローラとも呼ばれる）を通じて行われる。記憶デバイス及びネットワークトラフィックを搬送する信号は、１つ以上の非一時的で有形のコンピュータ可読媒体及び一時的なコンピュータ可読通信媒体をそれぞれ表現する。従って、所与の電子デバイスの記憶デバイスは、典型的には、その電子デバイスの１つ以上のプロセッサのセット上での実行のためのコード及び／又はデータを記憶する。当然ながら、本発明の実施形態の１つ以上の部分は、ソフトウェア、ファームウェア、及び／又はハードウェアの様々な組み合わせを用いて実装されてよい。
【００１３】
［概要］
スプリットアーキテクチャデバイスは、データプレーンと制御プレーンとの間の機能性を分割するデバイスである。１つのネットワークエレメント内でその分割を厳密に行うことができ、又は、一群の転送エレメントとは別個に制御エレメントをハウジングするといったように、ネットワークエレメントの内部的な部分及び外部的な部分の双方に分割が関与することもできる。ここで使用されるところによれば、ネットワークエレメントは、単一の物理的筐体内にいくつの転送エレメント及び制御エレメントを収容していてもよいデバイスをいう。但し、実施形態は、単一のネットワークエレメント内での実装には制限されない。本方法及びシステムは、分散的な実装を包含することができ、その場合には、別個のネットワークエレメント内にハウジングされる転送エレメント及び／又は制御エレメントが、ここで説明されるプロセスを実装する。例えば、制御エレメントは、転送エレメントとは別個の物理的筐体内にあってもよい。１つの実施形態において、ネットワークエレメントは、（ＲＦＣ５８１０及びＲＦＣ５９１２により定義されている通りの）ＩＥＴＦ（Internet  Engineering  Task  Force）  ＦｏｒＣＥＳ（Forwarding  and  Control  Element  Separation）プロトコルスイートに準拠し得る。ＦｏｒＣＥＳプロトコルスイートは、各転送プレーンエレメントのケイパビリティについての記述の単位として、論理機能ブロック（ＬＦＢ）を使用する。制御エレメント（ＣＥ）がＦＥの構成情報を取得し及び変更することができるように、ＦＥ内のデータプレーンハンドリングの構成を記述するために、それらブロックが使用される。
【００１４】
各ＬＦＢは、関連付けられるＦＥにとって固有であり、ＬＦＢの定義は、ＬＦＢのセマンティクスの英語での記述と共に、パケットを送受信するためのポートのフォーマルな定義、パケットに関連付けられるメタデータ、及びＬＦＢのどの部分をＣＥが読み書き可能であるかを左右するブロックのパラメータを含む。ＲＦＣ５８１０及びＲＦＣ５８１２の定義は、ＦＥプロトコルＬＦＢ及びＦＥオブジェクトＬＦＢという２つの特別なＬＦＢを含む。これらは、各ＦＥによりインスタンス化されることを要し、各ＦＥは、このクラスのＬＦＢのインスタンスをちょうど１つ有する。ＬＦＢクラスの定義は、全てのＦＥにとって共通であり、ＣＥに知られている。各ＦＥは、自ら又はＣＥの指示で、ＬＦＢクラスのローカルインスタンスをインスタンス化する（即ち、生成する）。よって、各ＬＦＢインスタンスは、所与のＦＥ内にあり、その明細（particulars）は当該ＦＥにとって固有である。ＬＦＢのクラス定義は符号化され、クラスの機能及び変数の書面化された説明をなす。１つの実施形態において、ＣＥは事前にクラスと２つのＬＦＢインスタンス（即ち、ＦＥプロトコルＬＦＢ及びＦＥオブジェクトＬＦＢ）についてのインスタンス識別子（ＩＤ）とを知得しており、したがって、その中の情報を読み取り及びその中に情報を設定してＦＥとのインタラクションを開始することができる。
【００１５】
ＦＥプロトコルＬＦＢは、ＦＥとＣＥとの間のプロトコルインタラクションについての情報を表現する。これは、サポートされるプロトコルバージョンについての情報を含む。ＦＥオブジェクトＬＦＢは、どのＬＦＢクラスをサポートするか、ＦＥ上にどのＬＦＢインスタンスがその時点で存在するか、及びそれらインスタンスがどのように相互接続されているかといった、ＦＥについての全ての情報を表現する。ＦｏｒＣＥＳの実装が例示の手法で提供されているが、ここで説明される原理及び構造が他のスプリットアーキテクチャシステム及び類似のスプリットアーキテクチャシステムにも適用可能であることが当業者により理解されるはずである。
【００１６】
スプリットアーキテクチャのケイパビリティ管理のための方法及び装置の本実施形態の利点は、実装されている基本的なプロトコルの仕組み及び構造を変更することなく、システムワイドに（即ち、ネットワークエレメント並びに／又は全ての関連するＣＥ及びＦｅを通じて）プロトコル及び転送ケイパビリティに柔軟な変更を行うことをそれらが可能とすることを含む。プロトコルの機構の変更無しで複数のデバイスケイパビリティをサポートすることができ、プロトコルの変更さえ容易に追加することができる。１つの実施形態では、それら利点は、ＦｏｒＣＥＳシステムに向けて設計された仕組みを活用することにより獲得される。
【００１７】
従来技術は、多くの問題及び欠点によって制限を受けており、それらはここで説明される実施形態により克服される。（例えば、ＲＦＣ５８１０に記述されている通りの）ＦｏｒＣＥＳはベースであるＦＥオブジェクトＬＦＢの新たなバージョンを許容するが、それをサポートすることは困難であり、そうした変更はコアなＦｏｒＣＥＳの変更を反映するためにのみなされるべきである。そうしたＦｏｒＣＥＳへの変更は、新たな標準の採択と合意とを要するが、それは困難かつ獲得のために時間を浪費する。そうした根本的な変更が無ければ、従来技術は、ＦＥがある特定のデバイスワイドなケイパビリティを有することをＣＥへ通知することのできる手段としての仕組みを提供しない。特定のＬＦＢクラスをサポートする能力によってケイパビリティを表現可能であれば、それは既に定義されている。しかしながら、ＦＥがＣＥと通信する必要のあるシステムワイドなパラメータといったように、変更がより一般的であれば、ＦＥオブジェクトＬＦＢの新たなバージョンの生成は、そうした問題に対して明らかに間違った解である。例えば、新たなプロトコルの拡張がサポートされるかが課題である場合にはどうであろうか？
【００１８】
本発明の実施形態は、従来技術のこれら制限及び欠点を解決する。本方法及びシステムは、対象の特定のドメインについてのシステムワイドなケイパビリティに結び付けられる新たなＬＦＢクラスの生成によって表現されるＦＥケイパビリティの検出を可能とする。そして、ＦＥは、どのようなインスタンスＩＤが選択されようともそれと共に当該クラスの単一のインスタンスを生成することができる。ＣＥは、その情報を取得し及び利用して、ＦＥが特定のケイパビリティをサポートしているかを判定することができる。ＲＦＣ５８１２内に含まれる定義済みのＸＭＬスキーマに適合するＸＭＬファイルとして、新たなＬＦＢの定義が生成される。このケースでは、ＬＦＢは、メタデータを有さず、パケットフォーマットが無く、及び入出力ポートが無いという点において独特となる。
【００１９】
よって、１つの例示的な応用例において、（ＦｏｒＣＥＳプロトコルを用いて）ＯｐｅｎＦｌｏｗスキーマのサポートされるバージョンについての情報を提供する必要があれば、ＯｐｅｎＦｌｏｗサポートＬＦＢを定義することができ、ＦＥがそのインスタンスを生成することになり、ＣＥはそれを読み取る（及び、適切であれば書き込む）ことができる。同様に、他の例示的な応用例において、動作のスタート時間及びストップ時間を追加するプロトコル拡張のサポートを示すように、新たなＬＦＢを定義することができる。これは、プロトコルの新たなバージョンではないが、新たなプロトコルケイパビリティである。そのケイパビリティを示すためには、ＣＥに知られている新たなＬＦＢクラスをサポート可能であることをＦＥがレポートすることで十分なはずであり、新たなＬＦＢクラスを例えばStartStopTimeProtocolという。それどころか、これはプロトコル変更の一種であり、CommissioningInteractionProtocolのための新たなＬＦＢがサポートされるはずであって、これはＦＥがサポート可能な多様なケイパビリティを表現するフィールドを有するであろう。その値は、ＦＥにより、実際に何を行い得るかを反映させるように生成されるＬＦＢのインスタンスにおいてレポートされる。ＬＦＢを用いるこの方法及びシステムは、リソース、セキュリティ又は他のシステムワイドなケイパビリティを反映をするようにも拡張されることができる。
【００２０】
図１は、スプリットアーキテクチャを伴うネットワークエレメントの１つの実施形態の図である。１つの実施形態において、ネットワークエレメントは、ルータ１０１、ブリッジ又は類似のネットワーキングデバイスである。ルータ１０１は、いかなる数の制御エレメント（ＣＥ）１０３Ａ、Ｂ及びいかなる数の転送エレメント（ＦＥ）１０９Ａ〜Ｃを含むこともできる。ＣＥ１０３Ａ、Ｂは、バス１２７、インターコネクト又は類似の通信メカニズム上で、ＦＥと通信することができる。１つの実施形態において、ＣＥは、ルータ１０１から遠隔に、他のルータ又はコンピューティングデバイス内にあってもよく、ネットワーク１１１又は類似の通信メカニズム上でＦＥと通信することができる。
【００２１】
１つの実施形態において、ＣＥ１０３Ａ、Ｂは、ルータ又は類似のネットワークエレメントのコンポーネント内のラインカード上に実装される。他の実施形態において、ＣＥは、汎用プロセッサにより実装される。図１は、複数のプロセッサとメモリとを包含する一群のＣＥ及びＦＥを示しており、ＣＥがそれらリソースの組合せとして実装される様子を描いている。リソースは、別個のラインカード上、共通のマザーボード上に配置されてもよく、又は同様に実装され得る。上で注記したように、ＣＥ及びＦＥを、複数のネットワークエレメント内に又はそれらをまたいで分散して実装することもできる。注記したように、各ＣＥ１０３Ａ、Ｂは、プロセッサ１２３、メモリ１２５及びネットワークエレメントの類似のコンポーネントにより実装され得る。当業者は、ルータ１０１及びＦＥ１０９Ａ〜Ｃの動作を制御し及び構成するためのＣＥの機能性を実装する、通信インタフェース、インターコネクト、特殊処理デバイス及び類似のコンポーネントにＣＥが依拠することができることを理解するであろう。その機能は、ＦＥケイパビリティ管理モジュール１０７により実装される転送エレメント（ＦＥ）ケイパビリティ管理を含み、ＦＥケイパビリティ管理モジュール１０７は、ＦＥケイパビリティモデル１０５を維持する。ＦＥケイパビリティモデル１０５は、Ｆｅ１０９Ａ〜Ｃの各々のケイパビリティを記憶するデータ構造である。この情報を利用して、あるタイプのトラフィックを処理し、ある特定のＦＥのケイパビリティを活用するためにデータトラフィックをそれらＦＥへルーティングする、ようにＦＥ１０９Ａ〜Ｃを構成することができる。
【００２２】
ＦＥケイパビリティ管理モジュール１０７は、それぞれのＦＥ１０９Ａ〜Ｃの各々から、ＦＥケイパビリティを取得し得る。ＦＥケイパビリティ管理モジュール１０７は、図２を基準にこれ以降で議論するようにして、この情報を取得し得る。ＦＥケイパビリティ管理モジュール１０７は、ＦＥ１０９Ａ〜Ｃ上のＦＥケイパビリティモジュール１１３と通信して、ケイパビリティ情報を取得することができる。一旦受信されると、ケイパビリティ情報は、ＦＥケイパビリティ管理モジュール１０７により、ＦＥケイパビリティモデル１０５内で記憶され又は更新される。ＦＥケイパビリティ管理及びモデルを複数のＣＥ１０３Ａ、Ｂにわたって分散させることができ、又は、ＣＥ１０３Ａ、Ｂの双方が障害のケースでのバックアップを提供するように冗長的に機能を実行することができる。
【００２３】
各ＦＥ１０９Ａ〜Ｃは、ネットワーク１１１上の一群のポートを通じて受信されるデータパケットの処理及び転送を管理し得る。ネットワーク１１１は、ＩＰ（Internet  Protocol）ネットワーク、イーサネットベースのＬＡＮ（local  area  network）又は類似のネットワークを含むいかなるタイプのネットワークであってもよい。他の実施形態において、ルータ１０１は、ＦＥ１０９Ａ〜Ｃの様々なポートを通じて複数のネットワーク１１１へ接続され得る。ＦＥ１０９Ａ〜Ｃは、バス１２７又は類似の通信メカニズムを通じてＣＥ１０３Ａ、Ｂと通信する。ＦＥ１０９Ａ〜Ｃは、バス１２７、スイッチファブリック又は類似の通信メカニズムを通じて互いに通信し得る。ＦＥ１０９Ａ〜Ｃは、自身のネットワーク１１１ポートを通じて受信されるデータパケットを、各データパケットのルートに沿ったネクストホップへつながるネットワーク１１１ポートを有する他のＦＥ１０９Ａ〜Ｃへ転送する。
【００２４】
上で議論したＣＥに関し、ＦＥ１０９Ａ〜Ｃは、データパケットの処理及び転送、並びにＦＥ１０９Ａ〜Ｃの類似の機能のための、プロセッサ１１９、メモリ１１５及び類似のコンポーネントによって実装され得る。プロセッサ１１９及びメモリ１１５は、ラインカード、ネットワークエレメントの個別コンポーネント若しくはネットワークエレメントの共有コンポーネント、又は同様に構成されるデバイスといったコンポーネントであり得る。プロセッサ１１９は、レベル２及びレベル３のデータパケット処理を実行し、転送テーブル内でネクストホップ情報をルックアップし、並びに類似のルーティング及び転送の機能性を提供することができる。１つの実施形態において、ＦＥ１０９Ａ〜Ｃは、各ＦＥ１０９Ａ〜Ｃのケイパビリティ及び／又はステートを表現するデータ構造であるＦＥオブジェクトをインスタンス化し及び維持する。ＦＥケイパビリティモジュール１１３は、制御エレメント１０３からの通信信号及び情報要求を、ＦＥケイパビリティ管理モジュール１０７からＦＥケイパビリティモジュール１１３を通じて受信することができる。１つの実施形態において、ＦＥケイパビリティモジュール１１３は、ＦＥケイパビリティ関連のサービスの目的のために特化したモジュールである。他の実施形態において、ＦＥケイパビリティモジュール１１３は、その機能に適用される、より汎用的なプロセスとして実装される。例えば、ＦＥ１０９Ａ〜Ｃは、ＣＥ１０３Ａ、ＢがＦＥオブジェクト１１７からのデータを要求し又は当該データにアクセスすることを可能とするＦｏｒＣＥＳプロトコルを実装することができる。この例において、ＣＥ１０３Ａ、Ｂは、標準的なＦｏｒＣＥＳプロトコルの特徴を用いて、各ＦＥ１０９Ａ〜Ｃによりサポートされ又はインスタンス化されるＬＦＢのリストへアクセスし、この場合、ＦＥケイパビリティ管理モジュール１０７は、個々のＦＥケイパビリティへのそれらＬＦＢの対応関係を認識している。
【００２５】
ＦＥオブジェクト１１７及びＦＥケイパビリティモジュール１１３は、ＦＥ１０９Ａ〜Ｃのメモリ１１５内に記憶され得る。メモリ１１５は、プロセッサ１１９によるデータ処理のための汎用メモリであってもよく、又はＦＥオブジェクト１１７及び／若しくはＦＥケイパビリティモジュール１１３のために特に専用化された記憶スペースであってもよい。各ＦＥは、同様のハードウェア構成を有してもよく、又は異なるハードウェア実装を有してもよく、各々はＦｏｒＣＥＳ又は類似のプロトコルを用いてＦＥケイパビリティ管理モジュール１０７との通信をサポートする。
【００２６】
図２は、ネットワークエレメントにおいて転送エレメントのケイパビリティを判定するためのプロセスの１つの実施形態のフローチャートである。１つの実施形態において、プロセスは、制御エレメントがネットワークエレメント内の各転送エレメントとの通信をスタートすることにより開始される（ブロック２０１）。制御エレメントは、転送エレメントの各々を通じた反復を行い、又はそれらと並列的に通信することができる。簡明さのために、単一の転送エレメントと通信するプロセスが説明される。しかしながら、当業者は、単一の転送エレメントとの通信に関してここで説明されるプロセス及び原理が複数の転送エレメントのケイパビリティを通信し及び収集することへ適用可能であることを理解するはずである。同様に、制御エレメントと転送エレメントとの間の通信は、例えばバス又は類似のインターコネクト上での単一のネットワークエレメントの範囲内のものとしてここで説明される。しかしながら、当該プロセス及び原理は、任意の数の中間的なコンピューティングデバイス及びネットワーキングデバイスを通じたネットワーク上で接続される別個のネットワークエレメント又はコンピューティングデバイス内の制御エレメントと転送エレメントとの間の通信にも適用可能である。
【００２７】
１つの例示的な実施形態において、制御エレメントと転送エレメントとの間の通信は、制御エレメントが転送エレメントのデータを交換し転送エレメントのデータ構造の読み書きをすることを可能とするために、ＦｏｒＣＥＳプロトコルを利用する。リモートでの実施形態において、ＦｏｒＣＥＳといったプロトコルを、一般的なネットワーキングプロトコル、及び転送エレメントと制御エレメントとの間の通信を可能にするためのカプセル化に組合せることができる。通信の開始は、転送エレメントと制御エレメントとの間の通信チャネルのオープンという形式をとり得る。他の実施形態において、通信の開始は、制御エレメントが転送エレメントを認識するようになり及び転送エレメントを特定できるための手段であるディスカバリプロセス、構成プロセス又は類似のプロセスであり得る。
【００２８】
制御エレメントは、転送エレメントに当該転送エレメントによりサポートされ又はインスタンス化された論理機能ブロックの一群の論理機能ブロック識別子を提供させるための要求を送信し得る（ブロック２０３）。上述したように、論理機能ブロックは、定義される一群のトラフィック及びポートについて実行されるべき機能又は動作を記述するために使用される。しかしながら、これら論理機能ブロックは、特定のケイパビリティと共にそれらケイパビリティのパラメータを表現するために生成され得る。そうした論理機能ブロックはポート定義及び類似のデータを有さず、表現されるケイパビリティは制御エレメントのＦＥケイパビリティ管理モジュールにとって既知でなければならない。インスタンス化され又はサポートされる論理機能ブロックの識別子のリストは、各転送エレメントのＦＥオブジェクト内で維持される。識別子のリストは、制御エレメントにとってアクセス可能であり、要求を受けて提供され得る（ブロック２０５）。他の実施形態において、それら識別子は、制御エレメントにより特に要求されることなく提供され得る。代わりに、転送エレメントは、システムスタートアップ時に及び／又は各論理機能ブロックがインスタンス化され若しくは追加される際に、自動的に識別子のリストを提供する。
【００２９】
論理機能ブロック識別子のリストの受信後に、識別子のいずれかが転送エレメントについての既知のケイパビリティにマッチするかの判定のためのチェックが行われる（ブロック２０７）。ケイパビリティは、運用上の構成又は類似のプロビジョニングによって知得されることができる。いかなる数の異なるケイパビリティをもそのやり方で定義することができる。同様に、ケイパビリティが一群のパラメータを包含する場合、その追加的なデータがＦＥオブジェクトから取得され、又は当該データは識別子のリストと同じ時に提供されることができる。そして、制御エレメントにより維持されるＦＥケイパビリティモデル内の当該転送エレメントに関連付けられるケイパビリティを更新するために、その受信データが使用される（ブロック２０９）。ＦＥケイパビリティモデルは、個々の任意の数の転送エレメントのケイパビリティを追跡可能な、任意のタイプの又はサイズのデータ構造であり得る。
【００３０】
制御エレメントがスタートアップ又は初期化の時にケイパビリティデータを要求するように構成されるケースでは、制御エレメントは、転送エレメントで何らかの新たな又は追加的なケイパビリティがインスタンス化され又は追加されたかを制御エレメントへ通知するように転送エレメントを構成することもできる（ブロック２１１）。新たな又は追加的なケイパビリティは、転送エレメントの更新されたファームウェア又は類似のソフトウェア、転送エレメントの構成の変化、及び類似のイベントに基づくことができる。他の実施形態において、制御エレメントは、転送エレメントに周期的にポーリングして、新たなケイパビリティが存在するかを判定することができる。
【００３１】
ここで説明したように、命令は、ある動作を実行するように構成され若しくは予め決定される機能性を有するＡＳＩＣ（application  specific  integrated  circuits）といったハードウェア、又は、非一時的なコンピュータ可読媒体内で具現化されるメモリ内に記憶されるソフトウェア命令の特定の構成への言及であってよい。従って、図に示された技法は、１つ以上の電子デバイス（例えば、エンドステーション、ネットワークエレメント）上に記憶され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的なコンピュータ可読記憶媒体（例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読取り専用メモリ、フラッシュメモリデバイス、相変化メモリ）及び一時的なコンピュータ可読通信媒体（例えば、搬送波、赤外線信号、デジタル信号等といった電気的、光学的、音響的、若しくは他の形式の伝搬信号）、といったコンピュータ可読媒体を使用して、コード及びデータを記憶し、並びに（内部的に及び／又はネットワーク上で他の電子デバイスと）通信する。さらに、そのような電子デバイスは、典型的には、１つ以上の記憶デバイス（非一時的な機械可読記憶媒体）、ユーザ入力／出力デバイス（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）、並びにネットワーク接続といった、１つ以上の他のコンポーネントに連結される１つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、１つ以上のバス及びブリッジ（バスコントローラとも呼ばれる）を通じて行われる。よって、所与の電子デバイスの記憶デバイスは、典型的には、当該電子デバイスの１つ以上のプロセッサのセット上での実行のためのコード及び／又はデータを記憶する。当然ながら、本発明の実施形態の１つ以上の部分が、ソフトウェア、ファームウェア、及び／又はハードウェアの様々な組み合わせを用いて実装されてもよい。
【００３２】
図面中のフロー図は本発明のある実施形態により実行される動作の特定の順序を示しているが、そのような順序は例示的なものであることが理解されるべきである（例えば、代替的な実施形態は、異なる順序で動作を実行し、ある複数の動作を組み合わせ、ある複数の動作を重複させるなどしてもよい）。
【００３３】
本発明をいくつかの実施形態に関して説明してきたが、本発明は、説明した実施形態に限定されるものではなく、添付の請求項の思想および範囲内で修正及び変形と共に実践されることができることを、当業者は認識するであろう。よって、本説明は、限定の代わりに例示であると捉えられるべきである。
【図１】
0005985758.tif 000002
【図２】
0005985758.tif 000003