以下の規格は、本出願において参照され、引用により本明細書に組み込まれている:1)以前にはIEEE 802.3adタスクフォースによって2000年3月に追加されたIEEE 802.3規格の第43項であった、現在は2008年11月3日にIEEE 802.1AX−2008に組み込まれているとおりのものであるリンクアグリゲーション制御プロトコル(LACP)、および2)IEEE規格802.1Q、仮想ブリッジローカルエリアネットワーク、2003年版。
図1aは、仮想ファブリックリンク(VFL)120と称される制御およびアドレッシング情報を伝達するために専用リンクアグリゲートグループによって動作可能に結合された複数のネットワークノード110を備える仮想シャーシシステム100の一実施形態を示している。VFL120およびその動作は、引用により本明細書に組み込まれ、すべての目的に関して本米国特許出願の一部を成す、2011年1月20日に出願された係属中の米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」においてより詳しく説明されている。VFL120は、トラフィック転送、MACアドレッシング、マルチキャストフロー、アドレス解決プロトコル(ARP)テーブル、レイヤ2制御プロトコル(例えば、スパニングツリー、イーサネットリング保護、論理リンク検出プロトコル)、ルーティングプロトコル(例えば、RIP、OSPF、BGP)、ならびにネットワークノードおよび外部リンクのステータスに関係する情報の交換のためネットワークノード110間の接続を構成する。
一実施形態において、複数のネットワークノード110は、統合された管理機能を持つ単一の仮想ネットワークノードとして動作する。マスターネットワークノード、例えば、ネットワークノード110aが、選択され、マスターネットワークノード110のローカルMACアドレスが、他のネットワークノード110によって仮想シャーシシステム100のマスターMACアドレスとして採用される。マスターMACアドレスは、仮想シャーシシステム100内のネットワークノード110をアドレッシングするために外部ノード112によって利用される。したがって、ネットワークノード110は、外部ノード112に対して透過的に動作し、外部ノード112によって単一の論理デバイスとして扱われる。
外部ノード112は、単一のトランクもしくはリンク、リンクアグリゲートグループ(LAG)116、または仮想シャーシリンクアグリゲートグループ(VC−LAG)114を使用して仮想シャーシシステム100内の1つまたは複数のネットワークノード110に結合するように動作可能である。回復力を高め、単一障害点、さらには2つの障害点を取り除くために、VC−LAG114は、外部ノードを仮想シャーシシステム100内の2つまたはそれ以上のネットワークノード110に結合するように動作可能である。外部ノードは、トラフィックをVC−LAG114の利用可能なリンクにまたがって分散させるためにロードバランシング技術を使用することができる。例えば、VC−LAG114の物理リンクのうちの1つは、帯域幅をより効果的に使用できるようにするロードバランシングアルゴリズム(通常は送信元および送信先のインターネットプロトコル(IP)または媒体アクセス制御(MAC)アドレス情報に作用するハッシュ関数を伴う)に基づきパケットを送信するため外部ノードによって選択される。
通常動作では、仮想シャーシシステム内のネットワークノード110は、広範なレイヤ2およびレイヤ3のプロトコルによるシステム識別のためにマスターMACアドレスを共有する。例えば、スパニングツリープロトコルおよびLACPプロトコルは、マスターMACアドレスを仮想シャーシシステム110の識別子として使用する。インターネットプロトコル(IP)ルーティングでも、マスターMACアドレスを利用して、ネットワーク内の外部ネットワーク要素に対して仮想シャーシシステム100を識別する、例えば、ピアがマスターMACアドレスを、仮想シャーシシステム100を宛先とするパケットに対するイーサネット送信先アドレスとして使用する。したがって、仮想シャーシシステム100内のネットワークノード110は、外部ノード112によって単一の論理ノードとしてみなされる。それに加えて、仮想シャーシシステム100内のネットワークノード110は、統合されたアドミニストレーション、オペレーション、およびメンテナンスマネジメントシステムにより単一の論理ノードとして管理される。
仮想シャーシシステム100内のネットワークノード110は、外部ノード112によって単一の論理デバイスとして扱われるので、外部ノード112は、VC−LAC114のすべてのリンク上でトラフィックをアクティブに転送するように動作可能である。この機能は、キャリアグレード検出およびエッジアップリンク障害さらにはネットワークノード110の障害までのコンバージェンス時間を円滑にしながら外部ノードとネットワークノードとの間のスパニングツリープロトコルを必要とすることなくネットワークノード110への外部ノード112のマルチホーミングを可能にする。仮想シャーシシステム100へのVC−LAC114のすべてのアップリンクのアクティブ転送モードの別の利点は、VC−LAC114のリンクの帯域幅の使用効率が高まることである。
仮想シャーシシステム100内で、ネットワークノード110は、シャーシ識別子またはシャーシIDと称されるグローバルに一意的な識別子を割り当てられる。ネットワークノード110は、内部VFL識別子(VFID)を仮想シャーシシステム100内の構成されたVFL120のそれぞれに割り当てる。VFLに対するVFIDは、VFL120の内部識別および構成のために利用されるので、ネットワークノード110は、同じ、または異なるVFIDを、別のネットワークノード110によって割り当てられるようにVFL120に割り当てることができる。VFL120は、2011年1月20日に出願された米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」でさらに詳しく説明されているように、トラフィック転送、MACアドレッシング、マルチキャストフロー、アドレス解決プロトコル(ARP)テーブル、レイヤ2制御プロトコル(例えば、スパニングツリー、イーサネットリング保護、論理リンク検出プロトコル)、ルーティングプロトコル(例えば、RIP、OSPF、BGP)に関する情報をネットワークノード110の間で交換するための接続を提供する。一実施形態において、ネットワークノード110間の媒体アクセス制御(MAC)アドレステーブルなどのレイヤ2アドレステーブルの同期化は、VFL120上のレイヤ2パケットフローによって、さらには定期的なキープアライブメカニズムによって駆動され、これにより、所定のMACアドレスを所有するネットワークノード110は、送信元アドレスなどのMACアドレスを運ぶ特定のパケットのフラッディングを引き起こす。同期化メカニズムは、また、ネットワークノード110またはそのコンポーネントのうちのいくつかが故障した場合に対処する標準的なMACフラッシングメカニズムを実装する必要もある。MACアドレス送信元学習が、未知の送信先MACアドレスのフラッディングを通じてVFL120上で有効化される。送信元学習において、ネットワークノード110は、送信元シャーシID、送信元ネットワークインターフェース識別子、および送信元ポート識別子情報などの、送信元MACアドレスおよび関連するハードウェアデバイス情報を含むプリペンデッドヘッダーを備えるパケットをVFL120を介して交換する。ネットワークノード110は、この情報を使用して、最低限のメッセージングベースMACテーブル同期化で同期化されたMACアドレステーブルを維持する。同期化されたMACアドレステーブルを利用することで、ネットワークノード110は、仮想シャーシシステム100内のネットワークノード110の間でパケットを処理し、転送するように動作可能である。
図1aは、部分的メッシュネットワークトポロジーにおいてネットワークノード110が結合される状況を示している。しかし、仮想シャーシシステム100内のネットワークノード110は、仮想シャーシシステム100の動作に影響を及ぼすことなく複数の種類のネットワークトポロジーのうちのどれかにおいて結合され得る。図1bは、複数のネットワークノード110がVFL120によって結合されたリングネットワークトポロジーで構成されている仮想シャーシシステム100を示している。図1cは、複数のネットワークノード110がハブアンドスポーク型またはスター型ネットワークトポロジーで構成されている仮想シャーシシステム100を示している。線状、ツリー型、完全メッシュ、ハイブリッドなどの、図示されていない他のネットワークトポロジーも、仮想シャーシシステム100によってサポートされる。複数の異なる種類のネットワークトポロジーをサポートするために、仮想シャーシシステム100内のネットワークノード110は、ネットワークトポロジー発見プロセスを実行するように動作可能である。
図2は、仮想シャーシシステム100におけるネットワークトポロジー発見プロセス130の一実施形態の論理フロー図を示している。このプロセスは、起動時に、リブート時に、ネットワークのステータス変化の指示があると、または所定の時間的周期で、仮想シャーシシステム100内のアクティブネットワークノード110によって実行される。ステップ132において、ネットワークノード110は、それが仮想シャーシモード(VCM)で動作していることを検出する。例えば、ネットワークノード110の1つまたは複数のパラメータは、仮想シャーシ動作モードを指示するように構成される。ネットワークノード110は、それらのパラメータが仮想シャーシモード動作(例えば、スタンドアロンモードまたはマルチシャーシモードではなく)を指示していることを、検出する。次いで、ネットワークノード110は、ステップ134で、仮想シャーシシステム100内の他のネットワークノード110を発見し、トポロジーおよび構成情報を交換するために1つまたは複数の制御プロトコルを実行する。ネットワークノード110は、この情報を使用して、仮想シャーシシステム100のトポロジーデータベースを構築する。トポロジーデータベースは:他のネットワークノード110に対する識別情報(例えば、ローカルMACアドレス、シャーシ識別子)、アクティブVFL120(または他のアクティブスイッチ間リンク)をホストするネットワークインターフェースに対する識別情報、VFL120およびネットワークノード110上のその関連するメンバーポートに対する識別情報を含む。ネットワークノード110は、こうして、ネットワークノード110間のアクティブ接続および仮想シャーシシステム100内の他のネットワークノード110の構成情報を学習する。以下の表1は、発見フェーズの後の、この例では例えばシャーシID=1を有する、ネットワークノード110aに対するトポロジーデータベースの一例である。表1は、トポロジーデータベース内に格納されている例示的な情報を含むが、図示されていない他の情報およびデータも、トポロジーデータベースに含まれ得る。それに加えて、トポロジーデータベースは、別のデータベースもしくはテーブル内に格納されるか、またはネットワークノード110内の他のテーブルまたはデータベースと組み合わされ得る。
図2のステップ136において、マスターネットワークノードは、仮想シャーシシステム100に対する管理および他のタスクを実行するように選択される。次いで、マスターネットワークノードのローカルMACアドレスが、他のネットワークノード110によって採用される。以下の表2は、シャーシID=1である選択されたマスターネットワークノード110に対するトポロジーデータベースの一例である。表2を見るとわかるように、シャーシID=1であるネットワークノードは、マスターの役割を有するものとして指示され、他のノードは、トポロジーデータベース内のスレーブの役割を有するものとして指示される。
マスターネットワークノード110の選択は、シャーシ優先度、アップタイム、シャーシID、およびシャーシMACアドレスを含むパラメータの優先順位付きされたリストに基づく。アップタイムのパラメータは、より長い期間にわたって動作しているネットワークノード110に優先付けする。シャーシ優先度のパラメータは、シャーシIDまたはアップタイムに関係なくマスターネットワークノード110のユーザープリファレンスを定義するユーザー構成優先度である。さまざまなパラメータを使用することで、マスターネットワークノード110の選択の柔軟性を高める。トポロジーデータベースに示されているシャーシグループパラメータは、仮想シャーシシステム100を識別する。異なるシャーシグループ識別を有する1つまたは複数の追加の仮想シャーシシステム100も、ネットワーク内で動作可能であるものとしてよい。トポロジーデータベースは、ネットワークノード110内のアクティブまたはプライマリ制御マネージャモジュール(CMM)、およびネットワークノード110のシャーシタイプを識別する。
ネットワークトポロジー発見プロセス130のステップ138において、ネットワークノード110は、1つまたは複数のプロトコルを実行して、仮想シャーシシステム100内の接続およびネットワークノード110の状態もしくはステータスを監視する。ネットワークノード110の現在の状態は、トポロジーデータベース内に維持される。仮想シャーシシステム100内のネットワークノード110における検出されたステータスの変化は、ルーティングの変更、マスターノードの変更、などを開始し得る。ネットワークノード110のトポロジー自己発見および監視を通じて、仮想シャーシシステム100は、最低限度の事前構成および介入で複数の異なる種類のネットワークトポロジーをサポートするように動作可能である。
図3は、マスターネットワークノード110の選択の後、仮想シャーシシステム100内のネットワークノード110におけるトポロジーデータベース144の一例を示している。この例では、ネットワークノード110aは、マスターネットワークノードとして採用され、ネットワークノード110bおよび110cはスレーブノードである。ネットワークノード110aのローカルMACアドレス(例えば、マスターMACアドレス=A)は、ネットワークノード110a−cによって仮想シャーシMACアドレスとして採用される。それに加えて、マスターMACアドレス(MAC=A)は、管理アプリケーションのアプリケーションMACアドレスとして採用される。
仮想シャーシシステム100は、ネットワークノード110に、単一のモジュール、スタッカブル、またはマルチスロットシャーシベースのアーキテクチャなどの、1つまたは複数の異なる種類のノードアーキテクチャを含めるようにも動作可能である。図4は、異なる種類のノードアーキテクチャを使用する仮想シャーシシステム100におけるネットワークノード110の一実施形態の概略ブロック図を示している。この例では、ネットワークノード110aは、複数のネットワークインターフェースモジュール152a−nを備えるマルチスロットシャーシベースのアーキテクチャを有する。一般に、マルチスロットシャーシベースのアーキテクチャは、回線カードまたはポートモジュールなどの、1つまたは複数のネットワークインターフェースモジュール(NIM)152a−nと、1つのエンクロージャ、制御マネージャモジュール(CMM)150a−b、および共通電源を共有する。ネットワークインターフェースモジュール152nは、キューイングモジュール212およびスイッチングモジュール210を備え、シャーシのバックプレーンに一体化されたファブリックスイッチ214によって接続される。
この例におけるネットワークノード110bは、スタッカブルノードアーキテクチャを有し、バックプレーン接続142によって結合された複数のネットワーク要素140a−nを備える。それぞれのネットワーク要素140a−nは、スタンドアロンノードとして動作可能であり、それ専用のエンクロージャ、制御マネージャモジュール(CMM)150、スイッチングモジュール210、キューイングモジュール212、および電源を備える。いくつかのスタックアーキテクチャでは、1つのネットワーク要素(この例におけるネットワーク要素140a)は、管理を目的としてスタックの主またはマスターユニットとして指定される。
ネットワークノード110cは、単一のスタッカブル要素140などの単一モジュールノードアーキテクチャ、または代替的に、単一のネットワークインターフェースモジュール152を備えるマルチスロットシャーシベースのアーキテクチャを有する。
ネットワークノード110a−cは、図1a−cの仮想シャーシシステム100内のネットワーク要素110のうちの1つまたは複数に対応する。例えば、仮想シャーシシステム100は、マルチスロットシャーシベースのノードアーキテクチャのみを有するネットワークノード110を備えるか、またはスタッカブルノードアーキテクチャのみを有するネットワークノード110を備えるか、またはマルチスロットシャーシベースのアーキテクチャ、スタッカブルノードアーキテクチャ、および単一モジュールノードアーキテクチャなどの、2つまたはそれ以上の種類のノードアーキテクチャを有するネットワークノード110の組み合わせを備えるように動作可能である。図示されていないけれども、仮想シャーシシステム100は、他の種類のノードアーキテクチャおよび構成からなるネットワークノード110を備えることもできる。
ネットワークノード110aおよびネットワークノード110bは、VFL120aによって動作可能に結合される。ネットワークノード110aおよび110bは、ネットワークノード110aに対するVFID=3、および図3に示されているようなネットワークノード110bによるVFID=0などの、内部VFL識別子(VFID)を有するVFL120aを指定する。ネットワークノード110aおよびネットワークノード110cは、VFL120bによって動作可能に結合される。ネットワークノード110aおよび110cは、ネットワークノード110aに対するVFID=2、および図3に示されているようなネットワークノード110cによるVFID=1などの、内部VFL識別子(VFID)を有するVFL120bを指定する。それに加えて、ネットワークノード110a−cは、図1a−cに示されているように追加のVFL120によって1つまたは複数の他のネットワークノード110に結合されるように動作可能でもある。ネットワークノード110aと110bとの間のVFL120aは、仮想シャーシシステム100内のさまざまなネットワークノード110の間のVFL120の動作および構成の一般化として以下で説明されている。
ネットワークノード110aとネットワークノード110bとの間のVFL120aは、1つまたは複数のスイッチングモジュール210における1つまたは複数のVFLメンバーポートに動作可能に結合される。1つまたは複数のポート、リンクまたはモジュールに障害が発生した場合に冗長性を利用できるようにするため、VFL120aは、ネットワークノード110aおよび110bの異なるスイッチングモジュール210の間のLACPまたは類似のアグリゲートプロトコルを使用して生成される複数のアグリゲートリンクを含むように動作可能である。例えば、図4では、VFL120aは、ネットワークノード110aのNIM152aとネットワークノード110bのスタッカブルネットワーク要素140aとの間の物理リンクの第1のサブセットA、およびネットワークノード110aのNIM152bとネットワークノード110bのスタッカブルネットワーク要素140bとの間の物理リンクの第2のサブセットBを備える。
ネットワークノード110は、仮想シャーシシステム100内で一意的なシャーシ識別子を割り当てられる。それぞれのネットワークノード110に対するシャーシIDは、一意的かつグローバルであり、トポロジー発見を通じて、ネットワークノード110は、仮想シャーシシステム100内のピアネットワークノード110のシャーシIDを認識する。それに加えて、ネットワークノード110内のスイッチングモジュール210およびポートインターフェースなどのさまざまなコンポーネントに対する一意的なハードウェアデバイス識別子またはモジュール識別子(MID)が生成され、これにより、ローカルおよびリモートのオブジェクトの管理が可能になる。一実施形態において、スイッチングモジュール210に対するハードウェアデバイス識別子MIDは、仮想シャーシシステム内でグローバルな意味を有するが、キューイングモジュール212などの他のコンポーネントに対するMIDは、ローカルな意味しか有し得ない。例えば、スイッチングモジュール210に割り当てられたハードウェアデバイス識別子は、他のネットワークノード110によって知られるが、他のデバイスに対するハードウェアデバイス識別子は、ローカルネットワークノード110に制限され、他のネットワークノード110に対しては意味がない。例えば、スイッチングモジュール210のポートインターフェースは、シャーシID、スイッチングモジュールID、およびポートインターフェースIDを含むグローバルな一意的ハードウェアデバイス識別子を割り当てられる。一実施形態において、仮想シャーシシステム内のネットワークノード110は、プリペンデッドヘッダーモードで動作し、VFL120を介してデータおよび制御パケットを交換する。
図5は、プリペンデッドヘッダーモードで動作するネットワークインターフェースモジュール(NIM)152の一実施形態の概略ブロック図をより詳細に示している。ネットワークインターフェースモジュール152が図示されているけれども、スタッカブルネットワーク要素140または単一のモジュールネットワーク要素は、プリペンデッドヘッダーモードで動作するために類似の機能を実行するように動作可能である。スイッチングモジュール210は、仮想シャーシシステム100から外部ノード112に接続されている複数の外部ポート240を備える。外部ポート240の1つまたは複数は、VC−LAG114、LAG116、単一のトランクまたはその他のトランクグループ、固定リンクなどに対するメンバーポートを備えることができる。外部ポート240は、銅線ポート(CAT−5E/CAT−6)、マルチモードファイバーポート(SX)、またはシングルモードファイバーポート(LX)などの、同じ物理インターフェースタイプを有するものとしてよい。別の実施形態において、外部ポート240は、1つまたは複数の異なる物理インターフェースタイプを有することができる。
外部ポート240は、スイッチングモジュール210に関連付けられているgportおよびdport値などの、外部ポートインターフェース識別子(PortID)、例えば、デバイスポート値を割り当てられる。一実施形態において、ネットワークノード110のシャーシID、スイッチングモジュール210のMID、および外部ポートインターフェース識別子(PortID)は、仮想シャーシシステム100内のネットワークノード110における物理外部ポートインターフェース240のグローバルな一意的識別子として使用される。
パケットが、外部ポートインターフェース240上で受信されると、スイッチングモジュール210は、そのパケットを、パケットの送信元および/または送信先MACアドレスに関連付けられているハードウェアデバイス情報(HDI)を含むようにプリペンデッドヘッダーを追加する(か、または他の何らかの形でパケットヘッダーを修正する)プリペンデッドパケットヘッダーインターフェース(PPHI)246に転送する。一実施形態において、プリペンデッドヘッダーは、パケット優先度およびロードバランス識別子などの他の情報を含み得る。パケットのMACアドレスに関連付けられているHDI情報を取得するために、PPHIは、MAC/HDI転送テーブル250でルックアッププロセスを実行する。アドレステーブルメモリ248に記憶されるMAC/HDI転送テーブル250は、MACアドレスおよび関連するハードウェアデバイス情報のリストを含む。ハードウェアデバイス情報は、ネットワークノード110、スイッチングモジュール210、および/またはパケットをルーティングするためのポートインターフェース240を一意的に識別する。ハードウェアデバイス情報は、例えば、シャーシID、スイッチングモジュール210のMID、および送信先MACアドレスに関連付けられている外部ポートインターフェース240のポートインターフェースIDを含む。MAC/HDI転送テーブル250は、送信元トランクマップ(source trunk map)、トランクビットマップテーブル(trunk bitmap table)、トランクグループテーブル(trunk group tables)、VLANマッピングテーブル、などの、1つまたは複数のテーブルを含み得る。一実施形態において、MAC/HDI転送テーブル250またはその一部は、NIM152のキューイングモジュールまたは他のモジュールにも配置され得る。
トポロジーデータベース144に基づき、VFLルーティング構成テーブル254がネットワークノード110側で生成され、ユニキャストトラフィックのルーティングを決定する。VFLルーティング構成テーブル254は、シャーシIDおよび関連付けられているVFL ID(VFID)を含む。シャーシIDに関連付けられているVFIDは、送信先シャーシIDによって識別されたネットワークノード110にパケットをルーティングするために仮想シャーシシステム100内のVFL120を識別する。一実施形態において、VFLルーティング構成テーブル254は、最短経路アルゴリズム、トラフィックベースのアルゴリズム、または他の種類のルーティングアルゴリズムを使用して生成される。図1aに示されている仮想シャーシシステム100に対するVFLルーティング構成テーブル254の一例が、以下の表3に示されている。
MAC/HDI転送テーブル250およびVFLルーティングテーブル254は、アドレステーブルメモリ248内の独立したテーブルとして示されているけれども、これらのテーブルは組み合わされるか、またはデータがテーブルの1つから他のテーブルに含められるか、またはテーブルは1つまたは複数の他のテーブルに分けて配置され得る。
一実施形態において、パケットのプリペンデッドヘッダー内のハードウェアデバイス情報HDIは、表3に示されているように、送信先シャーシIDに関連付けられているVFLポート252に対する送信VFIDを含む。プリペンデッドヘッダーは、ポートインターフェースID、スイッチングモジュール210のMID、およびシャーシIDなどの、パケットを受信する送信元ポートに関連付けられているハードウェアデバイス情報HDIも含む。VLAN ID、パケットタイプ(マルチキャスト、ユニキャスト、ブロードキャスト)、パケット優先度、およびロードバランス識別子などの追加情報も、一実施形態におけるプリペンデッドヘッダーに追加される。
次いで、プリペンデッドヘッダーを持つパケットは、ファブリックスイッチ214を介してのルーティングのためにキューイングモジュール212に送信される。VFLルーティング構成テーブル254に基づき、キューイングモジュール212は、プリペンデッドヘッダーを持つパケットを、送信VFL120に接続されているスイッチングモジュール210にルーティングする。
キューイングモジュール212は、パケットバッファ260、トラフィックおよびバッファ管理を行うためのキュー管理部262、ならびにグローバルHDIアドレステーブル264を備える。グローバルHDIアドレステーブル264は、送信VFL IDを他のNIM152のうちの1つまたは複数におけるキューイングモジュール212内の適切なキューにマッピングする。例えば、キューイングモジュール212は、送信VFL120を介して送信するためにVFLポートインターフェース252のうちの1つまたは複数に対する適切な出口キューにパケットを切り替える。一実施形態において、特定のVFLポートインターフェースに対応する出口キューの決定は、プリペンデッドヘッダー内のロードバランス識別子に動作可能に基づく。
スイッチングモジュール210およびキューイングモジュール212は、別の集積回路もしくはモジュールとして図示されているけれども、モジュールの1つまたは複数の機能もしくはコンポーネントは、他のモジュール上に含まれるか、または代替的モジュールに組み合わされるか、または他の何らかの方法で1つまたは複数の集積回路で実装され得る。
図6は、仮想シャーシシステム100におけるパケットのプリペンデッドヘッダーの一実施形態の概略ブロック図を示している。プリペンデッドヘッダー300は、送信元HDI302、送信先HDI304、VLAN ID306、パケットタイプ308、送信元MACアドレス310、および送信先MACアドレス312に対するフィールドを備える。一実施形態において、プリペンデッドヘッダーは、ロードバランス識別子314およびパケット優先度316も含み得る。送信先HDI304は、例えば、ポート識別子(デバイスポート(dport)および/またはグローバルポート値(GPV))、スイッチングモジュール210のMID、および送信先MACアドレスに関連付けられている送信先ネットワークノード110のシャーシIDを含む。送信元HDI302は、例えば、ポート識別子(デバイスポート(dport)および/またはグローバルポート値(GPV))、スイッチングモジュール210のMID、および送信元MACアドレスに関連付けられている送信元ネットワークノードのシャーシIDを含む。ロードバランス識別子314は、送信VFL120を介してパケットを送信するためのVFLメンバーポートを決定するためにキューイングモジュール212によって利用される。パケット優先度316は、特定の優先キューを決定するためにキューイングモジュール212によって利用される。類似の、または追加の情報と共にプリペンデッドヘッダー300内に追加の、または代替的なフィールドも収められ得る。
図7は、仮想シャーシシステム100におけるネットワークノード110aを通って別のネットワークノード110bに流れるパケットフローの一実施形態の概略ブロック図を示している。この例では、送信元MACアドレスが「MAC1」である外部ノード112は、送信先MACアドレスが「MAC2」であるデータパケットを送信する。この例ではシャーシID=1のネットワークノード110aは、例えば、スイッチングモジュール210n上でポートID=2、例えば、MID=31である、外部ポートインターフェース240でパケットを受信する。スイッチングモジュール210nは、送信先MACアドレスMAC2を抽出し、MAC/HDI転送テーブル250においてアドレステーブル探索を実行して送信先MACアドレスMAC2に関連付けられているハードウェアデバイス情報(HDI)を決定する。送信先HDIは、例えば、送信先シャーシIDおよびデバイスモジュール識別子(MID)ならびに送信先MACアドレスに関連付けられているポート識別子を含む。送信先HDIは、送信先MACアドレスに関連付けられている送信先デバイスへの経路内の1つまたは複数の他のネットワークノードもしくはハードウェアモジュールの識別子も含み得る。送信先MACアドレスが、別のネットワークノードに関連付けられている場合、例えば、送信先シャーシIDがローカルシャーシIDでない場合、スイッチングモジュール210は、送信先シャーシIDに関連付けられている送信VFL IDを決定する。送信VFL IDは、プリペンデッドヘッダー内の送信先HDIに追加され得る。例えば、図5では、VFLルーティングテーブル254は、送信先シャーシID=2がVFID=3を有するVFL120に関連付けられていることを示す。
スイッチングモジュール210nは、プリペンデッドヘッダー内に、発信元外部ポートインターフェースに関連付けられている送信元ハードウェアデバイス情報(HDI)、例えば、ポートID=2も含む。送信元HDIは、発信元スイッチングモジュール210のMID、送信元ポート識別子、送信元NIM152に対するMID、送信元シャーシIDなどの1つまたは複数のハードウェアデバイス識別子を含み得る。さらに、一実施形態では、プリペンデッドヘッダーは、パケット優先度、および元のパケットから取り出されたパラメータ(送信元MACアドレス、送信先MACアドレス、送信元IPアドレス、送信先IPアドレス)に基づき決定されるロードバランス識別子を含む。
プリペンデッドヘッダーを有するパケットはキューイングモジュール212nに送信され、次いで、このモジュールが、送信先HDIに基づきパケットを送信するためにネットワークノード110上のNIM152を決定する。送信先HDIが、ネットワークノード上のローカル外部ポートインターフェースを指示する場合(例えば、プリペンデッドヘッダーに収容される送信先MIDに基づき)、キューイングモジュールは、ローカル外部ポートインターフェースの対応するNIM152に送信するためにパケットを出口キューに入れる。図5に例示されている別の例では、送信先HDIが、パケットが仮想シャーシシステム100内の別のネットワークノード110にVFL120を介して送信される必要のあることを指示する場合、キューイングモジュールは、VFL IDから、パケット送信するための送信NIM152を決定する。この例では、キューイングモジュールは、VFID=3がNIM152aに動作可能に結合されることを決定し、ファブリックスイッチ214を介してプリペンデッドヘッダーを有するパケットをNIM152aに送信する。複数のスイッチングモジュール210が、送信VFL120に動作可能に結合されている場合、送信されるべきトラフィックは、ロードバランシング方法で複数のスイッチングモジュール210間に分散され得る。それに加えて、スイッチングモジュール210上のVFLメンバーポートの選択(高優先キュー、低優先度など)は、プリペンデッドヘッダーで運ばれるロードバランス識別子パラメータに動作可能に基づく。NIM152a上のモジュール212aが、プリペンデッドヘッダーを有するパケットを受信し、VFID=3を有するVFL120を介して送信するためパケットをキューに入れる。次いで、スイッチングモジュール210aは、送信元および/または送信先HDIを含むプリペンデッドヘッダーを有するパケットを、シャーシID=2を有するネットワークノード110bに、VFID=3を有するVFL120を介して送信する。
一実施形態において、スイッチングモジュール210aは、VFL120を介して送信する前にプリペンデッドヘッダーを改変することができる。例えば、スイッチングモジュール210aは、ローカルでの意味を有する送信先HDI(例えば、gport値またはローカルハードウェアデバイス識別子MID)を、グローバルでの意味を有するHDIに翻訳するか、またはプリペンデッドヘッダーから送信VFIDを取り除くことができる。
一実施形態において、NIM152におけるMAC/HDI転送テーブル250はポピュレートされ、仮想シャーシシステム100を流れるレイヤ2のパケットフローに応答して更新される。プリペンデッドヘッダーは、送信元MACアドレスおよび送信元HDI情報を含むので、NIMS152は、例えば、一実施形態における特定のスイッチングモジュール210で、MAC/HDI転送テーブル250にこの情報をポピュレートすることができる。プリペンデッドヘッダーモードで動作し、送信元MACアドレスおよび送信元HDIを有するレイヤ2のパケットをVFL120を介して交換することによって、スイッチングモジュール210は、仮想シャーシシステム100内のネットワークモジュール110の間のMAC/HDI転送テーブル250を同期化することができる。MAC/HDI転送テーブル250およびVFLルーティングテーブル254は、スイッチングモジュール210内に配置されていると記述されているけれども、これらのテーブルは、代替的に、またはそれに加えて、ネットワークノード110のキューイングモジュール212nまたは他のモジュール内に含まれ得る。別の実施形態において、CMM150(プライマリおよびセカンダリ)も、MAC/HDI転送テーブル250およびVFLルーティングテーブル254を含むことができる。
図8は、仮想シャーシシステム100内のネットワークノード110で動作可能な仮想シャーシマネージャアプリケーション400の一実施形態の概略ブロック図を示している。マルチスロットシャーシベースのノードアーキテクチャを備えるネットワークノード110の一実施形態において、仮想シャーシマネージャアプリケーション400は、ネットワークノード110の中央管理モジュール(CMM)150(VCM−CMM402と称される)とネットワークノードの指定されたネットワークインターフェースモジュール(NIM)152内の処理モジュール266(VCM−NIM404と称される)との間の機能性の分散を含む。スタッカブルノードアーキテクチャにおいて、指定されたまたはマスタースタッカブルネットワーク要素140は、VCM−NIM404を操作する。指定されたNIM152またはスタッカブル要素140の使用は、VCMアプリケーション400の機能をCMM150にのみ集中させることを回避する。仮想シャーシマネージャアプリケーション400の機能性の分散の一例は、表4に示されている。
一実施形態において、VCM−CMM402は、仮想シャーシマネージャアプリケーション400と要素および/またはネットワークマネージャモジュール406との間のインターフェース、さらには、ネットワークノード110上で動作可能であるVCM400に登録された他のアプリケーション408へのインターフェースを備える。仮想シャーシマネージャアプリケーション400は、仮想シャーシモードで動作すべきときにそのことを登録されたアプリケーション408に通知する。より一般的に、仮想シャーシマネージャアプリケーション400は、関与しているアプリケーションに、仮想シャーシシステム100内のローカルノードおよび他のネットワークノード110の両方の関連において仮想シャーシシステムのステータスを知らせるためにさまざまな通知手段を備える。ステータス情報の一部は、管理構成によって駆動されるが、他のステータス情報は、制御データ交換、ネゴシエーション、および同意が行われると、仮想シャーシシステム内でネットワークノードによって個別に、または複数のネットワークノード110によって下される実行時決定によってトリガーされる。仮想シャーシマネージャアプリケーション400は、VLANマネージャアプリケーションモジュール410、スパニングツリープロトコル(STP)アプリケーションモジュール412、送信元学習アプリケーションモジュール414、リンクアグリゲーションアプリケーションモジュール416、およびこれらのシステムコンポーネントにサービスを要求するためのポートマネージャアプリケーションモジュール418ともインターフェースする。例えば、VCMアプリケーションは、仮想シャーシシステム100内のネットワークノード110の間のプロセス間通信チャネルをセットアップできるようにするため、VLANマネージャに、VFLメンバーポートを制御VLANのメンバーとして構成するように要求することができる。
VCM−NIM404は、ハードウェアモジュールのモジュール識別構成(例えば、MID)を実行する。VCM−NIM404は、ハードウェアデバイス/キューマッピング機能およびシャーシ間ループ回避機能を実行するためキューイングモジュール212内のキュー管理部262ともインターフェースする。VCM−NIM404は、VFL120の制御および管理用の仮想シャーシ状態機能性も備える。仮想ファブリックリンク制御部は、VFL120を管理し、構成し、ポートマネージャアプリケーションモジュール418とインターフェースして、VFL120およびその対応するメンバーポートの状態を監視し、および/または制御する。また、VFL120のステータスを追跡し、更新することも行う。VCM−NIM404は、標準のLACPプロトコル、または他の類似のプロトコルを、物理レベルのリンクの状態と共に使用してそれぞれのVFLメンバーポートの状態を追跡する。LACPプロトコルに加えて、仮想シャーシステータスプロトコルは、両方の仮想シャーシスイッチ上の指定されたNIM上で実行しているコンポーネントのステータスおよび/または動作可能性をチェックするために定期的キープアライブチェック(helloプロトコル)を実行する。すべての仮想シャーシプロトコルパケットは、誤った/早すぎる故障検出を回避するためにシステムにおいて高い優先度を割り当てられなければならないが、それは、そのような故障の早すぎる検出は、システムにおいて非常に高い崩壊効果を有し得るからである。プライマリ指定NIM152上で仮想シャーシステータスプロトコルを実行することによって、バックアップ指定NIMモジュールは、故障が発生した場合にステータスプロトコル処理の制御を引き継ぐことができる。
VCM−CMM402およびVCM−NIM404は、VFL120のメンバーポートおよびリンクに関してポート状態およびリンク状態イベントを受信するためにポートマネージャアプリケーションモジュール418に登録する。別の実施形態において、仮想シャーシマネージャアプリケーション400は、VFL120のポートおよびリンク状態を監視するためのポートマネージャアプリケーションモジュールを備えることができる。仮想シャーシマネージャアプリケーション400は、VFL120の動作状態を追跡し、VFLステータス、すなわち、アグリゲート作成済み/削除済み/アップ/ダウンに関するイベントを処理する。ポートマネージャアプリケーションモジュール418は、VCM−CMM402およびVCM−NIM404の両方にリンク状態通知を送る。
一実施形態において、トランスポート制御プロトコルは、ネットワークノード110の指定されたNIM152またはスタッカブルネットワーク要素140の間で制御プロトコルパケットをトランスポートするために仮想シャーシシステム100内に実装される。トランスポート制御プロトコルは、異なるノードアーキテクチャを有するネットワークノード110内で動作可能である。マルチスロットシャーシベースのノードアーキテクチャでは、指定されたNIM152は指定された処理モジュール266と共にトランスポート制御プロトコルを、例えば、VCM−NIM404の一部として運用する。スタッカブルノードアーキテクチャにおいて、指定されたまたはマスタースタッカブルネットワーク要素140は、トランスポート制御プロトコルを操作する。
シャーシスーパーバイザーモジュール420は、ネットワークノード110のハードウェアへのインターフェースを提供し、さまざまなアプリケーションモジュールの監視およびブートアップもしくは再起動を制御し、要素マネージャモジュール406に対するコマンドラインインターフェース(CLI)を提供する、ソフトウェアリロードおよびソフトウェアアップグレード(サービス内ソフトウェアアップグレードISSUなど)を制御し、ネットワークノード110のシステムのステータスまたはイメージファイルへのアクセスを制御する。仮想シャーシモードにおいて、シャーシスーパーバイザーモジュール420は、ブートシーケンスを制御し、ソフトウェアリロードおよびISSUを制御し、仮想シャーシパラメータにアクセスするためのインターフェースを提供する。
構成マネージャモジュール422は、ネットワークノード110の動作を仮想シャーシモードからスタンドアロンモードに変換するか、またはネットワークノード110の動作をスタンドアロンモードから仮想シャーシモードに変換するように動作可能である。構成マネージャモジュールは、仮想シャーシマネージャ400およびマルチシャーシマネージャ424を構成するようにも動作可能である。構成マネージャモジュール422の動作およびネットワークノード110の動作状態について、以下でさらに詳しく説明する。
仮想シャーシシステム100内のネットワークノード110は、仮想シャーシモード、スタンドアロンモード、およびマルチシャーシ(MC−LAG)モードを含む、複数の動作モードで動作し得る。さまざまなパラメータおよび構成が、動作モードに応じて修正される。表5は、動作モードに応じたネットワークノード110へのシャーシIDの割り当てを示している。
スタンドアロンモードでは、ネットワークノード110は、単一ノードとして運用され、グローバル仮想シャーシMACアドレスではなくその構成されたローカルMACアドレスを利用する。マルチシャーシモードでは、2つのネットワークノードは、MAC転送テーブルおよびARPテーブルが同期される仮想ノードとして構成されるが、それでも、個別のブリッジおよびルーターとして動作し、それぞれ、2011年1月20日に出願された米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」においてより詳しく説明されているように、それ専用のローカルシャーシMACアドレスを使用する。本明細書で説明されているような仮想シャーシモードでは、複数の、N個のネットワークノードが、仮想シャーシシステム100内の仮想シャーシにノードとして構成される。1からNまでのグローバルに一意的なシャーシIDが、仮想シャーシシステム100内の複数のネットワークノードのそれぞれに割り当てられる。
スタンドアロンモード、マルチシャーシモード、および仮想シャーシモードに加えて、ネットワークノード110は、仮想シャーシシステム100においてパススルーモードでも動作可能である。パススルーモードでは、ネットワークノード110は、VFL120を介してパケットフローを受信し、別のVFL120を介してパケットフローを仮想シャーシシステム100内の別のネットワークノードに転送する。しかし、ネットワークノード110は、外部ノード112に接続された外部ポートインターフェース240などの、他の外部ポートインターフェース240を無効化する。パススルーモードのネットワークノード110は、プリペンデッドヘッダーを修正することなく透過的にネットワークノード110間においてVFLを介してデータパケットフローを転送する。また、要素マネージャから発行されるか、またはマスターネットワークノードから発行され、VFL120を介してネットワークノード110に送信された管理コマンドを受信するように動作可能でもある。そのため、パススルーモードのネットワークノード110は、管理コマンドを通じてそのまま管理されるものとしてよく、VFL120を介してネットワークノード110間においてデータパケットを透過的に転送するように動作可能であるが、データパケットをポートインターフェース240を介して外部ノード112に送信するか、または外部ノード112から受信するようには動作可能ではない。
ネットワークノード110は、ハードウェアもしくはソフトウェア障害、ネットワークノード110間の重複するシャーシ識別子、過剰に多いネットワークノード100、いくつかの関連する構成パラメータ間のまたは明示的管理コマンドを介したユーザー要求があると、ミスマッチもしくは不整合などの1つまたは複数の理由からパススルーモードに入れられ得る。ネットワークノード110のパススルーモードは、要素マネージャまたはマスターネットワークノードが最小の構成コマンドセットを監視し、ネットワークノード110に発行することをそのまま可能にしながら仮想シャーシシステム120内のネットワークノード110間の仮想シャーシの分割または接続障害を防ぐためのメカニズムを実現する。
図9は、仮想シャーシシステム100内のネットワークノード110のパススルーモードための方法500の一実施形態の論理フロー図を示している。ステップ502において、ネットワークノード110は、パススルーモードに入るための管理コマンドを受信する。管理コマンドは、仮想シャーシシステム100においてネットワークもしくは要素マネージャによって発行されるか、またはマスターネットワークノードによって発行され得る。ネットワークノード110は、VFL120を介して管理コマンドを受信し、パススルーモードへとその状態を構成する。このステップ502は、本明細書において図11を参照しつつ以下でさらに詳しく説明される。ステップ504において、パススルーモードのネットワークノード110は、1つまたは複数のVFL120上の1つまたは複数のVFLメンバーポートが特定のパケットフローを転送することを可能にする。例えば、ネットワークノード110は、第1のネットワークノード110と第2のネットワークノードとの間の、VFL120を介するデータパケットフローを可能にする。一実施形態において、一方のVFL120に入るデータパケットは、パケットのプリペンデッドヘッダーを修正することなく他方のVFL120に自動的に転送される。それに加えて、パススルーモードのネットワークノード110は、1つまたは複数のVFL120を介して管理コマンドを受信する。例えば、ネットワークまたは要素マネージャは、VFL120を介してマスターネットワークノードによってネットワークノード110に送信される管理コマンドを発行することによってパススルーモードでネットワークノード110を管理するようにそのまま動作可能である。ステップ506において、パススルーモードのネットワークノード110は、1つまたは複数の外部ノード112に接続された他の外部ポートインターフェース240を無効化する。
図10a−dは、仮想シャーシシステム100の実施形態の概略ブロック略図を示している。ネットワークノード110を仮想シャーシモードにするかどうかの決定は、仮想シャーシトポロジーに依存する。一実施形態において、ネットワークノード110は、本明細書で説明されているように仮想シャーシトポロジーをトポロジーデータベース144に格納する。トポロジーデータベース144に基づき、ネットワークノード110は、例えば、VFLルーティングテーブル254で計算されるように、仮想シャーシシステム100内のネットワークノード110の間の経路を決定するように動作可能である。したがって、ネットワークノード110は、ネットワークノード110の間のVFL接続、およびネットワークノード110の対の間の最短経路を決定するように動作可能である。一実施形態において、ネットワークノード110をパススルーモードにするかどうかの決定は、仮想シャーシトポロジーにおけるネットワークノード110の配置に依存する。
例えば、図10aにおいて、ネットワークノード110bは、ネットワークノード110a、110b、および110cの間の単一の経路の一部であるため、(例えば、シャットダウンモードではなく)パススルーモードにされる。ネットワークノード110a、110b、および110cを接続する他の経路はない。ネットワークノード110bがシャットダウンモードにされると、ネットワークノード110a、110b、および110cは、仮想シャーシシステム100内で通信することができなくなる。仮想シャーシシステム100は、ネットワークノードの2つまたはそれ以上のサブセットに分割される。この状態は、仮想シャーシの分割または破壊(virtual chassis split or fracture)と称される。仮想シャーシトポロジーが分割された場合、仮想シャーシシステム100は、重複MACアドレス、重複構成可能リソース(例えば、IPインターフェース)、接続性の喪失、管理アクセスの喪失、および複数のノードリセットイベントによる不安定性などさまざまな問題に直面する。図10aのこの例では、パススルーモードのネットワークノード110bは、ネットワークノード110a、110b、および110cの間のデータパケットおよび制御パケットのスイッチングをVFL120a、120b、および120cを介して行うように有効化される。しかし、外部ノード112への他の外部ポートインターフェース240は、他のトラフィックがネットワークノード110bに入るのを防ぐように無効化される。図10aのこの例では、ネットワークノード110aは、マスターネットワークノードである。一実施形態において、パススルーモードのネットワークノード110bは、マスターネットワークノードとして動作可能でない。役割がスレーブであるか、または未割り当ての役割(例えば、ノードブリングアップ(node bring up)の早期段階)を有しているネットワークノード110は、パススルーモードに遷移するように動作可能である。
図10bは、仮想シャーシシステム100の別の実施形態の概略ブロック図を示している。この例では、ネットワークノード110eは、ネットワークノードがネットワークノード110aと110dとの間の最短経路の一部であるため、(例えば、シャットダウンモードではなく)パススルーモードにされる。仮想シャーシシステム100内のネットワークノード110aと110dとの間に他の経路が存在しているけれども、ネットワークノード110eを含むネットワークノード110aとネットワークノード110dとの間の経路は、最短ホップカウントを有する。したがって、一実施形態では、ネットワークノード110eは、VFL120dおよび120eを介して、パケットをネットワークノード110aとネットワークノード110dとの間で転送するためにパススルーモードにされる。しかし、ネットワークノード110bおよびネットワークノード110cを他のネットワークノードに接続するために類似のホップカウントを有する代替的ルートが利用可能であるため、ネットワークノード110eにおけるVFL120iおよびVFL120jに対するVFLポートインターフェースは無効化される。パケットは、VFL120iおよびVFL120jを介してネットワークノード110bまたはネットワークノード110cへも、そこからも転送されない。それに加えて、ネットワークノード110eの他の外部ポートインターフェース240は、トラフィックが外部ノード112からネットワークノード110eに入るのを防ぐように無効化される。
図10cは、仮想シャーシシステム100の別の実施形態の概略ブロック図を示している。この実施形態では、ネットワークノード110bは、ネットワークノード110bが障害が発生した場合に代替的経路を用意するので、(例えば、シャットダウンモードではなく)パススルーモードにされる。例えば、VFL120bが故障した場合、ネットワークノード110bを通る経路は、ネットワークノード110aがネットワークノード110cおよびネットワークノード110dと通信するための代替的経路となる。したがって、仮想シャーシシステム100の回復力を改善するために、ネットワークノード110bは(例えば、シャットダウンモードではなく)パススルーモードにされる。パススルーモードのネットワークノード110bは、VFL120aおよびVFL120cを介して、トラフィックをネットワークノード110aとネットワークノード110dとの間で転送するために有効化される。他の外部ポートインターフェース240は、トラフィックが外部ノード112からネットワークノード110eに入るのを防ぐように無効化される。
図10dは、別の仮想シャーシシステム100の一実施形態の概略ブロック図を示している。この実施形態では、ネットワークノード110bは、パススルーモードではなくシャットダウンモードにされる。ネットワークノード110bは、2つのネットワークノード110の間の単一の経路の一部または2つのネットワークノード110の間の最短経路の一部でない。それに加えて、1つまたは複数のVFLの障害が発生した場合のネットワークノード110または仮想シャーシシステム100内の他のネットワークノード110の間に代替的経路が存在する。そこで、ネットワークノード110bは、シャフトダウンモードにされ、VFL120を介して、または外部ポートインターフェース240を介してデータパケットを転送するように有効化されない。しかし、シャットダウンモードのネットワークノード110は、それでも、ネットワークもしくは要素マネージャまたはマスターネットワークノードから発行された制御パケットを受信し、処理するように動作可能である。それに加えて、シャットダウンモードのネットワークノード110は、例えば、仮想シャーシトポロジーまたはパラメータが変化した場合に、パススルーモードに、またその逆に遷移するように動作可能である。
一実施形態において、2種類のシャーシ識別子(シャーシID)が定義される。第1の種類のシャーシ識別子は、動作シャーシ識別子として定義される。ネットワークノード110の動作シャーシ識別子は、ネットワークノード110を識別するために仮想シャーシシステム100内のネットワークノード110および他のネットワークノード110およびそれらの関連付けられているモジュールによって使用される実行時値である。ネットワークノード110の動作シャーシ識別子は、ネットワークノード110を識別するために他のネットワークノードのトポロジーデータベース144内に格納される。第2の種類のシャーシ識別子は、構成済みシャーシ識別子として定義される。構成済みシャーシ識別子は、ネットワークノード110の永続的メモリ内に記憶され、維持される。構成済みシャーシ識別子は、ノードのリブート時などの、起動時にネットワークノードによって使用される。構成済みシャーシ識別子は、ネットワークノード110において変更または再構成されない。しかし、動作シャーシ識別子はネットワークノード110に割り当てられ、構成済みシャーシ識別子の代わりに使用され得る。ネットワークノード110が、リブートまたは再起動する場合、構成済みシャーシ識別子は、新しい動作シャーシ識別子がネットワークノード110に割り当てられるまで、ネットワークノード110に対する動作シャーシ識別子として再び使用される。
ネットワークノード110がパススルーモードに割り当てられた場合、新しい動作シャーシ識別子もネットワークノード110に割り当てられる。新しい動作シャーシ識別子は、パススルーモードのネットワークノードに割り当てられたシャーシ識別子の範囲内にある。例えば、パススルーモードのネットワークノード110は、所定の範囲の動作シャーシ識別子、例えば、1001から(最大_シャーシ_ID(MAX_CHASSIS_ID)+1000)に割り当てられる。ネットワークノード110がパススルーモードに遷移する場合、所定の範囲内のパススルーシャーシ識別子が、ネットワークノード110に割り振られ、割り当てられる。このパススルーシャーシ識別子が、ネットワークノード110の新しい動作シャーシ識別子になる。パススルーシャーシ識別子は、動作シャーシ識別子であるため、永続的メモリ内に記憶されず、またネットワークノード110の構成済みシャーシ識別子の代替にならない。
図11は、ネットワークノード110の構成をパススルーモードに更新するための方法520の一実施形態の論理流れ図を例示している。ステップ522において、ネットワークノード110は、パススルーモードに入るためのコマンドを受信する。コマンドは、仮想シャーシシステム100においてネットワークもしくは要素マネージャモジュール460またはマスターネットワークノード110によって発行され得る。このコマンドは、パススルーモードに対する動作シャーシ識別子の所定の範囲内のパススルーシャーシ識別子を含む。ステップ524において、ネットワークノードは、その動作シャーシ識別子を割り当てられたパススルーシャーシ識別子に更新する。
ネットワークノード110は、ステップ526でも、図8で説明されているようなさまざまなアプリケーションモジュールをパススルー構成で更新する。ネットワークノード110のVCM−CMM402が、パススルーモードに入るためのコマンドを受信した場合、図8のアプリケーションモジュール408−418などのアプリケーションモジュールに、ネットワークノード110が、もはや、標準仮想シャーシノード(スレーブまたはマスターノードなどの)として稼働しておらず、現在は、パススルーモードで動作であることを知らせる。このアクションは、いくつかのアプリケーションモジュールがその通常の機能を実行することを妨げ、例えば、送信元学習アプリケーションモジュール414は送信元学習をもはや実行せず、アプリケーションモジュールを仮想シャーシシステム100内の他のネットワークノード110と相互作用することのないように分離する。ネットワークノード110のVCM−CMM402は、外部ノード112に結合されている外部ポートインターフェース240を無効化するようVCM−NIM404に通知し、いくつかのVFL120に対するVFLメンバーポートのみを有効化する。有効化されたVFL120について、VCM−NIM404は、プリペンデッドヘッダーを改変することなく、データパケットフローを一方の指定されたVFL120に転送し、また一方の指定されたVFL120から他方のVFL120に転送するようにスイッチングモジュール210に命令する。
データパケットのパススルーは、フロー毎に有効化される。例えば、特定のデータパケットフローのパススルーは、例えば、パススルーモードのネットワークノード110が2つのネットワークノードの間の最短経路の一部である場合に、2つのVFL120によってネットワークノード110に結合されている2つのネットワークノードの間のトラフィックに関して有効化され得る。しかし、他のネットワークノード110の間の、または異なるVFL120を介して他のデータパケットフローは、無効化され得る。有効化されたVFLメンバーポートに対するスイッチングモジュール210は、データパケットのプリペンデッドヘッダーを修正することなく有効化されたVFLと別の有効化された送信VFLとの間でユーザーデータパケットを転送することを知らされる。そこで、データパケットのプリペンデッドヘッダー内の送信先シャーシ識別子に基づきデータパケットを一方の有効化されたVFLから他方の有効化されたVFLに転送するためにスイッチングモジュール210によってVFLルーティングテーブル254が使用される。しかし、スイッチングモジュール210は、送信元または送信先MACアドレスをハードウェアデバイス情報で更新するかまたはデータパケットのプリペンデッドヘッダーを修正するために、MAC/HDIテーブル250を更新することも使用することももはやしない。
ネットワークノード110は、ステップ528において、トポロジーステータスへの更新を他のネットワークノードに、またネットワークもしくは要素マネージャモジュール406に送信する。他のネットワークノード110は、パススルーネットワークノード110のステータス、パススルーモードに対する理由、パススルーネットワークノード110に対する更新された動作シャーシ識別子(例えば、パススルーシャーシ識別子)、およびパススルーネットワークノード110の元の動作シャーシ識別子のトポロジー更新を受信する。仮想シャーシシステム内の他のネットワークノード110は、この情報でトポロジーデータベース144を更新する。
それに加えて、パススルーモードに入る前に、ネットワークノードは、適切なログおよび管理トラップ(または他の種類の管理プロトコルメッセージ)を生成して、ネットワークまたは要素マネージャモジュール406にイベントをアラートする。ネットワークまたは要素マネージャモジュール406は、パススルーモードへの遷移を開始することにつながったコンフリクトまたは構成または他の問題を解決するために介入し得る。
ネットワークノード110は、ハードウェアもしくはソフトウェア障害、ネットワークノード110間の重複するシャーシ識別子、過剰に多いネットワークノード100、いくつかの関連する構成パラメータ間のまたは明示的管理コマンドを受けた後のミスマッチもしくは不整合などの1つまたは複数の問題からパススルーモードに入れられ得る。例えば、ネットワークノードは、以下の構成パラメータのうちの1つまたは複数の不整合に応答してパススルーモードに入れられ得る:ノードモード/種類、ライセンス設定、仮想シャーシグループ識別子、または通信プロトコルパラメータの構成間違い(例えば、仮想シャーシシステム100内で使用されるhelloプロトコルまたは他の通信プロトコル)。
図12は、仮想シャーシシステム100内にネットワークノード110が過剰にあった場合のパススルーモードための方法540の一実施形態の論理フロー図を示している。仮想シャーシシステム内のマスターネットワークノード110は、仮想シャーシシステム100内に過剰のネットワークノード110が存在することを判定する。例えば、マスターネットワークノード110は、ネットワークノード110のうちの1つまたは複数が、外部ポートインターフェース240を外部ノード112に結合させることに失敗しており、外部ノード112との接続に必要ないと判定する。1つまたは複数の過剰なネットワークノードが識別された場合、マスターネットワークノード110は、1つまたは複数の過剰なネットワークノード110に対してパススルーモードを開始することを決定する。マスターネットワークノード110は、仮想シャーシシステム100内の複数のネットワークノード110にパススルー割り当てコマンドを分配する。割り当てコマンドは、パススルーコマンドに関連付けられている過剰なネットワークノード(MACアドレスまたはシャーシ識別子によって識別された)のリストおよびリストに載っているそれぞれのノードに割り当てられたパススルーシャーシ識別子を含む。それに加えて、割り当てコマンドは、パススルーモードコマンドに対する理由コードを有するフィールドを備える。理由コードは、この場合にはネットワークノードが過剰であるなどの、パススルーコマンドに対する1つまたは複数の理由のコードを含む。
図12のステップ542において、パススルー割り当てコマンドを受信すると、ネットワークノードは、ステップ546で割り当てコマンドがノード識別子を含むかどうかを判定する。もしそうであれば、ネットワークノード110は、パススルー割り当てコマンドから割り当てられたパススルーシャーシ識別子および理由コードを決定する。ネットワークノードは、ステップ548において、構成をパススルーモードに更新する。例えば、ネットワークノード110は、動作シャーシ識別子を割り当てコマンドで指定されたパススルーシャーシ識別子に変更し、動作モードをパススルーモードに更新する。ネットワークノード110は、アプリケーションモジュールにパススルーモードを通知する。ステップ550において、ネットワークノードは、仮想シャーシシステム100内のネットワークノード110の間で1つまたは複数のデータパケットフローを2つまたはそれ以上のVFL120が転送することを有効化する。ネットワークノード110は、データパケットフローが一方のVFL120から他方のVFL120に転送されるように1つまたは複数のVFL120が有効化されたことをスイッチモジュールに知らせる。ステップ552において、ネットワークノードは、他の外部ポートインターフェース240を無効化する。
パススルーモードをサポートするために、ネットワークノード110は、不整合または重複シャーシノード識別子が現れた場合であっても互いに通信するように動作可能である。1つまたは複数の通信プロトコルが、本出願と同日に出願され、係属中である、引用により本明細書に組み込まれている、すべての目的に関して本米国特許出願の一部をなす、米国特許出願第13/674,315号、名称「SYSTEM AND METHOD FOR CONTROL PROTOCOLS IN A VIRTUAL CHASSIS SYSTEM」でより詳しく説明されているようにネットワークノード110の間で通信を行うために使用される。
図13は、仮想シャーシシステム100内に動作シャーシ識別子の重複構成がある場合のパススルーモードための方法560の一実施形態の論理フロー図を示している。ステップ562において、ネットワークノード110は、別のネットワークノード110が同じ動作シャーシ識別子を有すると判定する。例えば、トポロジー発見を通じて、ネットワークノード110は、同じ動作シャーシ識別子による仮想シャーシシステム100内の別のネットワークノード110のトポロジー更新を受信する。ユーザーデータパケットおよび制御パケットは、動作シャーシ識別子に基づきVFL120を介してルーティングされるため、重複動作シャーシ識別子は、仮想シャーシシステム100内でパケットのミスルーティングおよび喪失を引き起こし得る。そのため、一実施形態では、それぞれのネットワークノード110が一意的な動作シャーシ識別子で構成されることが重要である。
重複動作シャーシ識別子がステップ562で判定された場合、ステップ564で、ネットワークノード110は、どのネットワークノードがその動作シャーシ識別子を変更する必要があるかを決定する。一実施形態において、ネットワークノード110は、それが、または別のノードが、複数のパラメータに基づき重複動作シャーシ識別子を変更するかどうかを選択する。これらの複数のパラメータは、重複動作シャーシ識別子を有するそれぞれのネットワークノード110に対する選択キーを決定するために使用され、次いで、選択キー同士が比較され、それにより、どのネットワークノード110が重複動作シャーシ識別子を放棄するかを決定する。例えば、一実施形態では、ネットワークノード110の選択キーは、例えば、シャーシ優先度、アップタイム、シャーシID、シャーシMACアドレスを含む、パラメータの優先順位付けされたリストに基づき決定される。これらのパラメータの使用で、選択に柔軟性が加わる。アップタイムのパラメータは、より長い期間にわたって動作しているネットワークノード110を優先する。シャーシ優先度のパラメータは、シャーシIDまたはアップタイムに関係なくユーザープリファレンスを定義するユーザー構成優先度である。パラメータの優先順位付けされたリストは、選択キーを決定するために本明細書で開示されているけれども、どのネットワークノード110が重複動作シャーシ識別子を放棄するかを決定するために他のパラメータまたは方法が使用され得る。
ネットワークノードの選択キーが、重複動作シャーシ識別子を有する他のネットワークノードの選択キーと比較して有利でない場合、ネットワークノード110は、重複動作シャーシ識別子を放棄することが必要であると判定する。ネットワークノード110は、動作シャーシ識別子を所定の重複シャーシ識別子値に変更する。例えば、特定の識別子値(例えば、値154など)が、仮想シャーシシステム100のネットワークノード110内の所定の重複シャーシ識別子値として構成される。次いで、ネットワークノード110は、トポロジー更新をVFL120を介して他のネットワークノード110に新しい動作シャーシ識別子(所定の重複シャーシ識別子値に等しい)と共に送信する。他のネットワークノード110は、そのトポロジーデータベース144をネットワークノードの新しい動作シャーシ識別子で更新する。
マスターネットワークノード110は、例えば、トポロジー更新または他の制御プロトコルメッセージを通じて、重複シャーシ識別子値に等しい動作シャーシ識別子を有するネットワークノードがあることを検出した場合、マスターネットワークノード110は、重複シャーシ識別子を有するネットワークノードをパススルーモードにするかどうかを決定する。もしそうであれば、マスターネットワークノード110は、パススルー割り当てコマンドを送信する。パススルー割り当てコマンドは、ノード識別子(MACアドレスまたはシャーシ識別子など)およびパススルーモードに対する動作シャーシ識別子の所定の範囲内のパススルーシャーシ識別子を含む。このコマンドは、パススルーモードに対する理由コード、この場合には例えば、重複動作シャーシ識別子も含む。
図13のステップ568において、パススルー割り当てコマンドを受信すると、ネットワークノード110は、ステップ570でコマンドがノード識別子を含むかどうかを判定する。もしそうであれば、ネットワークノード110は、パススルー割り当てコマンドから割り当てられたパススルーシャーシ識別子および理由コードを決定する。ネットワークノードは、ステップ572において、その構成をパススルーモードに更新する。例えば、ネットワークノード110は、その動作シャーシ識別子を重複シャーシ識別子値から割り当てコマンドで指定されたパススルーシャーシ識別子に変更する。ネットワークノード110は、そのモードをパススルーに更新し、アプリケーションモジュールにパススルーモードを通知する。ステップ574において、ネットワークノード110は、VFL120で1つまたは複数のデータパケットフローを転送することを有効化する。ネットワークノード110は、データパケットフローが入力VFL120から別の指定された出力VFL120に転送されるように1つまたは複数のVFL120が有効化されたことをスイッチモジュール210に知らせる。ステップ576において、ネットワークノードは、他の外部ポートインターフェース240を無効化する。
パススルーモードのネットワークノード110は、候補としてマスター選択プロセスに参加しない。しかし、トポロジー更新を受信し、マスターネットワークノードのシャーシ識別子をトポロジーデータベース144に格納する。パススルーモードのネットワークノード110は、重複マスターネットワークノードおよび重複シャーシ識別子を識別するプロセスに参加するようにも動作可能である。一実施形態において、パススルーモードのネットワークノード110は、それでも、重複パススルーシャーシ識別子を有する別のネットワークノードを検出しうる。例えば、マスターネットワークノード110が、重複パススルーシャーシ識別子をうっかり割り当ててしまうことがあり得る。あるいは、2つまたはそれ以上の仮想シャーシグループ(それぞれがそれ固有の仮想シャーシグループ識別子を有する)が単一の仮想シャーシシステム100内にマージする場合、重複パススルーシャーシ識別子を有するネットワークノード110が検出され得る。
図14は、ネットワークノード110に対するパススルーモードを決定するための方法580の一実施形態の論理ブロック図を例示している。一実施形態において、マスターネットワークノードは、ステップ582において、仮想シャーシシステム100およびそのネットワークノードのトポロジーを監視する。ステップ584において、マスターネットワークノード110は、過剰なネットワークノードがあるなどの、1つまたは複数の問題がトポロジー全体にわたって存在するかどうか、または重複シャーシ識別子などの、1つまたは複数のネットワークノード110の1つまたは複数の問題が存在するかどうかを判定する。それに加えて、マスターネットワークノード110は、以下の構成パラメータのうちの1つまたは複数の不整合などの、いくつかの関連する構成パラメータの間のミスマッチまたは不整合が生じているかどうかを判定する:ノードモード/種類、ライセンス設定、仮想シャーシグループ識別子、または通信プロトコルパラメータの構成間違い(例えば、仮想シャーシシステム100内で使用されるhelloプロトコルまたは他の通信プロトコル)。ステップ584において問題が存在しているとマスターネットワークノード110が判定した場合、マスターネットワークノード110は、1つまたは複数のネットワークノード110をパススルーモードに割り当てるかどうかを決定する。例えば、マスターネットワークノード110は、仮想シャーシトポロジーに基づき、ネットワークノード110が単一の経路の、もしくは他のネットワークノードヘの最短経路の一部であるかどうか、またはネットワークノード110が障害時に他のネットワークノード間の代替的経路の一部であるかどうかを判定する。それに加えて、マスターネットワークノード110は、選択キーに基づき、1つまたは複数のネットワークノードがパススルーモードにされるべきかどうかを決定することができる。代替的に、マスターネットワークノード110は、明示的な管理コマンドをネットワークまたは要素マネージャモジュール406から受信して、特定のネットワークノードをパススルーモードに割り当てることができる。
マスターネットワークノード110が、ステップ586において、1つまたは複数のネットワークノードがパススルーモードに割り当てられるべきと判定した場合、これは、ステップ588において、パススルーモードに対する動作シャーシ識別子の所定の範囲内のパススルーシャーシ識別子、およびパススルーモードに割り当てられるべきそれぞれのネットワークノードに対する理由コードを決定する。次いで、マスターネットワークノード110は、この情報と共に、仮想シャーシシステム100内の複数のネットワークノードにパススルー割り当てコマンドを送信する。
マスターネットワークノードは、図14のステップまたはプロセスを実行するものとして説明されているけれども、ネットワークまたは要素マネージャモジュール406は、図14に関して説明されているステップまたはプロセスのうちの1つまたは複数も実行するか、または代替的に実行することができる。例えば、一実施形態では、ネットワークまたは要素マネージャモジュール406は、仮想シャーシシステムのトポロジーおよびネットワークノードを監視して、問題が発生しているかどうかを判定する。次いで、ネットワークまたは要素マネージャモジュール406は、仮想シャーシシステムのトポロジーに基づき1つまたは複数のネットワークノード110に対するパススルーモードを開始するかどうかを決定し、もしそうであれば、管理コマンドをマスターネットワークノードに発行する。
図15は、パススルー割り当てコマンド600の一実施形態の概略ブロック図を示している。パススルー割り当てコマンド600は、制御パケットとしてのパケットの識別を含むパケットタイプフィールド602、および制御パケットをパススルー割り当てとして識別するコマンドタイプフィールド604を含む。パススルー割り当てコマンド600は、ノード識別子シールド606を含む。ノード識別子フィールド606は、パススルーモードに割り当てられている1つまたは複数のネットワークノードの識別子(MACアドレスまたはシャーシ識別子など)を含む。パススルーシャーシ識別子フィールド608は、パススルーモードに割り当てられているそれぞれの識別されたネットワークノードに対するパススルーシャーシ識別子を含み、理由コードフィード610は、パススルーモードに割り当てられているそれぞれの識別されたネットワークノードに対するパススルーモードへの割り当ての理由に対するコードを含む。類似の、または追加の情報と共にパススルー割り当てコマンド600内に追加の、または代替的なフィールドも収められ得る。
パススルーモードは、ネットワークノードにおける構成の間違い、不整合、または障害の検出に応答して仮想シャーシシステム内のネットワークノードを流れるユーザーデータおよび制御トラフィックに対するシステムおよび方法を提供する。したがって、パススルーモードは、仮想シャーシシステムにおけるトポロジー破壊およびサービス中断を回避するのに役立つ。
本明細書で使用され得るように、「動作可能に結合される」、「結合される」、および/または「結合する」という言い回し(複数可)は、項目間の直接的結合および/または介在する項目を介した項目間の間接的結合を含み(例えば、項目は、限定はしないが、コンポーネント、要素、回路、および/またはモジュールを含む)、ただし、間接的結合については、介在する項目は信号の情報を修正しないが、その電流レベル、電圧レベル、および/または電力レベルを調整し得る。本明細書でさらに使用され得るように、推論される結合(つまり、一方の要素が、推論によって他方の要素に結合される)は、「結合される」と同じようにして2つの項目間の直接的および間接的結合を含む。
本明細書でなおも使用され得るように、「するように動作可能である」または「動作可能に結合される」という言い回しは、項目が、対応する機能のうちの1つまたは複数を、活性化されたときに、実行するための電源接続部、入力(複数可)、出力(複数可)などのうちの1つまたは複数を含み、1つまたは複数の他の項目への推論される結合をさらに含み得ることを示す。本明細書でさらに使用され得るように、「関連付けられている」という言い回しは、個別の項目の直接的および/または間接的結合、および/または一方の項目が他方の項目の中に埋め込まれていること、または一方の項目が他方の項目と共に、または他方の項目によって使用されるように構成されていることを含む。本明細書で使用され得るように、「比較して有利である」という言い回しは、2つまたはそれ以上の項目、信号などの間の比較が所望の関係をもたすことを示す。例えば、所望の関係が、信号1の大きさが信号2の大きさより大きいという関係である場合、比較して有利であることは、信号1の大きさが信号2の大きさより大きいか、または信号2の大きさが信号1の大きさより小さいときに達成され得る。
また本明細書で使用され得るように、「処理モジュール」、「処理回路」、および/または「処理ユニット」という用語は、単一の処理デバイスまたは複数の処理デバイスであってよい。そのような処理デバイスは、マクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ、マイクロコンピュータ、中央演算処理装置、フィールドプログラマブルゲートアレイ、プログラム可能論理デバイス、状態機械、論理回路、アナログ回路、デジタル回路、および/または回路のハードコーディングおよび/または操作命令に基づき信号(アナログおよび/またはデジタル)を操作するデバイスであってよい。処理モジュール、モジュール、処理回路、および/または処理ユニットは、メモリおよび/または集積化メモリ要素であるか、またはさらに備えることができ、これらは単一のメモリデバイス、複数のメモリデバイス、および/または別の処理モジュール、モジュール、処理回路、および/または処理ユニットの埋め込み回路であってよい。このようなメモリデバイスは、リードオンリーメモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、および/またはデジタル情報を記憶する任意のデバイスであってよい。処理モジュール、モジュール、処理回路、および/または処理ユニットが複数の処理デバイスを備える場合、処理デバイスは集中的に配置され得るか(例えば、有線および/またはワイヤレスバス構造を介して直接的に1つに結合される)、または分散配置にすることができる(例えば、ローカルエリアネットワークおよび/またはワイドエリアネットワークを介した間接的結合を用いるクラウドコンピューティング)ことに留意されたい。さらに、処理モジュール、モジュール、処理回路、および/または処理ユニットが、その機能の1つまたは複数を、状態機械、アナログ回路、デジタル回路、および/または論理回路を介して実装する場合、対応する操作命令を記憶するメモリおよび/またはメモリ要素は、状態機械、アナログ回路、デジタル回路、および/または論理回路を含む回路内に埋め込まれるか、またはその回路の外部にあってもよいことに留意されたい。また、メモリ要素は、図の1つまたは複数に示されているステップおよび/また機能のうちの少なくともいくつかに対応するハードコーディングおよび/または操作命令を記憶し、処理モジュール、モジュール、処理回路、および/または処理ユニットは、これらを実行することにさらに留意されたい。そのようなメモリデバイスまたはメモリ要素は、製造品に含まれ得る。
本発明は、指定された機能の実行およびこれらの機能の関係を示す方法ステップの助けを借りて説明されている。これらの機能構成ブロックおよび方法ステップの境界および順序は、説明の便宜のために本明細書で任意に定義されている。代替的境界および順序は、指定された機能および関係が適切に実行される限り定義され得る。したがって、そのような代替的境界または順序はどれも、請求されている発明の範囲および精神のうちにある。さらに、これらの機能構成ブロックの境界は、説明の便宜のために任意に定義されている。代替的境界は、特定の重要な機能が適切に実行される限り定義される可能性がある。同様に、流れ図ブロックも、いくつかの重要な機能性を例示するために本明細書において任意に定義され得る。使用される範囲において、流れ図ブロックの境界および順序は、他の何らかの方法で定義されている可能性もあり、それでもその特定の重要な機能性を実行することができる。したがって、機能構成ブロックおよび流れ図ブロックの両方および順序のそのような代替的定義は、請求されている発明の範囲および精神のうちにある。当業者であれば、機能概略ブロック、ならびに本明細書の他の例示的なブロック、モジュール、およびコンポーネントは、例示されているように実装され得るか、または離散コンポーネント、特定用途向け集積回路、適切なソフトウェアおよび同様のものを実行するプロセッサ、またはこれらの任意の組み合わせで組み合わされるか、または分離され得ることが理解されよう。
本発明は、少なくとも一部は1つまたは複数の実施形態に関して本明細書で説明されている。一実施形態は、本発明、その一態様、その特徴、その概念、および/またはその例を示すため本明細書で説明されている。本発明を具現化する装置、製造品、機械、および/またはプロセスの物理的実施形態は、本明細書で説明されている実施形態のうちの1つまたは複数を参照しつつ説明されている態様、特徴、概念、例などのうちの1つまたは複数を備えることができる。さらに、図から図へ移る間に、これらの実施形態は、同じまたは異なる参照番号を使用し得る同じ、または類似の名前の機能、ステップ、モジュールなどを組み込むものとしてもよく、また、したがって、機能、ステップ、モジュールなどは、同じ、もしくは類似の機能、ステップ、モジュールなど、または異なるものであってもよい。
特に断りのない限り、本明細書に提示されている図中の要素への、要素からの、および/または要素間の信号は、アナログまたはデジタル、連続時間または離散時間、およびシングルエンドまたは差動であってよい。例えば、信号経路が、シングルエンド経路として示されている場合、これは、差動信号経路も表す。同様に、信号経路が、差動経路として示されている場合、これは、シングルエンド信号経路も表す。本明細書において1つまたは複数の特定のアーキテクチャが説明されているが、図に明示されていない1つまたは複数のデータバス、要素間の直接接続、および/または他の要素間の間接結合を使用する他のアーキテクチャも同様に実装され得る。
「モジュール」という用語は、本発明のさまざまな実施形態の説明で使用されている。モジュールは、本明細書で説明されているような1つまたは複数の機能を実行するように動作可能な処理モジュール(上で説明されているような)、機能ブロック、ハードウェア、および/またはメモリ上に記憶されているソフトウェアを含む。モジュールがハードウェアを介して実装される場合、ハードウェアは、ソフトウェアおよび/またはファームウェアと独立して、および/または連携して動作し得る。モジュールがメモリ内に記憶されているソフトウェアとして実装される場合、モジュールが、処理モジュールもしくは他のハードウェアを使用してモジュール内のメモリに記憶されているソフトウェアを実行し本明細書で説明されているような機能を実行するように動作可能である。本明細書で説明されているモジュールは、1つまたは複数のサブモジュールを備えるものとしてよく、それぞれは1つまたは複数のモジュールであるか、1つまたは複数の他のモジュールに組み込まれ得るか、または1つまたは複数の他のモジュールを備えるものとしてよい。
本発明のさまざまな機能および特徴の特定の組み合わせが、本明細書で明示的に説明されているが、これらの特徴および機能の他の組み合わせも同様に可能である。本明細書で説明されている実施形態は、説明されている特定の例によって制限されず、他の組み合わせおよび実施形態を含み得る。