(57)【要約】【課題】スイッチング装置の送信ポートで受け取られたフレームを宛先ポートへ通信するためにフレームを処理する方法を提供する。【解決手段】この方法は、オフセット値、コンパレータ値及び期待の値の格納ステップと、フレーム位置の情報とコンパレータ値との比較ステップ及びフレーム処理ステップを含む。フレーム処理ステップは、フレームの通信又はフレーム優先順位設定ステップを含むことができる。オフセット値及びコンパレータ値は、オフセット値の測定開始点たるアンカー値及びフレーム情報をマスクするマスク値を含むフィルタの一部であってよい。この方法は、フィルタ結果の結合ステップ及びフレーム処理ステップを含むことができる。フィルタ結果の結合ステップは、該結果の論理的な結合ステップを含んでよい。更に、この方法は、結果のマージ・ステップ及びフレーム処理ステップを含むことができる。【選択図】図３
2010172011.tif 000002
【特許請求の範囲】
【請求項１】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する方法であって、
オフセット値及びコンパレータ値を含むフィルタをスイッチング装置に格納するステップと、
フィルタ結果を得るために、フィルタのオフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較するステップと、
該フィルタ結果でフレームを処理するステップとを含む方法。
【請求項２】
フレームを処理するステップが、どの宛先ポートがフレームを受け取るべきかを決定する結果を使用して、フレームを宛先ポートへ通信するステップを含む、請求項１に記載の方法。
【請求項３】
フレームを処理するステップが、フィルタ結果を使用してフレームの優先順位を設定するステップを含む、請求項１に記載の方法。
【請求項４】
前記格納するステップが、比較するステップで使用される期待の値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項５】
前記格納するステップが、そこからオフセット値が測定されるアンカー値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項６】
前記格納するステップが、コンパレータ値との比較の前に、フレーム情報をマスクするマスク値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項７】
スイッチング装置の中に、各々が前記ステップを実行する複数のフィルタが存在し、
フィルタのグループ結果を得るために、フィルタ結果を結合するステップと、
フィルタのグループ結果でフレームを処理するステップとを含む、請求項１に記載の方法。
【請求項８】
前記フィルタ結果を結合するステップが、それらの結果を論理的に結合するステップを含む、請求項７に記載の方法。
【請求項９】
フィルタ結果を他のソースからのフレーム転送情報とマージするステップと、マージされた結果でフレームを処理するステップとを含む、
請求項１に記載の方法。
【請求項１０】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する装置であって、
オフセット値及びコンパレータ値を含むフィルタをスイッチング装置に格納する手段と、
フィルタのオフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較する手段と、
該フィルタ結果でフレームを処理する手段とを含む装置。
【請求項１１】
比較するステップで使用される期待の値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１２】
そこからオフセット値が測定されるアンカー値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１３】
コンパレータ値との比較の前にフレーム情報をマスクするマスク値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１４】
フィルタ結果を他のソースからのフレーム転送情報とマージする手段と、マージされた結果でフレームを処理する手段とを含む請求項１０に記載の装置。
【請求項１５】
複数のフィルタをスイッチング装置に格納する手段と、
フィルタのグループ結果を得るためにフィルタ結果を結合する手段と、
該フィルタのグループ結果でフレームを処理する手段とを含む請求項１０に記載の装置。
【請求項１６】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する方法であって、
オフセット値及びコンパレータ値をスイッチング装置に格納するステップと、
結果を得るためにオフセット値によって決定されたフレーム内の位置に存在する情報とコンパレータ値とを比較するステップと、
該結果でフレームを処理するステップとを含む方法。
【請求項１７】
オフセット値及びコンパレータ値がフィルタに関連づけられる、請求項１６に記載の方法。
【請求項１８】
オフセット値、コンパレータ値及び関連する結果の複数のセットが存在し、
グループ結果を得るために、前記結果を結合するステップと、
該グループ結果でフレームを処理するステップとを含む請求項１６に記載の方法。
【請求項１９】
前記結果を結合するステップが、結果を論理的に結合するステップを含む、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にはネットワーク・スイッチング装置に関する。更に具体的には、本発明はフレームのコンテントに基づきスイッチング装置を介してデータ・パケット（フレーム）を転送又はフィルタリングする方法及び手段に関する。
【背景技術】
【０００２】
ローカル・エリア・ネットワーク（ＬＡＮ）は、複数のコンピュータを直接に接続して、それらコンピュータが情報を相互に直接交換することができるようにするシステムである。ＬＡＮは、事務所、建物、又は小さなキャンパスのような狭い領域でコンピュータを接続するように設計されるので局所的なものと考えられる。ＬＡＮは、ケーブル、リピータ、スイッチ、ルータ、ネットワーク・インタフェース、ノード（例えば、コンピュータ）、及び通信プロトコルのような幾つかの構成要素から構成されるので、システムと考えられる。イーサネット（登録商標）はそのようなプロトコルの１つである。情報は、データ・パケットの中で搬送されるフレームとして、ＬＡＮを介して通信される（「フレーム」と「データ・パケット」は技術的には異なるが、情報を搬送するデータを表すためにしばしば互換的に使用される。）。
【０００３】
ＬＡＮスイッチ（又は、より一般的には、パケット・スイッチ）は、一般的には、それが受け取る個々のパケットの中で発見される宛先アドレス及び／又は他の情報に基づいて異なったポートの間でデータを転送するマルチポート装置であると定義される。スイッチを使用して、ＬＡＮをセグメントに区分し、異なったＬＡＮを接続し、又はＬＡＮの衝突する直径を拡張することができる。スイッチは、ネットワークの直径を増大させる能力を有するので、イーサネット（登録商標）・ベースのＬＡＮには特に重要である。パケット・スイッチに関する追加の背景情報は、１９９７年の「高速イーサネット（登録商標）」（Ｆａｓｔ  Ｅｔｈｅｒｎｅｔ（登録商標）  ｂｙ  Ｌ．Ｑｕｉｎｎ  ｅｔ  ａｌ．）、１９９６年の「コンピュータ・ネットワークス」（Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ、３ｒｄ  Ｅｄ．ｂｙ  Ａ．Ｔａｎｎｅｎｂａｕｍ）、及び１９９７年の「ＬＡＮスイッチを用いた高速ネットワーキング」（Ｈｉｇｈ−Ｓｐｅｅｄ  Ｎｅｔｗｏｒｋｉｎｇ  ｗｉｔｈ  ＬＡＮ  Ｓｗｉｔｃｈｅｓ  ｂｙ  Ｇ．Ｈｅｌｄ）のような多数の参考文献で見ることができる。これらのすべては、参照してここに組み込まれる。
【０００４】
ネットワーク・ルーティング／スイッチング装置の内部には、入ポートで受け取られた個々のフレームを適切な出ポートへ転送するため、それらのフレームがアドレス・ルックアップ・ロジックを通過するように導かれるパスが存在する。従来技術では、このパスはフレーム内に存在するソース・アドレス及び／又は宛先アドレスのフィールドに基づいてフレームをルーティング又はスイッチングするために使用される。１つの例は、フレームの宛先ＭＡＣアドレスに基づいてフレームをブリッジすることである。他の例は、フレームの宛先ＩＰアドレスに基づいてフレームをルーティングすることである。
【０００５】
しかし、宛先アドレスではなく、そのデータのようなコンテントの一部分又は全部に基づいて、フレームをルーティングすることが望ましい。そのためには、フレームのコンテントを検査し評価することが必要である。しかし、コンテントに基づいてフレームをルーティングする従来技術のアプローチは、あまりに遅く且つ限られた範囲のものであった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、宛先アドレスに限定することなく、フレームの或る部分又は各種の部分のコンテントから引き出された情報に基づいてフレームをルーティングし、スイッチングし、又はフィルタリングする改善された方法及び手段を提供することである。
【課題を解決するための手段】
【０００７】
本発明に従えば、スイッチング装置の送信ポートで受け取られたフレームを宛先ポートへ通信するためにフレームを処理する方法は、オフセット値及びコンパレータ値をスイッチング装置に格納するステップと、オフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較してフィルタ結果を得るステップと、その結果でフレームを処理するステップとを含む。フレームを処理するステップは、フレームを宛先ポートへ通信するかフレームの優先順位を設定するステップを含むことができる。オフセット値及びコンパレータ値は、そこからオフセット値が測定されるアンカー値及びコンパレータ値との比較の前にフレーム情報をマスクするマスク値を含む、フィルタの要素であってよい。
【０００８】
スイッチング装置の中にオフセット値及びコンパレータ値の複数のセットが存在する場合、この方法は、グループ結果を得るために前記結果を結合し、フレームを処理するためにグループ結果を使用するステップを含むことができる。前記結果を結合するステップは、それらを論理的に結合するステップを含んでよい。
【０００９】
更に、この方法は、結果を、探索エンジン及び関連メモリのような他のソースからのフレーム転送情報とマージするステップと、フレームを処理するためにマージされた結果を使用するステップとを含むことができる。
【００１０】
本発明に従った装置は、これらの方法を実行する。そのような装置は、オフセット値及びコンパレータ値をスイッチング装置に格納する手段、フィルタのオフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較する手段、及びその結果でフレームを処理する手段のような構成要素を含む。
【００１１】
本発明のこれら及び他の態様、特徴、及び利点は、添付の図面と組み合わせて以下の例示的実施形態で説明される。
【図面の簡単な説明】
【００１２】
【図１】スイッチング装置を含む例示的コンピュータ・ネットワークのブロック図である。
【図２】宛先ポートを決定するためスイッチング装置内に設けられた例示的なルックアップ・テーブルを示す図である。
【図３】本発明に従ったパケット・スイッチの関連部分を示すブロック図である。
【図４】図３のコンテントベース転送ロジックを示すブロック図である。
【図５】図４のフィルタを示すブロック図である。
【図６Ａ】図３のマージ・ロジックを示すブロック図である。
【図６Ｂ】図３のマージ・ロジックを示すブロック図である。
【図７】フィルタをグループに入れたり外したりする方法を示す論理図である。
【図８】グループ内のフィルタの基本的な結合を示す図である。
【図９】図８の基本的な結合の２つの変化例を示す図である。
【発明を実施するための形態】
【００１３】
概説
以下の説明において、「ポリシー」（ｐｏｌｉｃｙ）は、パケット・スイッチ内でフレームをフィルタリングするフィルタに対応する。「ポリシー式」（ｐｏｌｉｃｙ−ｅｘｐｒｅｓｓｉｏｎ）は、フレームの受信に応答して、どのようなアクションを取るかを決定するとき、１つ又は複数のフィルタ結果を論理的に結合した結果に対応する。
【００１４】
そのようにして引き出された情報は、「ポリシー式」をフレームに適用したときの結果に基づく。ポリシー式とは、各種のポリシーの結果を変数として含むブール式として定義される。ポリシーの例は「マッチする」、「マッチしない」などである。
【００１５】
ポリシーの表現
ポリシーは、次のように表される。
ポリシー：＝｛期待，オフセット，長さ，アンカー，マスク，コンパレータ｝
「期待」は、次のように表される。
期待：＝｛マッチする｜マッチしない｜より大きい｜より小さい｝
「オフセット」は、フレーム内の既定の「アンカー」ポイントの始まりからフレームの中へのバイト・オフセット又はワード・オフセットである。典型的なアンカー・ポイントは次のとおりである。
１）フレームの始まり
２）レイヤ２／レイヤ３又は他の任意のレイヤ・ヘッダの始まり
３）レイヤ２／レイヤ３又は他の任意のレイヤ・ヘッダの終わり
４）フレームの始まりからの固定バイト・オフセット
「長さ」は、照準のオフセット・ワードのワード長の測定値である。
「マスク」は、前述した「オフセット」位置に存在するフレームのコンテントとＡＮＤ／ＯＲ／ＮＡＮＤ／ＮＯＲ結合される値である。通常、マスクは、ポリシーを適用するために、コンテントのバイトの中に存在する各種の不要ビットを省略するために使用される。
「コンパレータ」（ｃｏｍｐａｒａｔｏｒ）は、「期待」値の１つを引き出すために「マスク」を適用した後の結果のコンテントのバイトと比較される値である。もし期待の値がコンパレータとマッチすれば、ポリシーは成功したのである。
【００１６】
ポリシー式
ポリシー式は、２つの要素、即ち式及び結果アクションから構成される。
ポリシー式：＝｛式，アクション｝
【００１７】
「式」は、ＩＮＶＥＲＴ、ＡＮＤ、ＯＲのような演算子、及び各種の「ポリシー」を変数として使用するブール／組み合わせ論理式である。例えば、以下に説明するように、ＩＮＶＥＲＴ、ＡＮＤ、及びＯＲを使用して任意の複数のポリシーを結合し、ＴＲＵＥ又はＦＡＬＳＥ条件を生じるブール式を形成することができる。
【００１８】
式の結果がＴＲＵＥであるとき、処理されつつあるフレームへ結果アクションが適用される。取ることのできる結果アクションとしては種々のものがある。その例は、フレームの優先順位を高くするか低くすること、フレームを特定のポートに転送すること、フレームをフィルタリングすること、シグネチャでフレームを変更すること、及び／又はフレームの変更されていないコピーを他のポートに送ることである。これらの結果は、オプションとして、従来技術によるルックアップの結果とマージすることができる。
【００１９】
詳細な例
次の情報に基づいて、コンテントベースのルーティングを実行したいものと仮定する。
もしフレームが、バイト・オフセット７の下位ニブルに「８」を有するか、又は、オフセット１４に「９ｂ」が存在し且つオフセット３０に「５０」が存在しなければ、「ポートｘ」へフィルタリングする。
【００２０】
次のフレームについては、
００  ０１  ０１  ６７  ３９  ０３  ４８  ５６  ７２  ８７  ａ７  ｅ８  ３ｅ  ｆｃ  ９ｂ  １ａ  ｄｄ  ４１  ５０  ４８  ５４  ４３
３Ｄ  ５Ｃ  ３Ａ  ４Ｄ  ４Ａ  ５３  ５０  ５２  ５４
Ｐ１＝｛マッチする，７，フレーム・スタート，０ｘ０Ｆ，０ｘ０８｝
Ｐ２＝｛マッチする，１５，フレーム・スタート，０ｘＦＦ，０ｘ９ｂ｝
Ｐ３＝｛マッチしない，３０，フレーム・スタート，０ｘＦＦ，０ｘ５０｝
【００２１】
ポリシー式は次のとおりである。
｛Ｐ１＆｛Ｐ２｜Ｐ３｝｝＝アクション（フィルタ）
【００２２】
上記の例で、Ｐ１は成功し（オフセット７は０ｘ４８のバイト値を有し、０ｘ０Ｆのマスクが適用されたとき、それは０ｘ０８とマッチする）、Ｐ２は成功し、Ｐ３は失敗する。Ｐ１及びＰ２は成功するから、上記のポリシー式は成功し、従って「フィルタ」のアクションがフレーム上で取られる。
【００２３】
上記の例は３つのポリシーを使用するだけであるが、この計画はポリシーの数又は組み合わせ論理の範囲を小さい範囲へ制限するものではない。
【００２４】
上記の計画の１つの重要な態様は、この説明された計画が完全にＡＳＩＣの中へプログラムされ、従ってコンテントベースの転送／フィルタリングが、すべてのフレームについて、ＡＳＩＣに直接又は間接に接続されたマイクロプロセッサから中断されることなく、ワイヤー速度で達成されることである。次に、そのような１つの実施形態の詳細を更に詳しく説明する。
【００２５】
構造、機能、及び動作
ネットワークによって、複数の当事者は相互に通信することができる。最も簡単な形式では、ネットワークは一般的に伝送線及びスイッチング装置（例えば、ルータ、スイッチ、スイッチング・ルータなど）を含む。伝送線は信号（例えば、電気信号、光学信号など）を搬送し、スイッチング装置は伝送線の間に一時的な接続を確立する中間ステーションである。例えば、電話網では、発呼者の回線はスイッチング装置へ行き、そこで被呼者への実際の接続が行われる。コンピュータ・ネットワークでは、ルータのような装置がネットワーク上でメッセージを受け取り、そのメッセージを正しい宛先へ転送する。コンピュータ・ネットワークは少数のコンピュータ、プリンタ、及び他の装置から構成されるローカル・エリア・ネットワーク（ＬＡＮ）のような小さなものから、広大な地理的領域に分散された多くのコンピュータから構成されるもの（例えば、インターネット）まである。
【００２６】
例示的なコンピュータ・ネットワーク１０が図１に示される。ネットワークは２つのローカル・セグメント１２及び１４、並びにリモート・ネットワーク１６への接続を含む。Ａ〜Ｊとラベルを付されたノードは、ローカル・セグメントに接続されたコンピュータを表す。スイッチング装置２０は３つのポート２２〜２４を含み、セグメント１２、１４、及びリモート・ネットワーク１６の間でネットワーク・トラフィックを交換する。ネットワーク１６もスイッチング装置２１のようなスイッチング装置を含むことができ、そのスイッチング装置は他のセグメント（図示されていない）をネットワークに接続する。スイッチング装置２０によって、１つのセグメント上のノードは、他のセグメント上のノード及び他のスイッチング装置へのノードと通信することができる。ノードは、ネットワーク・フレームの送信と受信をノードに許すプロトコル（例えば、ＨＴＴＰ、ＴＣＰ／ＩＰ、ＳＭＢなど）を介して相互に通信することができる。（ネットワーク・フレームは宛先アドレス、ソース・アドレス、及びデータ・フィールドを含む）。スイッチング装置２０がノードからフレームを受け取るとき、それは図２に示されるようなルックアップ・テーブル２６を探索することによって宛先アドレスを分析する。ルックアップ・テーブル２６はネットワーク・アドレス・フィールド及びポート・フィールドを有するテーブル・エントリを含む。宛先アドレスがルックアップ・テーブル中のネットワーク・アドレスとマッチしたとき、スイッチング装置２０は、マッチしたネットワーク・アドレスに対応するポート番号を得ることによって、どのポートにフレームを転送するかを決定する。例えば、もしセグメント１２上のノードＡがセグメント１４上のノードＨにメッセージを送るとすれば、スイッチング装置２０はノードＡからメッセージを受け取り、応答として、ルックアップ・テーブル２６のネットワーク・アドレス・フィールドにあるエントリを探索する。テーブル・エントリ２８はＨのネットワーク・アドレスを含む。ネットワーク・アドレスＨに対応するポート・フィールド３０は、フレームがポート２へ転送されるべきことを示す。
【００２７】
スイッチング装置は、そのスイッチング装置の特定の実施形態に依存して、各種の方法でルックアップ・テーブル用のネットワーク・アドレスを得ることができる。例えば、スイッチング装置はネットワーク・トラフィックを詮索することによって、フレームがポート上で受け取られたとき、フレームのソース・アドレスがテーブルに存在するかどうかを決定し、もし存在しなければ、ソース・アドレス及び入ポートを含むエントリをテーブルに追加することができる。従って、スイッチング装置は、ノードによって送信されたフレームからアドレス及びポート番号を「習得」すると言われる。ルックアップ・テーブルを得るために、ルータのようなスイッチング装置が使用する他の手法は、特殊のプロトコルを介して他のスイッチング装置から得る方法である。従って、ルータは各自のルックアップ・テーブルを補充するため、相互にネットワーク・アドレスを提供する。
【００２８】
従って、ネットワーク・フレームがスイッチで受け取られるとき、ソース・アドレスを「習得」し宛先アドレスに転送するために、ソース・アドレス及び宛先アドレスの双方をルックアップ・テーブルで探索しなければならない。ルックアップ・テーブルを探索するために、スイッチ２０内の探索エンジン（図示されていない）はルックアップ・テーブル・エントリに逐次にアクセスし、そのエントリをネットワーク・フレーム内の宛先アドレスと比較する。宛先アドレスの探索が終了した後、第２の探索がソース・アドレスについて実行される。
【００２９】
図３はスイッチング装置５０のポート及び関連ロジックを示す。本発明に関連するものは、メモリ５８、コンテントベース転送ロジック６０、一時パケット記憶装置６２、パケット分析及びキー抽出ロジック６４、探索エンジン６８、マージ・ロジック７０、及び転送決定ロジック７２である。スイッチング装置５０には、多くのポート（図示されていない）が存在する。ポートの数、及びそれらがスイッチング装置内でどのように構成されるかは、実施形態によって異なり、本発明と直接の関係はない。
【００３０】
ポートは、ネットワーク・ケーブル７４を介してスイッチング装置５０をネットワーク（図示されていない）へ接続する。ネットワーク・ケーブルはネットワークのタイプに依存して多様な形式（例えば、光ファイバ、撚り対線、同軸ケーブルなど）を取ることができる。ＴＣＰ／ＩＰ、ＩＰＸ／ＳＰＸ、ＦＤＤＩ、ＡＴＭ、ＥＴＨＥＲＮＥＴ（登録商標）、ＧＩＧＡＢＩＴ  ＥＴＨＥＲＮＥＴ（登録商標）、ＦＡＳＴ  ＥＴＨＥＲＮＥＴ（登録商標）、トークンリング、ＳＯＮＥＴ、１００Ｂａｓｅ−ＴＸなどの多様なネットワーク標準及びプロトコルを使用してよい。現在存在するか将来開発される他のネットワーク・プロトコル、標準、及びネットワーク・ケーブルは本発明と共に使用されてよい。ネットワーク・ケーブルはフレームをポートへ通信し、ポートはそれらをパケット記憶装置６２、探索エンジン６８、及び転送ロジック６０へ通信する。
【００３１】
一時パケット記憶装置６２は、ネットワーク・フレームを一時的に保持し、その間に、探索エンジン内の他の構成要素は、後で更に説明するように、ネットワーク・フレームをどこに転送するかを決定する。或る場合には、パケットを全く転送しないように決定するかも知れない。そのような場合、ネットワーク・フレームは、ポート相互通信ロジックへ決して渡されない。ネットワーク・フレームのサイズに依存して、一時パケット記憶装置６２は、幾つかのネットワーク・フレームを保持するか、代替的に、他のポートに転送されるときのネットワーク・フレームの一部分のみを保持してよい。
【００３２】
パケット分析及びキー抽出ロジック６４は、ネットワーク・フレームからソース・アドレス及び宛先アドレスを抽出し、それらのアドレスを探索エンジン６８へ転送する。更に、パケット分析及びキー抽出ロジック６４は、ネットワーク・フレームと共に来る又はネットワーク・フレームのタイプに基づいて引き出される仮想ＬＡＮ情報のような追加情報を探索エンジン６８へ渡すことができる。この追加情報は、キーを形成するためにソース・アドレス及び宛先アドレスへ付加される。キーは、特定のアプリケーションに依存して、任意の所望の情報を含んでよいことは、当業者に認識されるであろう。例えば、キーは宛先アドレスのみを含むことも、ソース・アドレス及び宛先アドレスのみを含むことも、ソース・アドレス及び宛先アドレス並びに追加情報を含むことも可能である。分かりやすくするため、以下の説明では、キーはソース・アドレス及び宛先アドレスであるとして説明する。
【００３３】
探索エンジン６８はメモリ５８へ結合される。メモリはルックアップ・テーブルを格納し、探索エンジンは媒体インタフェース５６から受け取られたネットワーク・フレームを分析するためにルックアップ・テーブルを使用する。管理プロセッサ（図示されていない）が、探索エンジン６８へ結合され、メモリ５８内のルックアップ・テーブルを維持する。具体的には、管理プロセッサは、探索エンジン６８が探索を効率的且つ正確に実行するために、古いテーブル・エントリを削除し、新しいテーブル・エントリを挿入し、ソート順序にテーブルを維持するように、探索エンジンに命令することができる。
【００３４】
探索エンジン６８が探索を終了した後、その結果は転送決定ロジック７２へ渡される。転送決定ロジック７２は、結果を調べ、規則の所定のセットを適用して、ネットワーク・フレームが転送されるべきか否か、及びそれがどのポートに転送されるべきかを決定する。更に、転送決定ロジックはネットワーク・フレームの優先順位レベルを調べることができる。通常、高い優先順位のフレームは、低い優先順位のフレームの前にスイッチング装置５０によって転送される。
【００３５】
更に、入フレームはまた、本発明に従ってコンテントベース転送ロジック６０によっても評価される。その評価に基づいて、フレームは、その優先順位を変更されたり、他のポートへ再転送されるなど多くの方法で処理されることができる。探索エンジン６８とは異なり、転送ロジック６０は宛先アドレス以外のフレームコンテントを見ることができる。評価の結果はマージ・ロジック７０へ渡される。ロジック７０は、転送ロジック６０からの結果を、探索エンジン６８からの結果と、命令されたようにマージする。例えば、探索エンジン６８によって決定された優先順位が、転送ロジック７０によって決定された優先順位で上書きされるといった多くの方法で、マージしたり又はマージしなかったりする。
【００３６】
スイッチ・ファブリック制御７８は、ネットワーク・フレームがスイッチ・ファブリックを通過するとき、それらフレームを制御する。スイッチ・ファブリックがクロスバー・スイッチである場合、通常、スイッチ・ファブリック制御はスケジューラと呼ばれる。スケジューラはクロスバー・スイッチ内で接続を確立し、１つのポート上の探索エンジンが、他のポート上の探索エンジンへ、ネットワーク・フレームを直接渡すことができるようにする。スイッチ・ファブリックがメモリである場合、スイッチ・ファブリック制御は、メモリのどこにフレームを格納すべきかを受信側の探索エンジンに知らせる。フレームがメモリに格納された後、スイッチ・ファブリック制御は送信側のポートに信号を送って、ネットワーク・フレームの送信準備ができたことを知らせ、フレームが置かれているメモリ位置のアドレスを与える。更に、スイッチ・ファブリック制御は優先順位情報を送信側のポートへ与えることができる。
【００３７】
図４は、コンテントベース転送ロジック７０の実施形態のブロック図である。ロジックは、ウィンドウ８０又はフレームが通過するときのフレームのコンテントを見るための等価手段を含む。ウィンドウは、その上に幾つかのアンカー・ポイントＡ０、Ａ１、Ａ２などをマークしており、これらアンカー・ポイントは、パケット分析ブロック６４によってロジックへ通信される。アクティブ・グループ内のフィルタ８１（ポリシー）は、ウィンドウ８０をモニタして、フィルタ・オフセット値によって決定されるフレーム中の位置（問題としているフレーム・ワード）に存在する情報を検出する。図４において、例えば、Ｐ１はアンカーＡ２からのオフセット１８７で始まるフレーム・ワードを捕捉し、Ｐ２はアンカーＡ１からのオフセット１７で始まるフレーム・ワードを捕捉し、Ｐ３はアンカーＡ０からのオフセット２１３で始まるフレーム・ワードを捕捉し、Ｐ４はアンカーＡ０からのオフセット５３で始まるフレーム・ワードを捕捉する。
【００３８】
次に、フィルタは、それらのセッティングに依存して結果を発生し、それらの結果を式８２へ渡す。式８２は所与の方法でそれらを結合し、１つの結果を発生する。その結果は、フレームの優先順位を変更したり、フレームの宛先を付加又は変更するなど、フレームを処理するために取られるアクションである。
【００３９】
図５は、図４のＰ１のようなフィルタ８１のブロック図である。フィルタ・セッティング９０は、フィルタが、その期待、オフセット、アンカー、マスク、及びコンパレータのために、レジスタ又は他のソースから受け取る値を表す。フィルタは、アンカー及びオフセットから、フレーム内のどのワードに関心があるかを決定し（加算器９２）、このワードをフレーム内で探す。次に、検索されたワードは、コンパランドと比較される（比較器９６）データを与えるためにマスク値とＡＮＤ結合される（ＡＮＤ回路９４）。比較結果は、マッチすれば論理１であり、マッチしなければ論理０である期待の値を形成する。マッチしないことが望まれるならば、コンパレータ出力は反転され（インバータ９８）、従ってマッチしないことが論理１を発生する。
【００４０】
図４及び図７〜図９を参照すると、各種のグループに入れるためにフィルタをどのように選択するか、及びフィルタ結果に基づいてアクションを取るために式８２をどのように構成できるかが分かる。
【００４１】
図６Ａ及び図６Ｂは、転送決定ロジックの結果を探索エンジン６８の結果とマージするマージ・ロジック７０の具体的な形式を示すと共に説明している。
【００４２】
例示された実施形態において、コンテントベース転送ロジックを形成する６４のオフセット／マスク転送フィルタがアプリケーション特定集積回路（ＡＳＩＣ）に実装される。各フィルタは、フレームの最初の２５６バイトのような所望の数のバイトの中の又は任意のＬ３ペイロードの中の任意のビット境界に置かれた６４ビットワードとマッチングする能力を保証する。このワードの任意のビットをマスク・オフすることができ、従って、残りのビットのみがマッチング結果を決定する。それを実行するために、各フィルタは、フィルタ配置用のオフセット・カウント値、コンパランド・ワード、マスク・ワード、評価されるべきフレーム・ワードの長さ、ポート感度イネーブルイネーブルビット、及びプロトコル・セレクタを有する。
【００４３】
オフセット・マスク・フィルタ（ＯＭＦ）は、そのオフセット・カウント値によって指示されたワードの数を、生（Ｌ２）フレーム又はそのＬ３ペイロード（もしあれば）の中へインデックスすることによって働く。一度、このスタート・ポイントに達すると、フィルタは、フレームの長さの定義されたワードとそのワードのコンパランド及びマスク値とを比較する。もしマスクされていないビットのすべてがマッチすれば、フィルタ・マッチが生じる。（入力ポート番号及び／又はプロトコルに基づいた追加の限定が可能である）。
【００４４】
更に、６４の単一フィルタは、各セットが１つから８つまでのフィルタを含む１６のセットにグループ分けされる。これらの８つのフィルタは、６４の任意のものから選択することができ、１つのフィルタが、２つ以上のグループによって共用されてよい。フィルタの各グループは、制御フィールド及びそれに関連づけられた転送ベクトルを有する。制御フィールドは、そのフィルタの各々のためにイネーブルビットを有する。フィルタが機能抑止されたとき、そのマッチング結果は失敗へ強制される。別個のフィルタ単位反転ビットによって、各フィルタからの結果は不変のまま又は反転されて渡されることができる。フィルタ・グループへの８つの入力の１つの線図が、図７に示される。
【００４５】
８つの論理制御ビットを含むグループは、フィルタの結果がどのように結合されるかを決定する。第１のビットは、フィルタ０の結果（Ｆ０）がＦ１とＡＮＤ結合されるかＯＲ結合されるかを決定する。第２、第３、及び第４のビットは、同じようにＦ３へのＦ２のゲート、Ｆ５へのＦ４のゲート、Ｆ７へのＦ６のゲートを制御する。第５、第６、及び第７のビットは、これら４つの結果と一緒にゲートを制御する。第８のビットはグループ・モード（後に説明する）を選択する。基本的な論理制御シーケンスは次の式に示される。＋／＊は、ＯＲ／ＡＮＤであり、添え字は、制御ビットの位置を示す。
グループ結果＝（（Ｆ０＋／＊０Ｆ１）＋／＊４（Ｆ２＋／＊１Ｆ３））＋／＊６（（Ｆ４＋／＊２Ｆ５）＋／＊５（Ｆ６＋／＊３Ｆ７））
【００４６】
８番目の論理ビット（ビット７）が０であるときアクティブである基本的フィルタ動作マップは、図８に示される。
【００４７】
これは幾分柔軟性に欠けるから（１つのフィルタを４つまでのＯＲ結合されたフィルタとＡＮＤ結合することができるにすぎず、３つまでのフィルタが無駄になる）、図９に示されるように、８番目の論理ビットが存在するとき、２つの変形モードが選択される。それによって、６つ（又は７つ）のＯＲ結合された項が２つ（又は１つ）の項とＡＮＤ結合されることができる。
【００４８】
グループ結果ロジックが真の条件を発生するとき、グループ・マッチが生じる。グループ・マッチはグループの転送ベクトルと共にＦＡＲモジュールへ報告される。この転送ベクトルは、フレームを転送するのに必要なデータを含み、このデータは、ポート・グループ番号とそのイネーブルビット、ＶＬＡＮ  ＩＤとそのイネーブルビット、優先順位とそのイネーブルビット、スニフ・ビットとイネーブルビット、及びカウンタ・インデックスとそのイネーブルビットを含む。ＦＡＲモジュールがグループ・マッチの通知を受け取ったとき、それはその通常の転送決定及びデータを無効にし、それをグループ転送ベクトルのイネーブル部分と置換する。複数のグループ・マッチが生じたとき、ロジック６０は、最低番号のグループがイネーブルフィールドの優先権を取る単純な優先順位の計画に基づいて、各データ・フィールドを別々に調停する。衝突する場合は、グループ０が常に勝ち、グループ１５は常に負ける。もしフレームが、そのＰグループが廃棄されるＰグループであったからではなくブロードキャスト限度カウンタ以外のロジック６０の部分によって廃棄とマークされていれば、ＯＭＦはその決定を変更することはできない。言い換えれば、ＯＭＦマッチはブロードキャスト限度カウンタの動作を妨害し、廃棄されるＰグループからフレームをどこかへ再転送することができるが、そうでなければ廃棄されたフレームはそのようにして残る。
【００４９】
フィルタ及びグループは共通のレジスタ・セットを介してプログラムされる。特定のフィルタは、その６ビット・インデックス値をフィルタ／グループ選択レジスタへ書き込むことによって選択される。一度、フィルタ・インデックス値がセットされると、選択されたフィルタに対するレジスタのすべては、読み出し／書き込み動作に使用でき、フィルタはどのようなフレーム・データともマッチングしない。フィルタリングを開始するためには、それを選択解除しなければならない。
【００５０】
特定のグループは、その４ビット・インデックス値をフィルタ／グループ選択レジスタへ書き込むことによって選択される。一度、グループ・インデックス値がセットされると、選択されたグループに対するレジスタのすべては、読み出し／書き込み動作に利用することができる。
【００５１】
０ｘ１３０フィルタ／グループ選択（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、ロジック６０の６４のフィルタの１つ及びその１６のフィルタ・グループの１つを変更のために選択する。選択されたフィルタ及びグループのレジスタは、共用されたオフセット・マスク・レジスタ・アドレス空間０ｘ１３１〜０ｘ１３Ｂを介して利用可能となる。更に、ここで、チップ・レベル検査のために、自己テスト機能を利用することができる。
【００５２】
【表１】
2010172011.tif 000003
【００５３】
３：０  グループ選択。グループ制御レジスタ、マルチプレクサ選択レジスタ、及び転送ベクトル・レジスタを介して、１６のフィルタ・グループの１つを編集用に選択する。
【００５４】
２１：１６  フィルタ選択。オフセット・カウント及び制御レジスタ、コンパランド０〜２レジスタ、及びマスク０〜２レジスタを介して、６４のフィルタの１つを編集用に選択する。フィルタが編集用に選択されている間、それはフィルタとして機能しない。
【００５５】
２２  フィルタ選択解除。フィルタが選択されている間、そのフィルタはマッチングを生じないので、フィルタを選択しない方法が必要である。このビットをセットすることによって、それが可能になる。
【００５６】
３１：２９  ＢＩＳＴ。組み込み自己テスト。このフィールドに３’ｂ１００を書き込むと、５１２クロック自己テスト・サイクルをトリガする。ビット２９は、このサイクルの終わりにセットされ、もしテストが失敗すると、ビット３０がセットされる。テストが完了した後、正常動作を再開するために、３’ｂ０００を書き込まなければならない。テストの間、正常なフィルタ動作は中断され、ＯＭＦレジスタのコンテントの大部分は破壊される。
【００５７】
０ｘ１３１フィルタ・グループ制御（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（０ｘ１３０）フィルタ・グループの制御レジスタへのアクセスを提供する。
【００５８】
【表２】
2010172011.tif 000004
【００５９】
７：０  フィルタ・イネーブル。単一のビットがグループ内の８つのフィルタの各々をイネーブルする。ビット０はフィルタ０をイネーブルし、ビット１はフィルタ１をイネーブルし、以下同様である。イネーブルビットがセットされたとき、そのフィルタの結果は、フレーム・データへのコンパランド及びマスクの比較に基づく。イネーブルビットがクリアされたとき、フィルタ結果は、比較の失敗を示す低レベルに強制される。
【００６０】
１５：８  反転イネーブル。グループ内の８つのフィルタの各々に対する反転制御ビット。ビット８はフィルタ０を反転し、ビット９はフィルタ１を反転し、以下同様である。反転ビットがセットされたとき、そのフィルタの結果は、それがグループ・マッチ・ロジックへ与えられる前に反転される。反転ビットがクリアされたとき、フィルタ結果は不変のままグループ・マッチ・ロジックへ渡される。
【００６１】
２３：１６  論理制御。これらの８つの論理制御ビットは、グループのマッチング結果を決定するために、グループ内の８つのフィルタ結果がどのように一緒にゲートで制御されるかを決定する。機能については、前記の線図を参照されたい。線図では、ビット１６は０であり、ビット１７は１であり、以下同様であることに注意されたい。論理制御ビットの低レベルはＡＮＤゲート機能を選択し、高レベルはＯＲゲート機能を選択する。ビット２３は特殊であり、チャートに従って代替の論理グループを選択する。
【００６２】
２４  カウンタ・インデックス・イネーブル。単一ビットがＣＩＤＸフィールドのために可能である。高レベルであるとき、フィルタ・グループの転送ベクトルにおけるＣＩＤＸ値によって、対応するＳＡ  ＣＩＤＸカウンタが、このグループによってマッチングされた各フレームのために増加される。低レベルであるとき、ＳＡ  ＣＩＤＸカウンタは、そのようなフレームによって影響を受けない。どちらの場合も、ＯＭＦ転送ベクトルがフレームへ適用されるとき、ＤＡ  ＣＩＤＸカウンタは影響を受けない。
【００６３】
２５  Ｌ３編集機能抑止。このビットは、セットされると、もしオフセット・マスク・フィルタ・グループがマッチすれば、レイヤ３フレーム編集（ルーティングの必要部分）が実行されないようにする。ブロックされる変更は、ＭＡＣ  ＳＡ置換、ＩＰ  ＴＴＬ／ホップ・カウント変更、及びＩＰＸホップ・カウント変更である。クリアされると、オフセット・マスク・フィルタ・グループは正常に機能し、レイヤ３フレーム編集が許される。
【００６４】
２６  スニフ機能抑止。このビットは、セットされたとき、オフセット・マスク・フィルタ・グループの転送ベクトルがスニフ・ビットを無効にしないようにする。クリアされたとき、オフセット・マスク・フィルタ・グループは正常に機能し、フレームの転送ベクトルのこの部分を無効にする。
【００６５】
２７  Ｐグループ機能抑止。このビットは、セットされたとき、オフセット・マスク・フィルタ・グループの転送ベクトルが宛先ポート・グループを無効にしないようにする。クリアされたとき、オフセット・マスク・フィルタ・グループは正常に機能し、フレームの転送ベクトルのこの部分を無効にする。更に、この無効は、ＯＭＦビットをセットし、ＳＰＭヘッダ内のあふれ及びＣＰＵビットをクリアし、ブロードキャスト限度を機能抑止する。
【００６６】
２８  ＶＬＡＮ機能抑止。このビットは、セットされたとき、オフセット・マスク・フィルタ・グループの転送ベクトルがＶＬＡＮ  ＩＤを無効にしないようにする。クリアされたとき、オフセット・マスク・フィルタ・グループは正常に機能し、フレームの転送ベクトルのこの部分を無効にする。
【００６７】
２９  優先順位機能抑止。このビットは、セットされたとき、オフセット・マスク・フィルタ・グループの転送ベクトルがフレームの優先順位を無効にしないようにする。クリアされたとき、オフセット・マスク・フィルタ・グループは正常に機能し、フレームの転送ベクトルのこの部分を無効にする。
【００６８】
３０  Ｑ。このビットは、セットされたとき、もしオフセット・マスク・フィルタ・グループがマッチすれば、転送決定ロジック内のＱビットをセットする。これはＩＰフレームの優先フィールドを抽出すると共に内部優先順位へ変換し、その元の優先順位を無効にする。レイヤ３のＩＰフレームについては、もしＱがセットされ、優先順位機能抑止（ビット２９）がクリアされていれば、フレームの優先順位が変換され、フレームのＩＰ優先フィールドと置換されるが、それは１）Ｌ３編集機能抑止ビットがセットされておらず、２）これが無効バージョン又はヘッダ拡張を有するＩＰｖ４フレームでないことを条件とする。
【００６９】
３１  予約されている。
【００７０】
０ｘ１３２グループ・マルチプレクサ選択０（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは現在選択されている（０ｘ１３０）フィルタ・グループのマルチプレクサ選択レジスタの半分へのアクセスを提供する。（注意：１６グループをチップへ詰め込む必要がある内部実装のために、このレジスタへの書き込みはグループ・マルチプレクサ選択１へも書き込む。常に双方のレジスタへ０、１の順序で書き込むのであれば、これは問題にならない。）
【００７１】
【表３】
2010172011.tif 000005
【００７２】
５：０  Ｆ０セレクタ。６４のフィルタのどれがグループのＦ０になるかを選択する。
【００７３】
１１：６  Ｆ１セレクタ。６４のフィルタのどれがグループのＦ１になるかを選択する。
【００７４】
１７：１２  Ｆ２セレクタ。６４のフィルタのどれがグループのＦ２になるかを選択する。
【００７５】
２３：１８  Ｆ３セレクタ。６４のフィルタのどれがグループのＦ３になるかを選択する。
【００７６】
３１：２４  予約されている。
【００７７】
０ｘ１３３グループ・マルチプレクサ選択１（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは現在選択されている（０ｘ１３０）フィルタ・グループのマルチプレクサ選択レジスタの半分へのアクセスを提供する。
【００７８】
【表４】
2010172011.tif 000006
【００７９】
５：０  Ｆ４セレクタ。６４のフィルタのどれがグループのＦ４になるかを選択する。
【００８０】
１１：６  Ｆ５セレクタ。６４のフィルタのどれがグループのＦ５になるかを選択する。
【００８１】
１７：１２  Ｆ６セレクタ。６４のフィルタのどれがグループのＦ６になるかを選択する。
【００８２】
２３：１８  Ｆ７セレクタ。６４のフィルタのどれがグループのＦ７になるかを選択する。
【００８３】
３１：２４  Ｆ０〜Ｆ７の結果（読み出し専用）。テスト目的のため、グループ内の８つのフィルタの単一ビット・マッチ状況がここで利用できる。Ｆ０はビット２４にあり、Ｆ１はビット２５にあり、以下同様である。状況は、次のフレームが処理されるまで有効である。
【００８４】
０ｘ１３４オフセット・マスク転送ベクトル（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは現在選択されている（０ｘ１３０）フィルタ・グループの転送ベクトル・レジスタへのアクセスを提供する。
【００８５】
【表５】
2010172011.tif 000007
【００８６】
４：０  カウンタ・インデックス。もしインデックス・カウンタが、このグループのためにイネーブルされていれば、どのＳＡインデックス・カウンタが増加されるべきかを示す５ビットのインデックス。
【００８７】
５  Ｓ２。フレームがスニフ・リソース２へ送られるべきことを示す単一ビット。
【００８８】
６  Ｓ１。フレームがスニフ・リソース１へ送られるべきことを示す単一ビット。
【００８９】
１６：７  ポート・グループ。受信通知メッセージ内で使用される１０ビットの転送ポート・グループ。もしこのフィールドが、廃棄ポート・グループとマッチすれば、Ｓ１又はＳ２がセットされていない限りフレームはドロップされることに注意されたい。
【００９０】
２８：１７  ＶＬＡＮ  ＩＤ。フレームを転送するときに使用される１２ビットのＶＬＡＮ  ＩＤ番号。この番号はすべてのフレームのためにＳＰＭヘッダに置かれる。タグ付けされたフレームについては、この値はフレームのタグ内のＶＬＡＮ番号も置換する。
【００９１】
３１：２９  優先順位。フレームを転送するために使用される３ビットの優先順位値。この値はＳＰＭヘッダに置かれ、タグ付けされたフレームについては、それはフレームのタグ内の優先順位も置換する。
【００９２】
０ｘ１３５オフセット・カウント及び制御（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのオフセット・カウント・レジスタ、プロトコル・レジスタ、及びポート感度レジスタへのアクセスを提供する。６ビット・オフセット・カウント値は、このフィルタの比較ロジックのためにスタート・ポイントを確立する、そのフレーム又はそのＬ３ペイロード・データのいずれかの先頭からオフセットされた４バイト・ワードである。
【００９３】
【表６】
2010172011.tif 000008
【００９４】
５：０  オフセット。６ビット・オフセット・カウント値は、このフィルタの比較ロジックのためにスタート・ポイントを確立する、そのフレームの先頭又はＬ３ペイロードの先頭からオフセットされた４バイト・ワードである。もし３つのすべてのコンパランド・ワードが使用される前に、フレームの最後のワード（ＦＣＳのすべて又は一部分を含む）又は６４番目のワードに達すると、フレームはマッチングしない。フレームが完全に受け取られるまで、ロジック６０はそれを必ず保持する必要はないので、２５６バイトを越えてフレームをマッチングすることは不可能である。
【００９５】
１５：６  予約されている。
【００９６】
１６  ポート感度。もしこのビットがセットされていれば、コンパランド・ワード２及びマスク・ワード２の双方の低順位５ビットは、フィルタリング目的のためには無視され、その代わりに１０のポート・マッチ・ビットとして使用される。もしフレームが入ってきたポートに対応するポート・マッチ・ビットがセットされていれば、フィルタはマッチングすることができる。もしクリアされていれば、フィルタはマッチングすることができない。
【００９７】
２０：１７  プロトコル。この４ビット値は、フィルタがフレーム（レイヤ２）の初めからのデータ、又はフレームのレイヤ３部分の初めからのデータとマッチするかどうかを決定する。もしレイヤ３が選択されると、フレームの検出されたプロトコルは、フィルタがマッチングするためには、このプロトコル値とマッチしなければならない。
【００９８】
【表７】
2010172011.tif 000009
【００９９】
カプセル化認識のタイプは、ＰＩＤモジュール（ＬＬＣ又はＳＮＡＰ）の中で機能抑止されているかも知れないが、フィルタは依然としてカプセル化データに続くＬ３データをマッチングすることができる。しかし、これらの場合、プロトコルは「その他」になる。ＯＭＦは、ロジック６０のできるだけ多くの他のロジックから意図的に切り離され、従って、それは「パッチ・キット」として使用されるかも知れない。
【０１００】
３１：２１  予約されている。
【０１０１】
０ｘ１３６フィルタ・コンパランド・ワード０（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのコンパランド・ワード０レジスタへのアクセスを提供する。（注意：６４のフィルタをチップへ詰め込む必要がある内部実装のために、このレジスタへの書き込みはコンパランド・ワード１及びコンパランド・ワード２へも書き込む。常に３つのすべてのレジスタへ０、１、２の順序で書き込むのであれば、これは問題にならない。）このワードは、「オフセット・カウント」の位置に置かれたフレーム・ワードと比較される。この比較の結果は、マスク・ワード０によって限定される。結果がマッチしないことは、このフレーム上のこのフィルタについての「失敗したマッチング状況」となる。
【０１０２】
【表８】
2010172011.tif 000010
【０１０３】
０ｘ１３７フィルタ・コンパランド・ワード１（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのコンパランド・ワード１レジスタへのアクセスを提供する。（注意：６４のフィルタをチップへ詰め込む必要がある内部実装のために、このレジスタへの書き込みはコンパランド・ワード２へも書き込む。常に３つのすべてのレジスタへ０、１、２の順序で書き込むのであれば、これは問題にならない。）このワードは「オフセット・カウント＋１」の位置に置かれたフレーム・ワードと比較される。この比較の結果は、マスク・ワード１によって限定される。結果のマッチしないことは、このフレーム上のこのフィルタについての「失敗した状況」となる。
【０１０４】
【表９】
2010172011.tif 000011
【０１０５】
０ｘ１３８フィルタ・コンパランド・ワード２（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのコンパランド・ワード２レジスタへのアクセスを提供する。このワードは「オフセット・カウント＋２」の位置に置かれたフレーム・ワードと比較される。この比較の結果は、マスク・ワード１によって限定される。結果のマッチしないことは、このフレーム上のこのフィルタについての「失敗した状況」となる。注意：もしポート感度ビットがオンであれば、ポート４〜０のマッチングを可能にするために、低順位５ビット（４〜０）が使用される。ビット０は、ポート０をイネーブルし、ビット１は、ポート１をイネーブルし、以下同様である。フレーム・マッチングの目的には、これら５ビットは無視される。
【０１０６】
【表１０】
2010172011.tif 000012
【０１０７】
０ｘ１３９フィルタ・マスク・ワード０（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのマスク・ワード０レジスタへのアクセスを提供する。（注意：６４のフィルタをチップへ詰め込む必要がある内部実装のために、このレジスタへの書き込みはマスク・ワード１及びマスク・ワード２へも書き込む。常に３つのすべてのレジスタへ０、１、２の順序で書き込むのであれば、これは問題にならない。）このワードはコンパランド・ワード０の比較結果を限定する。このワードにセットされたビットは、マッチングするビット位置をマスクし、真の比較結果をそのビットに強制する。
【０１０８】
【表１１】
2010172011.tif 000013
【０１０９】
０ｘ１３Ａフィルタ・マスク・ワード１（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのマスク・ワード１レジスタへのアクセスを提供する。（注意：６４のフィルタをチップへ詰め込む必要がある内部実装のために、このレジスタへの書き込みはマスク・ワード２へも書き込む。常に３つのすべてのレジスタへ０、１、２の順序で書き込むのであれば、これは問題にならない。）このワードはコンパランド・ワード１の比較結果を限定する。このワードにセットされたビットは、マッチングするビット位置をマスクし、真の比較結果をそのビットに強制する。
【０１１０】
【表１２】
2010172011.tif 000014
【０１１１】
０ｘ１３Ｂフィルタ・マスク・ワード２（Ｖ２  ＡＳＩＣ）−［Ｒ／Ｗ］  このレジスタは、現在選択されている（ｘ１３０）フィルタのマスク・ワード２レジスタへのアクセスを提供する。このワードはコンパランド・ワード２の比較結果を限定する。このワードにセットされたビットは、マッチングするビット位置をマスクし、真の比較結果をそのビットに強制する。注意：もしポート感度ビットがオンであれば、ポート９〜５のマッチングを可能にするために低順位５ビット（４〜０）が使用される。ビット０は、ポート５をイネーブルし、ビット１は、ポート６をイネーブルし、以下同様である。マスキングの目的には、これらの５ビットは１へセットされているものとして取り扱われる。
【０１１２】
【表１３】
2010172011.tif 000015
【０１１３】
ここに示され且つ説明された本発明の実施形態から本発明の原理を理解すれば、当業者は、そのような原理から逸脱することなく実施形態の構成及び詳細を変更できることを認識するであろう。各種のモジュールの構成を変更して、依然として、ここで説明された機能を提供することができる。各種のモジュールの構成要素は、本発明の関連部分の範囲内でハードウェア、ソフトウェア、又はファームウェアで実施することができる。例えば、オフセット値、コンパレータ値、期待の値などは、フィルタ以外の構成に格納することができる。ワードの長さ、フィルタの数、グループの数などは、すべてアプリケーションによって選択されるものであり、本発明を限定するものではない。
【０１１４】
本発明の原理は多くの想定される実施形態に適用することができるので、これらの実施形態は例示的なものにすぎず、本発明の範囲に対する限定として解釈されてはならないことを理解すべきである。本発明は特許請求の範囲によって限定される。従って、これら特許請求の範囲に入るすべての実施形態及び同等物は、本発明として主張されるものである。
【符号の説明】
【０１１５】
１０  コンピュータ・ネットワーク
１２、１４  ローカル・セグメント
１６  リモート・ネットワーク
２０、２１  スイッチング装置
２２、２４  ポート
２６  ルックアップ・テーブル
２８  テーブル・エントリ
３０  ポート・フィールド
５０  スイッチング装置
５６  媒体インタフェース
５８  メモリ
６０  コンテントベース転送ロジック
６２  一時パケット記憶装置
６４  パケット分析及びキー抽出ロジック
６８  探索エンジン
７０  マージ・ロジック
７２  転送決定ロジック
７４  ネットワーク・ケーブル
７８  スイッチ・ファブリック制御
８０  ウィンドウ
８１  フィルタ
８２  式
９０  フィルタ・セッティング
９２  加算器
９４  ＡＮＤ回路
９６  比較器
９８  インバータ
【図１】
2010172011.tif 000016
【図２】
2010172011.tif 000017
【図３】
2010172011.tif 000018
【図４】
2010172011.tif 000019
【図５】
2010172011.tif 000020
【図６Ａ】
2010172011.tif 000021
【図６Ｂ】
2010172011.tif 000022
【図７】
2010172011.tif 000023
【図８】
2010172011.tif 000024
【図９】
2010172011.tif 000025
【手続補正書】
【提出日】平成22年4月22日(2010.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する方法であって、
オフセット値及びコンパレータ値を含むフィルタをスイッチング装置に格納するステップであって、前記オフセット値はフレームのペイロード部分又はヘッダ部分のいずれかを識別することを可能とする、ステップと、
フィルタ結果を得るために、フィルタのオフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較するステップと、
該フィルタ結果でフレームを処理するステップとを含む方法。
【請求項２】
フレームを処理するステップが、どの宛先ポートがフレームを受け取るべきかを決定する結果を使用して、フレームを宛先ポートへ通信するステップを含む、請求項１に記載の方法。
【請求項３】
フレームを処理するステップが、フィルタ結果を使用してフレームの優先順位を設定するステップを含む、請求項１に記載の方法。
【請求項４】
前記格納するステップが、比較するステップで使用される期待の値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項５】
前記格納するステップが、そこからオフセット値が測定されるアンカー値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項６】
前記格納するステップが、コンパレータ値との比較の前に、フレーム情報をマスクするマスク値を含むフィルタを格納するステップを含む、請求項１に記載の方法。
【請求項７】
スイッチング装置の中に、各々が前記ステップを実行する複数のフィルタが存在し、
フィルタのグループ結果を得るために、フィルタ結果を結合するステップと、
フィルタのグループ結果でフレームを処理するステップとを含む、請求項１に記載の方法。
【請求項８】
前記フィルタ結果を結合するステップが、それらの結果を論理的に結合するステップを含む、請求項７に記載の方法。
【請求項９】
フィルタ結果を他のソースからのフレーム転送情報とマージするステップと、マージされた結果でフレームを処理するステップとを含む、
請求項１に記載の方法。
【請求項１０】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する装置であって、
オフセット値及びコンパレータ値を含むフィルタをスイッチング装置に格納する手段であって、前記オフセット値はフレームのペイロード部分又はヘッダ部分のいずれかを識別することを可能とする、手段と、
フィルタのオフセット値によって決定されるフレーム内の位置に存在する情報とコンパレータ値とを比較する手段と、
該フィルタ結果でフレームを処理する手段とを含む装置。
【請求項１１】
比較する手段で使用される期待の値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１２】
そこからオフセット値が測定されるアンカー値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１３】
コンパレータ値との比較の前にフレーム情報をマスクするマスク値を含むフィルタを格納する手段を含む、請求項１０に記載の装置。
【請求項１４】
フィルタ結果を他のソースからのフレーム転送情報とマージする手段と、マージされた結果でフレームを処理する手段とを含む請求項１０に記載の装置。
【請求項１５】
複数のフィルタをスイッチング装置に格納する手段と、
フィルタのグループ結果を得るためにフィルタ結果を結合する手段と、
該フィルタのグループ結果でフレームを処理する手段とを含む請求項１０に記載の装置。
【請求項１６】
スイッチング装置の送信ポートで受け取られ宛先ポートへ通信されるフレームを処理する方法であって、
オフセット値及びコンパレータ値をスイッチング装置に格納するステップであって、前記オフセット値はフレームのペイロード部分又はヘッダ部分のいずれかを識別することを可能とする、ステップと、
結果を得るためにオフセット値によって決定されたフレーム内の位置に存在する情報とコンパレータ値とを比較するステップと、
該結果でフレームを処理するステップとを含む方法。
【請求項１７】
オフセット値及びコンパレータ値がフィルタに関連づけられる、請求項１６に記載の方法。
【請求項１８】
オフセット値、コンパレータ値及び関連する結果の複数のセットが存在し、
グループ結果を得るために、前記結果を結合するステップと、
該グループ結果でフレームを処理するステップとを含む請求項１６に記載の方法。
【請求項１９】
前記結果を結合するステップが、結果を論理的に結合するステップを含む、請求項１８に記載の方法。
【請求項２０】
データパケットのコンテントベースの転送をサポートするスイッチング装置であって、
データパケットを受け取る入力と、
オフセット値及びコンパレータ値を含むフィルタであって、前記オフセット値により前記データパケットのペイロード部分かヘッダのいずれか内の位置を識別することを可能とし、さらに、識別された位置に存在する情報と前記コンパレータ値とを比較してフィルタ結果を返す、フィルタと、
フィルタ結果に基づいていない又は前記データパケットを転送するための出力を有する、スイッチング装置。
【請求項２１】
フィルタ結果を異なるソースにより割り当てられたフレーム転送情報とマージするマージ・ロジックをさらに有する、請求項２０に記載のスイッチング装置。
【請求項２２】
マージ・ロジックは、異なるソースにより割当てられたフレーム転送情報を変更する、請求項２１に記載のスイッチング装置。
【請求項２３】
前記変更は、データパケットに割当てられた優先順位を変更することを含む、請求項２２に記載のスイッチング装置。
【外国語明細書】
2010172011.tif 000026
2010172011.tif 000027
2010172011.tif 000028
2010172011.tif 000029
2010172011.tif 000030
2010172011.tif 000031
2010172011.tif 000032
2010172011.tif 000033
2010172011.tif 000034
2010172011.tif 000035
2010172011.tif 000036
2010172011.tif 000037
2010172011.tif 000038
2010172011.tif 000039
2010172011.tif 000040
2010172011.tif 000041
2010172011.tif 000042
2010172011.tif 000043
2010172011.tif 000044
2010172011.tif 000045
2010172011.tif 000046
2010172011.tif 000047
2010172011.tif 000048
2010172011.tif 000049
2010172011.tif 000050
2010172011.tif 000051
2010172011.tif 000052
2010172011.tif 000053
2010172011.tif 000054
2010172011.tif 000055
2010172011.tif 000056
2010172011.tif 000057
2010172011.tif 000058
2010172011.tif 000059
2010172011.tif 000060
2010172011.tif 000061
2010172011.tif 000062
2010172011.tif 000063