(57)【要約】ファイバーチャンネルフレームの配送を改善するための方法及び装置が提供される。選択されたファイバーチャンネルフレームをインテリジェントに遅延又はドロップすることによりフレームを順序正しく配送するための技術が提供される。ラベルスイッチング及びフレームラベルを使用することにより順序正しく配送するための他の技術も提供される。リンク状態又はチャンネルの変化のような環境中に種々の技術を適用することができる。
2005522147.tif 000002
【特許請求の範囲】
【請求項１】
ファイバーチャンネルファブリックにおいてファイバーチャンネルフレームを選択的に配送するための方法であって、
ファイバーチャンネルエンティティにおいて次のホップのセットを識別するステップであって、前記次のホップのセットは、宛先識別子に基づいてフレームを転送するのに使用されるものであるようなステップと、
前記ファイバーチャンネルファブリックのリンクの変化を検出するステップと、
次のホップの更新されたセットを識別するステップであって、該次のホップの更新されたセットは、前記ファイバーチャンネルファブリックのリンクの変化を考慮しながら、宛先識別子に基づき前記ファイバーチャンネルエンティティで受信されたフレームを転送するのに使用されるようなステップと、
前記次のホップのセットを前記次のホップの更新されたセットと比較するステップと、
前記次のホップの更新されたセットに向うフレームの転送を、前記次のホップのセットが前記次のホップの更新されたセットとは異なることが決定された場合に所定の時間周期中、防止するステップと、
を備えた方法。
【請求項２】
前記所定の時間周期は、ファイバーチャンネルファブリックのドレイン周期である請求項１に記載の方法。
【請求項３】
前記次のホップの更新されたセットに向うフレームの転送を防止する前記ステップは、
前記次のホップの更新されたセットへ転送するようにスケジュールされたフレームをブロッキングすることを含む請求項１又は２に記載の方法。
【請求項４】
前記フレームは、前記次のホップの更新されたセットに関連した仮想出力待ち行列においてブロックされる請求項３に記載の方法。
【請求項５】
前記次のホップの更新されたセットへフレームを転送するようにルーティングテーブルを更新するステップを更に備えた請求項３に記載の方法。
【請求項６】
前記ファイバーチャンネルエンティティは、複数のルーティングテーブルを含むファイバーチャンネルスイッチであり、各ルーティングテーブルには、特定の仮想ストレージエリアネットワークが関連される請求項５に記載の方法。
【請求項７】
前記所定の時間周期が経過しそして前記次のホップの更新されたセットへ転送するためのフレームをスケジュールするように前記ルーティングテーブルが更新された後に、前記次のホップの更新されたセットへのフレームの転送を許すステップを更に備えた請求項５に記載の方法。
【請求項８】
ファイバーチャンネルスイッチドレイン周期より長く前記スイッチに保持されたフレームをドロップするステップを更に備えた請求項７に記載の方法。
【請求項９】
前記次のホップの更新されたセットへのフレームの転送を防止する前に前記ファイバーチャンネルスイッチが非エッジポートに関連することを決定するステップを更に備えた請求項８に記載の方法。
【請求項１０】
前記次のホップの更新されたセットに向うフレームの転送を防止する前記ステップは、
前記次のホップの更新されたセットへ転送するようにスケジュールされたフレームをドロップすることを含む請求項１から９のいずれかに記載の方法。
【請求項１１】
前記次のホップの更新されたセットへフレームを転送するようにルーティングテーブルを更新するステップを更に備えた請求項１０に記載の方法。
【請求項１２】
前記ファイバーチャンネルエンティティは、複数のルーティングテーブルを含むファイバーチャンネルホストであり、各ルーティングテーブルには、特定の仮想ストレージエリアネットワークが関連される請求項１１に記載の方法。
【請求項１３】
前記所定の時間周期が経過しそして前記次のホップの更新されたセットへ転送するためのフレームをスケジュールするように前記ルーティングテーブルが更新された後に、前記次のホップの更新されたセットへのフレームの転送を許すステップを更に備えた請求項１１に記載の方法。
【請求項１４】
前記次のホップの更新されたセットへのフレームの転送を防止する前にファイバーチャンネルホストがエッジポートに関連されたことを決定するステップを更に備えた請求項１３に記載の方法。
【請求項１５】
ファイバーチャンネルファブリックにおいてフレームを選択的に配送するための方法であって、
第１のファイバーチャンネルエンティティから第２のファイバーチャンネルエンティティへフレームを転送するためのチャンネルを識別するステップであって、このチャンネルは、前記第１のファイバーチャンネルエンティティを前記第２のファイバーチャンネルエンティティに接続する複数のリンクを含むものであるステップと、
チャンネルの変化を前記第１のファイバーチャンネルエンティティにおいて検出するステップと、
前記第１のファイバーチャンネルエンティティから前記第２のファイバーチャンネルエンティティへフレームを転送するための更新されたチャンネルを識別するステップであって、前記更新されたチャンネルは、前記チャンネルとは異なるものであるようなステップと、
前記更新されたチャンネルを経て転送するために受信されたフレームであって、前記更新されたチャンネルに関連した出力待ち行列へまだ入れられていないフレームをドロップするステップと、
を備えた方法。
【請求項１６】
前記出力待ち行列に既にあるフレームが配送された後に全てのフレームをブロックするように前記更新されたチャンネルのリンクに関連した前記出力待ち行列をマークするステップを更に備えた請求項１５に記載の方法。
【請求項１７】
フレームをドロップする前記ステップは、フレームをドロップ隣接部へ転送するように転送チャンネルテーブルを更新することを含む請求項１６に記載の方法。
【請求項１８】
前記出力待ち行列は、仮想出力待ち行列である請求項１６に記載の方法。
【請求項１９】
前記更新されたチャンネルを経てフレームを転送するように転送チャンネルテーブルを更新するステップを更に備えた請求項１６に記載の方法。
【請求項２０】
ファイバーチャンネルスイッチレイテンシーを使用して導出された時間周期中待機するステップを更に備えた請求項１９に記載の方法。
【請求項２１】
前記ファイバーチャンネルスイッチレイテンシーより長い時間周期中待機するステップを更に備えた請求項１９に記載の方法。
【請求項２２】
前記時間周期が経過しそして前記更新されたチャンネルを経てフレームを転送するように前記転送チャンネルテーブルが更新された後に、前記更新されたチャンネルを経てフレームを転送するのを許すように前記出力待ち行列を解放するステップを更に備えた請求項２０に記載の方法。
【請求項２３】
前記転送チャンネルテーブルは、ハッシュモジュロを使用して更新される請求項２２に記載の方法。
【請求項２４】
ファイバーチャンネルファブリックにおいてフレームを選択的に配送するための方法であって、
ファイバーチャンネルスイッチにおいてファイバーチャンネルファブリックのリンクの変化を検出するステップと、
トポロジーバージョン番号に関連した更新されたルーティングテーブルを発生するステップであって、前記更新されたルーティングテーブルの発生は、更新されたルーティングテーブルの各エントリーに対応する次のホップ、受信ラベル及び宛先を決定することを含むものであるステップと、
前記ファイバーチャンネルスイッチにおいてフレームを受信するステップであって、前記フレームは、前記更新されたルーティングテーブルの第１エントリーに対応する第１宛先及び第１ラベルを含むものであるステップと、
前記ファイバーチャンネルスイッチが、前記更新されたルーティングテーブルの第１エントリーに対応する第１の送信ラベルを受信したかどうか決定するステップであって、前記受信された第１の送信ラベルは、前記更新されたルーティングテーブルと同じトポロジーバージョン番号を有するものであるステップと、
前記ファイバーチャンネルスイッチが前記第１の送信ラベルを受信しなかったと決定された場合にフレームをドロップするステップと、
を備えた方法。
【請求項２５】
前記第１ラベルは、前記第１エントリーに関連した第１の受信ラベルと等価である請求項２４に記載の方法。
【請求項２６】
前記ファイバーチャンネルスイッチが前記第１の送信ラベルを受信したと決定された場合に前記次のホップへフレームを転送するステップを更に備えた請求項２４又は２５に記載の方法。
【請求項２７】
前記ルーティングテーブルには、特定の仮想ストレージエリアネットワークが関連される請求項２６に記載の方法。
【請求項２８】
前記トポロジーバージョン番号は、前記仮想ストレージエリアネットワークにおける各スイッチと共にインカーネーション番号を使用して導出される請求項２７に記載の方法。
【請求項２９】
前記受信及び送信ラベルは、ＭＰＬＳラベルである請求項２８に記載の方法。
【請求項３０】
前記第１ラベルは、前記ファイバーチャンネルフレームに関連したＥＩＳＬヘッダに含まれる請求項２９に記載の方法。
【請求項３１】
前記フレームの第１ラベルは、前記ファイバーチャンネルフレームヘッダに含まれる請求項３０に記載の方法。
【請求項３２】
前記第１の送信ラベルと、前記ルーティングテーブルの前記トポロジーバージョン番号に対応するトポロジーバージョン番号とを有する第１リンク状態制御メッセージを受信するステップを更に備えた請求項２５から３１のいずれかに記載の方法。
【請求項３３】
前記第１の受信ラベルを前記ファイバーチャンネルファブリックの他のスイッチへアドバータイズするステップを更に備えた請求項３２に記載の方法。
【請求項３４】
ファイバーチャンネルファブリックにおいてファイバーチャンネルフレームを選択的に配送するためのファイバーチャンネルエンティティであって、
ファイバーチャンネルエンティティにおいて次のホップのセットを識別する手段であって、前記次のホップのセットは、宛先識別子に基づいてフレームを転送するのに使用されるものであるような手段と、
前記ファイバーチャンネルファブリックのリンクの変化を検出する手段と、
次のホップの更新されたセットを識別する手段であって、該次のホップの更新されたセットは、前記ファイバーチャンネルファブリックのリンクの変化を考慮しながら、宛先識別子に基づき前記ファイバーチャンネルエンティティで受信されたフレームを転送するのに使用されるような手段と、
前記次のホップのセットを、前記次のホップの更新されたセットと比較する手段と、
前記次のホップの更新されたセットに向うフレームの転送を、前記次のホップのセットが前記次のホップの更新されたセットとは異なることが決定された場合に、所定の時間周期中、防止する手段と、
を備えたファイバーチャンネルエンティティ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイバーチャンネルネットワークに係る。より詳細には、本発明は、リンク状態が変化したりチャンネル状態が変化したりする環境の間にファイバーチャンネルネットワークにおいてファイバーチャンネルフレームの順序正しい配送を与える方法及び装置に係る。
本出願は、全ての目的で参考として全体をここに援用するスコットＳ．リー及びディニッシュＧ．ダットによる「Label Switching In Fibre Channel Networks」と題する同時に出願された米国特許出願第１０／１１４，３９４号（代理人ドケット番号第ＡＮＤＩＰ００９号）に係る。
【背景技術】
【０００２】
多数の従来のネットワークプロトコルは、パケットシーケンスの順序ずれした配送を許す。ＴＣＰ／ＩＰベースのネットワークにおけるネットワークノードは、パケットの順序ずれしたセットを受信し、そして受信時にパケットを再順序付けする。パケットは、異なる経路に沿って進行して宛先へ到達する場合にしばしば順序ずれして到着する。
【０００３】
しかしながら、ディスクやディスクアレーや他の記憶メカニズムのような幾つかのファイバーチャンネル装置は、順序ずれしたフレームを取り扱うことができない。リンク及びチャンネル状態の変化は、ファイバーチャンネルファブリックにおいてフレームの順序ずれした配送を生じさせ得る環境の幾つかである。２つのファイバーチャンネルエンティティ間の単一リンクとして見える多数のリンクを、ここでは、チャンネルと称する。既存のネットワークにおける幾つかのメカニズムは、リンク状態が変化したときにネットワークにおいて全てのフレームをフラッシュすることを必要とする。全てのフレームをフラッシュすると、ネットワークにおいて経路及びルートが変化したときに順序ずれした配送を防止することができる。関連宛先に対するフレームの経路が変化しない場合でも全てのフレームがフラッシュされる。しかしながら、全てのフレームを明確に又は暗示的にフラッシュすることは、必要以上に多くのフレームがドロップされそしてネットワークのオペレーションが少なくとも一時的に停止されるので、ネットワークオペレーションを著しき阻害することになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
それ故、ファイバーチャンネルのフレーム配送を改善し、特にリンク状態及びチャンネルの変化中に正しい順序での配送を与える方法及び装置を提供することが望まれる。
【課題を解決するための手段】
【０００５】
ファイバーチャンネルのフレーム配送を改善するための方法及び装置が提供される。選択されたファイバーチャンネルフレームをインテリジェントに遅延又はドロップすることによりフレームを順序正しく配送するための技術が提供される。ラベルスイッチング及びフレームラベルを使用することにより順序正しく配送するための他の技術も提供される。リンク又はチャンネル状態の変化のような環境中に種々の技術を適用することができる。
【０００６】
種々の実施形態に基づき、ファイバーチャンネルファブリックにおいてファイバーチャンネルフレームを選択的に配送するための方法が提供される。ファイバーチャンネルエンティティにおいて次のホップのセットが識別される。次のホップのセットは、宛先識別子に基づいてフレームを転送するのに使用される。ファイバーチャンネルファブリックのリンクの変化が検出される。次のホップの更新されたセットが識別される。次のホップの更新されたセットは、ファイバーチャンネルファブリックのリンクの変化を考慮しながら、宛先識別子に基づきファイバーチャンネルエンティティで受信されたフレームを転送するのに使用される。次のホップのセットは、次のホップの更新されたセットと比較される。次のホップの更新されたセットに向うフレームの転送は、次のホップのセットが次のホップの更新されたセットとは異なることが決定された場合に、所定の時間中防止される。
【０００７】
別の実施形態に基づき、ファイバーチャンネルファブリックにおいてフレームを選択的に配送するための方法が提供される。第１のファイバーチャンネルエンティティから第２のファイバーチャンネルエンティティへフレームを転送するためのチャンネルが識別される。このチャンネルは、第１のファイバーチャンネルエンティティを第２のファイバーチャンネルエンティティに接続する複数のリンクを含む。チャンネルの変化は、第１のファイバーチャンネルエンティティにおいて検出される。第１のファイバーチャンネルエンティティから第２のファイバーチャンネルエンティティへフレームを転送するための更新されたチャンネルが識別される。更新されたチャンネルは、前記チャンネルとは異なる。更新されたチャンネルを経て転送するために受信されたフレームであって、更新されたチャンネルに関連した出力待ち行列へまだ入れられていないフレームは、阻止される。
【０００８】
更に別の実施形態では、ファイバーチャンネルファブリックにおいてフレームを選択的に配送するための方法が提供される。ファイバーチャンネルスイッチにおいてファイバーチャンネルファブリックのリンクの変化が検出される。トポロジーバージョン番号に関連した更新されたルーティングテーブルが発生される。更新されたルーティングテーブルの発生は、更新されたルーティングテーブルの各エントリーに対応する次のホップ、受信ラベル及び宛先を決定することを含む。ファイバーチャンネルスイッチにおいてフレームが受信される。フレームは、更新されたルーティングテーブルの第１エントリーに対応する第１宛先及び第１ラベルを含む。ファイバーチャンネルスイッチが、更新されたルーティングテーブルの第１エントリーに対応する第１の送信ラベルを受信したかどうか決定され、受信された第１の送信ラベルは、更新されたルーティングテーブルと同じトポロジーバージョン番号を有する。ファイバーチャンネルスイッチが第１の送信ラベルを受信しなかったと決定された場合にフレームがドロップされる。
【０００９】
本発明のこれら及び他の特徴及び効果は、本発明の原理を一例として示す添付図面を参照して以下に詳細に説明する。
本発明は、その特定の実施形態を例示した添付図面に関連した以下の説明から最も良く理解されよう。
【発明を実施するための最良の形態】
【００１０】
本発明を実施するために本発明者により意図された最良の態様を含む本発明の幾つかの特定の実施形態を以下に説明する。これら特定の実施形態は、添付図面に示されている。本発明は、これら特定の実施形態を参照して説明するが、ここに示す実施形態に本発明を限定するものではないことを理解されたい。一方、特許請求の範囲に規定された本発明の精神及び範囲内に包含される代替物、変更及び等効物を網羅することが意図される。
【００１１】
本発明の方法及び装置は、ファイバーチャンネルフレームの順序正しい配送を与える。種々の実施形態に基づき、多数のネットワーク条件は、ファイバーチャンネル装置へフレームを順序ずれして配送する事態を招くことがある。本発明の技術は、フレームをファイバーチャンネル装置へ正しい順序で配送するために、あるファイバーチャンネルフレームを遅延、ブロッキング、ドロッピング及び／又はラベル付けするものである。一実施形態において、古い経路に沿って進行するフレームが最初に宛先に到達するのを許すか又はネットワークからドロップするのを許すために、新たな経路を横断するフレームはブロックされる。
【００１２】
図１は、本発明の技術を使用することのできるネットワークの一例を示す図である。図１は、ファイバーチャンネルを使用して実施されるストレージエリアネットワークを示す。スイッチ１０１は、スイッチ１０３及び１０５に接続されると共に、ホスト１１１及び記憶装置１２１に接続される。一実施形態では、ホスト１１１は、サーバー又はクライアントシステムであり、一方、記憶装置１２１は、単一ディスクや、独立ディスクの冗長アレー（ＲＡＩＤ）のような記憶サブシステムである。スイッチ１０５は、スイッチ１０７に接続される。スイッチ１０７は、ホスト１１３に接続され、そしてスイッチ１０３は、記憶装置１２３に接続される。スイッチ１０９は、ホスト１１５、スイッチ１０７、ホスト１５３、及びファイバーチャンネルを使用してもしなくてもよい外部ネットワーク１５１に接続される。ホスト１１１がネットワーク１５１にアクセスするために、スイッチ１０５を通る経路を使用することができる。プロセッサ、メモリ、及びファイバーチャンネルファブリックへの接続を含む装置は、ファイバーチャンネルスイッチであることに注意されたい。
【００１３】
ファイバーチャンネルネットワークにおいてスイッチを互いに接続するのに使用されるポートを、ここでは、非Ｆポートと称し、一方、スイッチをホストに接続するのに使用されるポートを、ここでは、Ｆポートと称する。一例において、非Ｆポートは、スイッチ１０５をスイッチ１０７に接続するのに使用され、一方、Ｆポートは、スイッチ１０７をホスト１１３に接続するのに使用される。同様に、ＦＬポートは、スイッチ１０３を記憶装置１２３に接続するのに使用される。Ｆポート及びＦＬポートのようなポートを、ここでは、エッジポート称する。他のポートは、非エッジポートと称する。
【００１４】
種々の実施形態に基づき、ホスト１１１からネットワーク１５１又は記憶装置１５３へ送信されるフレームは、交換識別子、シーケンス及びシーケンス番号のようなパラメータを含む。交換識別子は、フレームが何の交換に属しているかの情報を与えることができる。シーケンスは、交換のどの部分にフレームが属しているかの情報を与えることができ、一方、シーケンス番号は、フレームをいかに順序付けするかの情報を与えることができる。シーケンス番号は、ファイバーチャンネルフレームの順序正しい配送を許すのに使用できる。
【００１５】
ある記憶ディスク及びディスクアレーのようなあるファイバーチャンネル装置は、フレームを、それらが送信された順に受信することを要求する。ＴＣＰ／ＩＰネットワークのような従来のネットワークは、ＴＣＰ／ＩＰネットワークが一般にパケットを受信時に再順序付けするメカニズムを有するので、このような要求をもたない。１９１、１９２及び１９３のシーケンス番号をもつフレームがファイバーチャンネルネットワークにおいて順序正しく送信された場合には、それらフレームを受信するファイバーチャンネル装置は、フレームが送信と同じ順序であることを期待する。ファイバーチャンネル装置は、順序連れしたフレームの受信を取り扱うことができなくてもよい。
【００１６】
静的なファイバーチャンネルネットワークでは、フレームは、通常、それらが送信された順序で受信される。しかしながら、多数の出来事によりファイバーチャンネルフレームの順序ずれした配送を招くことがある。特に、リンク状態が変化すると、順序ずれした配送を招くことがある。
【００１７】
図２は、ファイバーチャンネルファブリックのリンクの変化を受けるファイバーチャンネルファブリックを示す図である。図２は、ファイバーチャンネルフレームの順序ずれした配送を招くことのあるリンクの変化の一例を示す。非エッジポートを使用する新たなリンクがスイッチ１０３とスイッチ１０７との間に導入される。スイッチ１０３とスイッチ１０７との間に新たなリンクが導入されると、ルーティングテーブルの新たなバージョンを発生することができる。ファイバーチャンネルショーテストパスファースト（ＦＳＰＦ）のような種々のルーティングテーブル発生アルゴリズムを使用することができる。ホスト１１１からスイッチ１０１、１０５及び１０７を経てスイッチ１０９へ至るトラフィックは、今度は、スイッチ１０１、１０３及び１０７を経てスイッチ１０９へ進むことができる。スイッチ１１１から記憶装置１５３フレームを送信するのに使用できる次のホップのセットは、新たなリンクの導入前は、スイッチ１０５である。
【００１８】
あるファイバーチャンネルエンティティから別のファイバーチャンネルエンティティへフレームを送信するのに使用できる隣接ファイバーチャンネルエンティティのセットを、ここでは、次のホップのセットと称する。リンクが変化した後に、次のホップのセットをスイッチにおいて更新することができる。一例において、スイッチ１０１からネットワーク１５１へフレームを送信するための次のホップのセットは、リンク状態が変化した後に、単にスイッチ１０５から両スイッチ１０３及びスイッチ１０５へ変化する。リンクが変化するか、又は更新されたルーティングテーブルが発生された後に、ソースから更新された宛先へフレームを送信するのに使用できる隣接エンティティのセットを、ここでは、次のホップの更新されたセットと称する。次のホップのセットは、１つ以上の隣接ノードを含み得ることに注意されたい。一例において、次のホップのセットは、単一隣接エンティティである。別の例において、次のホップのセットは、多数の隣接エンティティを含む。
【００１９】
次のホップの更新されたセットは、ファイバーチャンネルフレームの順序ずれした配送を招くことがある。一例において、あるシーケンスでスイッチ１０１において送信された最初のフレームは、スイッチ１０５を経て進行し、一方、同じシーケンスのその後のフレームは、スイッチ１０３を経て進行する。種々のネットワーク条件により、スイッチ１０３を経て進行するその後のフレームがスイッチ１０９に到着した後に、スイッチ１０５を経て進行する最初のフレームがスイッチ１０９に到着することがある。一例において、最初のフレームは、スイッチ１０５における混雑のためにスイッチ１０５において低速化され、一方、その後のフレームは、スイッチ１０３とスイッチ１０７との間に新たな高帯域巾リンクがあるためにスイッチ１０３を経て迅速に進行する。ホスト１１１から最初に送信されたフレームを受信する前に、その後に送信されたフレームを受信する記憶装置１５３は、順序ずれしたフレームを取り扱えないことがある。
【００２０】
図３Ａ及び３Ｂは、スイッチ１０１における次のホップのセット及び次のホップの更新されたセットに関連した情報を示すルーティングテーブルを示している。図３Ａは、スイッチ１０１において受信されたフレームに対する次のホップのセットと、スイッチ１０３とスイッチ１０７との間にリンクがまだ確立されていないネットワークとを示す。スイッチ１０１にフレームが受信されると、フレームの宛先を示す識別子を使用して、ルーティングテーブルのエントリーをリファレンスすることができる。一例において、フレームの宛先は、スイッチ１０７であり、そしてエントリー３０９をリファレンスして、次のホップのセットがスイッチ１０５であると決定することができる。受信したフレームの宛先がスイッチ１０１であると決定された場合には、ルーティングテーブルを使用して、スイッチ１０１に関連したプロセッサへフレームを通過させることができる。又、ルーティングテーブルを使用してフレームをドロップすることもできる。一例において、ナル値のような値を、次のホップのセットに入れて、ナル値に関連した宛先を有するフレームを、ルーティングテーブルをリファレンスしたときにドロップすることができる。特定の宛先をもつフレームをドロップするように指令するエントリーを、隣接(adjacency)ドロップと称する。
【００２１】
一実施形態では、スイッチがその一部分であるところの各仮想ストレージエリアネットワーク（ＶＳＡＮ）に対してルーティングテーブルが設けられる。ファイバーチャンネルスイッチは、多数の異なるＶＳＡＮの一部分でよく、そしてスイッチに関連した各ＶＳＡＮに対してルーティングテーブルを設けられることに注意されたい。
【００２２】
リンクが追加されてスイッチ１０３をスイッチ１０７に接続した後に、ルーティングテーブルが更新される。図３Ｂは、次のホップの更新されたセットを示すルーティングテーブルである。種々の実施形態に基づき、スイッチ１０７としてセットされた宛先を有するフレームを、エントリー３２９に基づきスイッチ１０３又はスイッチ１０５のいずれかに沿って転送することができる。安定したトポロジーでは、特定のフロー又は交換における全てのフレームが同じ経路をたどる。
【００２３】
ルーティングテーブルは、両方の経路を許してもよいし又は最良の経路を選択してもよいことに注意されたい。選択された最良の経路がスイッチ１０５の次のホップを有する場合には、次のホップの更新されたセットが、図３Ａに示すように、リンクの変化の前の次のホップのセットと同じである。選択された経路が、スイッチ１０７の宛先をもつフレームに対するスイッチ１０３である場合には、次のホップの更新されたセットが、リンクの変化の前のルーティングテーブルにおける次のホップのセットとは異なる。次のホップの更新されたセットが次のホップの最初のセットと異なるかどうかを決定することは、特定のフレームをブロックすべきかドロップすべきか判断する上で有用である。一例において、特定シーケンスのフレームに対する経路が、ファイバーチャンネルファブロックにおけるリンクの変化の後も不変のままであれば、フレームはブロックもドロップもされない。フレームのシーケンスに対する経路が同じに保たれる場合には、フレームが宛先へ順序正しく配送される。フレームのシーケンスに対する経路が変化した場合には、フレームが順序ずれして配送されるおそれが生じる。
【００２４】
ファイバーチャンネルフレームが配送される順序に影響し得るメカニズムの１つは、ファイバーチャンネルスイッチ内の待ち行列である。ホストから最初に送信されたフレームは、スイッチ１０５に関連した待ち行列に保持することができ、一方、ホストから後で送信されたフレームは、スイッチ１０３を経て迅速に配送することができる。図４は、種々の実施形態に基づき、ファイバーチャンネルスイッチに関連付けることのできる待ち行列を示す図である。１つの特定形式の待ち行列について説明するが、種々の入力及び出力ポートに関連した種々の異なる入力及び出力待ち行列を使用して、本発明の技術を実施できることに注意されたい。
【００２５】
スイッチ４０１は、外部ノード４５１、４５３、４５５及び４５７に接続される。スイッチ４０１は、各スイッチポートに関連した共有メモリのバッファ４０３を含む。バッファ４０３には、外部ノード４５１が関連される。外部ノード４５３、４５５及び４５７に関連したバッファは、明瞭化のために図示されていない。バッファ４０３は、外部ノード４５３、４５５及び４５７を宛先とするトラフィックと、外部ノード４５１へのループバックトラフィックとを保持することができる。
【００２６】
典型的な実施形態では、種々の外部ノードを宛先とするフレームは、全て、同じバッファ４０３に入れられる。その結果、スイッチ４０１が、外部ノード４５３のような特定ノードを宛先とする多量のフレームを受信するときには、外部ノード４５３に関連したフレームが全バッファ４０３を使用することができる。種々の実施形態に基づき、バッファ４０３に記憶されるフレームは、フレーム記述子待ち行列４１１−４４７のポインタによりリファレンスされる。各フレーム記述子は、フレームがバッファ４０３のどこに記憶されるか識別するポインタ又はリファレンスを含むことができる。共有バッファへのポインタ又はリファレンスを、ここでは、記述子と称する。又、記述子は、フレームプライオリティのような他の情報も識別できる。
【００２７】
一例において、アービトレーター４０５は、ラウンドロビン方法を使用してフレームを選択する。第１ラウンドにおいては、外部ノード４５３を宛先とするフレームが選択される。第２ラウンドにおいては、外部ノード４５５を宛先とするフレームが選択され、等々となる。より詳細には、アービトレーター４０５は、最初、外部ノード４５３を宛先とする記述子４１１に関連した高プライオリティフレームを選択し、次いで、外部ノード４５５を宛先とする記述子４２１に関連した高プライオリティフレームを選択し、次いで、外部ノード４５７を宛先とする記述子４３１に関連した高プライオリティフレームを選択し、等々とすることができる。当業者に明らかなように、フレームを選択するための種々の技術を使用できることに注意されたい。
【００２８】
宛先に基づいて配分されるバッファを有する待ち行列システムを、ここでは、仮想出力待ち行列（ＶＯＱ）と称する。ＶＯＱは、全ての目的で全体を参考としてここに援用する１９８８年６月のＰｒｏｃ．Ｏｆ  １５ｔｈ  Ａｎｎ．Ｓｙｍｐ．ｏｎ  Ｃｏｍｐ．Ａｒｃｈの第３４３−３５４ページに掲載されたタミルＹ、フラジアＧ著の「High Performance multi-queue buffers for VLSI communications switches」に詳細に説明されている。２つのノード間の特定の特性をもつトラフィックを識別する抽象的なものを、ここで、フローと称する。一例において、フローは、ソース識別子、宛先識別子、プライオリティ、クラス、及び交換識別子によってリファレンスされる。他の特性も可能である。しかしながら、フローは、ソース及び宛先識別子のみでリファレンスされてもよいことに注意されたい。
【００２９】
種々の実施形態に基づき、特定フローのフレームは、バッファ４０３がいっぱいであるためにブロックされることがある。同じシーケンスのフレームに対して別のルートが設けられる場合には、混雑したスイッチに留まっているフレームよりも、後のフレームの方がファイバーチャンネルファブリックを迅速に横断できることがある。一実施形態では、先のフレームを宛先に最初に到達させるために、別のルートに沿った後のフレームをブロックすることができる。最初に送信されるフレームを、ここでは、先のフレームと称し、一方、ソースにより後から送信されるフレームを、ここでは、後のフレームと称する。多数のメカニズムを使用して、後のフレームをブロックすることができる。一実施形態では、アービトレーター４０５は、外部ノードへ送信するためのシーケンスのフレームを単に選択しなくてもよい。別の実施形態では、後のフレームは、ある時間周期が経過するまで、送信スケジューリングのために待ち行列に全く入れられなくてもよい。
【００３０】
時間周期は、多数のやり方で決定することができる。種々の実施形態に基づき、ファイバーチャンネルスイッチは、フレームがドロップされるまで、ファイバーチャンネルスイッチのレイテンシー以下でフレームをバッファするように構成される。しかしながら、あるスイッチは、ファイバーチャンネルスイッチのレイテンシーが経過した後にフレームをドロップしなくてもよいことに注意されたい。一実施形態では、フレームがスイッチ内のバッファにレイテンシー周期より長く保持される場合に、フレームは、仮想出力待ち行列から出されてドロップされる。ファイバーチャンネルスイッチのレイテンシーは、スイッチングの速度及びネットワークの混雑に依存する。フレームがドロップされるまでにファイバーチャンネルスイッチにおいて費やし得る時間の量を、ここでは、ファイバーチャンネルスイッチレイテンシーと称する。
【００３１】
フレームがドロップされるまでにファイバーチャンネルネットワークにおいて費やし得る時間の量を、ここでは、ファイバーチャンネルファブリックドレインレイテンシー又はネットワークドレインレイテンシーと称する。種々の実施形態に基づき、ファイバーチャンネルファブリックドレインレイテンシー又はネットワークドレインレイテンシーは、ファイバーチャンネルスイッチレイテンシーに、フレームがファイバーチャンネルファブリックを横断するのに要する最大ホップ数を乗算することにより、計算される。ファイバーチャンネルスイッチレイテンシー及びファイバーチャンネルファブリックドレインレイテンシーを決定するための種々様々な技術が意図される。
【００３２】
図５は、接続されたホスト又はディスクから到着するフレームの転送を示すプロセスフローチャートである。５０１において、ファイバーチャンネルファブリックのリンクの変化が検出される。上述したように、ファイバーチャンネルファブロックのリンクの変化は、ファイバーチャンネル装置へのフレームシーケンスの順序ずれした配送を招くことになる。種々の実施形態によれば、ファイバーチャンネルファブリックのリンクの変化は、リンク更新メッセージの受信又はリンク更新メッセージの送信に基づいて検出することができる。５０３において、新たなリンク状態情報に基づいて宛先ごとに次のホップの更新されたセットが発生される。次のホップの更新されたセットは、ファイバーチャンネルショーテストパスファースト（ＦＳＰＦ）のようなアルゴリズムを使用して発生することができる。ネットワークトポロジーに関する新たな情報により、スイッチは、特定の宛先へフレームを送信するのに何が最良の経路であるか決定できるのがよい。５０５において、次のホップのセットが次のホップの更新されたセットに等しいかどうか宛先ごとに決定される。５０７において、次のホップの全てのセットがそれに対応する次のホップの更新されたセットに等しいことが決定されると、何のアクションも行なわれない。
【００３３】
例えば、フレームを宛先へ送信するための元の経路がスイッチ１０３及び１０７を通る一方、フレームを宛先へ送信するための新たな経路もスイッチ１０３及び１０７を通る場合には、何のアクションも必要ない。しかしながら、フレームを宛先へ送信するための更新された経路が１０５及び１０７である場合には、次のホップの更新されたセットが、次のホップの元のセットに等しくない。ブロッキング及びドロッピングメカニズムを適用することができる。５０９において、次のホップのセットがそれに対応する次のホップの更新されたセットとは異なる各行き先に対し、その宛先を有するフレームを送信するための待ち行列又は仮想出力待ち行列がブロックされる。種々の実施形態によれば、仮想出力待ち行列をブロックすることは、フレームを次のホップへ送信することを伴わない。５１１において、次のホップの更新されたセットを使用してルーティングテーブルが更新される。次のホップのセットに変化を伴う待ち行列は、５１３において、ファブリックドレインレイテンシー又はファブリックドレイン周期の間にブロックすることができる。
【００３４】
ファブリックドレインレイテンシーは、混雑したネットワークスイッチにまだ留まっている先のパケットが配送されるか又はネットワークからドロップされる時間を許す。各仮想出力待ち行列に異なるファブリックドレイン周期が関連してもよいし、或いは単一のファブリックドレイン周期が全ての仮想出力待ち行列に適用されてもよい。ファブリックドレイン周期が経過した後に、ブロックされた待ち行列は、５１５においてブロック解除される。ブロックされた待ち行列における後のフレームは、先のフレームがドロップされるか又は宛先へ配送されているので、今や送信することができる。後のフレームは、先に送信されたフレームが依然ネットワークにあって順序ずれした状態で宛先へ到着するのを待機しているという危険性を伴わずに、宛先へ送信することができる。
【００３５】
図５に示した技術は、宛先ベースで、ＶＳＡＮごとに、ファイバーチャンネルファブリックのいかなるポートに適用することもできる。しかしながら、種々の実施形態に基づき、図５に示す技術は、スイッチをホスト又はディスクに接続するエッジポートに適用される。エッジポートに対する技術は、潜在的にドロップされることになるトラフィックの注入を回避するためにトラフィックをブロックすることに集中される。
【００３６】
図６は、ファイバーチャンネルスイッチ間のフレームの転送を示すプロセスフローチャートである。６０１において、ファイバーチャンネルファブリックのリンクの変化が検出される。６０３において、次のホップの更新されたセットが宛先ごとに計算される。６０５において、次のホップのセットが次のホップの更新されたセットに等しいかどうか宛先ごとに決定される。６０７において、次のホップの全てのセットがそれに対応する次のホップの更新されたセットに等しい場合には、何のアクションも行なわれない。次のホップのセットがそれに対応する次のホップの更新された全てのセットに等しくない場合には、次のホップの変化したセットに関連した宛先を有するフレームが６０９においてドロップされる。
【００３７】
ルーティングテーブルは、６１１において更新することができ、そしてファイバーチャンネルスイッチは、６１３において、仮想出力待ち行列に関連した対応するファブリックドレイン周期を待機する。ファブリックドレイン周期が特定の待ち行列に対して経過した後に、そのファブリックドレイン周期に関連した待ち行列に入れられるフレームが、ドロップされるのではなく、ここで転送される。
【００３８】
上述したように、本発明の技術は、ファイバーチャンネルファブリックにおいてリンクの変化を検出した際にファイバーチャンネルフレームを順序正しく配送するのに適用することができる。通常、新たなノード又は新たなリンクが追加されるか、或いは古いノード又は古いリンクがファイバーチャンネルトポロジーから除去されるときには、ファイバーチャンネルフレームが順序ずれして配送されるおそれが生じる。
【００３９】
しかしながら、ネットワークトポロジーの変化は、順序ずれした配送を引き起こす唯一の事象ではない。２つのスイッチ間のチャンネルの変化も、順序ずれしたフレーム配送を引き起こすことになる。
【００４０】
図７は、順序ずれした配送を引き起こし得るチャンネル変化を示す図である。スイッチ１０７及び１０９は、最初は、チャンネル７０９を形成する冗長リンク７０１、７０３及び７０５を経て相互接続されてもよい。スイッチ１０７と１０９との間に進行するトラフィックは、公平さ及び負荷バランス等のファクタに基づいてチャンネル７０９内の異なるリンクにわたって分散することができる。別の例では、送信及び受信スイッチにおいて同一のハッシュ関数を使用して、どんなリンクに次にアクセスすべきか決定することができる。同一のハッシュ関数を使用すると、順序正しい配送を与えることができる。
【００４１】
新たなリンク７０７を追加して、更新されたチャンネル７１１が形成されると、より多くのリンクをスイッチ１０７とスイッチ１０９との間の送信に使用できるようになる。しかしながら、ネットワークトポロジーの変化が生じないことに注意されたい。スイッチ１０７及び１０９は、ファイバーチャンネルファブリックに依然接続されている。種々の実施形態によれば、チャンネルが変化したときにルーティングテーブルへの変化又は更新は必要とされない。ルーティングテーブルは、スイッチ１０７からスイッチ１０９へフレームを転送することを単に指令するだけである。スイッチ１０７からスイッチ１０９への転送は、更新されたチャンネル７１１を形成するように元のチャンネル７０９に新たなチャンネル７０７を追加することにより影響されない。
【００４２】
しかしながら、チャンネルにリンクを追加すると、ファイバーチャンネルフレームの順序ずれした配送を引き起こすことがある。シーケンス番号１−６をもつフレームがリンク７０１、７０３又は７０５を経て送信される前記例を使用すると、シーケンス番号７及び８をもつフレームがリンク７０７に沿って送信される。リンク７０７は、混雑していないか、又はフレーム１−６の到着前にシーケンス番号７及び８をもつフレームがスイッチ１０９を去るのを許す高帯域巾リンクでよい。本発明の技術は、スイッチ１０９の下流のスイッチ及びノードへ順序正しい配送を許すためにファイバーチャンネルフレームのブロッキング及びドロッピングを行なう。ブロッキングは、ここでは、遅延とも称する。
【００４３】
上述したように、チャンネルが変化しても、スイッチ１０７とスイッチ１０９との間にはリンクが依然存在するので、ルーティングテーブルは、必ずしも変化しない。フレームを送信するためのチャンネルにどんなリンクが使用できるか決定するためのロジック及びメカニズムを、ここでは、転送チャンネルテーブルと称する。転送チャンネルテーブルは変化し得ることに注意されたい。図８Ａは、スイッチ１０７に対する転送チャンネルテーブルを示す。次のホップ１０９に対して、エントリー８０３は、リンク７０１、７０３及び７０５を使用して、スイッチ１０７から次のホップ１０９へフレームを送信できることを示す。
【００４４】
図８Ｂは、チャンネルが変化した後のスイッチ１０７に対する転送チャンネルテーブルを示す。チャンネルの変化が生じた後に、エントリー８１３は、リンク７０１、７０３、７０５及び７０７を使用して、スイッチ１０７から次のホップ１０９へフレームを送信できるという情報を与える。
【００４５】
図９は、種々の実施形態に基づくチャンネル変化の間のフレームの転送を示すプロセスフローチャートである。９０１において、スイッチは、チャンネルの変化を検出する。１つ以上のリンクを追加又は除去すると、チャンネルに変化が生じる。９０３において、ルーティングテーブルの次のホップに基づいてチャンネルに向けられたトラフィックがドロップされる。一実施形態では、チャンネルを経て送信するように向けられたがまだ待ち行列に入れられていないトラフィックがドロップされ、チャンネルの変化を受け入れるように転送チャンネルテーブルを変更することが許される。しかしながら、既に待ち行列に入れられたトラフィックは保持される。上述したように、既に待ち行列に入れられたトラフィックは、特定のフローに関連した仮想出力待ち行列に存在してもよい。９０５において、チャンネル内のリンクに沿って送信するための待ち行列がマークされそしてブロックされる。一例において、待ち行列をマークしそしてブロックすることは、スイッチドレインレイテンシー時間周期中に新たなフレームをブロッキングしながら、待ち行列に既に入れられた全てのフレームの送信を許すことを含む。
【００４６】
次いで、９０７において、チャンネルにリンクを追加及び／又は除去するように転送チャンネルテーブルを更新することができる。９０９において、９０３で既にドロップされたチャンネルに向けられるトラフィックは、ここで、待ち行列に入ることが許される。次いで、スイッチは、９１１において、変更されたファイバーチャンネルスイッチドレインレイテンシー中、待機することができる。種々の実施形態に基づき、変更されたファイバーチャンネルスイッチドレインレイテンシーは、標準的なファイバーチャンネルスイッチドレインレイテンシーより長く、待ち行列に既に入れられた全てのフレームを、ドロップするのではなく、転送できるようにする。９１３では、チャンネル内のリンクに関連した待ち行列が解除され、そして待ち行列の全てのフレームが送信されるか、或いはフレームが古過ぎる場合はドロップされて、新たなフレームシーケンスをここで順序正しく配送することができる。
【００４７】
フレームを遅延するようなメカニズムを種々の実施形態に基づき使用できるが、本発明の技術は、ラベルを使用してファイバーチャンネルフレームの順序正しい配送を与えることも意図している。ラベルを使用する多数の理由の１つは、ルーティングテーブルのエントリーにアクセスするための高速メカニズムをラベルが果たすことである。宛先のアドレスを見るのではなく、宛先識別子は、「入力ラベル」であり、即ちルーティングテーブルのエントリーを迅速にリファレンスするために使用できる受信ラベルである。ラベルは、種々の他の理由でも使用できる。ファイバーチャンネルネットワークにラベルを使用することは、全ての目的で参考として全体をここに援用する発明者スコットＳ．リー及びディネッシュＧダットによる「Label Switching in Fibre Channel Networks」と題する同時に出願された米国特許出願第１０／１１４，３９４号（代理人ドケット番号第ＡＮＤＩＰ００９号）に説明されている。ラベルスイッチングを実施するためのアーキテクチャーの一例は、全ての目的で参考として全体をここに援用するＲＦＣ３０３１に説明されたマルチプルプロトコルラベルスイッチング（ＭＰＬＳ）である。
【００４８】
図１０は、フレームに関連したラベルに基づきパケットを転送することのできるラベルスイッチングルーターを含むファイバーチャンネルネットワークを示す図である。宛先アドレスを含むのに加えて、フレームは、スイッチがルーティングテーブルのエントリーに迅速にアクセスできるようにする受信ラベルとも称される入力ラベルを宛先識別子として含む。例えば、ラベルスイッチングルーター１００４は、２の宛先及び４２０の入力ラベルをもつフレームを受信することができる。図１０−１２において、１−５の宛先又は次のホップは、スイッチ１００１−１００５を指すことに注意されたい。ラベルスイッチングルーター１００４は、そのルーティングテーブル１０１４にアクセスして、次のホップがラベルスイッチングルーター１００２であり且つ「出力ラベル」が２２０でなければならないことを確認する。出力ラベルは、送信ラベルとも称される。種々の実施形態によれば、ラベルスイッチングルーター１００４は、ルーティングテーブルの入力ラベルに対応する４２０のフレームラベル値を、ルーティングテーブル１０１４の出力ラベルに対応する２２０のフレームラベルに置き換える。
【００４９】
ラベル値を置き換えることにより、ラベルスイッチングルーター１００４は、次のホップのルーター１００２へラベル情報を与えて、ラベルスイッチングルーター１００２がルーティングテーブルエントリーに同様に迅速にアクセスするのを許す。ルーティングテーブルのエントリーに迅速にアクセスするためにラベルスイッチングを与えることができるが、ラベルスイッチングは、種々の理由で使用できることに注意されたい。本発明の技術は、ラベルを使用することによりフレームを順序正しく配送できるようにする。
【００５０】
ラベルスイッチングルーター１００２がラベルスイッチングルーター１００４からフレームを受信すると、ラベルスイッチングルーターは、ラベル２２０を使用して、ルーティングテーブル１０１２のエントリーにアクセスする。入力ラベル２２０を使用して、ラベルスイッチングルーター１００２は、フレームが最終的なホップスイッチに到着し、もはや別のスイッチへ転送する必要がないことを確認する。次いで、フレームは、ホスト又はディスクである最終的な宛先へ転送することができる。
【００５１】
種々の技術を使用して、ラベルをもつルーティングテーブルを発生することができる。一実施形態では、ルーティングテーブルは、ＦＳＰＦプロトコルのもとでリンク状態更新パケットを受信した際に発生される。ルーティングテーブルは、周期的に発生することもできるし、又はリンク状態の変化を識別したときに発生することもできる。種々の実施形態に基づき、新たに発生されたルーティングテーブルは、インカーネーション番号に関連付けされる。ファイバーチャンネルファブリックにおける全てのインカーネーション番号の組合せを、ここでは、トポロジーバージョン番号と称する。一実施形態において、新たなルーティングテーブルがスイッチにおいて発生されるたびに、インカーネーション番号は１だけ増加される。種々の実施形態に基づき、ファイバーチャンネルネットワークにおける各ラベルスイッチングルーターは、各宛先に向かい新たな転送ルーターを発生するだけでなく、各ラベルスイッチングルーターは、入力ラベルの以前のセットとは異なる新たな入力ラベルも発生する。
【００５２】
図１１は、リンク状態の変化中のラベルスイッチングルーターを示す図である。ここでは、ラベルスイッチングルーター１００４とラベルスイッチングルーター１００１との間のリンクがもはや使用できない。リンク状態更新パケット又はリンク状態記録は、ファイバーチャンネルファブリック全体にわたって伝播される。ラベルスイッチングルーター１００４からラベルスイッチングルーター１００１へ送信するために、ラベルスイッチングルーター１００４は、ラベルスイッチングルーター１００１へもはや直接転送することができない。むしろ、ラベルスイッチングルーター１００４は、ラベルスイッチングルーター１００２又はラベルスイッチングルーター１００３のいずれかに向ってフレームを送信する。新たなルーターは、ルーティングテーブル１１１４において反映される。ラベルスイッチングルーター１００４は、次のホップの新たなセットをもつ新たなルーティングテーブル１１１４を発生し、そして古い入力ラベル４１０に置き換わる新たな入力ラベル４１１を発生する。
【００５３】
種々の実施形態に基づき、ラベルスイッチングルーター１００４は、ファイバーチャンネルファブリックにおける他のラベルスイッチングルーターへラベルスイッチングコントロールメッセージを送信し、古い４１０入力ラベルを除去する。ファイバーチャンネルファブリックにおける他のラベルスイッチングルーターへ送信されたラベルスイッチングコントロールメッセージは、トポロジーバージョン番号を含む。一実施形態において、他のラベルスイッチングルーターは、ラベルスイッチングコントロールメッセージのトポロジーバージョン番号がルーティングテーブルのトポロジーバージョン番号に一致することを照合する。ラベルスイッチングコントロールメッセージのトポロジーバージョン番号が特定のラベルスイッチングルーターにおけるルーティングテーブルのトポロジーバージョン番号に一致しないか、又はコントロールメッセージが古いバージョン番号を含む場合には、そのラベルスイッチングコントロールメッセージが破棄される。
【００５４】
ラベルスイッチングコントロールメッセージのトポロジーバージョン番号が特定のラベルスイッチングルーターにおけるルーティングテーブルのトポロジーバージョン番号より新しい場合には、ラベルスイッチングコントロールメッセージを記憶し、そしてルーティングテーブルの新たなバージョンが使用できるときに後で使用することができる。
【００５５】
トポロジーバージョン番号が一致する場合には、ラベルスイッチングコントロールメッセージを受信するラベルスイッチングルーターが古いラベルを除去することができる。例えば、ラベルスイッチングルーター１００４が、古い入力ラベル４１０に置き換わる新たな入力ラベル４１１を発生し、そして古いラベルを回収するためのラベルスイッチングコントロールメッセージをラベルスイッチングルーター１００２へ送信する場合に、ラベルスイッチングルーター１００２は、１の宛先ＩＤ及び４の次のホップに関連した出力ラベル４１０を除去する。種々の実施形態に基づき、古いラベルを除去するためのラベルスイッチングコントロールメッセージを、ここでは、ラベル回収メッセージと称する。
【００５６】
出力ラベルは分析されないが、ファイバーチャンネルフレームは、ファイバーチャンネルフレームの順序ずれした配送を防止するためにドロップされる。図１１及び１２において、「？」は、ラベルが分析されないことを指示するのに使用される。例えば、ラベルスイッチングルーター１００５がフレーム１及び２をラベルスイッチングルーター１０１に送信し、最終的にラベルスイッチングルーター１００４へ到達させると仮定する。ラベルスイッチングルーター１００１とラベルスイッチングルーター１００４との間のリンクがフェイルした後に、ラベルスイッチングルーター１００５がフレーム３及び４をラベルスイッチングルーター１００２へ送信して、最終的にラベルスイッチングルーター１００４に到達させる。フレーム１及び２がドロップしない場合には、それらは、フレーム３及び４の後にラベルスイッチングルーター１００４に到達することができる。しかしながら、宛先ラベルスイッチングルーター１００４に対するラベルスイッチングルーター１００１の出力ラベルは、リンクがフェイルした後に分析されないので、フレーム１及び２がドロップされ、そしてフレーム３及び４は、ラベルスイッチングルーター１００４に順序正しく到着することができる。換言すれば、ルーティングテーブル１１１１における宛先４に関連した出力ラベル４４０は、もはや正確ではないので、フレーム１及び２をドロップすることができる。
【００５７】
出力ラベルを分析するために、ラベルスイッチングルーター１００４は、入力ラベル４１１を含む新たな入力ラベルを、ラベルスイッチングルーター１００２のような他のラベルスイッチングルーターへアドバータイズする。新たなラベルを追加するためのラベルスイッチングコントロールメッセージは、ラベルマッピングメッセージと称する。一例において、ラベルスイッチングルーター１００４は、ラベルを有するラベルマッピングメッセージをラベルスイッチングルーター１００２へ送信する。ラベルスイッチングルーター１００２に受信されたラベルマッピングメッセージは、４の次のホップ及び１の宛先に関連した新たな出力ラベルとして新たな入力ラベル４１１を使用するようにラベルスイッチングルーター１００２に命令することができる。
【００５８】
図１２は、出力ラベルがまだ完全に分析されないファイバーチャンネルファブリックにおけるラベルスイッチングルーターを示す図である。ラベルスイッチングルーター１００４は、入力ラベル４１０、４２０、４３０、４４０及び４５０の古いセットを、入力ラベル４１１、４２１、４３１、４４１及び４５１の更新されたスタックに各々置き換えたルーティングテーブル１２１４を発生している。又、ラベルスイッチングルーター１００４は、その出力ラベルを分析しており、そして出力ラベル１１０、１１０、２２０、３３０、２５０及び３５０を、新たな出力ラベル２１１、３１１、２２１、３３１、２５１及び３５１に置き換えている。種々の実施形態に基づき、ラベルスイッチングルーター１００４が、他の全てのルーターから、ルーティングテーブル１２１４に対応するトポロジーバージョン番号をもつラベルマッピングメッセージを受信した後に、ラベルスイッチングルーター１００４において出力ラベルが分析される。
【００５９】
しかしながら、ラベルスイッチングルーター１００２は、ルーティングテーブル１２１２に出力ラベルを完全に生じていない。ルーティングテーブル１２１２は、入力ラベルの新たなセットを含むが、出力ラベルのセットは部分的に分析されるだけである。特に、ラベルスイッチングルーター１００２は、次のホップ４に対応する新たな出力ラベルを有するが、次のホップ５に対応する新たな出力ラベルはもたない。これは、ラベルスイッチングルーター１００４からラベルマッピングメッセージを受信するが、ラベルスイッチングルーター１００５からラベルマッピングメッセージを受信しないことにより生じる。ラベルスイッチングルーター１００２が、次のホップ５へ送信するためのフレームを受信する場合に、次のホップ５に関連した出力ラベルが分析されないためにフレームがドロップされる。
【００６０】
リンク状態更新メッセージ及びラベルスイッチコントロールメッセージがファイバーチャンネルファブリック全体に通過されるので、各スイッチは、最終的に、ラベルスイッチングルーター１００４及びラベルスイッチングルーター１００１が図１２において出力ラベルを分析したのと同様に、出力ラベルを分析することができる。
【００６１】
図１３は、ラベルを使用したフレームの転送を示すフロープロセス図である。１３０１において、ファイバーチャンネルファブリックのリンクの変化が検出される。１３０３において、各宛先に対する次のホップの更新されたセットが、リンク状態情報に基づいて計算される。種々の実施形態に基づき、１３０５においてトポロジーバージョン番号が識別される。トポロジーバージョン番号は、ファイバーチャンネルファブリックにおける全てのスイッチのインカーネーション番号の組み合わせである。一実施形態において、トポロジーバージョン番号は、全てのインカーネーション番号が一緒に添付されたものを含む。別の実施形態では、トポロジーバージョン番号は、種々のインカーネーション番号のチェック和である。更に別の実施形態において、トポロジーバージョン番号は、ネットワーク内のスイッチに対して意味のある独特の番号である。１３０７において、スイッチは、以前にアドバータイズされたラベルを回収するためにラベルスイッチングコントロールメッセージを送信することができる。１３０９において、各ラベルスイッチングルーターは、新たな入力即ち受信ラベルを発生し、そしてその新たな入力即ち受信ラベルをファブリックの他のスイッチへアドバータイズすることができる。
【００６２】
本発明の技術は、必ずしも特定の順序で実行する必要がないことに注意されたい。例えば、一実施形態では、ラベルスイッチングルーターは、他のラベルスイッチングルーターにおいて出力ラベルが回収されるのと同時に入力ラベルを発生しそしてアドバータイズすることができる。
【００６３】
１３１１において、古いラベルをもつフレームがドロップされる。又、フレームはドロップされるが、出力ラベルは分析されない。例えば、次のホップ６に関連した出力ラベルが分析されない場合には、次のホップ６へ送信するように構成されたフレームがドロップされる。１３１３において、ラベルマッピングメッセージからの情報、又は他のラベルスイッチングルーターからのアドバータイズメントからの情報を使用することにより出力ラベルが分析される。１３１５において出力ラベルが分析されるので、フレームはもはやドロップされない。
【００６４】
本発明は、特定の実施形態を図示して説明したが、本発明の精神及び範囲から逸脱せずに、ここに開示した実施形態の形態及び細部を変更できることが当業者に理解されよう。例えば、本発明の実施形態は、種々のネットワークプロトコル及びアーキテクチャーと共に使用することができる。排除メッセージのような命令は、種々の異なる時間に送信することができる。それ故、本発明は、その真の精神及び範囲内に入る全ての変形及び等効物を包含すると解釈される。
【図面の簡単な説明】
【００６５】
【図１】本発明の技術を使用することのできるネットワークを示す図である。
【図２】ファイバーチャンネルファブリックのリンクの変化を受けるファイバーチャンネルファブリックを示す図である。
【図３Ａ】次のホップのセットを示すルーティングテーブルを示す図である。
【図３Ｂ】次のホップの更新されたセットを示すルーティングテーブルを示す図である。
【図４】仮想出力待ち行列を示す図である。
【図５】ファイバーチャンネルフレームのブロッキングを示すプロセスフローチャートである。
【図６】ファイバーチャンネルフレームのドロッピングを示すプロセスフローチャートである。
【図７】チャンネルにおける考えられる再順序付けを示す図である。
【図８Ａ】転送チャンネルテーブルを示す図である。
【図８Ｂ】更新された転送チャンネルテーブルを示す図である。
【図９】チャンネルが変化したときのファイバーチャンネルフレームの転送を示すプロセスフローチャートである。
【図１０】ラベルスイッチングルーターを示す図である。
【図１１】リンクの変化中のラベルスイッチングルーターを示す図である。
【図１２】出力ラベルが部分的に分析される間のラベルスイッチングルーターを示す図である。
【図１３】入力及び出力ラベルを使用して順序正しく配送するための技術を示すプロセスフローチャートである。
【図１】
2005522147.tif 000003
【図２】
2005522147.tif 000004
【図３Ａ】
2005522147.tif 000005
【図３Ｂ】
2005522147.tif 000006
【図４】
2005522147.tif 000007
【図５】
2005522147.tif 000008
【図６】
2005522147.tif 000009
【図７】
2005522147.tif 000010
【図８Ａ】
2005522147.tif 000011
【図８Ｂ】
2005522147.tif 000012
【図９】
2005522147.tif 000013
【図１０】
2005522147.tif 000014
【図１１】
2005522147.tif 000015
【図１２】
2005522147.tif 000016
【図１３】
2005522147.tif 000017
【国際調査報告】
2005522147.tif 000018
2005522147.tif 000019
2005522147.tif 000020
2005522147.tif 000021