(57)【要約】【課題】帯域内メッセージングを介するスタックのスイッチングネットワークノードのリモート管理の方法および装置を提供する。【解決手段】スイッチングネットワークノードスタックに参加する複数のスイッチングネットワークノードのスイッチングネットワークノードが提供される。スイッチングノードは、スタック内の少なくとも1つの他のスイッチングノードとフレームを交換する少なくとも1つのスタッキングポートと、スイッチングノードのスイッチングノード識別を指定するスイッチングノード識別レジスタと、スタック内の複数のスイッチングノードのうちで管理プロセッサが取り付けられたスイッチングノードのスイッチングノード識別子を指定する管理ノード識別レジスタと、スタック内のスイッチングノードごとに、それを介してスイッチングノードにフレームを転送する対応するスタッキングポートを指定する転送テーブルとを含む。【選択図】図3
2006042368.tif 000002
【特許請求の範囲】
【請求項１】
スイッチングネットワークノードスタックに参加する複数のスイッチングネットワークノードのスイッチングネットワークノードであって、
a.前記スタック内の少なくとも1つの他のスイッチングノードとフレームを交換する少なくとも1つのスタッキングポートと、
b.前記スイッチングノードのスイッチングノード識別を指定するスイッチングノード識別レジスタと、
c.前記複数のスイッチングノードのうちで管理プロセッサが取り付けられたスイッチングノードのスイッチングノード識別子を指定する管理ノード識別レジスタと、
d.前記スタック内のスイッチングノードごとに、それを介して前記スイッチングノードにフレームを転送する対応するスタッキングポートを指定する転送テーブルと
を含むスイッチングネットワークノード。
【請求項２】
前記スタックは、単一のリング、複数のリング、およびスタートポロジのうちの1つを有する、請求項1に記載のスイッチングノード。
【請求項３】
各スタッキングポートは、転送状態およびブロッキング状態のうちの1つに前記スタッキングポートをセットする状態指定レジスタを有する、請求項1に記載のスイッチングノード。
【請求項４】
制御フレームとデータフレームとを選択的に区別する分類エンジンをさらに含む、請求項1に記載のスイッチングノード。
【請求項５】
管理プロセッサに接続する管理ポートをさらに有する、請求項1に記載のスイッチングノード。
【請求項６】
a.前記スタック内の前記複数のスイッチングノードによって処理されるデータフレームを受け取る複数のローカル外部ポートと、
b.どのネットワークアドレスに前記スタック内の前記複数のスイッチングノードの前記複数の外部ポートのどの対応する1つを介して達することができるかに関するスイッチング情報を保管するスイッチングデータベースと、
c.前記データフレームを転送するために前記複数のローカル外部ポートのどの1つを介するかを選択的に決定する検索エンジンと、
d.前記データフレームが、外部ポートが前記検索エンジンによって決定されなかったフレームおよび決定された外部ポートが前記スタック内の別のスイッチングノードに関連するフレームから選択されたデータフレームである場合に、前記スタック内で前記データフレームを転送するために、前記データフレームにフレームスタッキングタグ(FTAG)を選択的に埋め込むコマンドエンジンと
をさらに含む、請求項1に記載のスイッチングノード。
【請求項７】
a.割込みの送出および応答の生成のうちの1つを含む、前記スイッチングノードでのフレームの処理に関連するアクションを実行する少なくとも1つのモジュールと、
b.前記割込みの前記送出に応答して前記管理プロセッサに送信される制御フレームを生成し、受信された制御フレームにカプセル化されたコマンドを実行し、受信されたコマンドフレームに肯定応答する、コマンドエンジンと
をさらに含む、請求項1に記載のスイッチングノード。
【請求項８】
前記モジュールは、さらに、前記モジュールに関連する複数の割り込むイベントを追跡するローカル割込みベクタを含む、請求項7に記載のスイッチングノード。
【請求項９】
前記スイッチングノードによって生成される複数の割り込むイベントを追跡するコマンド割込み状況ベクタをさらに含む、請求項7に記載のスイッチングノード。
【請求項１０】
a.受信された制御フレームを識別する手段と、
b.前記受信された制御フレームに肯定応答する手段と、
c.スイッチングノード状態を追跡するリポジトリと、
d.制御フレームを生成する際にコマンドをカプセル化する手段と、
e.生成された制御フレームを転送する送信手段と
を含む、スタック内の複数のスイッチングネットワークノードのリモート管理用の管理プロセッサ。
【請求項１１】
a.データフレーム内でカプセル化されたアドレス解決クエリを受信する手段と、
b.ネットワークノードアドレス解決手段と、
c.データフレーム内でカプセル化されたアドレス解決応答を発行する手段と
をさらに含む、請求項10に記載の管理プロセッサ。
【請求項１２】
スイッチングネットワークノードのスタック内の複数のスイッチングネットワークノードを発見する方法であって、スタック内の各スイッチングネットワークノードは、予約された識別値を指定するスイッチングノード識別子と、ブロッキング状態ですべてのコマンドフレームをコマンドエンジンに転送し、転送状態で転送テーブルで指定されるスイッチング情報に従ってコマンドフレームを転送するように構成された少なくとも1つのスタッキングポートとを有し、
a.前記ブロッキング状態に構成されたスタッキングポートを介して、前記予約された識別値を有するスイッチングノード宛のコマンドフレームを受信するスイッチングノードステップと、
b.前記コマンドフレームを前記コマンドエンジンに転送するスイッチングノードステップと、
c.前記スイッチングノード識別子を用いて前記コマンドフレームに肯定応答するスイッチングノードステップと、
d.前記スイッチングノード識別子を前記予約された値と異なる値に変更することを指定するコマンドをカプセル化した受信されたコマンドフレームで指定された新しい値を前記スイッチングノード識別子にセットするスイッチングノードステップと、
e.前記転送テーブルで指定された前記スイッチング情報に従って、前記転送状態に構成されたスタッキングポートを介して、受信された前記予約された識別値を有するスイッチングノード宛の後続コマンドフレームを転送するスイッチングノードステップと
を含む方法。
【請求項１３】
スイッチングネットワークノードのスタック内の複数のスイッチングネットワークノードを発見する方法であって、前記スタック内の各スイッチングノードは、予約された識別値を指定するスイッチングノード識別子と、ブロッキング状態ですべてのコマンドフレームをコマンドエンジンに転送し、転送状態で転送テーブルで指定されるスイッチング情報に従ってコマンドフレームを転送するように構成された少なくとも1つのスタッキングポートとを有し、
a.前記予約された識別値を有する宛先スイッチングノードを指定するコマンドフレームを送信する循環管理プロセッサステップと、
b.新たに発見されたスイッチングノードからの前記予約された識別値を指定する前記スイッチングノードからの肯定応答を受信する循環管理プロセッサステップと、
c.前記新たに発見されたスイッチングノードの前記スイッチングノード識別子を、前記予約された識別値と異なる一意の識別値に構成する循環管理プロセッサステップと、
d.前記新たに発見された構成されたスイッチングノードからスタッキングポート識別子を取り出す循環管理プロセッサステップと、
e.スタッキングポートを選択する循環管理プロセッサステップと、
f.前記選択されたスタッキングポートを前記転送状態にセットする循環管理プロセッサステップと
を含む方法。
【請求項１４】
前記スタック内の前記新たに発見されたスイッチングノードの前記転送テーブルを構成することをさらに含む、請求項13に記載の発見の方法。
【請求項１５】
前記スタック内の前記新たに発見されたスイッチングノードのスイッチングデータベースを構成することをさらに含む、請求項13に記載の発見の方法。
【請求項１６】
スイッチングネットワークノードのスタック内のスイッチングネットワークノードに管理プロセッササービスを提供する方法であって、
a.提供される前記サービスに関するデータをフレームにカプセル化することと、
b.フレームスタッキングタグ(FTAG)を前記フレームに関連付けることと、
c.前記スイッチングノードのスイッチングノード識別子を前記FTAGの宛先スイッチングノードフィールドに書き込むことと、
d.前記FTAGを担持する前記フレームを前記スイッチングノードに向けて送信することと
を含む方法。
【請求項１７】
前記フレームが、制御フレームであり、前記方法が、さらに、
a.制御フレーム用に予約された分類アクション値を前記FTAGの分類アクションフィールドに書き込むことと、
b.前記スイッチングノードの制御エンジン用に予約された宛先ポート値を前記FTAGの宛先ポートフィールドに書き込むことと
を含む、請求項16に記載の方法。
【請求項１８】
前記フレームが、ルーティングされるデータフレームであり、前記方法が、さらに、
a.前記データフレームの宛先アドレスを前記スタックの外部出宛先ポートに解決することと、
b.制御フレーム用に予約された分類アクション値を前記FTAGの分類アクションフィールドに書き込むことと、
c.解決された宛先ポートの宛先ポート識別子を前記FTAGの宛先ポートフィールドに書き込むことと
を含む、請求項16に記載の方法。
【請求項１９】
スイッチングネットワークノードのスタック内のスイッチングネットワークノードでフレームを処理する方法であって、
a.受信されたフレームが制御フレーム用に予約された分類アクション値以外の分類アクション値を担持する場合に、前記スイッチングノードに関連するスイッチングデータベースに保管されたスイッチング情報に基づいて前記受信されたフレームを選択的に転送することと、
b.受信されたフレームが制御フレーム用に予約された分類アクション値を担持する場合に、前記スイッチングノードに関連して保管された転送テーブルに保管されたスイッチング情報に基づいて前記受信されたフレームを選択的に転送することと、
c.管理プロセッササービスを必要とするフレームごとに、フレームの前記分類アクション値を制御フレーム用に予約された前記分類アクション値に選択的に変更することと
を含む方法。
【請求項２０】
前記スイッチングデータベースで保持されるスイッチング情報に基づいて前記フレームを転送し、前記方法は、さらに、
a.前記スタック内の解決された宛先スイッチングノードを指定するように前記フレームに関連する宛先スイッチングノードフィールドを変更することと、
b.前記解決された宛先スイッチングノードの解決された外部出ポートを指定するように前記フレームに関連する宛先ポートフィールドを変更することと
を含む、請求項19に記載の方法。
【請求項２１】
転送テーブルに保管されたスイッチング情報に基づいて、受信されたフレームを転送し、前記方法は、さらに、
a.管理プロセッサが接続された前記スタック内のスイッチングノードを指定するように、前記フレームに関連する宛先スイッチングノードフィールドを変更することと、
b.前記管理プロセッサが取り付けられた宛先スイッチングノードの管理ポートを指定するように、前記フレームに関連する宛先ポートフィールドを変更することと
を含む、請求項19に記載の方法。
【請求項２２】
a.制御フレーム用に予約された前記分類アクション値を担持し、前記フレームに関連する宛先ポートフィールドに外部出ポートの識別子を担持するフレームを受信することと、
b.フレームヘッダ内で指定された前記宛先ネットワークアドレスと前記指定された外部出ポート識別子との間の関連を用いて前記スイッチングデータベースを更新することと
をさらに含む、請求項19に記載の方法。
【請求項２３】
a.制御フレーム用に予約された前記分類アクション値を担持し、ローカルスイッチングノードの前記識別子を担持し、コマンドエンジン用に予約された宛先ポート識別子を担持するフレームを受信することと、
b.前記フレームで指定されたコマンドを実行することと、
c.前記フレームの前記受信に肯定応答することと
をさらに含む、請求項19に記載の方法。
【請求項２４】
前記コマンドの前記実行から派生する応答を前記肯定応答フレームにカプセル化することをさらに含む、請求項23に記載の方法。
【請求項２５】
前記フレームで指定される前記宛先ポートを前記スイッチングデータベースで指定される前記スイッチング情報に基づいて解決できない場合に、フレームが管理プロセッササービスを必要とすると判定することをさらに含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク内のスイッチングネットワークノード制御に関し、具体的には、スタック内の少数のスイッチングネットワークノードが管理プロセッサを取り付けられている、スタック内の複数のスイッチングネットワークノードの制御の方法に関する。
【背景技術】
【０００２】
パケット交換通信の分野で、スイッチングネットワークノードは、パケットトラフィックを適当なネットワーク宛先に向けるのに使用される。スイッチングネットワークノードは、スイッチングノードが管理プロセッサのサービスを使用する管理モードで動作することができ、あるいは、スイッチングノードがそれ自体で動作する非管理モードで動作することができる。動作の両方のモードが望ましい。というのは、管理モードで、管理プロセッサが、例えばスイッチングモードの学習機能性を提供するが、非管理モードでは、関連する管理オーバーヘッドをこうむらないからである。通常動作中に、管理プロセッサに出入りするトラフィックの主要なソースに、ハードウェア分類によって解析できないデータパケットまたは特殊なソフトウェアサポートを必要とするパケット、統計カウンタロールオーバを含むハードウェアによってトリガされた割込み、メディアアクセス制御(MAC)アドレスルックアップテーブルからの挿入または削除、あるいはリソース可用性に関する警告が含まれる。これらは、管理プロセッサ自体の開発、実装、展開、および管理に関連するコストである。
【０００３】
他所で説明する様々な関連する解決策は、管理プロセッサ最適化および管理オーバーヘッド削減に関連する問題に対処する。
【０００４】
スイッチングネットワークノード展開シナリオの1つに、通常は単一の機器シェルフ内で同一位置に配置される複数のスイッチングネットワークノードのスタッキングが含まれる。
【０００５】
スイッチスタックは、単一の論理スイッチングネットワークとして集合的に振る舞うと同時により高い集合スループットを提供する、グループスイッチングネットワークノードの構成である。例えば、単一のスイッチ102に24個のFast Ethernet（登録商標）ポートと4個のGigabit Ethernet（登録商標）ポートが含まれると仮定する。ネットワークスイッチ102は、図1に示されているように、6.4Gbpsまでをサポートするが、複数のそのようなネットワークスイッチ102をカスケード接続することによって、集合システムスループットを高めることができる。図1a)に示されたスタッキング構成100は、13.2Gbpsの集合スループットを与え、3つのスイッチングノード102がリング構成104で展開されている。図1b)に示されたスタッキング構成110は、22.4Gbpsの集合スループットを与え、6個のスイッチングノード102が二重のリング構成(104)で展開されている。図1c)に示されたスタッキング構成120は、17.6Gbpsの集合スループットを与え、3つのスイッチングノード102がスター構成で展開されている。
【０００６】
集合スループットの増加は、スタッキング展開をより望ましいものにするが、そのようなスタック内のスイッチングノード102の構成および制御の難しさをこうむる。
【０００７】
図2に、従来技術の被管理スイッチングノード展開を示す。図2a)に示された展開200に、それぞれを制御する個々の管理プロセッサ204を有する各スイッチングノード102が示されている。これは、単純な手法であるが、コストが高い。図2b)に示された展開210に、単一の管理プロセッサ206によって全体が制御されるスイッチングノードスタックが示されている。この手法によれば、管理プロセッサ206は、スタック内のスイッチングノード102によって定義される単一ドメインについて制御および構成をイネーブルすると言われる。管理プロセッサ206は、通常は共用媒体として実施される別々の制御プレーン208を介して、スタック内のすべてのスイッチングノード102に信号またはメッセージを送信する。図2a)および図2b)から明白であるように、各スイッチングノード102は、管理プロセッサ204/206のサービスを持ち続けるのに専用のポートを予約し、共用管理プロセッサ展開210は、共用媒体208を展開し、構成し、管理し、維持することからこうむるオーバーヘッドに苦しむ。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、スイッチングノードのスタックでスイッチングノードの制御および構成を提供する際の上述の問題を解決する必要がある。
【課題を解決するための手段】
【０００９】
本発明の態様によれば、スイッチングネットワークノードスタックに参加する複数のスイッチングネットワークノードのスイッチングネットワークノードが提供される。前記スイッチングノードは、前記スタック内の少なくとも1つの他のスイッチングノードとフレームを交換する少なくとも1つのスタッキングポートと、前記スイッチングノードのスイッチングノード識別を指定するスイッチングノード識別レジスタと、前記スタック内の前記複数のスイッチングノードのうちで管理プロセッサが取り付けられたスイッチングノードのスイッチングノード識別子を指定する管理ノード識別レジスタと、前記スタック内のスイッチングノードごとに、それを介して前記スイッチングノードにフレームを転送する対応するスタッキングポートを指定する転送テーブルとを含む。
【００１０】
本発明のもう1つの態様によれば、スタック内の複数のスイッチングネットワークノードのリモート管理用の管理プロセッサが提供される。前記管理プロセッサは、受信された制御フレームを識別する手段と、前記受信された制御フレームに肯定応答する手段と、スイッチングノード状態を追跡するリポジトリと、制御フレームを生成する際にコマンドをカプセル化する手段と、生成された制御フレームを転送する送信手段とを含む。
【００１１】
本発明のもう1つの態様によれば、スイッチングネットワークノードのスタック内の複数のスイッチングネットワークノードを発見する方法であって、スタック内の各スイッチングネットワークノードは、予約された識別値を指定するスイッチングノード識別子と、ブロッキング状態ですべてのコマンドフレームをコマンドエンジンに転送し、転送状態で転送テーブルで指定されるスイッチング情報に従ってコマンドフレームを転送するように構成された少なくとも1つのスタッキングポートとを有する、方法が提供される。前記スイッチングノードによって実行される方法ステップは、前記ブロッキング状態に構成されたスタッキングポートを介して、前記予約された識別値を有するスイッチングノード宛のコマンドフレームを受信するステップと、前記コマンドフレームを前記コマンドエンジンに転送するステップと、前記スイッチングノード識別子を用いて前記コマンドフレームに肯定応答するステップと、前記スイッチングノード識別子を前記予約された値と異なる値に変更することを指定するコマンドをカプセル化した受信されたコマンドフレームで指定された新しい値を前記スイッチングノード識別子にセットするステップと、前記転送テーブルで指定された前記スイッチング情報に従って、前記転送状態に構成されたスタッキングポートを介して、受信された前記予約された識別値を有するスイッチングノード宛の後続コマンドフレームを転送するステップとを含む。
【００１２】
本発明のもう1つの態様によれば、スイッチングネットワークノードのスタック内の複数のスイッチングネットワークノードを発見する方法であって、前記スタック内の各スイッチングノードは、予約された識別値を指定するスイッチングノード識別子と、ブロッキング状態ですべてのコマンドフレームをコマンドエンジンに転送し、転送状態で転送テーブルで指定されるスイッチング情報に従ってコマンドフレームを転送するように構成された少なくとも1つのスタッキングポートとを有する、方法が提供される。管理プロセッサによって実行される循環方法ステップに、前記予約された識別値を有する宛先スイッチングノードを指定するコマンドフレームを送信するステップと、新たに発見されたスイッチングノードからの前記予約された識別値を指定する前記スイッチングノードからの肯定応答を受信するステップと、前記新たに発見されたスイッチングノードの前記スイッチングノード識別子を、前記予約された識別値と異なる一意の識別値に構成するステップと、前記新たに発見された構成されたスイッチングノードからスタッキングポート識別子を取り出すステップと、スタッキングポートを選択するステップと、前記選択されたスタッキングポートを前記転送状態にセットするステップとが含まれる。
【００１３】
本発明のもう1つの態様によれば、スイッチングネットワークノードのスタック内のスイッチングネットワークノードに管理プロセッササービスを提供する方法が提供される。前記方法は、提供される前記サービスに関するデータをフレームにカプセル化することと、フレームスタッキングタグ(FTAG)を前記フレームに関連付けることと、前記スイッチングノードのスイッチングノード識別子を前記FTAGの宛先スイッチングノードフィールドに書き込むことと、前記FTAGを担持する前記フレームを前記スイッチングノードに向けて送信することとを含む。
【００１４】
本発明のもう1つの態様によれば、スイッチングネットワークノードのスタック内のスイッチングネットワークノードでフレームを処理する方法が提供される。前記方法は、受信されたフレームが制御フレーム用に予約された分類アクション値以外の分類アクション値を担持する場合に、前記スイッチングノードに関連するスイッチングデータベースに保管されたスイッチング情報に基づいて前記受信されたフレームを選択的に転送することと、受信されたフレームが制御フレーム用に予約された分類アクション値を担持する場合に、前記スイッチングノードに関連して保管された転送テーブルに保管されたスイッチング情報に基づいて前記受信されたフレームを選択的に転送することと、管理プロセッササービスを必要とするフレームごとに、フレームの前記分類アクション値を制御フレーム用に予約された前記分類アクション値に選択的に変更することとを含む。
【００１５】
利益は、スタック内のスイッチングノードの個数より少ない適当な個数の管理プロセッサが、処理要件、制御要件、および構成帯域幅要件に基づいてスタック内の対応するスイッチングノードにサービスを提供するのに使用される、エンジニアリングされたスイッチングモード展開から導出される。スタック内のスイッチングノードの帯域内構成および制御によって、展開、構成、管理、および維持のオーバーヘッドが減る。
要約すれば、スタックのスイッチングノードは、予約されたスイッチングノード識別子をデフォルトとし、スタッキングポートは、始動、再始動、およびリセットの時にブロッキング状態をデフォルトとする。ブロッキング状態で受信される各コマンドフレームは、各スイッチングノードのコマンドエンジンに転送され、現在のスイッチングノード識別子を用いて肯定応答される。予約されたネットワークノード識別子を担持する各肯定応答フレームは、肯定応答するスイッチングノードの構成をトリガする。スイッチングノードおよび管理プロセッサは、イベントに関する割込み状態ベクタを追跡する。割込み肯定応答処理が、送出された割込みの追跡に使用される。スイッチングノードの構成は、管理プロセッサによって送信され、スイッチングノードに関連するコマンドエンジンを宛先とするコマンドフレームを介して実行される。管理プロセッサによって提供されるサービスは、管理プロセッサが取り付けられたスイッチングノードおよびその管理ポートを宛先とする制御フレームを介して要求される。利益は、スタックのスイッチングノードの個数より少ない適当な個数の管理プロセッサが、処理要件、制御要件、および構成帯域幅要件に基づいてスタックの対応するスイッチングノードにサービスを提供するのに使用される、エンジニアリングされたスイッチングノード展開から導出される。スタックのスイッチングノードの帯域内構成および制御は、展開オーバーヘッド、構成オーバーヘッド、管理オーバーヘッド、および維持オーバーヘッドを減らす。
【００１６】
本発明の特徴および利益は、添付図面に関する次の例示的実施形態の詳細な説明から明白になる。
【００１７】
添付図面で、同一の特徴が同一の符号を有することに留意されたい。
【発明を実施するための最良の形態】
【００１８】
図3を参照すると、本発明の例示的実施形態によれば、スタック300内のネットワークスイッチ302は、スタック300内のネットワークスイッチ302ごとに別々の管理プロセッサを展開せずに、スイッチングネットワークノード302の1つに接続304された管理プロセッサ306によって構成され、制御される。本明細書で提示する手法を、スタック300内のスイッチングノード302のリモート構成および制御と称する。
【００１９】
スタッキング構成でのリモート構成および制御配置の例示的要素に、スタッキングポート308を接続する、スタッキングリンク307と称する、スイッチングノード302を相互接続するリンクが含まれる。
【００２０】
本発明の例示的実施形態によれば、スタッキングポート308を介して送信される各フレーム400に、次の例示的フォーマットを有するフレームスタッキングタグ(FTAG)406が含まれる。
【００２１】
【表１】
2006042368.tif 000003
【００２２】
FTAG 406のサイズは、そのような実施形態がこうむるオーバーヘッドに相関し、使用されるFTAG 406サイズは、設計選択に委ねられ、この設計選択は、展開ごとに、こうむるオーバーヘッドとサポートされる機能性の間のバランスをとることである。
【００２３】
各FTAG 406に、例えば、フレームがユニキャストまたはマルチキャストのいずれであるかと、送信優先順位と、VLANアソシエーションと、オリジナル「ソース」すなわち、それを介して最初にフレーム400が受信されたスイッチングノード302および外部ポートとを含む、処理されるフレームに関する情報が含まれる。下で詳細に説明するように、クラシファイヤアクションフィールドは、フレーム400ごとに、そのフレーム400がスタック300内の各スイッチングノード302によってどこに転送されるかを決定する。
【００２４】
本発明の例示的実施形態によれば、スタッキングポート308を介して伝えられるフレームのほとんどに、実際にFTAG 406が含まれるが、MACフロー制御フレームが、1つの例外である。したがって、FTAG 406を含むフレームをこれらの少数のそうでないフレームと区別するために、FTAGシグネチャが必要である。そのような例のFTAGシグネチャは、実際のフレームデータ404ではなく、プリアンブルに続く第1の個数のビット/バイトをFTAGとして識別する。FTAG 406およびFTAGシグネチャは、本発明を制限せずにフレームヘッダ402に関連付けることができる。
【００２５】
本発明の例示的実施形態によれば、スタック300内の各スイッチングノード302に、コマンドエンジン310が含まれる。コマンドエンジン310の例示的機能性に、管理プロセッサ306から受信したコマンドフレーム410の復号、それに含まれるコマンドの実行、ならびに肯定応答および/または応答の生成が含まれる。管理プロセッサ306が「リモート」であるすなわち、対象のスイッチングノード302に直接に取り付けられていない場合に、コマンドエンジン310は、管理プロセッサ306のローカル代理として働き、スイッチングネットワークノード302のロジックを構成し、行われるリモート制御に応答する。さらに、コマンドエンジン310は、サービスおよび/サポートが必要な時にリモート管理プロセッサ306に割り込むために、発信コマンドフレーム410を開始することができる。次の表に、そのような例示的なコマンドフレーム410の例示的フォーマットを示す。
【００２６】
【表２】
2006042368.tif 000004
【００２７】
コマンドフレーム410のオペコードは、フレームデータ404で符号化されたコマンドまたは応答のタイプを識別するのに使用される。例のコマンドオペコードを、下にリストするが、特定の実施形態で使用できる様々なリモートコマンド/要求は、事実上無制限である。
【００２８】
【表３】
2006042368.tif 000005
【００２９】
コマンドフレーム410の実際のフレームデータ404の内容は、コマンドフレーム410のオペコードに応じて変化する。例えば、オペコード「000011」(レジスタ書込要求)を有するコマンドフレーム410の内容に、書き込まれるレジスタのアドレス、および関連する値が含まれる。対照的に、オペコード「001000」(統計カウンタロールオーバ)を有するコマンドフレーム410の内容に、そのコマンドフレーム410を発したスイッチングノード302内のすべてのハードウェア統計カウンタのビットマップが含まれ、ラップアラウンドしたカウンタのビット位置だけが論理ハイ「1」になっている。
【００３０】
本発明の例示的実施形態によれば、スタック300内の各スイッチングノード302に、転送テーブル350が含まれ、スタック300のスイッチングノード302-2の例を下に示す。
【００３１】
【表４】
2006042368.tif 000006
【００３２】
スタック300のすべてのスイッチングノード302で、ローカル転送テーブル350に、スタック300の別のスイッチングノード302に達するためにフレーム400/410がそれを介して転送されなければならないスタッキングポート識別子が保管されている。
【００３３】
本発明の例示的実施形態によれば、転送テーブル350の他に、スタック300の各スイッチングノード302は、それ自体の一意IDならびにそれを制御する管理プロセッサ306が直接に取り付けられたスイッチングノード302のIDも保管する。この情報は、通常は、ローカルレジスタ352に保管される。
【００３４】
本発明の例示的実施形態によれば、上で述べた要素は、適用されているリモート制御の対象であるスイッチングノードスタック300内の帯域内制御フレームトランスポートをイネーブルするために協力する。
【００３５】
第1の例示的なシナリオによれば、リモート管理プロセッサ306は、リモートスイッチングノード302のコマンドを生成する。
【００３６】
図4を参照すると、管理プロセッサ306は、FTAG 406を含むコマンドフレーム410にコマンドをカプセル化する422。FTAG 406は、「クラシファイヤアクション」フィールドに、例えば「2」をセットされ424、「宛先スイッチングノード」フィールドに、このコマンドが宛てられたスイッチングノード302のスイッチングノードIDをセットされる426。「宛先ポート」フィールドに、所期の宛先スイッチングノード302のコマンドエンジン310を示すために予約された値をセットする428。本発明の例示的実施形態の例示的実装によれば、スタック300のスイッチングノード302のどれにも29個を超える物理ポートが含まれない場合に、特殊な値「31」を、その制御フレーム410がコマンドエンジン310宛であることを示すために「宛先ポート」フィールドで使用することができる。コマンドフレーム410を、所期のスイッチングノード302に送信する430。
【００３７】
図5を参照すると、コマンドフレーム410がスタック300をトラバースする際に、途中のスイッチングノード302のそれぞれで、スタッキングポート308のインターフェースまたはその付近のスイッチングノードハードウェアであるメディアアクセス制御(MAC)モジュールが、そのFTAGシグネチャによってコマンドフレーム410を認識する432。MACモジュールは、スイッチングノード302のクラシファイヤによる使用のためにFTAG 406を抽出する434。
【００３８】
検索分類エンジンが、FTAG 406で指定された「クラシファイヤアクション」フィールドに「2」がセットされていることを観察する436が、これは、FTAG 406で指定された制御フレームの宛先が、データベース検索または分類の結果をオーバーライドすることを意味する。
【００３９】
スイッチングノード302の検索分類エンジンが、FTAG 406の「宛先スイッチングノード」がこの判定を行っているスイッチングノード302のスイッチングノードIDと等しいことを観察438する場合に、このコマンドフレーム410は、ローカルポートまたはローカルコマンドエンジン310宛でなければならない。「宛先ポート」フィールドに、コマンドエンジン310に予約された値がセットされている440場合に、検索分類エンジンは、このコマンドフレーム410をローカルコマンドエンジン310に中継する442。
【００４０】
コマンドフレーム410が、宛先のコマンドエンジン310によって受信されたならば、そのコマンドエンジン310は、オペコードを読み取り、解釈することによってコマンドを復号し、コマンドを実行する444。コマンドの実行444に、通常は、読み取られるか更新される関連するレジスタまたはレコードを突き止めることができる、スイッチングノード302の他のハードウェアモジュールと相互作用することが含まれる。
【００４１】
検索分類エンジンが、FTAG 406の「宛先スイッチングノード」が対象のスイッチングノードIDと等しくないことを観察する438場合に、そのコマンドフレーム410は、スタック300内の別のスイッチングノード302宛でなければならない。この場合に、検索分類エンジンは、指定された宛先スイッチングノードIDをインデックスとして使用して転送テーブル350を調べて446、制御フレーム410の正しい出スタッキングポート308を判定し、判定されたスタッキングポート308を介して制御フレーム410を転送する448。
【００４２】
第2のシナリオによれば、コマンドエンジンは、リモート管理プロセッサ306からのコマンドに応答する。
【００４３】
コマンドエンジン310が、コマンドの実行を終了した時に、コマンドエンジン310は、完了を肯定応答することができ、必ずではないが通常、関連情報を応答することができる。肯定応答/応答では、コマンドエンジン310が、FTAG 406を含むコマンドフレーム410に応答/肯定応答をカプセル化する450。FTAG 406が、「クラシファイヤアクション」フィールドに「2」をセットされ452、「宛先スイッチングノード」フィールドに、制御する管理プロセッサ306が直接に取り付けられているスイッチングノード302がセットされる454。「宛先ポート」フィールドに、管理プロセッサポートIDをセットする456。コマンドエンジン310が、応答フレーム410の内容、例えば、1つまたは複数のレジスタから読み出されたデータを書き込む(450)。
【００４４】
本発明の例示的実施形態の例示的実装によれば、スイッチングノード302での制御フレーム410の処理に関連するオーバーヘッドは、管理プロセッサ306によって送信された制御フレーム410に応答/肯定応答する際に、各応答制御フレーム410が、多くとも受信された要求制御フレーム410と同じ大きさであると仮定して、応答制御フレーム410が生成される450時に、対応する応答制御フレーム410を用いて、スイッチングノード302に既に保管されている受信された要求制御フレーム410を上書きすることによって、減らされる。
【００４５】
次に、肯定応答/応答制御フレーム410が、転送テーブル350で指定されたスタッキングポート308を介して送信される458。肯定応答/応答制御フレーム410が、ローカルスイッチングノード302宛である場合に、肯定応答/応答制御フレーム410は、ループバックスタッキングポートを介して送信458されたと理解され、この処理は、ステップ432から継続される。
【００４６】
応答制御フレームの「宛先スイッチングノード」指定が、ローカルスイッチングノードIDを指定し438、ローカルスイッチングノード302が、肯定応答/応答制御フレーム410を生成し、「宛先ポート」が、管理プロセッサ306が取り付けられたポート303である460場合に、コマンドエンジン310は、ローカル管理プロセッサポート303に制御フレーム410を送る462。
【００４７】
応答フレームの「宛先スイッチングノード」指定が、ローカルスイッチングノードIDを指定しない438場合に、制御する管理プロセッサ306は、スタック300内の別のスイッチングノード302に接続されている。この場合に、コマンドエンジン310は、転送テーブル350を調べ446て、制御する管理プロセッサ306が直接に接続されているスイッチングネットワークノード302に応答制御フレーム410を転送448するための正しい出スタックポート308を判定する。
【００４８】
応答制御フレーム410は、スタック300を介して、スイッチングノード302によってスイッチングノード302へ転送され448続け、最終的に、最初のシナリオに関して上で説明したように、正しい宛先スイッチングノード302に達する。正しい438宛先スイッチングノード302に達したならば、ローカルコマンドエンジン310が、FTAG 406の「宛先ポート」指定が管理プロセッサポート303であることを観察し460、肯定応答/応答制御フレーム410が、管理プロセッサ306に転送される462。
【００４９】
第3のシナリオによれば、コマンドエンジン310が、リモートの管理プロセッサ306に向かって割込みを配送する。
【００５０】
スイッチングノード302のハードウェアモジュールのいずれかが管理プロセッサ割込みを要求する時に、ローカルコマンドエンジン310が、その割込み情報を、FTAG 406を有するコマンドフレーム410に符号化する466。FTAG 406は、「2」をセット452された「クラシファイヤアクション」フィールドを有し、「宛先スイッチングノード」フィールドに、制御する管理プロセッサ306が直接に取り付けられたスイッチングノード302のスイッチングノードIDをセット454されている。また、「宛先ポート」フィールドに、管理プロセッサポート303がセット456されている。
【００５１】
コマンドフレーム410転送は、第2のシナリオに関して上で説明したように進行する。
【００５２】
第4のシナリオによれば、検索/分類エンジンが、フレームを管理プロセッサ306にリダイレクトする。
【００５３】
ある条件の下で、検索/分類エンジンは、FTAG 406を対象のフレーム400に含める472ことによって、管理プロセッサ306へフレーム400をリダイレクト470することができる。例えば、レイヤ3フレーム400の宛先IPアドレスが、ローカルスイッチングノード302のデータベースで見つからない場合に、スイッチングノード302は、そのフレーム400を管理プロセッサ306に転送する458ことができ、この管理プロセッサ306は、ルーティング機能性を提供する。さらに、Bridge Protocol Data Units(BPDU)またはSpanning Tree Protocol(STP)フレーム400などの他の特殊なタイプのフレーム400を、ローカルスイッチングノード302の検索/分類エンジンによってトラップし、特殊な処理のために管理プロセッサ306に転送することができる。FTAG 406が、そのようなフレーム400に「アタッチ」472されたならば、FTAG 406の「クラシファイヤアクション」フィールドに「2」をセット452し、「宛先スイッチングノード」フィールドに、制御する管理プロセッサ306が直接に取り付けられたスイッチングノード302をセット454する。また、「宛先ポート」フィールドに、管理プロセッサポート303をセットする456。変更されたフレーム400の転送458は、上で第2のシナリオに関して説明したように進行する。
【００５４】
第5のシナリオによれば、管理プロセッサ306が、フレーム400をスイッチングノード302に送信して、ポートを介して転送させる。
【００５５】
図4を参照すると、非コマンドフレーム400が管理プロセッサ306から送信される最も一般的な時は、管理プロセッサ306がフレームのIPアドレスを解決した478後、すなわち、上で第4のシナリオに関して述べたように、管理プロセッサ306に転送458されたフレーム400に応答してである。この場合に、管理プロセッサ306は、受信476されたフレーム400のFTAG 406およびペイロードを、リモートスイッチングノード302にフレーム400を送信する前に変更480する。FTAG 406の「クラシファイヤアクション」フィールドに「2」をセットし482、「宛先スイッチングノード」フィールドおよび「宛先ポート」フィールドに、解決されたIPアドレスに基づいて、ソーススイッチングノードIDおよび出ポートIDをセットする484/486。
【００５６】
フレーム400の転送は、上で第5のシナリオに関して説明したように進行する。
【００５７】
フレームが、最終的に宛先のスイッチングノード302に達した時に、ローカル検索/分類エンジンが、フレーム400を識別し432、指定された出ポートにリダイレクトする490。その途中で、検索/分類エンジンは、新しい宛先IPアドレス/出ポートアソシエーションを学習する492。
【００５８】
したがって、上で説明した第5のシナリオは、帯域内構成および制御フレーム転送を表す。
【００５９】
フレームは、外部ポートを介してスイッチングノード302で受信され、FTAGを与えられる510。
【００６０】
第6のシナリオによれば、フレーム400は、各ホップでレイヤ2またはレイヤ3データベース検索を実行する502ことによって、スタック300内のスタッキングポート308の間で転送される458。そのようなフレーム400のFTAG 406の「クラシファイヤアクション」フィールドに、「0」がセットされている500。その代わりに、第1ホップのスイッチングノード302が、分類の後にフレーム400にフローIDを割り当て、FTAG 406にフローIDを保管することができる。「クラシファイヤアクション」に「1」をセットする506ことによって、検索/分類エンジンは、後続ホップが前に割り当てられたフローIDを使用してローカルデータベース検索の結果をオーバーライドすることを強制する508ことができる。
【００６１】
したがって、上の6つの例示的シナリオは、スタック300内のフレーム転送の詳細を示すものである。
【００６２】
本発明の例示的実施形態によれば、割込み肯定応答プロトコルが提供される。
【００６３】
単一の管理プロセッサ306が、帯域内メッセージを介してスタック300の複数のスイッチングネットワークノード302を制御する場合に、帯域内通信チャネルの信頼性が、クリティカルな問題になる。
【００６４】
上で第1および第2のシナリオに関して説明したように、コマンドエンジン310は、受信したすべてのコマンドフレーム410に肯定応答し、その結果、管理プロセッサ306が、発行されたコマンドが実際にその宛先に達し、実行されたかどうかを監視できるようになっている。管理プロセッサ306は、肯定応答を受信しない場合に、そのコマンドフレーム410が失われたと仮定しなければならず、したがって、そのコマンドフレーム410を再送信する。
【００６５】
コマンドが、実際に受信され、実行されたが、肯定応答自体が失われたか遅れていることがありえる。この状態は、管理プロセッサ306が同一のコマンドを複数回発行することをもたらし、リモートスイッチングノード302に、そのような肯定応答されなかったコマンドをはからずも複数回実行させる。
【００６６】
本明細書に記載の例示的実施形態に基づく実装は、可能な範囲まで、管理プロセッサ306によって発行されるコマンドが、2回実行される場合に無害であることを保証しなければならない。
【００６７】
有利なことに、スタック300のスイッチングネットワークノード302を制御し、構成するのに必要なコマンドのほとんどは、無害であり、その例に、レジスタの読取/書込、スイッチングデータベース更新が含まれる。
【００６８】
しかし、上の説明から、コマンドエンジン310が、管理プロセッサ306割込みが必要である時に、必ず、コマンドフレーム410を生成することを想起されたい。信頼性のある帯域内チャネルを保証するために、コマンドエンジン310は、肯定応答(410)を監視することによって、各割込みが管理プロセッサ306に実際に達したかどうかを判定する。上で説明したように、コマンドエンジン310は、管理プロセッサ306からの肯定応答の消失または遅れのゆえに同一の割込みを誤って2回発行し、管理プロセッサ306にコマンドエンジンの意図を誤って解釈させる可能性がある。管理プロセッサ306が、スイッチングノード302-3から時間的に狭い間隔で2つの割込みメッセージを受信し、各割込みメッセージが「ポート7で受信された総バイト数」統計カウンタがラップアラウンドしたことを示すと仮定する。管理プロセッサ306は、実際には同一の割込みメッセージが2回発行されただけである可能性がある時に、このカウンタが実際に2回ロールオーバーしたと誤って判定する可能性がある。
【００６９】
この曖昧さは、本発明の例示的実施形態によって、図6に示された割込み肯定応答プロトコル600を使用することによって対処される。この割込み肯定応答プロトコルでは、3つの参加エンティティすなわち、関連するスイッチングノード302の割込みクライアントモジュール602、ローカルスイッチングノード302の関連するコマンドエンジン310、および管理プロセッサ306が用いられる。本明細書では、例示的な割込み肯定応答プロトコル実装を説明するのに、次の用語を使用する。
・  割込みクライアントモジュール602は、割込みイベントがそれに関して開始された対象のスイッチングノード302のハードウェアブロックである。上の例から、統計カウンタがMACブロックでロールオーバーした時に、管理プロセッサ306が通知されなければならない。このMACブロックは、割込みクライアントモジュール602として振る舞う。
・  ローカル割込みベクタ604:割込みクライアントモジュール602は、管理プロセッサ306割込みをトリガする複数のイベントを経験する可能性があり、割込みクライアントモジュール602は、どのイベント(1つまたは複数)が管理プロセッサ306をトリガするのに使用されているかを示すビットマップを保持しなければならない。このビットマップは、ローカル割込みベクタ604と呼ばれ、対象のスイッチングノード302でローカルに保管される。
・  CMD割込み状況ベクタ606:コマンドエンジン310は、対象のスイッチングノード302の割込みクライアントモジュール602ごとに割込み状況ベクタ606を維持する。クライアントの割込み要求は、その受信が管理プロセッサ306によって肯定応答されるまで保留中である。この保留中状況は、CMD割込み状況ベクタ606の論理ハイ「1」によって反映される。
・  スレッド:割込みクライアントモジュール602が、1つまたは複数の割込みイベントをトリガした時に、コマンドエンジン310は、割込みクライアントモジュール602の割込み状況を含むコマンドフレーム410を定式化し、送信し、その後、管理プロセッサ306からの肯定応答を待つ。コマンドエンジン310は、複数のクライアント602に同時にサービスすることができる、すなわち、所与の時に移動中の、複数のそのようなコマンドフレーム410またはそれに対応する肯定応答がある可能性がある。これらの複数の並列動作を、スレッドと称する。スレッドごとに、コマンドエンジン310および管理プロセッサ306が少量の状態情報を維持する必要がある。
・  シーケンス番号:コマンドフレーム410および肯定応答(410)は、スレッド番号と、コマンドフレーム410が送信/肯定応答されるたびに1つ増分されるシーケンス番号によって識別される。シーケンス番号は、上で示したコマンドフレーム410ヘッダに含まれる。カウンタが、スレッドごとに維持される。
【００７０】
対応して、管理プロセッサ306は、それに関連するリポジトリ309内で、CMD割込み状況ベクタ情報を追跡する。
【００７１】
割込みイベント650の発生時に、割込みクライアントモジュール602は、対応するローカル割込みベクタ604の対応するビットをセットする652。割込みトリガは、割込みクライアントモジュール602がコマンドエンジン310にアクセスを要求する654ことから開始される。コマンドエンジンへのアクセスが許可される656時に、コマンドエンジン310は、その割込みクライアントモジュール602に関連するCMD割込み状況ベクタ606を更新する658。本発明の例示的実施形態の例示的実装によれば、新しいCMD割込み状況ベクタ606は、古いベクタ606とクライアントのローカル割込みベクタ604のビット単位のORである。また、割込みクライアントモジュール602は、そのローカル割込みベクタ604をクリアする660。
【００７２】
いずれかのビット位置に論理ハイ「1」を含むCMD割込み状況ベクタ606は、その割込みクライアントモジュール602の代わりにコマンドフレーム410が管理プロセッサ306に送信されることを必要とする。本発明の例示的実施形態によれば、アクティブスレッドの個数は、スイッチングネットワークノード302での管理されたリソースを表し、したがって、複数のスレッドの1つが解放される時に、コマンドエンジン310が、それを使用する資格を有する割込みクライアントモジュール602の1つを選択する。例えば、サービスに関して割込みクライアントモジュール602を選択するのに使用されるアービトレーションアルゴリズムは、ラウンドロビン規律を厳守することができる。選択されたスレッドが占められる時に、そのスレッドのシーケンス番号を増分する。
【００７３】
コマンドエンジン310は、コマンドフレーム410を生成し662、そのコマンドフレーム410を、割込みクライアントモジュール602の代わりに送信する664。このコマンドフレーム410に、その割込みクライアントモジュール602のCMD割込み状況ベクタ606(ビットマップ)の現在値が含まれる。このコマンドフレーム410は、スレッド番号およびそのスレッドの現在のシーケンス番号によって識別される。スレッドは、コマンドエンジン310が肯定応答(410)を待っている間、占められたままになる。
【００７４】
肯定応答が、特定のスレッドについて受信670されるが、肯定応答のシーケンス番号が、スレッドのシーケンスカウンタと一致しない672場合、またはスレッドが解放されている674場合に、コマンドエンジン310は、肯定応答を無視し、したがって、複数の肯定応答の悪影響が減る。
【００７５】
肯定応答(410)が、占められたスレッドについて受信され、その肯定応答のシーケンス番号がスレッドのシーケンスカウンタと一致する676場合に、その肯定応答は有効である。コマンドエンジン310は、割込みクライアントモジュール602に関連するCMD割込み状況ベクタ606を更新する678。本発明の例示的実施形態の例示的実装によれば、新しいCMD割込み状況ベクタ606は、古いベクタと、肯定応答(410)に含まれるベクタの逆数のビット単位のANDである。また、スレッドが解放される。
【００７６】
有効な肯定応答410が、(プログラム可能な)タイムアウト期間中に受信されない696場合に、コマンドエンジン310は、再開し、上で述べたように、もう1つのコマンドフレーム410を定式化し662、発行する664ステップを行う。
【００７７】
スレッドごとに、管理プロセッサ306は、制御フレーム410で受信664された最後のシーケンス番号ならびにそのシーケンス番号に対応する最初に受信された割込み状況ベクタ606を記憶する。
【００７８】
コマンドフレーム410が、特定のスレッドについて受信664され、そのフレームのシーケンス番号が、最後に受信されたシーケンス番号と一致しない680場合に、その制御フレーム410は、有効と考えられる。管理プロセッサ306は、制御フレーム410で指定された割込み状況ベクタ606の値に基づいて、またはそこで指定される論理ハイビットに基づいて、処置を講じる680。
【００７９】
管理プロセッサ306は、肯定応答フレーム410を定式化し684、送信する670。この肯定応答フレーム410には、対応するコマンドフレーム410と同一のシーケンス番号および同一の割込み状況ベクタ606内容が含まれる。管理プロセッサ306は、受信したシーケンス番号およびコマンドフレーム内容(ペイロード、この場合には割込み状況ベクタ606)を記録する。
【００８０】
コマンドフレーム410が、スレッドについて受信され、フレームのシーケンス番号が、最後に受信されたシーケンス番号と一致する679場合に、その制御フレーム410は、割込みの最初のトリガの肯定応答670が対象のスイッチングノード302に達しなかったので発行された繰り返された、無効な割込みである。管理プロセッサ306は、この制御フレーム410のベクタ内容に関して処置を講じない。管理プロセッサ306は、(もう)1つの肯定応答フレーム410を定式化684し、送信670する。この肯定応答には、コマンドフレームと同一のシーケンス番号と、無効なコマンドフレーム410に現在存在する内容の代わりの前に保管された内容が含まれる。管理プロセッサ306は、受信したシーケンス番号および内容を記録しない。
【００８１】
上の説明では、管理プロセッサ306とスタック300のリモート制御されるスイッチングノード302の間の相互作用は、スタック300の各スイッチングノード302が、それ自体のID、管理プロセッサ306が取り付けられたスイッチングノード302のID、およびスタック300の各スイッチングノード302に達するための正しいスタッキングポート308を知っている、すなわち、スタック300の各スイッチングノード302が、転送テーブル350およびレジスタ352に保管された情報を用いて事前に構成されていることが前提になっている。
【００８２】
この3つの情報は、初期化時にスタック300の各スイッチングノード302に供給される。うわべの悪循環は明白であり、スタック300を、スタック300を構成するために初期化しなければならないことである。管理プロセッサ306によって行われるリモート制御は、上で述べた3つの情報なしでは実行できない、すなわち、スイッチングノード302が初期化されなければ実行することができず、この初期化自体を、リモート制御を介して実行できると期待することはできない。
【００８３】
本発明の例示的実施形態によれば、リモートスイッチングネットワークノード初期化のサポートが提供される。
【００８４】
本発明の例示的実施形態の例示的実装によれば、次の2つの追加の基本的な要素が使用される。
・  スイッチングノードデフォルトID  初期化の前に、スタック300のすべてのスイッチングノード302が、予約されたID「0」と等しいスイッチングノードIDを有する。「0」は予約されたIDなので、スタック300のどのスイッチングノード302も、初期化後の通常動作中に0と等しいスイッチングノードIDを有することはできない。
・  ポートブロッキング  すべてのスタッキングポート308を、「ブロッキング状態」または「転送状態」のいずれかにセットすることができる。スタッキングポート308がブロッキング状態である時に、着信コマンドフレーム410は、必ず、ローカルコマンドエンジン310に直接に送られる。スタッキングポート308が転送状態である時に、着信コマンドフレーム410は、FTAG 406および転送テーブル350に保管された情報に基づいて転送される。デフォルトで、すべてのスタッキングポート308が、ブロッキング状態である。
【００８５】
本発明の例示的実施形態の例示的実装によれば、図7に示されているように、深さ優先検索を使用するスタック探査(exploration)初期化処理700が使用される。簡単な考慮を続ける。
【００８６】
管理プロセッサ306が、FTAG 406、「0」と等しい「宛先スイッチングノード」、およびコマンドエンジンの予約済みポート値と等しい「宛先ポート」を有するコマンドフレーム410を生成する702ことによって、それに最も近いスイッチングノード302を初期介することによって初期化処理700を開始する。コマンドフレーム410が、スタッキングポート308を介して送信される704。最も近いスイッチングノード302の検索エンジンが、コマンドフレーム410を受信し704、コマンドエンジン310に転送する。
【００８７】
コマンドエンジン310が、指定されたオペコードに従ってコマンドフレーム410内のコマンドを実行する706。コマンドエンジン310は、コマンド410に肯定応答し708、元のコマンドフレーム410がそれを介して到着(704)したローカルスタッキングポート308に肯定応答410を送信する708。
【００８８】
管理プロセッサ306が、肯定応答を受信し710、その後、一連のコマンドフレーム410を送信することによって、最も近いスイッチングノード302を構成710するのに必要な情報を有する。最も近いスイッチングノード302のスイッチングノードIDに、「1」を再割り当てする712。
【００８９】
先に進む前に、管理プロセッサ306は、次に探査する発信スタッキングポート308を選択する714。ここでは、深さ優先検索アルゴリズムが適用される。管理プロセッサ306は、スイッチングノードID 1の転送テーブル350を構成716/718して、スイッチングノードID 0宛のフレームを選択された出ポート308に向ける。
【００９０】
管理プロセッサ306は、「宛先スイッチングノード」が「0」、「宛先ポート」がコマンドエンジンの予約された値であるコマンドフレーム410をもう一度生成720し、送信する722。既に初期化されたスイッチングノードID 1は、スイッチングノード302-0宛のコマンドフレーム410を検出724し、そのコマンドフレーム410を、前に構成された選択されたスタッキングポート308に送る726。スタッキングポート308を介して到達可能なスタック300の次のスイッチングノード302は、初期化されておらず、したがって、デフォルトでそれ自体をスイッチングノードID 0として識別する。コマンドフレーム410を受信した時に、そのフレームをローカルコマンドエンジン310に転送する。スタック300の第2のスイッチングノード302の構成は、管理プロセッサ306に最も近いスイッチングノード302の上で説明した構成に類似する形で進行するが、スイッチングノードIDに「2」がセットされて終わる。
【００９１】
スタック300のすべてのスイッチングノード302の構成が、この形で継続される。管理プロセッサ306は、コマンドフレーム410を「スイッチングノードID 0」に送信し、これが、既に初期化されたスイッチングノード302によって、最初の未初期化スイッチングノード302に出会うまで転送される。その後、管理プロセッサ306が、新たに出会ったスイッチングノード302に新しいIDを割り当て、必要に応じて構成する。この処理では、管理プロセッサ306が、構成されるスイッチングノード302の転送テーブル350を構成し、その結果、次のスイッチングノードID 0の検索が、前に探査されていないスタッキングポート308を介して進行するようになる。
【００９２】
上で説明した手法は、スタック初期化の問題をほとんど解決する。図8に、残りの1つの問題を示す。
【００９３】
図8a)では、管理プロセッサ306が、スイッチ302-1、302-2、および302-3を既に初期化している。管理プロセッサ306は、第4のスイッチングノード302の発見を試みる時に、説明したように、「宛先スイッチングノード」が「0」と等しいFTAGを有するコマンドフレーム410を生成する。このコマンドフレーム410を送信する前に、管理プロセッサ306は、太線で示されたパスに沿ってスイッチングノードID 0宛のコマンドフレーム410を中継するように、302-1、302-2、および302-3の転送テーブルを構成する。
【００９４】
図8b)に、スイッチングノード302-3が、実際にスイッチングノード302-1に接続され、上で説明したリング104タイプのスイッチングノードスタック100で望まれるループが形成される場合にどうなるかを示す。この場合に、スイッチングノードID 0宛のコマンドフレーム410は、存在しない未構成のスイッチングノード302を探して、スタック300を回って中継される。外観上、このサイクルを壊すことができるスイッチングノード302がない。というのは、リング104内の各スイッチングノード302が、すべてのそのようなコマンドフレーム410を転送するように管理プロセッサ306によって構成されており、したがって、構成された通りに振る舞っているからである。
【００９５】
ループ検出は、トポロジ発見のクリティカルな態様である。例示的実施形態によれば、ループを検出し、解決する単純な方法が、図9に示されている。未探査のスタッキングポート308を介してコマンドフレーム410を転送する前に、管理プロセッサ306は、探査パスの一部でないすべてのスタッキングポート308をブロッキングポートとして構成し902、探査パス内のスタッキングポート308を転送ポートとして構成する904。
【００９６】
したがって、コマンドフレーム410は、スイッチングノード302-1にループバックした時に、ブロッキングポート(308)に到達し、上で説明したように、即座にローカルコマンドエンジン310に転送される。ローカルコマンドエンジン310は、コマンドを実行し、肯定応答を管理プロセッサ306に送信する。管理プロセッサ306は、肯定応答を受信し、FTAG 406の「ソーススイッチングノード」フィールドから、この肯定応答(410)が、スイッチングノードID 0からではなくスイッチングノードID 1から来たことを観察し、これによって、トポロジ内のループの発見が知らされる。
【００９７】
上では、単一の管理プロセッサ306によって管理されるスイッチングノード302の単一のスタック300に関して本発明を説明した。特定の応用例を実施するためおよび/または例えば負荷共用を提供するために、スイッチングノード302のスタックを、図10に示されているように複数の管理プロセッサ306によって制御することができる。各スイッチングノード302が、それ自体を制御する管理プロセッサ306の位置の知識を有する限り、上で説明した方法およびアルゴリズムが、変更なしで適用される。各管理プロセッサ306および対応する管理されるスイッチングノード302が、管理ドメインを形成する。スタック探査および初期化は、おおむね同一であり、それからの逸脱は、図10に関して最もよく説明される。
【００９８】
図10では、管理プロセッサ306-Aおよび管理プロセッサ306-Bの両方が、それ自体のドメインを上で説明したように初期化する。両方の管理プロセッサが同一のスイッチングノード302-Sの初期化を試みる時に、衝突が発生する。この衝突に対処するために、管理プロセッサ306-Aが最初にスイッチングノード302-Sを初期化すると仮定する。管理プロセッサ306-Bが、コマンドフレーム410を送信することによってスイッチングノード302-Sの再初期化を試みる時に、スイッチングノード302-Sのコマンドエンジン310は、対応する肯定応答を管理プロセッサ302-Aに送信する。というのは、管理プロセッサ302-Aが、現在の構成によるスイッチングノード302-Sの制御する管理プロセッサ306であるからである。管理プロセッサ302-Aは、それが送信したのでないコマンドフレーム410の肯定応答を受信する時に、衝突を認識する。そのような肯定応答の受信の後に、管理プロセッサ306-Aおよび306-Bは、直接に通信し、どのスイッチングノードがそれぞれによって制御されるかをネゴシエートする。
【００９９】
提示された実施形態は、例示的であり、当業者は、上で説明した実施形態に対する変更を本発明の趣旨から逸脱せずに行えることを諒解するであろう。本発明の範囲は、請求項のみによって定義される。
【図面の簡単な説明】
【０１００】
【図１】高められた集合スループットを提供する例示的なスイッチングノードスタッキング展開を示す概略図である。
【図２】従来技術の管理されたスイッチングノードスタッキング展開を示す概略図である。
【図３】本発明の例示的実施形態による、スイッチングノードスタック内でリモートスイッチングノード制御を実施する要素を示す概略図である。
【図４】スイッチングノードスタック内でリモート制御および構成を実施する管理プロセッサによって実行される処理ステップを示す、本発明の例示的実施形態による流れ図である。
【図５】管理プロセッサによってリモート制御され、構成されるスイッチングノードスタック内のスイッチングノードによって実行される処理ステップを示す、本発明の例示的実施形態による流れ図である。
【図６】割込み肯定応答処理のステップを示す、本発明の例示的実施形態による流れ図である。
【図７】スタック初期化処理のステップを示す、本発明の例示的実施形態による流れ図である。
【図８】リング構成およびディスカバリ制御フレームのループを有するスタック内のスイッチングネットワークノードの初期化を示す概略図である。
【図９】本発明の例示的実施形態による、制御フレームループ検出を示す概略図である。
【図１０】本発明の例示的実施形態による、各ドメインが関連する管理プロセッサを有する、スタック内の複数の制御ドメインおよび構成ドメインを示す概略図である。
【符号の説明】
【０１０１】
300  スタック
302  ネットワークスイッチ
303  ポート
306  管理プロセッサ
307  スタッキングリンク
308  スタッキングポート
309  リポジトリ
310  コマンドエンジン
350  転送テーブル
352  ローカルレジスタ
400  フレーム
402  フレームヘッダ
404  フレームデータ
406  フレームスタッキングタグ(FTAG)
410  コマンドフレーム
【図１】
2006042368.tif 000007
【図２】
2006042368.tif 000008
【図３】
2006042368.tif 000009
【図４】
2006042368.tif 000010
【図５】
2006042368.tif 000011
【図６】
2006042368.tif 000012
【図７】
2006042368.tif 000013
【図８】
2006042368.tif 000014
【図９】
2006042368.tif 000015
【図１０】
2006042368.tif 000016