(57)【特許請求の範囲】
【請求項１】
マルチキャストグループのために受信されるマルチキャストデータパケットを記憶するメモリと、
出力ポート転送論理とを含み、出力ポート転送論理は、
修正エントリのテーブルを含み、修正エントリのテーブルは、マルチキャストグループの各メンバのための修正エントリを含み、マルチキャストグループの複数のメンバは同じ出力ポートに結合され、出力ポート転送論理はさらに、
メンバと関連付けられる修正エントリに依存してメモリから受信されるマルチキャストデータパケットのコピーを修正するエディタ論理を含む、スイッチ。
【請求項２】
マルチキャストデータパケットのためのマルチキャスト転送ベクトルを生成する入力ポート転送論理をさらに含み、マルチキャスト転送ベクトルは、記憶されたマルチキャストデータパケットがどのポートに転送されるべきかを示す、請求項１に記載のスイッチ。
【請求項３】
マルチキャスト転送ベクトルに依存して少なくとも１つのポートキューにメモリに記憶されたマルチキャストデータパケットへのポインタを記憶するポートキュー論理をさらに含む、請求項２に記載のスイッチ。
【請求項４】
記憶されたマルチキャストデータパケットが、ポートキューと関連付けられたポートに接続されたＩＰマルチキャストグループのすべてのメンバに転送されてしまった後、ポートキュー論理は、ポートキューに記憶されたマルチキャストデータパケットへのポインタを除去する、請求項３に記載のスイッチ。
【請求項５】
修正エントリは、
仮想ＬＡＮ識別子と、
次の修正エントリへのポインタと、
タグインジケータと、
転送タイプインジケータとを含む、請求項１に記載のスイッチ。
【請求項６】
次の修正エントリへのポインタは、マルチキャストデータパケットの次のコピーを修正するための次の修正エントリへのインデックスである、請求項５に記載のスイッチ。
【請求項７】
修正エントリは、
仮想ＬＡＮ識別テーブルに記憶された仮想ＬＡＮエントリと、
中間ＬＡＮ識別テーブルに記憶された中間エントリに記憶された中間エントリとを含み、中間エントリは、仮想ＬＡＮエントリへのインデックスを含む、請求項１に記載のスイッチ。
【請求項８】
マルチキャストグループのために受信されるマルチキャストデータパケットをメモリに記憶するステップと、
出力ポート転送論理を設けるステップとを含み、出力ポート転送論理は、修正エントリのテーブルを含み、修正エントリのテーブルは、マルチキャストグループの各メンバのための修正エントリを含み、マルチキャストグループの複数のメンバは同じ出力ポートに結合され、さらに、
出力ポート転送論理において、メンバと関連付けられる修正エントリに依存してメモリから受信されたマルチキャストデータパケットのコピーを修正するステップと、
出力ポート転送論理により、マルチキャストデータパケットの修正されたコピーを出力ポートへ、次の使用可能出力ポートサイクル時間において転送するステップとを含む、スイッチにおいてマルチキャストデータパケットを転送するための方法。
【請求項９】
マルチキャストデータパケットに含まれるパラメータに依存してマルチキャストデータパケットのためのマルチキャスト転送ベクトルを選択するステップをさらに含み、マルチキャスト転送ベクトルは、マルチキャストデータパケットがどの出力ポートに転送されるべきかを示す、請求項８に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１０】
パケットマネージャにより、マルチキャスト転送ベクトルに依存して出力ポートと関連付けられるポートキューにメモリに記憶されたマルチキャストデータパケットへのポインタを記憶するステップをさらに含む、請求項９に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１１】
マルチキャストデータパケットのすべての修正されたコピーがポートキューと関連付けられる出力ポートに伝送された後、パケットマネージャにより、ポートキューに記憶されたマルチキャストデータパケットへのポインタを除去するステップをさらに含む、請求項１０に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１２】
修正エントリを設けるステップは、
仮想ＬＡＮ識別子、次のエントリへのポインタ、タグインジケータ、および転送タイプインジケータを設けるステップを含む、請求項８に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１３】
次のエントリへのポインタは、出力ポートに送信されるべきマルチキャストデータパケットの第２の修正されたコピーのためのパラメータを記憶する次の修正エントリへのインデックスを与える、請求項１２に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１４】
出力ポート転送論理を設けるステップは、
仮想ＬＡＮ識別テーブルを設けるステップと、
マルチキャストエントリを記憶するための中間ＬＡＮ識別テーブルを設けるステップとをさらに含み、マルチキャストエントリは、仮想ＬＡＮ識別子を含む仮想ＬＡＮ識別テーブル中の場所へのインデックスを含む、請求項８に記載のスイッチにおいてマルチキャストパケットを転送するための方法。
【請求項１５】
マルチキャストグループのために受信されるマルチキャストデータパケットを記憶するメモリと、
出力ポート転送論理とを含み、出力ポート転送論理は、
修正エントリのテーブルを含み、修正エントリのテーブルは、マルチキャストグループの各メンバのための修正エントリを含み、マルチキャストグループの複数のメンバは同じ出力ポートに結合され、出力ポート転送論理はさらに、
メンバと関連付けられる修正エントリに依存してメモリから受信されたマルチキャストデータパケットのコピーを修正するための手段を含む、スイッチ。
【請求項１６】
マルチキャストデータパケットのためのマルチキャスト転送ベクトルを生成するための手段をさらに含み、マルチキャスト転送ベクトルは、記憶されたマルチキャストデータパケットがどのポートに転送されるべきかを示す、請求項１５に記載のスイッチ。
【請求項１７】
マルチキャスト転送ベクトルに依存して少なくとも１つのポートキューにメモリに記憶されたマルチキャストデータパケットへのポインタを記憶するための手段をさらに含む、請求項１６に記載のスイッチ。
【請求項１８】
前記記憶するための手段は、マルチキャストデータパケットがポートキューと関連付けられる出力ポートに接続されたマルチキャストグループの各メンバに伝送されてしまった後、ポートキューに記憶されたマルチキャストデータパケットへのポインタを除去する、請求項１７に記載のスイッチ。
【請求項１９】
修正エントリは、
仮想ＬＡＮ識別子と、
次のエントリへのポインタと、
タグインジケータと、
転送タイプインジケータとを含む、請求項１５に記載のスイッチ。
【請求項２０】
次のエントリへのポインタは、出力ポートに転送されるべきマルチキャストデータパケットの次の修正されたコピーのためのパラメータを記憶する次の修正エントリへのインデックスを与える、請求項１９に記載のスイッチ。
【請求項２１】
修正エントリは、
仮想ＬＡＮ識別テーブルに記憶された仮想ＬＡＮエントリと、
中間ＬＡＮ識別テーブルに記憶された中間エントリに記憶された中間エントリとを含み、中間エントリは、仮想ＬＡＮエントリへのインデックスを含む、請求項１５に記載のスイッチ。
【発明の詳細な説明】
【０００１】
【発明の背景】
コンピュータネットワークにおいては、ネットワーキングスイッチが、スイッチに接続された入力ポートでデータパケットを受信し、スイッチに接続された出力ポートにそのデータパケットを転送する。スイッチは、入力ポートで受信されたデータパケットに含まれる宛先アドレスに依存して、データパケットが転送される出力ポートを判断する。
【０００２】
出力ポートに接続された送信先ノードが、ＩＰマルチキャストグループのメンバであり得る。送信先ノードは、リアルタイムビデオなどのＩＰマルチキャストデータを受信するためにＩＰマルチキャストグループを結合する。入力ポートでＩＰマルチキャストデータパケットを受信するスイッチは、受信されたＩＰマルチキャストデータパケットのコピーをスイッチに接続されたＩＰマルチキャストグループのすべてのメンバに転送しなければならない。
【０００３】
ＩＰマルチキャストグループの各メンバごとに１つの、複数のユニキャストデータパケットの代わりに、１つのＩＰマルチキャストデータパケットを入力ポートに伝送することにより、スイッチに伝送されるデータパケットの数は低減される。しかしながら、スイッチは、ＩＰマルチキャストデータパケットがどの出力ポートに転送されるか、および、各出力ポートに転送するべきコピーの数を判断しなければならないので、スイッチにおいてＩＰマルチキャストデータパケットを処理する時間が増大する。
【０００４】
スイッチは、ＩＰマルチキャストデータパケットのコピーをＩＰマルチキャストグループの各メンバに転送しなければならない。したがって、ＩＰマルチキャストグループの複数のメンバが出力ポートに接続されるならば、ＩＰマルチキャストデータパケットの複数のコピーが出力ポートに転送される。ＩＰマルチキャストデータパケットのコピーは、ＩＰマルチキャストグループのメンバに転送される前に、ネットワーキングスイッチによって修正される。
【０００５】
典型的には、スイッチを介する出力ポートへのＩＰマルチキャストデータパケットの転送は、ネットワーキングスイッチにおけるホストプロセッサによって行なわれる。ホストプロセッサに基づいた転送は遅い。
【０００６】
【発明の概要】
ネットワーキングスイッチの入力ポートで受信されたＩＰマルチキャストデータパケットのコピーがワイヤ速度で出力ポートに転送される。入力ポートで受信されたＩＰマルチキャストデータパケットは、メモリに記憶される。記憶されたＩＰマルチキャストデータパケットのコピーが、出力ポート転送論理に転送される。出力ポート転送論理は、ＩＰマルチキャストデータパケットと関連付けられるＩＰマルチキャストグループの各メンバごとに修正エントリを含む。メモリからＩＰマルチキャストデータパケットのコピーを受信すると、出力ポート転送論理は、ＩＰマルチキャストデータパケットが転送されるべき出力ポートと関連付けられる修正エントリに依存してＩＰマルチキャストデータパケットのコピーを修正する。
【０００７】
スイッチにおける入力ポート転送論理が、ＩＰマルチキャストデータパケットのためのマルチキャスト転送ベクトルを生成する。マルチキャスト転送ベクトルは、記憶されたＩＰマルチキャストデータパケットがどのポートに転送されるべきかを示す。
【０００８】
スイッチにおけるポートキュー論理が、マルチキャスト転送ベクトルに依存してポートキューのメモリにＩＰマルチキャストデータパケットの場所へのポインタを記憶する。ＩＰマルチキャストデータパケットが、ポートキューと関連付けられる出力ポートに接続されたＩＰマルチキャストグループのすべてのメンバに転送されてしまった後、ポートキュー論理はポインタを除去する。
【０００９】
修正エントリは、仮想ＬＡＮ（Virtual LAN）のための識別子と、次の修正エントリへのポインタと、タグインジケータと、転送タイプエントリとを含み得る。次の修正エントリへのポインタは、ポートのための次のＩＰマルチキャストデータパケットを修正するための次の修正エントリへのインデックスである。
【００１０】
出力ポート転送論理は、仮想ＬＡＮ識別テーブルと、中間ＬＡＮ識別テーブルとを含み得る。中間ＬＡＮ識別テーブルは、仮想ＬＡＮテーブル中の場所へのインデックスを含み、内部ＬＡＮテーブルは、仮想ＬＡＮ識別子を記憶する。
【００１１】
この発明の前に述べたおよび他の目的、特徴および利点は、添付の図面に記載される、この発明の好ましい実施例の以下のより特定的な説明から明らかとなり、異なった図面を通じて同様の参照符号は同様の部品を参照する。図は、必ずしも一定の比例で描かれているとは限らず、代わりにこの発明の原理を説明することに強調が置かれている。
【００１２】
【詳細な説明】
図１は、ネットワークスイッチ１００に接続されるＩＰマルチキャストグループのメンバを示す。ＩＰマルチキャストグループのメンバは、出力ポート１１０ａ−ｃに接続される送信先ノード１０４ａ−ｆを含む。入力ポート１０８に接続される発信元ノード１０２は、ＩＰマルチキャストグループのためのＩＰマルチキャストデータパケットの発信元である。たとえば、発信元ノード１０２は、ＩＰマルチキャストグループのすべてのメンバにビデオを伝送していてもよい。代替の実施例では、発信元ノード１０２は、ＩＰマルチキャストグループのメンバであってもよい。発信元ノード１０２は、ＩＰマルチキャストデータパケット１０６をスイッチ１００に転送する。スイッチ１００は、ＩＰマルチキャストデータパケット１０６のコピーを、ＩＰマルチキャストグループの各メンバ、すなわち送信先ノード１０４ａ−ｆに転送する。
【００１３】
ＩＰマルチキャストデータパケット１０６のコピーは、各送信先ノード１０４に転送される前に、スイッチ１００によって修正され得る。受信されたＩＰマルチキャストデータパケット１０６のコピーは、スイッチ１００に記憶される修正エントリに依存して修正される。受信されたＩＰマルチキャストデータパケットのコピーの修正および転送は、スイッチによってワイヤ速度で行なわる、すなわち、修正は、ホストの介入なしに行なわれ、出力修正済ＩＰマルチキャストデータパケット１１２は、送信先ノード１０４が接続される出力ポート１１０の次の使用可能ポートサイクルにおいて送信先ノード１０４に転送される。
【００１４】
ＩＰマルチキャストデータパケット１０６が入力ポート１０８で受信されると、データパケット処理論理１２８が、ＩＰマルチキャストデータパケット１０６のヘッダから情報を抽出し、抽出された情報を入力マルチキャスト転送論理１１４に転送する。入力マルチキャスト転送論理１１４は、ＩＰマルチキャストグループ中の送信先ノード１０４がどの出力ポート１１０に接続されているかを判断し、ＩＰマルチキャストデータパケットが転送されるべき出力ポート１１０を示す出力ポート−ｑ論理１３４にマルチキャスト転送ベクトル１２０を転送する。入力マルチキャスト転送論理１１４はまた、ＩＰマルチキャストデータパケット１０６が転送されるべきＩＰマルチキャストグループに対応するマルチキャスト転送インデックス（“ＭＦＩ”）１３２を、データパケット処理論理１２８に転送する。ＭＦＩ１３２は、ＩＰマルチキャストグループの各メンバのための修正エントリへのインデックスである。
【００１５】
データパケット処理論理１２８は、受信されたＩＰマルチキャストデータパケット１０６およびＭＦＩ１３２をメモリ１１６に転送する。ＭＦＩ１３２を含む入力修正済ＩＰマルチキャストデータパケット１２６は、メモリ１１６に記憶される。入力修正済ＩＰマルチキャストデータパケット１２６のアドレスは、ＩＰマルチキャストデータパケット１０６が転送されるべき各出力ポート１１０のためのポートキュー（図示せず）に記憶される。ポートキューは、デイビッド・エイ・ブラウン（David A. Brown）による「インタリーブされた非ブロッキングパケットバッファのための方法および装置」（“Method and Apparatus for an interleaved Non-Blocking Packet Buffer”）と題する１９９９年８月３１日に出願された同時係属中の米国出願連続番号第０９／３８６，５８９号に記載され、その全教示がここに引用により援用される。
【００１６】
入力修正済ＩＰマルチキャストデータパケット１２６に記憶されたＭＦＩ１３２は、ＩＰマルチキャストグループの各メンバと関連付けられる記憶された修正エントリにアクセスするために使用される。出力マルチキャスト転送論理１１８は、メンバのための記憶された修正エントリの内容を用いてメモリ１１６から受信された入力修正済ＩＰマルチキャストデータパケット１２６のコピーを修正し、出力修正済ＩＰマルチキャストデータパケット１１２をＩＰマルチキャストグループの各メンバに転送する。
【００１７】
ＩＰマルチキャストグループの各メンバのための修正エントリを記憶することにより、ＩＰマルチキャストデータパケット１０６のコピーを修正しＩＰマルチキャストグループのすべてのメンバに転送するのにホストの処理が必要とされない。したがって、ＩＰマルチキャストデータパケットは、ワイヤ速度で、すなわち、ポートに接続されたＩＰマルチキャストグループのメンバにそのポートのための次の使用可能ポートサイクルにおいて転送される。各送信先ノード１０４と関連付けられる修正エントリは、出力マルチキャスト転送論理１１８に記憶され、入力マルチキャスト転送論理１１４から転送されたＩＰマルチキャストグループと関連付けられるＭＦＩ１３２を用いてアクセスされる。ＭＦＩは、メモリ１１６中の入力修正済マルチキャストデータパケット１２６に記憶される。
【００１８】
図１に示すように、ＩＰマルチキャストグループのメンバは、送信先ノードＤａ−ｆ１０４ａ−ｆを含む。送信先ノードＤａ−ｃ１０４ａ−ｃは、出力ポート＿１  １１０ａに接続され、送信先ノードＤｄ−ｅ１０４ｄ−ｅは、出力＿ポート２  １１０ｂに接続され、送信先ノードＤｆ１０４ｆは、出力ポート＿３  １００ｃに接続される。図示の実施例におけるすべての送信先ノード１０４ａ−ｆは終端ノードであるが、代替の実施例においては、図示の送信先ノード１０４ａ−ｆのいずれか１つが、別のスイッチの入力ポートであってもよく、ＩＰマルチキャストデータパケットのコピーが、他のスイッチを介して、他のスイッチの出力ポートに接続されたＩＰマルチキャストグループのメンバに転送されてもよい。また、他のスイッチの出力ポートの出力ポートに接続される複数のＶＬＡＮがあってもよく、各ＶＬＡＮが、ＩＰマルチキャストデータパケットの修正されたコピーを要求する。
【００１９】
発信元ノードＳａ１０２によって伝送されたデータパケット１０６は、入力ポート＿１  １０８でネットワークスイッチ１００によって受信される。データパケット１０６は、宛先アドレスを含む。宛先アドレスがＩＰマルチキャストアドレスであるならば、スイッチ１００は、ＩＰマルチキャストデータパケット１１２の修正されたコピーを、スイッチ１００に接続されたＩＰマルチキャストアドレスと関連付けられるＩＰマルチキャストグループのすべてのメンバに転送する。
【００２０】
図示のＩＰマルチキャストグループについては、スイッチ１００は、６個の出力修正済ＩＰマルチキャストデータパケット１１２ａ−ｆを出力ポート１−３  １１０ａ−ｃに転送する。出力修正済ＩＰマルチキャストデータパケット１１２は、ＩＰマルチキャストデータパケット１０６が入力ポート１０２で受信された後の、出力ポート１１０のための次の使用可能ポートサイクルにおいて出力ポート１１０に転送される。
【００２１】
３個の出力修正済ＩＰマルチキャストデータパケット１１２ａ−ｃが、出力ポート＿１  １１０Ａに、１つが送信先ノードＤａ−ｃ１０４ａ−ｃの各々に対して転送される。２個の出力修正済ＩＰマルチキャストデータパケット１１２ｄ−ｅが、出力＿１  １１０ｂに、１つが送信先ノードＤｄ−ｅ１０４ｄ−ｅの各々に対して転送される。１個の出力修正済ＩＰマルチキャストデータパケット１１２ｆが、出力ポート＿２  １１０ｃに、送信先ノードＤｆ１０４ｆに対して転送される。
【００２２】
受信されたＩＰマルチキャストデータパケット１０６を識別すると、データパケット処理論理１２８は、ＩＰマルチキャストデータパケット１３０のヘッダの一部を入力マルチキャスト転送論理１１４に転送する。入力マルチキャスト転送論理１１４は、ＩＰマルチキャストデータパケット１０６のコピーが転送されるべき出力ポート＿１−３  １１０ａ−ｃを判断し、マルチキャスト転送ベクトル１２０を生成する。マルチキャスト転送ベクトル１２０は、出力ポート＿ｑ論理１３４に転送される。入力マルチキャスト転送論理１１４は、ＩＰマルチキャストデータパケット１３０のヘッダの一部に依存して、記憶されたマルチキャスト転送インデックス（“ＭＦＩ”）１３２を選択し、ＭＦＩ１３２をデータパケット処理論理１２８に転送する。データパケット処理論理１２８は、受信されたＩＰマルチキャストデータパケット１０６とともにＭＦＩ１３２を入力修正済ＩＰマルチキャストデータパケット１２６に記憶し、入力修正済ＩＰマルチキャストデータパケット１２６をデータ−ｉｎ１２２によりメモリ１１６に転送する。入力修正済ＩＰマルチキャストデータパケット１２６は、メモリ１１６に記憶される。
【００２３】
出力ポート＿１−３  １１０ａ−ｃの各々について次のポートサイクルで、入力修正済ＩＰマルチキャストデータパケット１２６は、出力ポート＿ｑ論理１３４から転送されるアドレス１３６に依存して、メモリ１１６からデータ−ｏｕｔ１２４により出力マルチキャスト転送論理１１８に転送される。出力マルチキャスト転送論理１１８は、入力修正済データパケット１２６に含まれるＭＦＩ１３２に依存して入力修正済データパケット１２６のコピーを修正する。出力修正済データパケット１１２ａ−ｆは、それぞれの出力ポート＿１−３  １１０ａ−ｃに転送される。すべての出力修正済データパケット１１２ａ−ｆが転送されてしまった後、メモリ１１６に記憶された入力修正済データパケット１２６は上書きされてもよい。
【００２４】
図２は、図１に示すＩＰマルチキャストグループのメンバへのスイッチ１００を介したＩＰマルチキャストデータパケット１０６のワイヤ速度転送を示すタイミング図である。図２は、図１と関連付けて記載される。図１に示すマルチキャストグループは、スイッチ１００に接続された６個のメンバＤａ−Ｄｆ１０４ａ−ｆを含む。スイッチ１００は、４個のポート、入力＿ポート１  １０８および出力ポート１−３  １１０ａ−ｂを含む。しかしながら、この発明は、図示の４個のポートまたは６個のＩＰマルチキャストグループメンバに限られるものでない。図１の構成は、４個より多いポートや、６個より多いメンバを有するＩＰマルチキャストグループを含むように拡張されてもよいことが、当業者には周知である。
【００２５】
メモリ１１６は６４バイト幅であるので、タイミング図において、入力ポート＿１  １０８で受信される各ＩＰマルチキャストデータパケット１０６は、イーサネット（Ｒ）データパケットとして、たとえば６４バイトの最小データパケットサイズであるものとする。しかしながら、この発明は、６４バイトパケットサイズに限られるものでなく、データパケット中のバイトの数は、メモリ１１６の幅よりも大きくてもよい。
【００２６】
また、６４バイトのＩＰマルチキャストデータパケット１０６は、データセグメントタイムスロット２００の間に入力ポート１０８（図１）で受信されるものとする。図１に示すスイッチは、スイッチ１００に接続された４個のポート、すなわち、１個の入力ポート１０８および３個の出力ポート１１０ａ−ｃを含むので、図示のデータセグメントタイムスロット２００は、スイッチ１００に接続された各ポートごとに１つの、４個のポートサイクルタイムスロット２０２を含む。スイッチ１００によってサポートされるポートの最大数は、最小ポートサイクルタイムスロット２０２および最大データセグメントタイムスロット２００に依存し、したがって図１に示す４個のポートに限られるものでない。４個より多いポートを備えるスイッチ１００において、データセグメントタイムスロット２００は、スイッチ１００に接続された各ポートごとにポートサイクルタイムスロット２０２を含む。たとえば、イーサネット（Ｒ）データパケットについて、最小データパケットサイズは６４バイトである。したがって、最大データセグメントタイムスロット２００は、入力ポートで６４バイトを受信するのにかかる時間であり、最小ポートサイクルタイムスロット２０２は、メモリ１１６（図１）から６４バイトにアクセスするための時間に依存する。データセグメントタイムスロットおよびポートサイクルタイムスロットは、デイビッド・エイ・ブラウンによる「インタリーブされた非ブロッキングパケットバッファ」と題する１９９９年８月３１日に出願された同時係属中の米国出願連続番号第０９／３８６，５８９号に記載され、その全教示がここに引用により援用される。
【００２７】
入力ポート＿１  １０８に到着するＩＰマルチキャストデータパケット１０６のコピーは、次の使用可能ポートサイクルタイムスロット２０２においてＩＰマルチキャストグループの各メンバに転送される、すなわち、それはワイヤ速度で転送される。ＩＰマルチキャストグループの１つのみのメンバがポートに接続される場合、ＩＰマルチキャストデータパケットのコピーは、次のポートサイクルタイムスロット２０２において転送される。ＩＰマルチキャストグループの２つ以上のメンバがポートに接続される場合、入力ポート１０８に到着する次のＩＰマルチキャストデータパケットは、先のＩＰマルチキャストデータパケットがポートに接続されたＩＰマルチキャストグループのすべてのメンバに転送されてしまった後に、転送される。
【００２８】
タイミング図は、データセグメントタイムスロット２００ａ−ｄにおいて発信元ノードａ１０２から入力ポート＿１  １０８に到着する４個のＩＰマルチキャストデータパケットを示す。最初のＩＰマルチキャストデータパケットは、データセグメントタイムスロット２００ａにおいて到着する。第２のデータセグメントタイムスロット２００ｂにおいて、ＩＰマルチキャストデータパケットは、ポートサイクル２０２ｂにおいて出力ポート＿１  １１０ａに、ポートサイクル２０２ｃにおいて出力ポート＿２  １１０ｂに、ポートサイクル２０２ｃにおいて出力ポート＿３  １１０ｃに転送される。最初のＩＰマルチキャストデータパケットが転送されている際、第２のＩＰマルチキャストデータパケットがデータセグメントタイムスロット２００ｂの間に受信される。
【００２９】
時間２３０において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）がメモリ１１６（図１）に記憶され、入力マルチキャスト転送論理１１４（図１）は、ＩＰマルチキャストデータパケット＿１  １０６（図１）のためのマルチキャスト転送ベクトル１２０（図１）を出力マルチキャスト転送論理１１８（図１）に転送する。
【００３０】
時間２０６、ポートサイクルタイムスロット２０２ｂの開始において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）のコピーが、メモリ１１６（図１）からデータ−ｏｕｔ１２４（図１）により出力マルチキャスト転送論理１１８（図１）へ、出力ポート＿ｑ論理１３４（図１）から転送されたアドレス１３６に依存して、転送される。出力マルチキャスト転送論理１１８（図１）は、ＭＦＩ１３２（図１）に依存して入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）の受信されたコピーを修正する。出力修正済ＩＰマルチキャストデータパケット＿１  １１２Ａは、出力ポート＿１  １１０Ａを介して送信先ノードＤａ１０４ａに転送される。
【００３１】
時間２０８、ポートサイクルタイムスロット２０２ｃの開始において、および、時間２１０、ポートサイクルタイムスロット２０２ｄの開始において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）のコピーがメモリ１１６（図１）からデータ−ｏｕｔ１２４（図１）により、出力ポート＿ｑ論理１３４（図１）から転送されたアドレス１３６（図１）に依存して、転送される。入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）の受信されたコピーは、関連付けられたＭＦＩ１３２（図１）に依存して出力マルチキャスト転送論理１１８によって修正され、出力ポート２  １１０ｂを介して送信先ノードＤｄ１０４ｄおよび出力ポート３  １１０ｃを介して送信先ノードＤｆ  １０４ｆに転送される。
【００３２】
時間２１２において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）のコピーが修正され送信先ノードＤｂ  １０４ｂ（図１）に転送され、時間２１８において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）のコピーが修正され、出力ポート＿２  １１０ｂ（図１）に接続された送信先ノードＤｃ１０４ｃに転送される。時間２１４において、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）のコピーが修正され、出力ポート＿１  １１０ｂ（図１）に接続された送信先ノードＤｄ１０４ｄに転送される。
【００３３】
時間２３２において、入力修正済ＩＰマルチキャストデータパケット＿２  １２６（図１）がメモリ１１６（図１）に記憶され、入力マルチキャスト転送論理１１４（図１）は、ＩＰマルチキャストデータパケット＿２  １０６（図１）のためのマルチキャスト転送ベクトル１２０（図１）を出力マルチキャスト転送論理１１８（図１）に転送する。時間２３４において、入力修正済ＩＰマルチキャストデータパケット＿３  １２６（図１）がメモリ１１６（図１）に記憶される。時間２３６において、入力修正済ＩＰマルチキャストデータパケット＿４  １２６（図１）がメモリ１１６（図１）に記憶される。
【００３４】
ＩＰマルチキャストグループの１つのみのメンバ、すなわち、送信先ノード１４０ｆは出力ポート＿３  １１０ｃに接続されているので、１つのみの出力修正済ＩＰマルチキャストデータパケット＿１  １１２（図１）が出力ポート＿３  １１０ｃに転送される。したがって、時間２１６において、ポートサイクルタイムスロット２０２ｄにおいて、出力修正済ＩＰマルチキャストデータパケット＿２  １１２ｆが出力ポート＿３  １１０Ｃに転送される。時間２２２で、ポートタイムサイクル２０２ｄにおいて、出力修正済ＩＰマルチキャストデータパケット＿３  １１２ｆが出力ポート＿３  １１０ｃに転送される。時間２２８で、ポートサイクルタイムスロット３  ２０２ｄにおいて、出力修正済ＩＰマルチキャストデータパケット＿４  １１２ｆが出力ポート＿３  １１０ｃ（図１）に転送される。
【００３５】
したがって、入力ポート＿０  １０８（図１）で受信されたＩＰマルチキャストデータパケット＿１  １０６（図１）は、スイッチ１００（図１）を介して、次の使用可能ポートサイクルタイムスロット２０２においてホスト処理なしにワイヤ速度で、出力ポート＿１−３  １１０ａ−ｃ（図１）に接続された送信先ノード１０４ａ−ｆ（図１）に転送される。
【００３６】
出力修正済ＩＰマルチキャストデータパケット＿２  １１２（図１）は、出力ポート＿２  １１０ｂにより送信先ノードＤｅ１０４ｅおよび送信先ノードＤｆ１０４ｆに転送される。時間２２０で、出力修正済ＩＰマルチキャストデータパケット＿２  １１２ｄが、出力ポート＿２  １１０ｂに接続された送信先ノードＤｄ１０４ｄに転送される。時間２２６で、出力修正済ＩＰマルチキャストデータパケット＿２  １１２ｅ（図１）が、出力ポート＿２  １１０ｂに接続された送信先ノードＤｅ１０４ｅに転送される。
【００３７】
時間２２４で、最後の出力修正済ＩＰマルチキャストデータパケット＿１  １１２（図１）が転送されてしまった後、入力修正済ＩＰマルチキャストデータパケット＿１  １２６（図１）を記憶するメモリ中の場所を用いて、入力ポート１０８（図１）で受信された別のデータパケットを記憶し得る。したがって、入力ポート１０８（図１）で受信された入力修正済ＩＰマルチキャストデータパケット１２６（図１）は、出力修正済ＩＰマルチキャストデータパケット１１２（図１）がＩＰマルチキャストグループのすべてのメンバに転送されてしまうまでメモリ１１６（図１）に記憶される。
【００３８】
すべての出力修正済ＩＰマルチキャストデータパケット１１２ａ−ｆ（図１）が転送されてしまったかどうかを判断するために、入力修正済ＩＰマルチキャストデータパケット１２６（図１）が、各入力修正済ＩＰマルチキャストデータパケット１２６（図１）に関連付けられて、入れられたポートキュー（図示せず）の数が、ポートキューカウンタレジスタ（図示せず）に記憶される。出力ポート１１０（図１）と関連付けられるすべての出力修正済ＩＰマルチキャストデータパケット１１２（図１）が出力ポート１１０（図１）に転送されるたびに、カウンタレジスタがデクリメントされる。たとえば、１個の出力修正済ＩＰマルチキャストデータパケットが出力ポート＿３  １１０ｃに転送されてしまった後に、ポートキューのカウンタがデクリメントされる。ポートキューの数は、マルチキャスト転送ベクトル１２０（図１）から判断される。
【００３９】
入力ポート１０８（図１）で受信される先行技術のデータパケットが、出力修正済ＩＰマルチキャストデータパケット１１２ａ−ｆ（図１）が出力ポート１１０ａ−ｃに転送される前に転送論理１１４、１１８（図１）およびデータパケット処理論理１２６（図１）がＩＰマルチキャストパケット１０６（図１）に対して行ない得る修正を説明するために、図３Ａ−３Ｄと関連付けて記載される。
【００４０】
図３Ａは、スイッチ１００（図１）に接続された入力ポート１０８（図１）で受信され得る先行技術のデータパケットを示す。図３Ｂは、図３Ａに示すデータパケットに含まれ得る先行技術のイーサネット（Ｒ）ヘッダを示す。図３Ｃは、図３Ａに示すデータパケットに含まれ得る先行技術のインターネットプロトコルヘッダを示す。図３Ｄは、図３Ｂに示すイーサネット（Ｒ）ヘッダ中の先行技術のタグ制御情報フィールド３１８Ｂを示す。
【００４１】
図３Ａは、先行技術のデータパケット３００を示す。データパケット３００は、データフィールド３１０と、ネットワーキング層のためのヘッダ３０２、３０４、３０６、３０８とを含む。ＯＳＩモデルにおける４個の層のためのヘッダ、すなわち、物理層（Ｌ１）ヘッダ３０２と、データリンク層（Ｌ２）ヘッダ３０４と、ネットワーキング層（Ｌ３）ヘッダ３０６と、トランスポート層（Ｌ４）ヘッダ３０８とが示される。たとえば、データリンク層（Ｌ２）ヘッダ３０４はイーサネット（Ｒ）であってもよく、ネットワークワーキング層（Ｌ３）ヘッダ３０６はインターネットプロトコル（“ＩＰ”）であってもよい。データパケット３００は、チェックサム３１２も含む。
【００４２】
図３Ｂは、イーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３０４のフォーマットを示す。イーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３０４は、送信先ノード１０４（図１）のための装置アドレス、すなわち、宛先アドレス３１４と、発信元ノード１０２（図１）のための装置アドレス、すなわち、出所アドレス３１６と、オプションの仮想ローカルエリアネットワーク識別子（“ＶＬＡＮ  ＩＤ”）フィード３１８と、長さ／タイプフィールド３２０とを含む。ＶＬＡＮ  ＩＤ３１８は、タグプロトコル識別子（“ＴＰＩ”）フィールド３１８Ａと、タグ制御情報（“ＴＣＩ”）フィールド３１８Ｂとを含む。ＶＬＡＮ  ＩＤフィールド３１８は、ＩＥＥＥ８０２．１Ｑタグ付けおよびＩＥＥＥ８０２．ＩＤ１９８８（８０２．１ｐ）優先権レベルに基づいてＶＬＡＮスイッチングのためのサポートを提供する。
【００４３】
図３Ｃは、ＩＰネットワーク層（Ｌ３）ヘッダ３０６のフォーマットを示す。ＩＰネットワーク層（Ｌ３）ヘッダ３０６は、発信元ノード１０２（図１）のためのネットワークアドレス、すなわち出所ＩＰアドレス３４４と、送信先ノード１０４（図１）のためのネットワークアドレス、すなわちＩＰ宛先アドレス３４６とを含む。ＩＰネットワーク層ヘッダ３０６中の他のフィールドは、バージョン３２２と、ＨＬＥＮ３２４と、サービスタイプ（“ＴＯＳ”）３２６と、パケット長（total length）３２８と、識別子３３０と、フラグ３３２と、フラグメントオフセット３３４と、生存時間（time to live）（“ＴＴＬ”）３３６と、プロトコル３４０と、ヘッダチェックサム３４２と、オプション３４８と、パッド３５０とを含む。
【００４４】
スイッチ１００（図１）に接続された入力ポート１０８（図１）で受信されたＩＰマルチキャストデータパケット１０６（図１）は、イーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３００（図３Ａ）に記憶された宛先アドレス３１４（図３Ｂ）に依存して１つ以上の出力ポート１１０ａ−ｃ（図１）にブリッジされるか、または、ＩＰネットワーク層（Ｌ３）ヘッダ３０６に記憶されたＩＰ宛先アドレス３４６に依存して１つ以上の出力ポート１１０（図１）にルーチングされる。
【００４５】
図３Ｄは、図３Ｂに示す先行技術のＴＣＩフィールド３１８ｂを示す。ＴＣＩフィールド３１８ｂは、３ビットのユーザ優先権フィールド３５２と、１ビットのＣＦＩフィールド３５４と、１２ビットの仮想ローカルエリアネットワーク（“ＶＬＡＮ”）識別子３５６とを含む。
【００４６】
図１に戻って、データパケット処理論理１２８は、受信されたデータパケットに含まれるネットワーク層（Ｌ３）ヘッダ３０６（図３Ａ）を調べることにより、入力ポート＿１  １０８で受信されたデータパケットがＩＰマルチキャストデータパケット１０６であるかどうかを判断する。ネットワーク層（Ｌ３）ヘッダ３０６（図３Ａ）は、プロトコルフィールド３４０（図３Ｃ）がＩＰであり、バージョンフィールド３２２（図３Ｃ）がＩＰｖ４であり、かつヘッダチェックサム３４２（図３Ｃ）が有効であるならば、インターネットプロトコルバージョン４（“ＩＰｖ４”）ヘッダである。ＩＰデータパケットは、ＩＰ宛先アドレス３４６（図３Ｃ）がクラスＤであるならば、すなわち、ＩＰ宛先アドレス３４６（図３Ｃ）の上位４ビットが１１１０にセットされているならば、ＩＰマルチキャストデータパケット１０６である。
【００４７】
データパケット処理論理１２８がデータパケットがＩＰマルチキャストデータパケット１０６であると判断したならば、ＩＰネットワーキング層（Ｌ３）ヘッダ３０６（図３Ｃ）中のＩＰ宛先アドレス３４６（図３Ｃ）およびＩＰ出所アドレス３４４（図３Ｃ）、イーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３０４（図３Ｂ）中のＶＬＡＮ  ＩＤ３１８（図３Ｂ）、ならびに入力ポート１０８（図１）に対応する入力ポート番号を含むＩＰマルチキャストデータパケット１３０のヘッダの一部が、入力マルチキャスト転送論理１１４に転送される。
【００４８】
図４は、図１に示す入力マルチキャスト転送論理１１４を示す。入力マルチキャスト転送論理１１４は、内容アドレス記憶装置（“ＣＡＭ”）４００と、ルートマッパ４０２と、ルートテーブル４０４と、ベクトル組合せ論理４０６とを含む。ルートテーブル４０４は、入力ポート＿１  １０８（図１）で受信されるＩＰマルチキャストデータパケット１０６（図１）に含まれるＩＰマルチキャストグループに対応するマルチキャスト転送エントリ４２２を含む。ＣＡＭ４００およびルートマッパ４０２は、データパケット処理論理１２８（図１）から転送されるＩＰマルチキャストデータパケット１３０（図１）のヘッダの一部および入力ポート＿１  １０８（図１）のポート番号に依存して、マルチキャスト転送エントリ４２２を選択する。
【００４９】
図４と関連付けて記載される入力マルチキャスト転送論理１１４（図１）の実現において、ＣＡＭ４００は、ＩＰ宛先アドレス３４６（図３Ｃ）、ＩＰ出所アドレス３４４（図３Ｃ）、入力ポート番号およびＶＬＡＮ  ＩＤ３１８（図３Ｂ）を記憶するには十分な幅がない。したがって、ルートマッパ４０２は、ＣＡＭ４００の幅を増大させるように実現される。しかしながら、ＣＡＭ４００がルートマッパ４０２を含むよう拡張されてもよいことは、当業者には周知である。
【００５０】
ＩＰマルチキャストパケット１０６に対応するルートテーブル４０４におけるマルチキャスト転送エントリ４２２の検索は、２段階で行なわれる。まず、ＩＰネットワーク層（Ｌ３）ヘッダ３０６（図３Ｃ）中のＩＰ宛先アドレス３４６（図３Ｃ）フィールドおよびＩＰ出所アドレス３４４（図３Ｃ）フィールドに依存してエントリのためにＣＡＭ４００が検索される。一致するエントリがＣＡＭ４００に見出されるならば、一致アドレス４１０がルートマッパ４０２に転送される。ルートマッパ４０２は、一致アドレス４１０に対応するマルチキャストパスコード（“ＭＰＣ”）４２２をＣＡＭ４００に転送する。
【００５１】
第２に、ＭＰＣ４２２、ＶＬＡＮ  ＩＤ３１８（図３Ｂ）および入力ポート番号に依存して、エントリのためにＣＡＭ４００が検索される。一致するエントリがＣＡＭ４００に見出されるならば、一致アドレス４１０がルートマッパ４０２に転送される。ルートマッパ４０２は、一致アドレス４１０に対応する関連データインデックス（“ＡＤＩ”）をルートテーブル４０４に転送する。ＩＰマルチキャスト転送エントリ４２２は、ＡＤＩ４１２によって識別されるルートテーブル４０４中の場所に記憶される。ＩＰマルチキャスト転送エントリ４２２は、ＩＰマルチキャストデータパケット１０６（図１）がスイッチ１００（図１）によって転送されるべきＩＰマルチキャストグループを識別する。
【００５２】
ＩＰマルチキャストデータパケットの二重転送を防ぐために、ＣＡＭ４００は、ＩＰ出所アドレス３４４（図３Ｃ）、ＩＰ宛先アドレス３４６（図３Ｃ）、ＶＬＡＮ  ＩＤ３１８（図３Ｂ）および入力ポート番号１０８（図１）で検索される。たとえば、発信元ノードが２つ以上のポートに接続されている場合、すなわち、送信先ノードｘがポートｙおよびポートｘに接続され、かつＩＰマルチキャストデータパケットが送信先ノードｘからポートｙで受信されるならば、データパケットは、ＩＰマルチキャストグループのすべてのメンバに転送される。しかしながら、ＩＰマルチキャストデータパケットがポートｚの宛先アドレスｘから受信されるならば、それは廃棄される。なぜなら宛先ｘは２つ以上のポートに接続され、そのためポートｚで受信されるＩＰマルチキャストデータパケットは、ポートｙで受信されたＩＰマルチキャストデータパケットの複製であるからである。
【００５３】
ルートテーブル４０４中の各マルチキャスト転送エントリ４２２は、ブリッジベクトル４１６と、ルートベクトル４１４と、マルチキャスト転送インデックス１３２（“ＭＦＩ”）とを含む。ブリッジベクトル４１６およびルートベクトル４１４は、ベクトル組合せ論理４０６に転送される。ＭＦＩ１３２は、データパケット処理論理１２８（図１）に転送される。
【００５４】
ベクトル組合せ論理４０６は、ルートベクトル４１４およびブリッジベクトル４１６に対して論理ＯＲ関数を実行することによりマルチキャスト転送ベクトル１２０を生成する。マルチキャスト転送ベクトル１２０は、出力ポート＿ｑ論理１３４（図１）に転送される。マルチキャスト転送ベクトル１２０は、ＩＰマルチキャストデータパケット（図１）が転送されるべき１つ以上の出力ポートを選択する。
【００５５】
入力ポート＿１  １０８で受信されるＩＰマルチキャストデータパケット１０６（図１）のイーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３０４（図３Ｂ）における宛先アドレス３１４（図３Ｂ）の最初の３バイトは、“０ｘ０１−００−５３”にセットされる。ＩＰマルチキャストデータパケット１０６がデータ−ｉｎ１２２（図１）によりメモリ１１６（図１）に転送される前に、データパケット処理論理１２８（図１）は、入力マルチキャスト論理１１４（図１）から転送されたＭＦＩ１３２を宛先アドレス３１４（図３Ｂ）の第２および第３のバイトに以下のとおり書込む：“０ｘ０１−０Ｍ−Ｆ１”。入力修正済ＩＰマルチキャストデータパケット１２６（図１）はメモリ１１６（図１）に記憶される。出力マルチキャスト転送論理１１８（図１）は、入力修正済ＩＰマルチキャストデータパケット１２６（図１）に含まれるＭＦＩ１３２を用いて、出力修正済ＩＰマルチキャストデータパケット１１２（図１）を出力ポート１１０（図１）に転送する前に、入力修正済マルチキャストデータパケット１２６（図１）を修正する。
【００５６】
ＩＰマルチキャスト転送ベクトル１２０は、ＩＰマルチキャストデータパケット１０６（図１）がどの出力ポート１１０ａ−ｃ（図１）に転送されるべきかを判断する。メモリ１１６（図１）中の入力修正済マルチキャストデータパケット１２６（図１）の場所は、マルチキャスト転送ベクトル４２０において図５に示す入力マルチキャスト転送論理１１４で実現される対応の出力ポートキュービット（図示せず）の状態に依存して、出力ポート＿ｑ論理１３４（図１）中の出力ポートキュー（図示せず）に記憶される。
【００５７】
図５は、入力ポート１０８（図１）で受信されるＩＰマルチキャストデータパケット１０６（図１）を処理するための、図４に示す入力マルチキャスト転送論理１１４において実現される方法のフローチャートである。この方法は、図１−図４と関連付けて記載される。
【００５８】
ステップ５００で、入力マルチキャスト転送論理１１４（図１）は、データパケット処理論理１２８（図１）からＩＰマルチキャストデータパケット１３０の一部を受信する。処理はステップ５０２に続く。
【００５９】
ステップ５０２で、入力マルチキャスト転送論理１１４（図４）は、ベクトル組合せ論理４０６（図４）においてルートベクトル４１４（図４）およびブリッジベクトル４１６（図４）を初期化する。
【００６０】
ステップ５０４で、データパケット処理論理１２８（図１）からＣＡＭ４００（図４）に転送されるＩＰ出所アドレス３４４（図３Ｃ）とＩＰ宛先アドレス３４６（図３Ｃ）とを一致させるエントリのためにＣＡＭ４００（図４）において検索が行なわれる。一致アドレス４１０（図４）がＣＡＭ４００（図４）に見出されるならば、処理はステップ５０６に続く。そうでなければ、処理はステップ５１８に続く。
【００６１】
ステップ５０６で、一致アドレス４１０（図４）は、ルートマッパ４０２（図４）に転送される。ルートマッパ４０２（図４）は、一致アドレス４１０（図４）に対応するマルチキャストパスコード（“ＭＰＣ”）４２２（図４）をＣＡＭ４００（図４）に転送する。処理はステップ５０８に続く。
【００６２】
ステップ５０８で、ＭＰＣ４２２と、イーサネット（Ｒ）データリンク（Ｌ２）ヘッダ３０４（図３Ｂ）からのＶＬＡＮ  ＩＤ３１８（図３Ｂ）と、入力ポート番号とに依存して、エントリのためにＣＡＭ４００（図４）において第２の検索が行なわれる。一致アドレス４１０（図４）がＣＡＭ４００（図４）に見出されるならば、処理はステップ５１０に続く。そうでなければ、処理はステップ５１８に続く。
【００６３】
ステップ５１０で、一致アドレス４１０（図４）がルートマッパ４０２（図４）に転送される。ルートマッパ４０２（図４）は、一致アドレス４１０（図４）に対応するＡＤＩをルートテーブル４０４に転送する。ＩＰマルチキャストデータパケット１０６（図１）のためのＩＰマルチキャスト転送エントリ４２２（図４）は、ＡＤＩ４１２によって識別されるルートテーブル４０４中の場所に記憶される。処理はステップ５１２に続く。
【００６４】
ステップ５１２で、マルチキャスト転送エントリ４２２（図４）に記憶されたＭＦＩ１３２（図４）が、データパケット処理論理１２８（図１）に転送され、マルチキャスト転送エントリ４２２（図４）に記憶されたブリッジベクトル４１６が、ベクトル組合せ論理４０６（図４）に転送される。処理はステップ５１４に続く。
【００６５】
ステップ５１４で、ＩＰマルチキャストデータパケット１３０（図１）の一部上で入力マルチキャスト転送論理１１４（図１）に転送されるＩＰマルチキャストデータパケット１０６（図１）中のＩＰネットワーク層（Ｌ３）ヘッダ３０６（図３Ｃ）中のＴＴＬフィールド３３６（図３Ｃ）が、１より大きければ、処理はステップ５１６に続く。そうでなければ、処理はステップ５１８に続く。
【００６６】
ステップ５１６で、マルチキャスト転送エントリ４２２（図４）に記憶されたルートベクトル４１４（図４）は、ベクトル組合せ論理４０６（図４）に転送される。処理はステップ５１８に続く。
【００６７】
ステップ５１８で、ＩＰマルチキャストデータパケット１０６（図１）が受信された入力ポート１０８（図１）に対応する入力ポート番号がブリッジベクトル４１６（図４）から除去される。処理はステップ５１９に続く。
【００６８】
ステップ５１９で、ブリッジベクトル４１６（図４）とＶＬＡＮメンバシップベクトル（図示せず）とが組合される。処理はステップ５２０に続く。
【００６９】
ステップ５２０で、論理ＯＲ関数を実行することによりブリッジベクトル４１６（図４）とルートベクトル４１４（図４）とを組合せて、ＩＰマルチキャストグループのためのマルチキャスト転送ベクトル１２０（図４）を与える。処理はステップ５２２に続く。
【００７０】
ステップ５２２で、マルチキャスト転送ベクトル４２２は、出力ポート＿ｑ論理１３４（図１）に転送される。
【００７１】
ＩＰマルチキャストデータパケット１０６（図１）に対してＣＡＭ４００（図４）において一致するエントリが見出されなければ、すなわちＩＰマルチキャストグループがわからなければ、ホストポートがＣＡＭ４００（図４）、ルートマッパ４０２（図６）およびルートテーブル４０４（図４）においてＩＰマルチキャストグループのためのエントリを加え得るように、マルチキャストデータパケット１０６（図１）はホストポート（図示せず）に転送される。ＩＰマルチキャストパケット１０６がホストポートに転送される（図１）ように、マルチキャスト転送ベクトル４２２（図４）は選択される。わからないＩＰマルチキャストグループのためのＩＰマルチキャストデータパケット１０６（図１）が、ＩＰマルチキャストデータパケット１０６（図１）が受信されたＶＬＡＮにブリッジされるようにも、マルチキャスト転送ベクトル４２２（図４）は選択される。
【００７２】
図６は、図１に示す出力マルチキャスト転送論理１１８を示す。出力マルチキャスト転送論理１１８（図１）は、ＭＦＩ検出論理６０２と、エディタ論理６００と、ＭＦＩテーブル６０４とを含む。ＭＦＩテーブル６０４は、ＭＦＩエントリ６１２を含む。
【００７３】
データ−ｏｕｔ１２４（図１）により転送されメモリ１１６（図１）に記憶された入力修正済ＩＰマルチキャストデータパケット１２６（図１）のコピーが出力ＩＰマルチキャスト処理論理１１８によって受信されると、ＭＦＩ検出論理６０２は、入力修正済ＩＰマルチキャストデータパケット１２６（図１）に含まれるＭＦＩ１３２を検出し、ＭＦＩ１３２をＭＦＩテーブル６０４に転送する。ＭＦＩ１３２は、ＩＰマルチキャストグループに対応するＭＦＩテーブル６０４中のＭＦＩエントリ６１２へのインデックスである。ＭＦＩエントリ６１２は、ＩＰマルチキャストデータパケット１０６（図１）の最初のコピーがどの出力ポート１１２（図１）に転送されるべきかを判断する。その後のＩＰマルチキャストデータパケット１０６が出力ポート１１０に転送されるべきならば、次のＭＦＩ１３２′は、ＭＦＩテーブル６０４中のＭＦＩエントリ６１２に含まれる。次のＭＦＩ１３２′は、次のＭＦＩエントリ６１２を選択するために、ＭＦＩ検出論理６０２に転送される。たとえば、次のＭＦＩ１３２′は、出力修正済ＩＰマルチキャストデータパケット１１２ｂ（図１）のための次のＭＦＩエントリ１１２′を選択するために、出力修正済ＩＰマルチキャストデータパケット１１２ａ（図１）のためのＭＦＩエントリ６１２とともに記憶される。
【００７４】
入力修正済ＩＰマルチキャストデータパケット１２６（図１）は、ＭＦＩエントリ６１２に含まれるマルチキャストパラメータ６１０に依存してエディタ論理６００によって修正される。ＭＦＩエントリ６１２に記憶されるマルチキャストパラメータ６１０は、エディタ論理６００に転送される。したがって、各入力修正済ＩＰマルチキャストデータパケット１２６（図１）は、それが転送される送信先ノード１０４ａ−ｆ（図１）に依存して編集される。ＭＦＩテーブル６０４中にＭＦＩエントリ６１２を設けることにより、入力修正済ＩＰマルチキャストデータパケット１２６（図１）は、出力修正済ＩＰマルチキャストデータパケット１１２（図１）を与えるように編集され、ワイヤ速度で、出力ポート１１０ａ−ｃ（図１）に接続されるＩＰマルチキャストグループの各メンバに転送され得る。
【００７５】
図７は、図１に示す４個のポートを備えるスイッチ１００に対する図６に示すＭＦＩテーブル６０４を示す。ＭＦＩテーブル６０４（図６）は、ＩＶＩＤテーブル７００と、ＶＬＡＮ  ＩＤテーブル７０２とを含む。ＭＦＩエントリ６１２′は、ＩＶＩＤテーブル７００にＩＶＩＤエントリ７１８と、ＶＬＡＮ  ＩＤテーブル７０２にＶＬＡＮ  ＩＤエントリ７１０とを含む。ＩＶＩＤテーブル７００中のＩＶＩＤエントリ７１８は、スイッチ１００（図１）に接続される各ポートごとにポートフィールド７１４ａ−ｄを含む。図１に示すスイッチ１００は、４個のポート：入力ポート＿１  １０８および出力ポート＿１−３  １１０ａ−ｃを含む。
【００７６】
各ポートフィールド７１４は、ブリッジ／ルートフィールド７０８と、次のフィールド７０６と、ＩＶＩＤフィールド７０４とを含む。ＩＶＩＤエントリ７１８は、次のＭＦＩフィールド７１６も含む。ＩＶＩＤエントリ７１８中のいずれかの次のフィールド７０６ａ−ｄが、別の出力修正済ＩＰマルチキャストデータパケット１１２（図１）がスイッチ１００（図１）に接続されるポートに転送されるべきことを示すならば、次のＭＦＩフィールドは、次のＭＦＩ１３２′を記憶する。図示のＩＶＩＤエントリ７１８は、図１に示すように、４個のポートを備えるスイッチ１００（図１）のためのものである。ポートフィールド７１４の数は、図示の４個に限られるものでなく、ポートフィールド７１４は、スイッチ１００（図１）に接続される各ポートごとに設けられる。たとえば、６４個のポートを備えるスイッチに対して、ＩＶＩＤエントリ７１８は、６４個のポートフィールド７１４を含む。
【００７７】
ポートに対する有効なＶＬＡＮ  ＩＤエントリ７１６があるならば、ＩＶＩＤフィールド７０４は、ＩＶＩＤフィールド７０４に対応するＶＬＡＮ  ＩＤテーブル７０２中のＶＬＡＮ  ＩＤエントリ７１６へのインデックスを記憶する。ＶＬＡＮ  ＩＤテーブル７０２中のＶＬＡＮ  ＩＤエントリ７１６は、ＶＬＡＮ  ＩＤフィールド７１０と、タグフィールド７１２とを含む。
【００７８】
代替の実施例では、ＩＶＩＤテーブル７００中のＩＶＩＤエントリ７１８は、ＶＬＡＮ  ＩＤエントリ７１６に記憶されたＶＬＡＮ  ＩＤフィールド７１０およびタグフィールド７１２を含んでもよく、この場合にはＩＶＩＤフィールド７０４が必要とされないであろう。しかしながら、ＩＶＩＤエントリ７１８およびＶＬＡＮ  ＩＤエントリ７１０を、別個に、すなわち、ＩＶＩＤテーブル７００とＶＬＡＮ  ＩＤテーブル７０２とに記憶することは、ＭＦＩテーブル６０４（図６）を実現するのに必要とされる総メモリを低減する、なぜなら、あらゆる入力修正済ＩＰマルチキャストデータパケット１２６が、対応のＶＬＡＮ  ＩＤエントリ７１６を有するとは限らないからである。
【００７９】
ブリッジ／ルートフィールド７０８は、単一ビットとして実現される。ブリッジ／ルートフィールド７０８の状態は、入力修正済ＩＰマルチキャストデータパケット１２６（図１）がポートにブリッジまたはルーチングされるべきかどうかを判断する。次のフィールド７０６は、単一ビットとして実現される。次のフィールド７０６の状態は、別の出力修正済ＩＰマルチキャストデータパケット１１２（図１）がポートに転送されるべきかどうかを判断する。ＩＶＩＤフィールド７０４は、ＶＬＡＮ  ＩＤテーブル７０２へのインデックスを提供する。ＩＶＩＤフィールド７０４中のビットの数は、ＶＬＡＮ  ＩＤテーブル７０２のサイズに依存する。たとえば、２５６個のＶＬＡＮ  ＩＤエントリ７１６を備えるＶＬＡＮ  ＩＤテーブル７０２に対しては、ＶＬＡＮ  ＩＤインデックス７１４は８ビットを含む。
【００８０】
入力修正済ＩＰマルチキャストデータパケット１２６（図１）がポートにルーチングされるべきならば、ＶＬＡＮ  ＩＤ７１０は、有効なＶＬＡＮ  ＩＤ７１０を含む。タグフィールド７１２が、出力修正済ＩＰマルチキャストデータパケット１１２（図１）がタグ付けされていないことを示すならば、エディタ論理６００（図６）は、イーサネット（Ｒ）データリンク層（Ｌ２）ヘッダ３０４（図３Ｂ）中のＶＬＡＮ  ＩＤ３１８（図３Ｂ）からタグ３１８ｂ（図３Ｂ）を削除する。
【００８１】
ＶＬＡＮ  ＩＤ７１０が必要とされることを判断し、ＶＬＡＮ  ＩＤ７１０をＶＬＡＮ  ＩＤテーブル７０２から獲得すると、マルチキャストパラメータ６１０（図６）がエディタ論理６００（図６）に転送される。エディタ論理６００（図６）は、マルチキャストパラメータ６１０を用いて、入力修正済ＩＰマルチキャストデータパケット１２６（図６）を修正し、修正した後、エディタ論理６００（図６）は、出力修正済ＩＰマルチキャストデータパケット１１２を出力ポート１１０（図１）に転送する。
【００８２】
ポートフィールド７１４におけるブリッジ／ルートフィールド７０８がブリッジにセットされたならば、エディタ論理６００（図６）は、ＶＬＡＮ  ＩＤ３１８（図３Ｃ）を付加するかまたは除去し、イーサネット（Ｒ）データリンク層（Ｌ２）ヘッダ３０４（図３Ｂ）中の宛先アドレス３１４（図３Ｂ）をその元の値に戻す。
【００８３】
ポートフィールド７１４中のブリッジ／ルートフィールド７０８がルーチングにセットされるならば、エディタ論理６００（図６）は、イーサネット（Ｒ）データリンク層（Ｌ２）ヘッダ３０４（図３Ｂ）における出所アドレス３１４（図３Ｂ）にルータの出所アドレスを上書きし、ＴＴＬ３３６（図３Ｃ）をデクリメントし、ＩＰチェックサムを生成してそれをヘッダチェックサム３４２（図３Ｃ）に記憶する。エディタ論理６００（図６）はまた、ＩＰ宛先アドレス３４６（図３Ｃ）を元の値に戻し、ＴＣＩ３１８ｂ（図３Ｂ）タグを付加する。
【００８４】
出力マルチキャスト転送論理１１８（図１）は、ＩＰ宛先アドレス３４６（図３Ｃ）に、出力ポート１１０ａ−ｃ（図１）への出力修正済ＩＰマルチキャストデータパケット１１２ａ−ｆ（図１）を転送する。
【００８５】
この発明は、その好ましい実施例を参照して特定的に示され記載されたが、前掲の特許請求の範囲によって含まれるこの発明の範囲から逸脱することなしに態様および詳細においてさまざまな変更がこれになされ得ることが、当業者には理解されるであろう。
【図面の簡単な説明】
【図１】  この発明の原理に従う、入力ポートで受信されたＩＰマルチキャストパケットをスイッチに接続されたＩＰマルチキャストグループのメンバに転送するためのＩＰマルチキャスト転送論理を含むネットワークスイッチの図である。
【図２】  図１に示すスイッチによる、図１に示すＩＰマルチキャストグループのメンバへのＩＰマルチキャストデータパケットの転送を示すタイミング図である。
【図３Ａ】  スイッチに接続された入力ポートで受信され得る先行技術のデータパケットの図である。
【図３Ｂ】  図３Ａに示すデータパケットに含まれ得る先行技術のイーサネット（Ｒ）データリンク層（Ｌ２）ヘッダの図である。
【図３Ｃ】  図３Ａに示すデータパケットに含まれ得る先行技術のインターネットプロトコル（ネットワーク層（Ｌ３））ヘッダの図である。
【図３Ｄ】  図３Ｂに示す先行技術のタグ制御情報の図である。
【図４】  図１に示す入力ＩＰマルチキャスト転送論理の図である。
【図５】  入力ポートで受信されるＩＰマルチキャストデータパケットを処理するための方法の流れ図である。
【図６】  図１に示す出力マルチキャスト転送論理の図である。
【図７】  図６に示すマルチキャスト転送インデックステーブルの図である。
【図８】  ＩＰマルチキャストデータパケットを修正するための、図６に示す出力マルチキャスト転送論理において行なわれるステップの流れ図である。
【図１】
0004606678.tif 000002
【図２】
0004606678.tif 000003
【図３Ａ】
0004606678.tif 000004
【図３Ｂ】
0004606678.tif 000005
【図３Ｃ】
0004606678.tif 000006
【図３Ｄ】
0004606678.tif 000007
【図４】
0004606678.tif 000008
【図５】
0004606678.tif 000009
【図６】
0004606678.tif 000010
【図７】
0004606678.tif 000011
【図８】
0004606678.tif 000012