JP2001223749A - パケット分類エンジン - Google Patents
パケット分類エンジンInfo
- Publication number
- JP2001223749A JP2001223749A JP2000378432A JP2000378432A JP2001223749A JP 2001223749 A JP2001223749 A JP 2001223749A JP 2000378432 A JP2000378432 A JP 2000378432A JP 2000378432 A JP2000378432 A JP 2000378432A JP 2001223749 A JP2001223749 A JP 2001223749A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- entry
- criterion
- packet classification
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 パケットフィルタリングを行うために高速の
パケット分類を提供する、ネットワーク装置内のパケッ
ト処理ロジックを提供する。 【解決手段】 パケット分類装置は、規則メモリと判定
基準メモリと制御ロジックとを備える。制御ロジック
が、パケット分類要求に応答し、規則メモリからの規則
メモリエントリを検索し、その規則メモリエントリ内の
判定基準メモリポインタによって特定される判定基準メ
モリエントリを検索し、さらにその判定基準メモリエン
トリ内の値と、その分類要求に含まれる対応する値にお
いて、規則メモリエントリ内の演算子によって規定され
る演算を実行する。この手順は、終了条件が見出される
まで、一連の規則メモリエントリに対して繰り返され、
パケット分類結果が、その分類演算子の結果を反映し
て、パケット分類結果が生成される。この結果は、分類
結果に基づいて適切な動作を行うために、パケットプロ
セッサに供給される。
パケット分類を提供する、ネットワーク装置内のパケッ
ト処理ロジックを提供する。 【解決手段】 パケット分類装置は、規則メモリと判定
基準メモリと制御ロジックとを備える。制御ロジック
が、パケット分類要求に応答し、規則メモリからの規則
メモリエントリを検索し、その規則メモリエントリ内の
判定基準メモリポインタによって特定される判定基準メ
モリエントリを検索し、さらにその判定基準メモリエン
トリ内の値と、その分類要求に含まれる対応する値にお
いて、規則メモリエントリ内の演算子によって規定され
る演算を実行する。この手順は、終了条件が見出される
まで、一連の規則メモリエントリに対して繰り返され、
パケット分類結果が、その分類演算子の結果を反映し
て、パケット分類結果が生成される。この結果は、分類
結果に基づいて適切な動作を行うために、パケットプロ
セッサに供給される。
Description
【0001】
【発明の属する技術分野】本発明は、データ通信ネット
ワークの分野に関する。
ワークの分野に関する。
【0002】
【従来の技術】データ通信ネットワークでは、交換器の
ようなネットワーク装置を用いて、パケットをネットワ
ーク内にルーティングする。各交換器は典型的には多数
の回線インタフェースを有し、各インタフェースは、異
なるネットワークセグメントに接続される。所与の回線
インタフェースにおいてパケットが受信されるとき、転
送ロジックは、そのパケットがどの回線インタフェース
から送信されるべきかを判定し、そのパケットは適当な
出力回線インタフェースに移送されて、ネットワーク内
の行先に向けて送出される。
ようなネットワーク装置を用いて、パケットをネットワ
ーク内にルーティングする。各交換器は典型的には多数
の回線インタフェースを有し、各インタフェースは、異
なるネットワークセグメントに接続される。所与の回線
インタフェースにおいてパケットが受信されるとき、転
送ロジックは、そのパケットがどの回線インタフェース
から送信されるべきかを判定し、そのパケットは適当な
出力回線インタフェースに移送されて、ネットワーク内
の行先に向けて送出される。
【0003】交換器のようなネットワーク装置において
は、パケットフィルタリングを実行することが知られて
いる。パケットフィルタリングを用いて、トラフィック
モニタ及びセキュリティ目的のような、種々のネットワ
ーク管理を行うことができる。フィルタリング判定基準
はネットワーク管理者によって確立され、フィルタリン
グ動作を実行する交換器或いは他の装置に提供される。
交換器によって受信されたパケットは、その特性が任意
の確立されたフィルタについての判定基準に適合するか
否かを判定するために検査される。1つ或いは複数のフ
ィルタのための判定基準を満足するパケットの場合、そ
のフィルタに関連する所定の動作が実行される。例え
ば、ある状況下では、所与のネットワークノードから発
信するパケットは、ネットワーク内に転送されずに破棄
されることが望ましい場合もある。パケットソースアド
レスが、そのパケットが破棄されるべきであるノードの
アドレスである特定の値に正確に一致するという判定基
準を有するフィルタを定義することができる。そのフィ
ルタに関連する動作は、パケットを破棄することであ
る。ソースアドレスがこの判定基準を満足するパケット
を受信するとき、そのパケットは、通常通りに転送され
ずに破棄される。
は、パケットフィルタリングを実行することが知られて
いる。パケットフィルタリングを用いて、トラフィック
モニタ及びセキュリティ目的のような、種々のネットワ
ーク管理を行うことができる。フィルタリング判定基準
はネットワーク管理者によって確立され、フィルタリン
グ動作を実行する交換器或いは他の装置に提供される。
交換器によって受信されたパケットは、その特性が任意
の確立されたフィルタについての判定基準に適合するか
否かを判定するために検査される。1つ或いは複数のフ
ィルタのための判定基準を満足するパケットの場合、そ
のフィルタに関連する所定の動作が実行される。例え
ば、ある状況下では、所与のネットワークノードから発
信するパケットは、ネットワーク内に転送されずに破棄
されることが望ましい場合もある。パケットソースアド
レスが、そのパケットが破棄されるべきであるノードの
アドレスである特定の値に正確に一致するという判定基
準を有するフィルタを定義することができる。そのフィ
ルタに関連する動作は、パケットを破棄することであ
る。ソースアドレスがこの判定基準を満足するパケット
を受信するとき、そのパケットは、通常通りに転送され
ずに破棄される。
【0004】パケットをフィルタリングするために用い
る場合がある、多数の異なる種類の判定基準が存在す
る。これらの判定基準は、厳密な一致と、範囲検査、す
なわちパケット内の値がある範囲内の値に入るか否かの
検査とを含む。ソースアドレス、行先アドレス、ポート
識別子、サービスタイプ等のような多数のパケットパラ
メータを判定基準として用いることができる。実用的に
するためには、パケットフィルタリングプロセスによっ
て、そのフィルタが、これらの判定基準と他の判定基準
からなる異なる組み合わせを用いて、柔軟に定義されな
ければならない。
る場合がある、多数の異なる種類の判定基準が存在す
る。これらの判定基準は、厳密な一致と、範囲検査、す
なわちパケット内の値がある範囲内の値に入るか否かの
検査とを含む。ソースアドレス、行先アドレス、ポート
識別子、サービスタイプ等のような多数のパケットパラ
メータを判定基準として用いることができる。実用的に
するためには、パケットフィルタリングプロセスによっ
て、そのフィルタが、これらの判定基準と他の判定基準
からなる異なる組み合わせを用いて、柔軟に定義されな
ければならない。
【0005】パケットフィルタリングに固有の複雑さの
ため、この処理は従来から、パケットフィルタリングを
サポートする交換器或いは他のネットワーク装置内のソ
フトウエアにおいて、広範に或いは排他的に実行されて
きた。しかしながら、ソフトウエア系のフィルタリング
は、高いパケット転送性能が要求されるときに欠点を露
呈する。例えば、従来のシステムは回線速度で信頼性の
ある(robust)パケットフィルタリングを実行できなか
ったため、ネットワーク管理者は、ネットワーク応答性
とネットワークセキュリティとの間でトレードオフを余
儀なくされており、問題となっていた。
ため、この処理は従来から、パケットフィルタリングを
サポートする交換器或いは他のネットワーク装置内のソ
フトウエアにおいて、広範に或いは排他的に実行されて
きた。しかしながら、ソフトウエア系のフィルタリング
は、高いパケット転送性能が要求されるときに欠点を露
呈する。例えば、従来のシステムは回線速度で信頼性の
ある(robust)パケットフィルタリングを実行できなか
ったため、ネットワーク管理者は、ネットワーク応答性
とネットワークセキュリティとの間でトレードオフを余
儀なくされており、問題となっていた。
【0006】
【発明が解決しようとする課題】本発明によれば、パケ
ットフィルタリングを行うために高速のパケット分類を
提供する、ネットワーク装置内のパケット処理ロジック
が開示される。その分類装置のアーキテクチャは、複雑
なフィルタ判定基準の定義において実質的な柔軟性を提
供する。十分に高い速度でロバストフィルタリングを実
行し、パケット転送性能が低下するのを避けることがで
きる。
ットフィルタリングを行うために高速のパケット分類を
提供する、ネットワーク装置内のパケット処理ロジック
が開示される。その分類装置のアーキテクチャは、複雑
なフィルタ判定基準の定義において実質的な柔軟性を提
供する。十分に高い速度でロバストフィルタリングを実
行し、パケット転送性能が低下するのを避けることがで
きる。
【0007】
【課題を解決するための手段】パケット分類装置は、規
則メモリと判定基準メモリとを備える。1つのタイプの
規則メモリエントリは、判定基準メモリエントリに対す
る演算子及びポインタを含む。演算子は、EQUAL
(厳密な一致)或いはLESS THANのような、実
行されることになる比較演算を定義する。判定基準メモ
リエントリは、比較の一方の辺の被比較数として用いら
れる1つ或いは複数の値を含み、受信したパケットから
の対応する値は、比較の他の辺に現れる。例えば、判定
基準メモリからの1つの被比較数は、ソースアドレスを
表す。この値は、受信したパケットのソースアドレスフ
ィールド内に現れる値と比較される。
則メモリと判定基準メモリとを備える。1つのタイプの
規則メモリエントリは、判定基準メモリエントリに対す
る演算子及びポインタを含む。演算子は、EQUAL
(厳密な一致)或いはLESS THANのような、実
行されることになる比較演算を定義する。判定基準メモ
リエントリは、比較の一方の辺の被比較数として用いら
れる1つ或いは複数の値を含み、受信したパケットから
の対応する値は、比較の他の辺に現れる。例えば、判定
基準メモリからの1つの被比較数は、ソースアドレスを
表す。この値は、受信したパケットのソースアドレスフ
ィールド内に現れる値と比較される。
【0008】制御ロジックはパケット分類要求に応答し
て、規則メモリからの規則メモリエントリを検索し、規
則メモリエントリにおいて判定基準メモリポインタによ
って識別された判定基準メモリエントリを検索し、判定
基準メモリエントリの値及び分類要求に含まれる対応す
る値において、規則メモリエントリの演算子によって規
定される演算を実行する。この手順は、一定の終了条件
が満たされるまで、一連の規則メモリエントリに対して
繰返し行われ、その結果、その分類演算の結果を反映し
て、パケット分類結果が生成される。この結果はパケッ
トプロセッサに提供され、その分類結果に基づいて適当
な動作が行われる。
て、規則メモリからの規則メモリエントリを検索し、規
則メモリエントリにおいて判定基準メモリポインタによ
って識別された判定基準メモリエントリを検索し、判定
基準メモリエントリの値及び分類要求に含まれる対応す
る値において、規則メモリエントリの演算子によって規
定される演算を実行する。この手順は、一定の終了条件
が満たされるまで、一連の規則メモリエントリに対して
繰返し行われ、その結果、その分類演算の結果を反映し
て、パケット分類結果が生成される。この結果はパケッ
トプロセッサに提供され、その分類結果に基づいて適当
な動作が行われる。
【0009】
【発明の実施の形態】本発明の他の態様、特徴及び利点
は、以下の詳細な説明において開示される。
は、以下の詳細な説明において開示される。
【0010】図1には、ネットワーク交換器10が、各
ネットワークセグメント14に接続される多数の回線イ
ンタフェース12を備えるものとして示される。回線イ
ンタフェース12は、パケット転送のための回線インタ
フェース12の間の接続部を提供するために用いられる
交換器構造部16に接続される。交換器構造部16の動
的な構成を含む、交換器10の全動作は、交換器制御部
18によって制御される。一般に、種々のネットワーク
セグメント14は異なるタイプからなる場合がある。例
えば、ネットワークセグメント14のうちのあるもの
は、OC−3/STM−1及びOC−12/STM−4
のような種々の標準的なシグナリング速度のうちの任意
の速度で動作する光学的なリンクであり得る。ネットワ
ークセグメント14の他のものは、例えば同軸ケーブル
を用いて、種々のフォーマットの信号を搬送する非光学
的なリンクであってもよい。
ネットワークセグメント14に接続される多数の回線イ
ンタフェース12を備えるものとして示される。回線イ
ンタフェース12は、パケット転送のための回線インタ
フェース12の間の接続部を提供するために用いられる
交換器構造部16に接続される。交換器構造部16の動
的な構成を含む、交換器10の全動作は、交換器制御部
18によって制御される。一般に、種々のネットワーク
セグメント14は異なるタイプからなる場合がある。例
えば、ネットワークセグメント14のうちのあるもの
は、OC−3/STM−1及びOC−12/STM−4
のような種々の標準的なシグナリング速度のうちの任意
の速度で動作する光学的なリンクであり得る。ネットワ
ークセグメント14の他のものは、例えば同軸ケーブル
を用いて、種々のフォーマットの信号を搬送する非光学
的なリンクであってもよい。
【0011】言うまでもなく、各回線インタフェース1
2は、接続される特定のタイプのネットワークセグメン
ト14で動作するために設計される。各回線インタフェ
ース12の主なタスクは、取り付けられたネットワーク
セグメント14から受信したパケット或いはフレーム
を、他の回線インタフェース12に取り付けられたネッ
トワークセグメント14上で転送するために、交換器構
造部16を介して別の回線インタフェース12に転送す
ることと、取り付けられたネットワークセグメント14
上で転送するために、交換器構造部16を介して他の回
線インタフェース12からパケットを受信することであ
る。
2は、接続される特定のタイプのネットワークセグメン
ト14で動作するために設計される。各回線インタフェ
ース12の主なタスクは、取り付けられたネットワーク
セグメント14から受信したパケット或いはフレーム
を、他の回線インタフェース12に取り付けられたネッ
トワークセグメント14上で転送するために、交換器構
造部16を介して別の回線インタフェース12に転送す
ることと、取り付けられたネットワークセグメント14
上で転送するために、交換器構造部16を介して他の回
線インタフェース12からパケットを受信することであ
る。
【0012】図2は、1つのタイプの回線インタフェー
ス12の構造を示す。このインタフェースは、4つの個
別の光インタフェースポートを含み、各ポートは、物理
的な入力/出力及びフレーム処理回路20と、転送エン
ジン22とを備える。転送エンジン22は、交換器構造
部インタフェースロジック24に接続され、インタフェ
ースロジック24は図1の交換器構造部16とのインタ
フェースを構成する。また転送エンジンは、回線インタ
フェースI/Oプロセッサ(IOP)26とのインタフ
ェースも構成する。タイミング制御ロジック28及びD
Cパワー回路30も備えられる。
ス12の構造を示す。このインタフェースは、4つの個
別の光インタフェースポートを含み、各ポートは、物理
的な入力/出力及びフレーム処理回路20と、転送エン
ジン22とを備える。転送エンジン22は、交換器構造
部インタフェースロジック24に接続され、インタフェ
ースロジック24は図1の交換器構造部16とのインタ
フェースを構成する。また転送エンジンは、回線インタ
フェースI/Oプロセッサ(IOP)26とのインタフ
ェースも構成する。タイミング制御ロジック28及びD
Cパワー回路30も備えられる。
【0013】各転送エンジン22は、接続される物理I
/Oブロック20と交換器構造部インタフェース24と
の間の双方向データパスを提供する。受信されたパケッ
トは、図1の交換器構造部16を介して別の回線インタ
フェース12に転送するために、多数の固定サイズのA
TM型のセルにセグメント化される。交換器構造部イン
タフェース24を介して交換器構造部16から受信され
たセルは、接続される物理I/Oブロック20への転送
を行うために、パケットに再構成される。
/Oブロック20と交換器構造部インタフェース24と
の間の双方向データパスを提供する。受信されたパケッ
トは、図1の交換器構造部16を介して別の回線インタ
フェース12に転送するために、多数の固定サイズのA
TM型のセルにセグメント化される。交換器構造部イン
タフェース24を介して交換器構造部16から受信され
たセルは、接続される物理I/Oブロック20への転送
を行うために、パケットに再構成される。
【0014】IOP26は、バックグラウンド機能、す
なわちパケット毎には実行されない、パケットの転送を
サポートする機能を実行する汎用プロセッサである。I
OP26によって実行される1つの機能は、図1の交換
器制御部18からパケット転送情報及びパケットフィル
タリング情報を受信し、転送エンジン22にその情報を
分配することである。この処理は以下に記載される。
なわちパケット毎には実行されない、パケットの転送を
サポートする機能を実行する汎用プロセッサである。I
OP26によって実行される1つの機能は、図1の交換
器制御部18からパケット転送情報及びパケットフィル
タリング情報を受信し、転送エンジン22にその情報を
分配することである。この処理は以下に記載される。
【0015】図3は、転送エンジン22のブロック図を
示す。着信セグメント化−再構成(SAR)論理ブロッ
ク40は、図2の物理I/Oブロック20から交換器構
造部16へのデータパスを提供し、発信SAR論理ブロ
ック42は、交換器構造部16から各物理I/Oブロッ
ク20へのデータパスを提供する。各SAR40、42
は、セグメント化機能及び再構成機能を実行する際に用
いられる各制御メモリ44、46と、各パケットメモリ
48、50に接続される。
示す。着信セグメント化−再構成(SAR)論理ブロッ
ク40は、図2の物理I/Oブロック20から交換器構
造部16へのデータパスを提供し、発信SAR論理ブロ
ック42は、交換器構造部16から各物理I/Oブロッ
ク20へのデータパスを提供する。各SAR40、42
は、セグメント化機能及び再構成機能を実行する際に用
いられる各制御メモリ44、46と、各パケットメモリ
48、50に接続される。
【0016】SAR装置40、42はともに、64ビッ
トPCIバス54を介して、パケットヘッダ分配器(P
HD)特定用途向け集積回路(ASIC)52に接続さ
れる。以下に詳細に記載するように、PHD ASIC
52は、PCIバス54と個別の64ビットバス56と
の間のFIFOキューインタフェースを提供する。バス
56は、PHD ASIC52を転送プロセッサ(F
P)58及び転送プロセッサメモリ60と接続する。ま
たPHD ASIC52は、個別のバス62によって図
2のIOP26にも接続される。
トPCIバス54を介して、パケットヘッダ分配器(P
HD)特定用途向け集積回路(ASIC)52に接続さ
れる。以下に詳細に記載するように、PHD ASIC
52は、PCIバス54と個別の64ビットバス56と
の間のFIFOキューインタフェースを提供する。バス
56は、PHD ASIC52を転送プロセッサ(F
P)58及び転送プロセッサメモリ60と接続する。ま
たPHD ASIC52は、個別のバス62によって図
2のIOP26にも接続される。
【0017】図4は、図3のPHD52の構造を示す。
1組の受信キュー、すなわちRXキュー64は、FP5
8に向かうパケットヘッダ及び他の情報を一時的にバッ
ファリングするために用いられる。図のように、RXキ
ュー64は4つあり、2つが高優先度のトラフィック用
であり、残りの2つは低優先度のトラフィック用であ
る。高優先度トラフィックの一例は、約束された速度
(committed rate)のような、高品質のサービス(QO
S)保証(High Quality of Service guarantee)を有
するトラフィックである。低優先度のトラフィックは、
最善努力(best-efforts)のような、低いQOS保証し
かもたないか、或いは全く保証がないトラフィックであ
る。各優先度レベルの場合に、着信SAR40から生じ
るトラフィック用の1つのキュー(「0」を付される)
と、発信SAR42から生じるトラフィック用の別のキ
ュー(「1」を付される)とが存在する。1組の送信キ
ュー、すなわちTXキュー66は、FP58からSAR
40、42に向かうパケットヘッダ及び他の情報を一時
的にバッファリングするために用いられる。ルーティン
グ及び分類エンジン68は、FP58に代わって、経路
探索及び種々のパケットフィルタリング検査を実行す
る。パケットフィルタリング動作は以下に記載される。
ルーティング及び分類エンジン68は、信号線69を介
してキュー64、66から状態情報を受信し、以下のよ
うにして、FP58においてこの情報を利用できるよう
にする。
1組の受信キュー、すなわちRXキュー64は、FP5
8に向かうパケットヘッダ及び他の情報を一時的にバッ
ファリングするために用いられる。図のように、RXキ
ュー64は4つあり、2つが高優先度のトラフィック用
であり、残りの2つは低優先度のトラフィック用であ
る。高優先度トラフィックの一例は、約束された速度
(committed rate)のような、高品質のサービス(QO
S)保証(High Quality of Service guarantee)を有
するトラフィックである。低優先度のトラフィックは、
最善努力(best-efforts)のような、低いQOS保証し
かもたないか、或いは全く保証がないトラフィックであ
る。各優先度レベルの場合に、着信SAR40から生じ
るトラフィック用の1つのキュー(「0」を付される)
と、発信SAR42から生じるトラフィック用の別のキ
ュー(「1」を付される)とが存在する。1組の送信キ
ュー、すなわちTXキュー66は、FP58からSAR
40、42に向かうパケットヘッダ及び他の情報を一時
的にバッファリングするために用いられる。ルーティン
グ及び分類エンジン68は、FP58に代わって、経路
探索及び種々のパケットフィルタリング検査を実行す
る。パケットフィルタリング動作は以下に記載される。
ルーティング及び分類エンジン68は、信号線69を介
してキュー64、66から状態情報を受信し、以下のよ
うにして、FP58においてこの情報を利用できるよう
にする。
【0018】転送エンジン22の全動作が、図3及び図
4を参照して記載されるであろう。パケットは、図2の
関連する物理層回路20から着信SAR40によって受
信され、パケットメモリ48に記憶される。着信SAR
40は、パケットヘッダを、PHD52内の適当なRX
キュー64の1つに転送する。FP58はPHD52を
ポーリングしてキュー状態を判定するとともに、適宜R
Xキュー64からのパケットヘッダを検索する。ヘッダ
処理の一部として、FP58は、ルーティング及び分類
要求において、各ヘッダからの一定の情報要素を、ルー
ティング及び分類エンジン68に送出する。ルーティン
グ及び分類エンジン68は、その要求内のヘッダ要素に
対する経路探索及び種々のパケットフィルタリング検査
を実行し、これらの検査の結果を、結果キュー(以下に
記載する)に入れる。FP58は、結果キューから経路
探索及び分類結果を取得し、これらの結果を用いて、そ
のパケットのための新しいヘッダを作成する。その新し
いヘッダは、セグメント化した後にパケットが転送され
ることになる内部回路を特定する情報とともに、TXキ
ュー66の1つを介してPHD52に返送される。着信
SAR40は新しいヘッダを検索し、受信したパケット
のペイロード部分とともにそのヘッダをパケットメモリ
48に入れ、新しいパケットをセグメント化し、その結
果として生成されたセルを、FP58によって特定され
た内部回路上にある図1の交換器構造部16に転送す
る。
4を参照して記載されるであろう。パケットは、図2の
関連する物理層回路20から着信SAR40によって受
信され、パケットメモリ48に記憶される。着信SAR
40は、パケットヘッダを、PHD52内の適当なRX
キュー64の1つに転送する。FP58はPHD52を
ポーリングしてキュー状態を判定するとともに、適宜R
Xキュー64からのパケットヘッダを検索する。ヘッダ
処理の一部として、FP58は、ルーティング及び分類
要求において、各ヘッダからの一定の情報要素を、ルー
ティング及び分類エンジン68に送出する。ルーティン
グ及び分類エンジン68は、その要求内のヘッダ要素に
対する経路探索及び種々のパケットフィルタリング検査
を実行し、これらの検査の結果を、結果キュー(以下に
記載する)に入れる。FP58は、結果キューから経路
探索及び分類結果を取得し、これらの結果を用いて、そ
のパケットのための新しいヘッダを作成する。その新し
いヘッダは、セグメント化した後にパケットが転送され
ることになる内部回路を特定する情報とともに、TXキ
ュー66の1つを介してPHD52に返送される。着信
SAR40は新しいヘッダを検索し、受信したパケット
のペイロード部分とともにそのヘッダをパケットメモリ
48に入れ、新しいパケットをセグメント化し、その結
果として生成されたセルを、FP58によって特定され
た内部回路上にある図1の交換器構造部16に転送す
る。
【0019】発信方向では、発信SAR42が図1の交
換器構造部16からパケットを受信し、これらのパケッ
トを再構成してパケットメモリ50に入れる。パケット
ヘッダはPHD52に送出され、FP58によってPH
D52から検索される。大部分のパケットの場合、経路
探索及びフィルタリング検査は、着信処理中に既に行わ
れているため、これらの動作は繰返し行われない。しか
しながらプロトコルによっては、着信及び発信の両方の
場合に探索及びフィルタリングを必要とするため、これ
らの動作は、ルーティング及び分類エンジン68ととも
に、FP58によって任意選択的に実行される。妥当な
場合には、FP58は、セグメント化された発信パケッ
トが受信される内部回路の同一性に一部基づいて、その
パケットのための新しいヘッダを作成する。この新しい
ヘッダは、送信回路情報とともに、PHD52に書き込
まれる。PHD52は、新しいヘッダを、発信SAR4
2に転送する。発信SAR42は、この新しいヘッダを
パケットペイロードとともにパケットメモリ50に入
れ、そのパケットを、図2の関連する物理層インタフェ
ース20に送信する。
換器構造部16からパケットを受信し、これらのパケッ
トを再構成してパケットメモリ50に入れる。パケット
ヘッダはPHD52に送出され、FP58によってPH
D52から検索される。大部分のパケットの場合、経路
探索及びフィルタリング検査は、着信処理中に既に行わ
れているため、これらの動作は繰返し行われない。しか
しながらプロトコルによっては、着信及び発信の両方の
場合に探索及びフィルタリングを必要とするため、これ
らの動作は、ルーティング及び分類エンジン68ととも
に、FP58によって任意選択的に実行される。妥当な
場合には、FP58は、セグメント化された発信パケッ
トが受信される内部回路の同一性に一部基づいて、その
パケットのための新しいヘッダを作成する。この新しい
ヘッダは、送信回路情報とともに、PHD52に書き込
まれる。PHD52は、新しいヘッダを、発信SAR4
2に転送する。発信SAR42は、この新しいヘッダを
パケットペイロードとともにパケットメモリ50に入
れ、そのパケットを、図2の関連する物理層インタフェ
ース20に送信する。
【0020】図5はルーティング及び分類エンジン68
の構造を示す。図3のFP58からの要求は、1つの要
求キュー70に入れられ、1つの結果キュー72におい
て結果が返送される。各キュー70及び72は、16個
までの要求/結果エントリを保持する。ルート探索エン
ジン(RLE)74は、典型的にはヘッダに含まれる行
先アドレス(DA)に基づいて、経路探索を実行する。
パケット分類エンジン(PCE)76は、パケットヘッ
ダに含まれる特定の情報に基づいて、パケットフィルタ
リング検査を実行する。PCE76の動作が以下に詳細
に記載される。入力FIFOバッファ78は、要求キュ
ー70と、RLE74及びPCE76それぞれとの間に
配置され、出力FIFOバッファ80は、RLE74及
びPCE76それぞれと、結果キュー72との間に配置
される。FIFO78及び80は、RLE74によって
実行される処理と、PCE76によって実行される処理
との間を分割する手段を提供する。マルチプレクサ81
によって、FP58は、結果キュー72、或いは要求キ
ュー70、結果キュー72及び図4の信号線69上に現
れる状態情報からの状態を含む状態情報のいずれかを読
み出すことができるようになる。これらのエントリの構
造が以下に記載される。
の構造を示す。図3のFP58からの要求は、1つの要
求キュー70に入れられ、1つの結果キュー72におい
て結果が返送される。各キュー70及び72は、16個
までの要求/結果エントリを保持する。ルート探索エン
ジン(RLE)74は、典型的にはヘッダに含まれる行
先アドレス(DA)に基づいて、経路探索を実行する。
パケット分類エンジン(PCE)76は、パケットヘッ
ダに含まれる特定の情報に基づいて、パケットフィルタ
リング検査を実行する。PCE76の動作が以下に詳細
に記載される。入力FIFOバッファ78は、要求キュ
ー70と、RLE74及びPCE76それぞれとの間に
配置され、出力FIFOバッファ80は、RLE74及
びPCE76それぞれと、結果キュー72との間に配置
される。FIFO78及び80は、RLE74によって
実行される処理と、PCE76によって実行される処理
との間を分割する手段を提供する。マルチプレクサ81
によって、FP58は、結果キュー72、或いは要求キ
ュー70、結果キュー72及び図4の信号線69上に現
れる状態情報からの状態を含む状態情報のいずれかを読
み出すことができるようになる。これらのエントリの構
造が以下に記載される。
【0021】図6は、図5の要求キュー70を介してP
CE76及びRLE74に渡されるルーティング及び分
類要求の構造を示す。その要求のサイズは、4つの64
ビットワードである。種々のフィールドが以下に定義さ
れる。
CE76及びRLE74に渡されるルーティング及び分
類要求の構造を示す。その要求のサイズは、4つの64
ビットワードである。種々のフィールドが以下に定義さ
れる。
【表1】
【0022】上記の表に示されるように、個別の2組の
分類検査のための規定があり、1つは「PCE Roo
t0」を付されるアドレスで開始し、もう1つは「PC
ERoot1」で開始する。これらの個別の開始アドレ
スの重要性が以下に記載される。
分類検査のための規定があり、1つは「PCE Roo
t0」を付されるアドレスで開始し、もう1つは「PC
ERoot1」で開始する。これらの個別の開始アドレ
スの重要性が以下に記載される。
【0023】上記のように、その要求の適切なフィール
ドが、図5のRLE74及びPCE76のための各入力
FIFO78に供給される。Req.ID及びIP.D
est.Addrのようなフィールドのうちのいくつか
は、RLE74及びPCE76の両方に供給される。他
のフィールドは一方にのみ供給される。特にPCEにル
ーティングされるフィールドの使用法が以下に記載され
る。
ドが、図5のRLE74及びPCE76のための各入力
FIFO78に供給される。Req.ID及びIP.D
est.Addrのようなフィールドのうちのいくつか
は、RLE74及びPCE76の両方に供給される。他
のフィールドは一方にのみ供給される。特にPCEにル
ーティングされるフィールドの使用法が以下に記載され
る。
【0024】図7及び図8は、図4のルーティング及び
分類エンジン68から読み出される2つの異なるタイプ
のエントリの各構造を示す。図7は、図5の結果キュー
72から得られ、分類サーチの結果を搬送する結果エン
トリを示す。図8は、図3のFP58に状態情報を搬送
するために用いられる状態エントリを示す。
分類エンジン68から読み出される2つの異なるタイプ
のエントリの各構造を示す。図7は、図5の結果キュー
72から得られ、分類サーチの結果を搬送する結果エン
トリを示す。図8は、図3のFP58に状態情報を搬送
するために用いられる状態エントリを示す。
【0025】図7に示される結果エントリのフィールド
は以下のように定義される。
は以下のように定義される。
【表2】
【0026】図8に示される状態エントリのフィールド
は以下のように定義される。
は以下のように定義される。
【表3】
【0027】ルーティング及び分類エンジン68の全体
的な動作が、図5〜図8を参照して以下に記載される。
図3のFP58は、探索及び分類要求を、要求キュー7
0に書き込む。要求が要求キュー70の先頭に達すると
き、その要求からの種々の情報要素は、RLE74及び
PCE76のための各入力FIFO78に同時に書き込
まれる。RLE74及びPCE76は独立して各要求の
個別の部分において動作し、一般に、異なる時間で、所
与の要求に対する各処理動作を終了する。これらの動作
の結果が、出力FIFO80に書き込まれる。所与のパ
ケットに対する両方の結果の組が、出力FIFO80の
先頭に達したとき、1つの組み合わされた結果が、結果
キュー72に書き込まれる。その組み合わされた結果は
FP58によって読み出され、それを用いてFP58
は、上記のように、図3のSAR40及び42のための
新しいパケットヘッダ及び回路情報を作成する。
的な動作が、図5〜図8を参照して以下に記載される。
図3のFP58は、探索及び分類要求を、要求キュー7
0に書き込む。要求が要求キュー70の先頭に達すると
き、その要求からの種々の情報要素は、RLE74及び
PCE76のための各入力FIFO78に同時に書き込
まれる。RLE74及びPCE76は独立して各要求の
個別の部分において動作し、一般に、異なる時間で、所
与の要求に対する各処理動作を終了する。これらの動作
の結果が、出力FIFO80に書き込まれる。所与のパ
ケットに対する両方の結果の組が、出力FIFO80の
先頭に達したとき、1つの組み合わされた結果が、結果
キュー72に書き込まれる。その組み合わされた結果は
FP58によって読み出され、それを用いてFP58
は、上記のように、図3のSAR40及び42のための
新しいパケットヘッダ及び回路情報を作成する。
【0028】より詳細には、FP58は、バッチ形式で
ルーティング及び分類エンジン68を用いる。要求キュ
ー70内に十分な空間があるとき、一連の要求、1)4
つの結果エントリ、2)3つの結果エントリと後続する
1つの状態エントリ、3)2つの結果エントリと後続す
る2つの状態エントリ、4)1つの結果エントリと後続
する3つの状態エントリ、5)4つの状態エントリが存
在する。
ルーティング及び分類エンジン68を用いる。要求キュ
ー70内に十分な空間があるとき、一連の要求、1)4
つの結果エントリ、2)3つの結果エントリと後続する
1つの状態エントリ、3)2つの結果エントリと後続す
る2つの状態エントリ、4)1つの結果エントリと後続
する3つの状態エントリ、5)4つの状態エントリが存
在する。
【0029】一般にFP58は、結果キュー72が空に
なるまで、読出しコマンドを発行し、1つ或いは複数の
状態エントリが結果ブロックに含まれるときには必ず、
空であると推定される。その後FP58は、ルーティン
グ及び分類エンジン68が次の要求のバッチを処理して
いる間に、その結果を用いる。FP58は、RLE74
及びPCE76がビジーで保持され、キュー70及び7
2と、FIFO78及び80とがオーバーフローするの
を防ぐように、状態情報を用いて要求の流れを管理す
る。
なるまで、読出しコマンドを発行し、1つ或いは複数の
状態エントリが結果ブロックに含まれるときには必ず、
空であると推定される。その後FP58は、ルーティン
グ及び分類エンジン68が次の要求のバッチを処理して
いる間に、その結果を用いる。FP58は、RLE74
及びPCE76がビジーで保持され、キュー70及び7
2と、FIFO78及び80とがオーバーフローするの
を防ぐように、状態情報を用いて要求の流れを管理す
る。
【0030】例示される実施形態では、読み出すことが
できる状態エントリは1つしか存在せず、結果ブロック
内に多数の状態エントリが存在する場合には、この1つ
のエントリに対して何度も読出しが行われたことを表す
ことに留意されたい。別の実施形態では、例えば統計情
報を収集するために、或いは他のバックグラウンド処理
を行うために、第2〜第4の状態エントリにおいて付加
的な低優先度の情報を供給することが有用な場合もあ
る。
できる状態エントリは1つしか存在せず、結果ブロック
内に多数の状態エントリが存在する場合には、この1つ
のエントリに対して何度も読出しが行われたことを表す
ことに留意されたい。別の実施形態では、例えば統計情
報を収集するために、或いは他のバックグラウンド処理
を行うために、第2〜第4の状態エントリにおいて付加
的な低優先度の情報を供給することが有用な場合もあ
る。
【0031】結果に状態情報を付加する1つの重要な利
点は、FPバス56を用いる際の効率が改善されること
である。FP58が結果の読出しコマンドを発行すると
きはいつでも、有効な結果情報或いは有効な状態情報の
いずれかが返送される。さらに、結果ブロックはバース
ト形式で返送され、読出しに関するオーバーヘッドを低
減できるようにする。またFP58は、1つの読出しト
ランザクションにおいてRLE74及びPCE76キュ
ーのついての情報と、RXキュー64及びTXキュー6
6についての情報とを取得する。
点は、FPバス56を用いる際の効率が改善されること
である。FP58が結果の読出しコマンドを発行すると
きはいつでも、有効な結果情報或いは有効な状態情報の
いずれかが返送される。さらに、結果ブロックはバース
ト形式で返送され、読出しに関するオーバーヘッドを低
減できるようにする。またFP58は、1つの読出しト
ランザクションにおいてRLE74及びPCE76キュ
ーのついての情報と、RXキュー64及びTXキュー6
6についての情報とを取得する。
【0032】図9は、図5のPCE76の構造を示す。
フィルタ及び結合子(以下に記載する)を表すデータ
は、規則メモリ(RM)82及び判定基準メモリ(C
M)84に記憶される。CM84は、3つの一般的にア
ドレス指定されたメモリCM086、CM1 88及び
CM2 90を備える。3つの比較論理ブロック92、
94及び96は、判定基準メモリ86、88及び90に
それぞれ関連する。アドレス指定及び制御ロジック98
は、図5の要求キュー70から受信した要求を復号化し
て、RM82及びCM84のためのアドレスを生成し、
各要求によって要求されるような多数の規則を通して配
列され、図5の結果キュー72に渡される結果を生成す
る。またそのアドレス指定及び制御ロジック98は、図
3のIOP26に対するインタフェースも形成し、IO
P26によってRM82及びCM84を読出し及び書込
みできるようにする。バストランシーバ100は、IO
P26とRM82及びCM84との間の必要なデータパ
スを提供する。ANDゲート102は、比較論理ブロッ
ク92、94及び96からの対応するMATCHn出力
が全て真であるとき、1つのMATCH信号を与える。
フィルタ及び結合子(以下に記載する)を表すデータ
は、規則メモリ(RM)82及び判定基準メモリ(C
M)84に記憶される。CM84は、3つの一般的にア
ドレス指定されたメモリCM086、CM1 88及び
CM2 90を備える。3つの比較論理ブロック92、
94及び96は、判定基準メモリ86、88及び90に
それぞれ関連する。アドレス指定及び制御ロジック98
は、図5の要求キュー70から受信した要求を復号化し
て、RM82及びCM84のためのアドレスを生成し、
各要求によって要求されるような多数の規則を通して配
列され、図5の結果キュー72に渡される結果を生成す
る。またそのアドレス指定及び制御ロジック98は、図
3のIOP26に対するインタフェースも形成し、IO
P26によってRM82及びCM84を読出し及び書込
みできるようにする。バストランシーバ100は、IO
P26とRM82及びCM84との間の必要なデータパ
スを提供する。ANDゲート102は、比較論理ブロッ
ク92、94及び96からの対応するMATCHn出力
が全て真であるとき、1つのMATCH信号を与える。
【0033】パケットフィルタリングのための規則の組
は典型的には、ネットワーク管理ステーション(NM
S)によって発信されるが、特定された流れに基づいて
FP58によって動的に割り当てることもできる。以下
の情報の一部或いは全部が、フィルタのためにNMS或
いはFP58によって供給される。その情報は、マスク
を有するIP行先アドレス、マスクを有するIPソース
アドレス、IPプロトコル識別子、TCP/UDPソー
スポート及び行先ポート識別子、サービス識別子のIP
タイプ及びマスク、種々のフラグである。そのパケット
がフィルタ判定基準と一致するか否かを判定するため
に、フィルタからの種々の情報要素が、受信された各パ
ケットからの対応する要素と比較される。一致する場合
には、パケットがその行先に向けて進めるようにする動
作のような、いくつかのデフォルト動作が典型的には行
われる。
は典型的には、ネットワーク管理ステーション(NM
S)によって発信されるが、特定された流れに基づいて
FP58によって動的に割り当てることもできる。以下
の情報の一部或いは全部が、フィルタのためにNMS或
いはFP58によって供給される。その情報は、マスク
を有するIP行先アドレス、マスクを有するIPソース
アドレス、IPプロトコル識別子、TCP/UDPソー
スポート及び行先ポート識別子、サービス識別子のIP
タイプ及びマスク、種々のフラグである。そのパケット
がフィルタ判定基準と一致するか否かを判定するため
に、フィルタからの種々の情報要素が、受信された各パ
ケットからの対応する要素と比較される。一致する場合
には、パケットがその行先に向けて進めるようにする動
作のような、いくつかのデフォルト動作が典型的には行
われる。
【0034】従来通りに、パケットフィルタは、線形に
サーチされる比較の組からなる順序付けされたリストと
して表される。PCE76では、フィルタ要素は、判定
基準(比較値)及び規則(リスト自体及び各比較のため
に用いられる演算子)に分割される。この規則と判定基
準の分離は、個別の規則メモリ(RM)82及び判定基
準メモリ(CM)84を使用する際に反映される。メモ
リ82及び84は各機能のために個別に最適化され、そ
の結果、効率及び性能が改善される。また、CM84内
のエントリは、RM82内の多数の規則によって参照さ
れることができ、さらに記憶効率が高められる。
サーチされる比較の組からなる順序付けされたリストと
して表される。PCE76では、フィルタ要素は、判定
基準(比較値)及び規則(リスト自体及び各比較のため
に用いられる演算子)に分割される。この規則と判定基
準の分離は、個別の規則メモリ(RM)82及び判定基
準メモリ(CM)84を使用する際に反映される。メモ
リ82及び84は各機能のために個別に最適化され、そ
の結果、効率及び性能が改善される。また、CM84内
のエントリは、RM82内の多数の規則によって参照さ
れることができ、さらに記憶効率が高められる。
【0035】RM82は、規則メモリエントリのアレイ
を含み、各エントリは2つのタイプのうちの1つであり
得る。第1のタイプは、1組の演算子と、対応するフィ
ルタのための被比較数を記憶するCM84の行へのポイ
ンタとを含む。第2のタイプは、別の規則メモリエント
リへのポインタを含む。これらのエントリを用いて、順
次サーチされる1組の規則において、不連続のセグメン
ト間でジャンプを行う。例示される実施形態では、RM
82は16Kまでのエントリを含むことができる。
を含み、各エントリは2つのタイプのうちの1つであり
得る。第1のタイプは、1組の演算子と、対応するフィ
ルタのための被比較数を記憶するCM84の行へのポイ
ンタとを含む。第2のタイプは、別の規則メモリエント
リへのポインタを含む。これらのエントリを用いて、順
次サーチされる1組の規則において、不連続のセグメン
ト間でジャンプを行う。例示される実施形態では、RM
82は16Kまでのエントリを含むことができる。
【0036】CM84は、3つの個別のメモリCM0
86、CM1 88及びCM2 90にセグメント化さ
れ、例示される実施形態では、各メモリは4Kまでのエ
ントリを含むことができる。CM84の機構は、IPパ
ケット分類において固有の階層を利用する。一定のフィ
ールド上でのフィルタリングは通常、同様に他のフィー
ルドに基づくフィルタリングを伴うので、個別のメモリ
CM0、CM1及びCM2内にどのフィールドが記憶さ
れるかを限定することが望ましい。これらの限定によっ
て、さらに記憶効率が高められる。大部分の一般的にフ
ィルタリングされたフィールド、ソースアドレス及び行
先アドレスは、3つの全てのメモリCM0 86、CM
1 88及びCM2 90においてサポートされる。以
下に記載するように、他のフィールドは、CM1 88
及び/またはCM2 90においてのみサポートされ
る。このアーキテクチャは、CM84内の空間を割り当
てることができる自由度を最大限にすると同時に、効果
的な並列サーチを可能にする。CM84の構造及び使用
法は、より詳細に以下に記載される。
86、CM1 88及びCM2 90にセグメント化さ
れ、例示される実施形態では、各メモリは4Kまでのエ
ントリを含むことができる。CM84の機構は、IPパ
ケット分類において固有の階層を利用する。一定のフィ
ールド上でのフィルタリングは通常、同様に他のフィー
ルドに基づくフィルタリングを伴うので、個別のメモリ
CM0、CM1及びCM2内にどのフィールドが記憶さ
れるかを限定することが望ましい。これらの限定によっ
て、さらに記憶効率が高められる。大部分の一般的にフ
ィルタリングされたフィールド、ソースアドレス及び行
先アドレスは、3つの全てのメモリCM0 86、CM
1 88及びCM2 90においてサポートされる。以
下に記載するように、他のフィールドは、CM1 88
及び/またはCM2 90においてのみサポートされ
る。このアーキテクチャは、CM84内の空間を割り当
てることができる自由度を最大限にすると同時に、効果
的な並列サーチを可能にする。CM84の構造及び使用
法は、より詳細に以下に記載される。
【0037】図10は、規則メモリエントリとも呼ばれ
る、図9のRM82内のエントリの構造を示す。各39
ビットエントリは、1ビットのタイプフィールドを有す
る。このフィールドが1の場合には、エントリのビット
13〜0は、RM82内の別の位置へのポインタ、すな
わち別の規則メモリエントリへのポインタを含む。この
フィールドが0である場合には、そのエントリはフィル
タ検査を実行するための情報を含む。この場合には、ビ
ット11〜0は、検査のためのオペランドが見出され
る、CM84の行のアドレスを含んでおり、ビット35
〜12は、その要求からの、各オペランド及びフィール
ドにおいて実行される動作の符号化ビットを含む。これ
らの動作は以下に詳細に記載される。ビット36は、例
えば範囲検査を実行するための複合規則を形成するため
に用いられるキャリービットである。キャリービットが
0である場合には、その規則はそれ単独で評価される。
キャリービットが1である場合には、その規則は、次の
規則も真と評価する場合にのみ、真と評価する。ビット
37は、要求の一部として検査される規則の列の最後に
到達したことを示す終了(Done)ビットである。
る、図9のRM82内のエントリの構造を示す。各39
ビットエントリは、1ビットのタイプフィールドを有す
る。このフィールドが1の場合には、エントリのビット
13〜0は、RM82内の別の位置へのポインタ、すな
わち別の規則メモリエントリへのポインタを含む。この
フィールドが0である場合には、そのエントリはフィル
タ検査を実行するための情報を含む。この場合には、ビ
ット11〜0は、検査のためのオペランドが見出され
る、CM84の行のアドレスを含んでおり、ビット35
〜12は、その要求からの、各オペランド及びフィール
ドにおいて実行される動作の符号化ビットを含む。これ
らの動作は以下に詳細に記載される。ビット36は、例
えば範囲検査を実行するための複合規則を形成するため
に用いられるキャリービットである。キャリービットが
0である場合には、その規則はそれ単独で評価される。
キャリービットが1である場合には、その規則は、次の
規則も真と評価する場合にのみ、真と評価する。ビット
37は、要求の一部として検査される規則の列の最後に
到達したことを示す終了(Done)ビットである。
【0038】判定基準演算子フィールドは、8つの3ビ
ット論理演算子コードを含む。各演算子コードは、その
要求及び判定基準メモリエントリから選択される対応す
る被比較数において実行される演算を規定する。判定基
準メモリエントリのフィールドが以下に記載される。被
比較数に対する判定基準演算子ビットの割当ては、以下
の通りである。 35〜33 CM0 SA/DAフィールド 32〜30 CM1プロトコルフィールド 29〜27 CM1ソースポートフィールド 26〜24 CM1 SA/DA或いはDPフィールド 23〜21 CM2プロトコルフィールド 20〜18 CM2 TOS或いはマスクフィールドを有するTOS 17〜15 CM2ソースポート或いはマスクフィールドを有するフラグ 14〜12 CM1 SA/DA或いはSP或いはDPフィールド
ット論理演算子コードを含む。各演算子コードは、その
要求及び判定基準メモリエントリから選択される対応す
る被比較数において実行される演算を規定する。判定基
準メモリエントリのフィールドが以下に記載される。被
比較数に対する判定基準演算子ビットの割当ては、以下
の通りである。 35〜33 CM0 SA/DAフィールド 32〜30 CM1プロトコルフィールド 29〜27 CM1ソースポートフィールド 26〜24 CM1 SA/DA或いはDPフィールド 23〜21 CM2プロトコルフィールド 20〜18 CM2 TOS或いはマスクフィールドを有するTOS 17〜15 CM2ソースポート或いはマスクフィールドを有するフラグ 14〜12 CM1 SA/DA或いはSP或いはDPフィールド
【0039】演算子コードは実行される比較を規定して
おり、その場合、要求からの被比較数は演算子の左側に
あり、判定基準メモリエントリからの被比較数は右側に
ある。例えば、演算子が「>」である場合には、評価さ
れる式は、(要求データ>判定基準データ)である。演
算子コードは以下の通りである。 000 Greater than(〜より大きい) 001 Less than(〜より小さい) 010 Equal(〜に等しい) 011 Not Equal(〜に等しくない) 1xx Don‘t care(未定義、すなわち被比較数値に関わらず 強制的に真)
おり、その場合、要求からの被比較数は演算子の左側に
あり、判定基準メモリエントリからの被比較数は右側に
ある。例えば、演算子が「>」である場合には、評価さ
れる式は、(要求データ>判定基準データ)である。演
算子コードは以下の通りである。 000 Greater than(〜より大きい) 001 Less than(〜より小さい) 010 Equal(〜に等しい) 011 Not Equal(〜に等しくない) 1xx Don‘t care(未定義、すなわち被比較数値に関わらず 強制的に真)
【0040】判定基準演算子を用いて、以下に記載する
ように、比較論理ブロック92、94及び96内のロジ
ックを構成する。
ように、比較論理ブロック92、94及び96内のロジ
ックを構成する。
【0041】図11は、図9のCM0 86におけるエ
ントリの構造を示す。各エントリは、38ビット長であ
る。1つのビット、すなわち、ビット37を用いて、そ
のエントリのための2つの可能な構成を、32ビットソ
ースアドレス(SA)か、或いは32ビット行先アドレ
ス(DA)のいずれかとして区別する。ビット31〜0
は、対応するフィルタによって必要とされるSA或いは
DA値を含む。ビット36〜32は、エントリ内のSA
/DAと、その要求のSA/DAとの間の比較の範囲を
制限するために用いられる5ビットの符号化されたマス
ク値を含む。マスクの使用法は以下に詳細に記載され
る。
ントリの構造を示す。各エントリは、38ビット長であ
る。1つのビット、すなわち、ビット37を用いて、そ
のエントリのための2つの可能な構成を、32ビットソ
ースアドレス(SA)か、或いは32ビット行先アドレ
ス(DA)のいずれかとして区別する。ビット31〜0
は、対応するフィルタによって必要とされるSA或いは
DA値を含む。ビット36〜32は、エントリ内のSA
/DAと、その要求のSA/DAとの間の比較の範囲を
制限するために用いられる5ビットの符号化されたマス
ク値を含む。マスクの使用法は以下に詳細に記載され
る。
【0042】図12は、図9のCM1 88内のエント
リの構造を示す。各エントリは47ビット長である。ビ
ット46〜45に示されるように、4つの異なる構成を
取り得る。PTCLフィールドは、4つの全ての構成に
おいてIPプロトコルを特定する。構成2及び3の16
ビットのSP及びDPはそれぞれ、ソースポート識別子
及び行先ポート識別子を表す。ビット36〜32の内容
は、構成2及び3では未定義である。
リの構造を示す。各エントリは47ビット長である。ビ
ット46〜45に示されるように、4つの異なる構成を
取り得る。PTCLフィールドは、4つの全ての構成に
おいてIPプロトコルを特定する。構成2及び3の16
ビットのSP及びDPはそれぞれ、ソースポート識別子
及び行先ポート識別子を表す。ビット36〜32の内容
は、構成2及び3では未定義である。
【0043】図13は、図9のCM2 90内のエント
リの構造を示す。各エントリは51ビット長である。ビ
ット50〜48に示されるように、8つの異なる構成を
取り得る。構成2〜7のTOSフィールドは、サービス
のIPタイプを特定する。構成3〜7では、TOSマス
クフィールドは、以下のように、TOS比較の範囲を限
定するために用いられる8ビットマスクを含む。8ビッ
トFLAGSフィールドは、TCP/UDPパケットか
らの対応するビットに対して比較されるフラグ値を含
む。8ビットFLAG MSKフィールドは、以下のよ
うに、FLAGS比較の範囲を限定するために用いられ
る。
リの構造を示す。各エントリは51ビット長である。ビ
ット50〜48に示されるように、8つの異なる構成を
取り得る。構成2〜7のTOSフィールドは、サービス
のIPタイプを特定する。構成3〜7では、TOSマス
クフィールドは、以下のように、TOS比較の範囲を限
定するために用いられる8ビットマスクを含む。8ビッ
トFLAGSフィールドは、TCP/UDPパケットか
らの対応するビットに対して比較されるフラグ値を含
む。8ビットFLAG MSKフィールドは、以下のよ
うに、FLAGS比較の範囲を限定するために用いられ
る。
【0044】図14は、比較論理ブロック92、94及
び96の全般的な構造を示す。2つ以上の比較器ロジッ
ク104−1、...104−nのブロックを用いて、
多数の比較を平行して実行し、その場合に、各比較は、
要求の所与のフィールドと判定基準メモリエントリの対
応するフィールドとの間で行われる。CM0 86の場
合の比較ロジック92では、例えば、2つの比較器論理
ブロック104が用いられ、1つは要求のソースアドレ
スフィールド用であり、もう1つは要求の行先アドレス
フィールド用である。CM1 88の場合の比較ロジッ
ク94は、ソースアドレス、行先アドレス、IPプロト
コル、ソースポート及び行先ポートのための比較器論理
ブロック104を含む。CM2 90の場合の比較ロジ
ック96は、ソースアドレス、行先アドレス、IPプロ
トコル、ソースポート、行先ポート、マスクのないサー
ビスタイプ、マスクのあるサービスタイプ及びフラグの
ための比較器論理ブロック104を含む。
び96の全般的な構造を示す。2つ以上の比較器ロジッ
ク104−1、...104−nのブロックを用いて、
多数の比較を平行して実行し、その場合に、各比較は、
要求の所与のフィールドと判定基準メモリエントリの対
応するフィールドとの間で行われる。CM0 86の場
合の比較ロジック92では、例えば、2つの比較器論理
ブロック104が用いられ、1つは要求のソースアドレ
スフィールド用であり、もう1つは要求の行先アドレス
フィールド用である。CM1 88の場合の比較ロジッ
ク94は、ソースアドレス、行先アドレス、IPプロト
コル、ソースポート及び行先ポートのための比較器論理
ブロック104を含む。CM2 90の場合の比較ロジ
ック96は、ソースアドレス、行先アドレス、IPプロ
トコル、ソースポート、行先ポート、マスクのないサー
ビスタイプ、マスクのあるサービスタイプ及びフラグの
ための比較器論理ブロック104を含む。
【0045】比較器論理ブロック104からの出力は、
NOT EQUAL(〜と等しくない:≠)、EQUA
L(〜と等しい:=)、LESS THAN(〜より小
さい:<)及びGREATER THAN(〜より大き
い:>)のための指示を含む。これらの信号は、DO
N'T CARE機能を実施するために用いられる論理
「1」とともに、各セレクタ106−1、...106
−nの入力に供給される。セレクタ106は、制御入力
として、演算子タイプ規則メモリエントリから演算子を
受信する。これらの演算子は、上記のように、規則メモ
リエントリのビット35〜12内に存在する。
NOT EQUAL(〜と等しくない:≠)、EQUA
L(〜と等しい:=)、LESS THAN(〜より小
さい:<)及びGREATER THAN(〜より大き
い:>)のための指示を含む。これらの信号は、DO
N'T CARE機能を実施するために用いられる論理
「1」とともに、各セレクタ106−1、...106
−nの入力に供給される。セレクタ106は、制御入力
として、演算子タイプ規則メモリエントリから演算子を
受信する。これらの演算子は、上記のように、規則メモ
リエントリのビット35〜12内に存在する。
【0046】セレクタ106の各出力は別のセレクタ1
08に供給され、セレクタは、判定基準メモリエントリ
からの構成ビットに基づいて、セレクタ106の出力の
種々の組み合わせの中から選択を行う。例えば、CM0
の場合の比較ロジック92では、構成セレクタ108
は、判定基準メモリエントリのビット37の値に基づい
て、SA比較結果とDA比較結果との間で選択を行う。
他の比較論理ブロック94及び96内の構成セレクタ1
08も同様に動作する。構成セレクタ108からの出力
信号MATCHは、その要求内のデータが、各判定基準
メモリ86、88或いは90からの判定基準を満足する
か否かを示す。図9に示されるように、比較ブロック9
2、94及び96からのMATCH出力はANDゲート
10によって互いにANDを取られ、分類動作を制御す
るために、アドレス指定及び制御ロジック98に1つの
MATCH指示を与える。
08に供給され、セレクタは、判定基準メモリエントリ
からの構成ビットに基づいて、セレクタ106の出力の
種々の組み合わせの中から選択を行う。例えば、CM0
の場合の比較ロジック92では、構成セレクタ108
は、判定基準メモリエントリのビット37の値に基づい
て、SA比較結果とDA比較結果との間で選択を行う。
他の比較論理ブロック94及び96内の構成セレクタ1
08も同様に動作する。構成セレクタ108からの出力
信号MATCHは、その要求内のデータが、各判定基準
メモリ86、88或いは90からの判定基準を満足する
か否かを示す。図9に示されるように、比較ブロック9
2、94及び96からのMATCH出力はANDゲート
10によって互いにANDを取られ、分類動作を制御す
るために、アドレス指定及び制御ロジック98に1つの
MATCH指示を与える。
【0047】図15は、比較器論理ブロック104の全
般的な構造を示す。EQUAL比較器110は、2つの
被比較数が等しいか否かを判定し、LESS THAN
比較器112は、被比較数の一方が他方の被比較数より
小さいか否かを判定し、GREATER THAN比較
器114は、被比較数の一方が他方の被比較数より大き
いか否かを判定する。EQUAL比較110からの出力
は、インバータ116によって反転され、NOT EQ
UAL指示が得られる。
般的な構造を示す。EQUAL比較器110は、2つの
被比較数が等しいか否かを判定し、LESS THAN
比較器112は、被比較数の一方が他方の被比較数より
小さいか否かを判定し、GREATER THAN比較
器114は、被比較数の一方が他方の被比較数より大き
いか否かを判定する。EQUAL比較110からの出力
は、インバータ116によって反転され、NOT EQ
UAL指示が得られる。
【0048】各比較器110、112及び114への入
力は、CM84からの被比較数(「CM被比較数」とし
て示される)及び要求からのおそらくマスクされた被比
較数(REQ被比較数として示される)である。マスク
処理ロジックが、関連するマスクを有するフィールドの
ために用いられる。ANDゲート118は、ビット毎に
マスク処理を実施する。Flags Maskの場合と
同様に、マルチビットマスク(「CMマスク」として示
される)が直接用いられる場合があり、或いはSA/D
Aマスクの場合と同様に、復号化されるか、又はエキス
パンダロジック120により拡張される場合もある。エ
キスパンダロジック120は、5ビットの符号化された
マスク値によって示されるように、多数の後続のビット
位置におおいて0を有し、その他の場所では1を有する
32ビット値を生成する。例えば、マスク値が、10進
の11に等価な2進の01011である場合には、復号
化されたマスクは、先行する21ビット位置において1
を有し、後続の11ビット位置で0を有する16進のF
FFFF800である。このマスクは、SA/DAの最
上位21ビットのみが比較結果に作用することを示す。
力は、CM84からの被比較数(「CM被比較数」とし
て示される)及び要求からのおそらくマスクされた被比
較数(REQ被比較数として示される)である。マスク
処理ロジックが、関連するマスクを有するフィールドの
ために用いられる。ANDゲート118は、ビット毎に
マスク処理を実施する。Flags Maskの場合と
同様に、マルチビットマスク(「CMマスク」として示
される)が直接用いられる場合があり、或いはSA/D
Aマスクの場合と同様に、復号化されるか、又はエキス
パンダロジック120により拡張される場合もある。エ
キスパンダロジック120は、5ビットの符号化された
マスク値によって示されるように、多数の後続のビット
位置におおいて0を有し、その他の場所では1を有する
32ビット値を生成する。例えば、マスク値が、10進
の11に等価な2進の01011である場合には、復号
化されたマスクは、先行する21ビット位置において1
を有し、後続の11ビット位置で0を有する16進のF
FFFF800である。このマスクは、SA/DAの最
上位21ビットのみが比較結果に作用することを示す。
【0049】パケット分類エンジン(PCE)76の動
作は、全般に以下のように進む。 1.RM82及びCM84が図2のIOP26によって
初期化される。これは、動的な割当て、或いはネットワ
ーク管理ステーション(NMS)(以下に記載する)の
いずれかによって、電源投入時、及び動作中に行われ
る。 2.FP58によって提示されるパケット分類要求が、
図5の要求キュー70から検索される。 3.RM82が、その要求のルート0アドレスの内容に
よって索引付けされ、そのサーチの第1の規則メモリエ
ントリを検索する。そのエントリがポインタタイプであ
る場合には、検索されたエントリ内の規則メモリアドレ
スに対して、このステップが繰り返される。このステッ
プは、何度も繰り返すことができる。 4.検索された規則メモリエントリが演算子タイプであ
る場合には、判定基準メモリエントリが、規則メモリエ
ントリ内のCMアドレスにより規定される位置において
検索される。CM84からの選択された被比較数が、規
則メモリエントリ内の演算子に従って、対応する要求の
フィールドと比較される。上記のように、種々のフィー
ルドがマスクされる場合がある。 5.1に設定されたDONEビットが到達するか、或い
は一致条件が見出される(すなわち比較演算の結果が真
になる)まで、規則メモリアドレスが1だけインクリメ
ントされる。ある規則は、CARRYビットを設定する
場合もあり、それは、一致が宣言される前に、次の規則
も真であると評価することを要求している。 6.サーチにおいて遭遇する任意の規則メモリエントリ
が、ポインタタイプのエントリである場合には、判定基
準メモリエントリではなく、別の規則メモリエントリを
指している。この場合、逐次的な規則評価が継続され、
指示される規則メモリエントリで開始される。 7.要求のルート0アドレスで一旦開始されると、上記
プロセスが実行される。ルート0に関連するフィルタで
DONEが到達する場合には、ルート1アドレスで開始
して、そのプロセスは繰り返される。一致が見出される
場合には、その結果は、その一致がルート0か、ルート
1規則を用いて見出されたことを示す。 8.一致を見出すか、或いはルート1サーチにおいてD
ONEを見出すことによって、サーチが終了するとき、
結果が、フィルタリング検査の結果を示す結果キュー7
2に書き込まれる。その結果は、最後に検査された規則
のアドレスを含み、一致が見出されたか否かを含んでい
る。一致が見出された場合には、そのアドレスは、その
結果に適した動作を開始する、動作テーブルに索引付け
するためのFP58によって用いられる。例えば、その
一致が、ある一定の値より小さいDAを有する全てのパ
ケットが入ることになることを示す規則の場合には、そ
の動作テーブルは、パケットが意図的に廃棄されるよう
になるルーチンを指している。
作は、全般に以下のように進む。 1.RM82及びCM84が図2のIOP26によって
初期化される。これは、動的な割当て、或いはネットワ
ーク管理ステーション(NMS)(以下に記載する)の
いずれかによって、電源投入時、及び動作中に行われ
る。 2.FP58によって提示されるパケット分類要求が、
図5の要求キュー70から検索される。 3.RM82が、その要求のルート0アドレスの内容に
よって索引付けされ、そのサーチの第1の規則メモリエ
ントリを検索する。そのエントリがポインタタイプであ
る場合には、検索されたエントリ内の規則メモリアドレ
スに対して、このステップが繰り返される。このステッ
プは、何度も繰り返すことができる。 4.検索された規則メモリエントリが演算子タイプであ
る場合には、判定基準メモリエントリが、規則メモリエ
ントリ内のCMアドレスにより規定される位置において
検索される。CM84からの選択された被比較数が、規
則メモリエントリ内の演算子に従って、対応する要求の
フィールドと比較される。上記のように、種々のフィー
ルドがマスクされる場合がある。 5.1に設定されたDONEビットが到達するか、或い
は一致条件が見出される(すなわち比較演算の結果が真
になる)まで、規則メモリアドレスが1だけインクリメ
ントされる。ある規則は、CARRYビットを設定する
場合もあり、それは、一致が宣言される前に、次の規則
も真であると評価することを要求している。 6.サーチにおいて遭遇する任意の規則メモリエントリ
が、ポインタタイプのエントリである場合には、判定基
準メモリエントリではなく、別の規則メモリエントリを
指している。この場合、逐次的な規則評価が継続され、
指示される規則メモリエントリで開始される。 7.要求のルート0アドレスで一旦開始されると、上記
プロセスが実行される。ルート0に関連するフィルタで
DONEが到達する場合には、ルート1アドレスで開始
して、そのプロセスは繰り返される。一致が見出される
場合には、その結果は、その一致がルート0か、ルート
1規則を用いて見出されたことを示す。 8.一致を見出すか、或いはルート1サーチにおいてD
ONEを見出すことによって、サーチが終了するとき、
結果が、フィルタリング検査の結果を示す結果キュー7
2に書き込まれる。その結果は、最後に検査された規則
のアドレスを含み、一致が見出されたか否かを含んでい
る。一致が見出された場合には、そのアドレスは、その
結果に適した動作を開始する、動作テーブルに索引付け
するためのFP58によって用いられる。例えば、その
一致が、ある一定の値より小さいDAを有する全てのパ
ケットが入ることになることを示す規則の場合には、そ
の動作テーブルは、パケットが意図的に廃棄されるよう
になるルーチンを指している。
【0050】上記のように、CM84は、種々の異なる
構成において用いることができる。3つのメモリCM0
86、CM1 88及びCM2 90はそれぞれ、異
なる構成を実現するための異なるモードにおいて用いる
ことができる。以下の真理値テーブルは判定基準メモリ
86、88及び90の種々の構成モードを用いて実行す
ることができる種々の比較を提供する。「1」は、所与
の構成モードを用いて比較を実行できることを示してお
り、「0」は、比較を実行できないことを示している。
構成において用いることができる。3つのメモリCM0
86、CM1 88及びCM2 90はそれぞれ、異
なる構成を実現するための異なるモードにおいて用いる
ことができる。以下の真理値テーブルは判定基準メモリ
86、88及び90の種々の構成モードを用いて実行す
ることができる種々の比較を提供する。「1」は、所与
の構成モードを用いて比較を実行できることを示してお
り、「0」は、比較を実行できないことを示している。
【表4】
【0051】従って例えば、SA比較は、CM0−0、
CM1−0及びCM2−0の任意のものを用いて実行す
ることができる。FLAGS比較は、CM2−4〜CM
2−7の任意のものを用いて実行することができる。種
々の構成モードの任意のものを用いて所与の比較を実行
するための能力は、CM84を編成する際に所望の自由
度を提供し、それにより効率が高められる。判定基準メ
モリ空間の割当ては、以下に詳細に記載される。
CM1−0及びCM2−0の任意のものを用いて実行す
ることができる。FLAGS比較は、CM2−4〜CM
2−7の任意のものを用いて実行することができる。種
々の構成モードの任意のものを用いて所与の比較を実行
するための能力は、CM84を編成する際に所望の自由
度を提供し、それにより効率が高められる。判定基準メ
モリ空間の割当ては、以下に詳細に記載される。
【0052】判定基準メモリ構成情報を符号化する種々
の方法を用いることにより、別の実施形態において、記
憶効率を高めることができる場合もある。例示される実
施形態では、各判定基準メモリエントリのための構成メ
モリを格納するために、30ビットが用いられることに
留意されたい。これらの30ビットは、規則メモリエン
トリ内の演算子コードの24ビットと、CM0エントリ
の1ビットと、CM1エントリの2ビットと、CM2エ
ントリの3ビットとを含む。この方式により、CM0、
CM1及びCM2内の復号化が簡単になる。しかしなが
ら、判定基準メモリエントリのための被比較数及び演算
子の全ての実現可能な構成の数は、約3.3×106で
あり、従って22ビットのみを用いて表すことができ
る。従って例えば、演算子及び被比較数情報が復号化さ
れる各規則メモリエントリにおいて、1つの22ビット
構成フィールドを用いることができる場合もある。しか
しながら、そのような実施形態によって必要とされる復
号化は、各構成ビットとCM84の各セクションとの間
の一対一の対応関係の欠如により、例示される実施形態
よりも、一般的に、より複雑になる。
の方法を用いることにより、別の実施形態において、記
憶効率を高めることができる場合もある。例示される実
施形態では、各判定基準メモリエントリのための構成メ
モリを格納するために、30ビットが用いられることに
留意されたい。これらの30ビットは、規則メモリエン
トリ内の演算子コードの24ビットと、CM0エントリ
の1ビットと、CM1エントリの2ビットと、CM2エ
ントリの3ビットとを含む。この方式により、CM0、
CM1及びCM2内の復号化が簡単になる。しかしなが
ら、判定基準メモリエントリのための被比較数及び演算
子の全ての実現可能な構成の数は、約3.3×106で
あり、従って22ビットのみを用いて表すことができ
る。従って例えば、演算子及び被比較数情報が復号化さ
れる各規則メモリエントリにおいて、1つの22ビット
構成フィールドを用いることができる場合もある。しか
しながら、そのような実施形態によって必要とされる復
号化は、各構成ビットとCM84の各セクションとの間
の一対一の対応関係の欠如により、例示される実施形態
よりも、一般的に、より複雑になる。
【0053】図16は、パケットフィルタリング情報が
図1の交換器10において管理され、利用される方法を
示す。一般に、パケットフィルタリング情報の情報源
は、ネットワーク管理ステーション(NMS)であり、
典型的には図1の交換器10から離れて配置される。N
MSは、簡易ネットワーク管理プロトコル(SNMP)
のような、ネットワーク管理プロトコルを用いて、図1
の交換器制御部18内に存在する中央演算装置(CP)
と通信を行う。CPは、NMSからフィルタリング情報
を受信し、その情報を分配するために、各回線インタフ
ェース12のIOP26に応答することができる。さら
に、CPは不揮発(NV)記憶装置においてその情報を
保持し、NMSが利用できないときに、交換器10が動
作できるようにする。
図1の交換器10において管理され、利用される方法を
示す。一般に、パケットフィルタリング情報の情報源
は、ネットワーク管理ステーション(NMS)であり、
典型的には図1の交換器10から離れて配置される。N
MSは、簡易ネットワーク管理プロトコル(SNMP)
のような、ネットワーク管理プロトコルを用いて、図1
の交換器制御部18内に存在する中央演算装置(CP)
と通信を行う。CPは、NMSからフィルタリング情報
を受信し、その情報を分配するために、各回線インタフ
ェース12のIOP26に応答することができる。さら
に、CPは不揮発(NV)記憶装置においてその情報を
保持し、NMSが利用できないときに、交換器10が動
作できるようにする。
【0054】CPからIOP26に送出されるフィルタ
リング情報は、(1)それぞれ受信したパケットに適用
することができる少数の判定基準を規定するフィルタ
と、(2)結合子、すなわち交換器10内の種々のポー
ト及び/または回路と異なるフィルタのグループを関連
付ける情報と、(3)フィルタとの関連を有し、フィル
タ判定基準が満たされる場合に実行される動作とを含
む。
リング情報は、(1)それぞれ受信したパケットに適用
することができる少数の判定基準を規定するフィルタ
と、(2)結合子、すなわち交換器10内の種々のポー
ト及び/または回路と異なるフィルタのグループを関連
付ける情報と、(3)フィルタとの関連を有し、フィル
タ判定基準が満たされる場合に実行される動作とを含
む。
【0055】動作時に、IOP26が初期化されると
き、CPは、NV記憶装置からの現存するフィルタリン
グテーブルと結合データベースとを検索し、各回線イン
タフェース12のIOP26にそれをダウンロードす
る。NMSがフィルタ及び結合子を追加、削除或いは変
更するとき、新しい情報をCPに渡すためにSNMP動
作要求を発行する。次に、CPはその変更を各IOP2
6に通知する。
き、CPは、NV記憶装置からの現存するフィルタリン
グテーブルと結合データベースとを検索し、各回線イン
タフェース12のIOP26にそれをダウンロードす
る。NMSがフィルタ及び結合子を追加、削除或いは変
更するとき、新しい情報をCPに渡すためにSNMP動
作要求を発行する。次に、CPはその変更を各IOP2
6に通知する。
【0056】IOP26は、CPからフィルタリング情
報を検索し、フィルタ、結合子及び動作のローカルコピ
ーを作成してメモリに格納する。IOP26は、CPが
新しい情報を送出する場合には必ず、これらのローカル
コピーを更新する。IOP26は、種々のフィルタの場
合に行うことができる種々の動作のテーブルを用いて、
図22の各転送エンジン22内のFPメモリ60をプロ
グラミングする。またIOP26は、フィルタ及び結合
子に対応するRMエントリ及びCMエントリを作成し、
これらのエントリを用いて、PCE76(図5)のRM
82及びCM84(図9)をプログラミングする。IO
P26がCPから新しいフィルタリング情報を受信する
場合には必ず、必要に応じてRM及びCMエントリが追
加、削除或いは変更される。
報を検索し、フィルタ、結合子及び動作のローカルコピ
ーを作成してメモリに格納する。IOP26は、CPが
新しい情報を送出する場合には必ず、これらのローカル
コピーを更新する。IOP26は、種々のフィルタの場
合に行うことができる種々の動作のテーブルを用いて、
図22の各転送エンジン22内のFPメモリ60をプロ
グラミングする。またIOP26は、フィルタ及び結合
子に対応するRMエントリ及びCMエントリを作成し、
これらのエントリを用いて、PCE76(図5)のRM
82及びCM84(図9)をプログラミングする。IO
P26がCPから新しいフィルタリング情報を受信する
場合には必ず、必要に応じてRM及びCMエントリが追
加、削除或いは変更される。
【0057】FP58は、PCE76の支援によりパケ
ットを処理するための役割を果たす。IOP26によっ
て供給される情報を用いるとき、FP58は、ルート0
及びルート1アドレスに対する、それぞれ受信したパケ
ットのポート及び回路識別のマップを作成し、これらの
アドレスを用いてPCE要求を作成し、その要求を要求
キュー70(図5)を介してPCE76に書き込む。上
記のように、一般にFP58は、可能ならば多数の要求
からなるバーストを書き込むことによって、バッチ形式
でPCE76を動作させようと試みる。PCEは上記の
ようにその要求を処理する。FP58は結果を取得する
ためにPCE76をポーリングし、その結果は上記のよ
うにブロックでPCE76によって返送される。各結果
において一致が示される場合、その結果からのPCE一
致アドレスは、そのパケットがどの動作を行うかを確認
するためにIOP26によって確立される動作テーブル
への索引として用いられる。その後FP58は、指示さ
れる動作を実行する。
ットを処理するための役割を果たす。IOP26によっ
て供給される情報を用いるとき、FP58は、ルート0
及びルート1アドレスに対する、それぞれ受信したパケ
ットのポート及び回路識別のマップを作成し、これらの
アドレスを用いてPCE要求を作成し、その要求を要求
キュー70(図5)を介してPCE76に書き込む。上
記のように、一般にFP58は、可能ならば多数の要求
からなるバーストを書き込むことによって、バッチ形式
でPCE76を動作させようと試みる。PCEは上記の
ようにその要求を処理する。FP58は結果を取得する
ためにPCE76をポーリングし、その結果は上記のよ
うにブロックでPCE76によって返送される。各結果
において一致が示される場合、その結果からのPCE一
致アドレスは、そのパケットがどの動作を行うかを確認
するためにIOP26によって確立される動作テーブル
への索引として用いられる。その後FP58は、指示さ
れる動作を実行する。
【0058】上記のように、RM82及びCM84で
は、性能を高めるために1つのIC上に実装されるメモ
リは比較的小さい。これらのメモリ内の限られた空間が
効率的に管理されることは重要である。IOP26は、
フィルタ判定基準のためのCM84内の空間の割当て、
及び規則セットのためのRM82内の空間の割当てを行
う役割を果たす。これらの動作は順次以下に記載され
る。
は、性能を高めるために1つのIC上に実装されるメモ
リは比較的小さい。これらのメモリ内の限られた空間が
効率的に管理されることは重要である。IOP26は、
フィルタ判定基準のためのCM84内の空間の割当て、
及び規則セットのためのRM82内の空間の割当てを行
う役割を果たす。これらの動作は順次以下に記載され
る。
【0059】フィルタは、2つのタイプのうちの1つ、
すなわち独立型か、複合型のいずれかとすることができ
る。独立型フィルタは、1つの規則のみを用いて実現す
ることができる。複合型フィルタは多数の規則を必要と
する。種々のタイプの複合型フィルタを構成することが
できるが、例示される実施形態で用いられる複合型フィ
ルタは、範囲フィルタのみである。範囲フィルタは、あ
る範囲の上限を検査するために1つの規則を、その範囲
の下限を検査するための別の規則を必要とする。従っ
て、フィルタを加える際の第1のステップは、そのフィ
ルタが独立型フィルタ、範囲フィルタのいずれであるか
を決定することである。そのフィルタが独立型フィルタ
である場合には、1つの判定基準メモリ構成のみが必要
とされるのに対して、範囲フィルタの場合には2つの構
成が必要とされる。その後、CM84の内容がサーチ、
かつ/または評価され、CM84においてそのフィルタ
を最もよく表現する方法を決定する。一旦構成が選択さ
れれば、そのフィルタ情報は、CM84への更新情報と
して追加される。これらのプロセスは、以下に詳細に記
載される。
すなわち独立型か、複合型のいずれかとすることができ
る。独立型フィルタは、1つの規則のみを用いて実現す
ることができる。複合型フィルタは多数の規則を必要と
する。種々のタイプの複合型フィルタを構成することが
できるが、例示される実施形態で用いられる複合型フィ
ルタは、範囲フィルタのみである。範囲フィルタは、あ
る範囲の上限を検査するために1つの規則を、その範囲
の下限を検査するための別の規則を必要とする。従っ
て、フィルタを加える際の第1のステップは、そのフィ
ルタが独立型フィルタ、範囲フィルタのいずれであるか
を決定することである。そのフィルタが独立型フィルタ
である場合には、1つの判定基準メモリ構成のみが必要
とされるのに対して、範囲フィルタの場合には2つの構
成が必要とされる。その後、CM84の内容がサーチ、
かつ/または評価され、CM84においてそのフィルタ
を最もよく表現する方法を決定する。一旦構成が選択さ
れれば、そのフィルタ情報は、CM84への更新情報と
して追加される。これらのプロセスは、以下に詳細に記
載される。
【0060】所与のフィルタを実現するために用いるこ
とができる判定基準メモリエントリの種々のタイプの構
成がある。これらは、判定基準メモリ86、88及び9
0のうちのいずれが用いられるかによって、7つのCM
構成に編成される、以下の表は、CM構成に従って編成
される、より一般的に用いられる構成タイプのうちのい
くつかを示す。
とができる判定基準メモリエントリの種々のタイプの構
成がある。これらは、判定基準メモリ86、88及び9
0のうちのいずれが用いられるかによって、7つのCM
構成に編成される、以下の表は、CM構成に従って編成
される、より一般的に用いられる構成タイプのうちのい
くつかを示す。
【表5】
【0061】CM構成は、リソース消費の観点から、最
も高価なものから最も安価なものまでランク付けされ
る。多くのフィルタの場合、種々の構成のうちの任意の
構成を用いることができるが、その目標は、最も安価、
すなわち「最低限の」構成を用いて、メモリの使用効率
を最大限にすることである。例えば、(SA、SA M
ask)比較のみを必要とするフィルタは、任意のCM
構成を用いて実装することができ、その最低限の構成は
(CM0)である。別の例としては、(SA、SP及び
PTCL)を必要とするフィルタは、4つの構成(CM
0、CM1)、(CM0、CM2)、(CM1、CM
2)、(CM0、CM1、CM2)のいずれかを用いて
実装することができ、その最低限の構成は(CM0、C
M1)である。
も高価なものから最も安価なものまでランク付けされ
る。多くのフィルタの場合、種々の構成のうちの任意の
構成を用いることができるが、その目標は、最も安価、
すなわち「最低限の」構成を用いて、メモリの使用効率
を最大限にすることである。例えば、(SA、SA M
ask)比較のみを必要とするフィルタは、任意のCM
構成を用いて実装することができ、その最低限の構成は
(CM0)である。別の例としては、(SA、SP及び
PTCL)を必要とするフィルタは、4つの構成(CM
0、CM1)、(CM0、CM2)、(CM1、CM
2)、(CM0、CM1、CM2)のいずれかを用いて
実装することができ、その最低限の構成は(CM0、C
M1)である。
【0062】最低限の構成は、その最低限利用可能な構
成をサーチする際の開始点として用いられる。最低限の
構成が利用可能な場合には、それが用いられる。そうで
ない場合には、利用可能な構成が見つかるまで、順次、
より高価な構成が考慮される。上記の例では、その構成
は以下の順序、すなわち(CM0、CM1)、(CM
0、CM2)、(CM1、CM2)及び(CM0、CM
1、CM2)の順にサーチされる。構成サーチは、一群
のリンクされた空き判定基準メモリ位置のリストを利用
し、各リストは、1つの行、例えば(CM0)、(CM
0、CM1)等において特定の空き列の組を表す。フィ
ルタによって必要とされる比較のタイプに基づいて、I
OP26は、利用可能なエントリで最初のものを検索す
る所定のシーケンスで、全ての適切なリストをサーチす
る。
成をサーチする際の開始点として用いられる。最低限の
構成が利用可能な場合には、それが用いられる。そうで
ない場合には、利用可能な構成が見つかるまで、順次、
より高価な構成が考慮される。上記の例では、その構成
は以下の順序、すなわち(CM0、CM1)、(CM
0、CM2)、(CM1、CM2)及び(CM0、CM
1、CM2)の順にサーチされる。構成サーチは、一群
のリンクされた空き判定基準メモリ位置のリストを利用
し、各リストは、1つの行、例えば(CM0)、(CM
0、CM1)等において特定の空き列の組を表す。フィ
ルタによって必要とされる比較のタイプに基づいて、I
OP26は、利用可能なエントリで最初のものを検索す
る所定のシーケンスで、全ての適切なリストをサーチす
る。
【0063】選択される判定基準メモリ構成が、所与の
フィルタのために最低限必要とされる構成より大きい場
合には、残りの部分は、他のフィルタによって利用可能
である。従って上記の例では、(CM0、CM1)のみ
が必要とされるときに、構成(CM0、CM1、CM
2)が用いられる場合には、(CM2)の1ユニット
は、他のフィルタによって利用可能である。
フィルタのために最低限必要とされる構成より大きい場
合には、残りの部分は、他のフィルタによって利用可能
である。従って上記の例では、(CM0、CM1)のみ
が必要とされるときに、構成(CM0、CM1、CM
2)が用いられる場合には、(CM2)の1ユニット
は、他のフィルタによって利用可能である。
【0064】一旦ある構成が選択されたなら、フィルタ
の種々の要素が、CM84の種々のセクションに割り当
てられる。(SA、SP及びPTCL)を必要とするフ
ィルタの例で説明を続けると、構成(CM0、CM1)
が選択されるものと仮定すれば、SA及びSA Mas
kはCM0に割り当てられ、SP及びPTCLはCM1
に適切に割り当てられる。この割当ては、上記テーブル
からの構成タイプ3_1に対応する。CM0 86はモ
ード0において構成され、CM1 88はモード2にお
いて構成される。一旦割当てが終了すれば、CM84の
ためのエントリ(或いは範囲フィルタのためのエント
リ)が生成される(図11〜図13及びそれに付随する
説明を参照されたい)。また、対応する規則メモリエン
トリに対する判定基準演算子(ビット35〜12)のた
めのデータも生成される(図10及びそれに付随する説
明を参照されたい)。規則メモリエントリの残りは、以
下に説明するフィルタ結合中に生成される。
の種々の要素が、CM84の種々のセクションに割り当
てられる。(SA、SP及びPTCL)を必要とするフ
ィルタの例で説明を続けると、構成(CM0、CM1)
が選択されるものと仮定すれば、SA及びSA Mas
kはCM0に割り当てられ、SP及びPTCLはCM1
に適切に割り当てられる。この割当ては、上記テーブル
からの構成タイプ3_1に対応する。CM0 86はモ
ード0において構成され、CM1 88はモード2にお
いて構成される。一旦割当てが終了すれば、CM84の
ためのエントリ(或いは範囲フィルタのためのエント
リ)が生成される(図11〜図13及びそれに付随する
説明を参照されたい)。また、対応する規則メモリエン
トリに対する判定基準演算子(ビット35〜12)のた
めのデータも生成される(図10及びそれに付随する説
明を参照されたい)。規則メモリエントリの残りは、以
下に説明するフィルタ結合中に生成される。
【0065】フィルタが削除されるとき、削除されるフ
ィルタに用いられるCM構成は再利用できるようにな
る。より大きな構成にすることができる場合には、利用
可能な構成が連結される。これは、上記のように全体と
して、或いは部分的に後に用いることができる。例え
ば、1ユニットの(CM0)が、フィルタの削除によっ
て空きになり、同じ行のCM84において1ユニットの
(CM1)が利用可能である場合には、1ユニットの
(CM0、CM1)が形成される。
ィルタに用いられるCM構成は再利用できるようにな
る。より大きな構成にすることができる場合には、利用
可能な構成が連結される。これは、上記のように全体と
して、或いは部分的に後に用いることができる。例え
ば、1ユニットの(CM0)が、フィルタの削除によっ
て空きになり、同じ行のCM84において1ユニットの
(CM1)が利用可能である場合には、1ユニットの
(CM0、CM1)が形成される。
【0066】上記のように、IOP26は、フィルタの
「結合」を表す規則の組、すなわち論理ポート或いは回
路と1つ或いは複数のフィルタの組との間の関係を保持
するための役割も果たす。このプロセスはRM82の割
当て及びプログラミングを含む。結合子が追加されると
き、追加される結合子のサイズが最初に評価される。そ
のサイズは、論理ポート或いは回路、及び範囲フィルタ
及び非範囲フィルタの混合体で用いられるフィルタの数
により決定される。一旦結合子のサイズがわかれば、R
M82内の空間が割り当てられる。例示される実施形態
では、規則メモリ空間は、そのサイズが2の累乗である
セグメントに割り当てられる。結合子に割り当てられる
まで、空きセグメントは各空きリスト上に保持され、削
除された結合子からのセグメントは、再利用するために
空きリストに戻される。個々にリンクされたリストを用
いて、そのセグメントは互いに連結される。例えば、各
空きリストは、同じサイズからなる割り当てられていな
いセグメントの個々にリンクされたリストである。各結
合子は、一般に異なるサイズのセグメントからなる個々
にリンクされたリストである。
「結合」を表す規則の組、すなわち論理ポート或いは回
路と1つ或いは複数のフィルタの組との間の関係を保持
するための役割も果たす。このプロセスはRM82の割
当て及びプログラミングを含む。結合子が追加されると
き、追加される結合子のサイズが最初に評価される。そ
のサイズは、論理ポート或いは回路、及び範囲フィルタ
及び非範囲フィルタの混合体で用いられるフィルタの数
により決定される。一旦結合子のサイズがわかれば、R
M82内の空間が割り当てられる。例示される実施形態
では、規則メモリ空間は、そのサイズが2の累乗である
セグメントに割り当てられる。結合子に割り当てられる
まで、空きセグメントは各空きリスト上に保持され、削
除された結合子からのセグメントは、再利用するために
空きリストに戻される。個々にリンクされたリストを用
いて、そのセグメントは互いに連結される。例えば、各
空きリストは、同じサイズからなる割り当てられていな
いセグメントの個々にリンクされたリストである。各結
合子は、一般に異なるサイズのセグメントからなる個々
にリンクされたリストである。
【0067】21個の規則メモリエントリを必要とする
結合子を考慮する。この結合子の場合、サイズ16、
4、2及び2のセグメントが割り当てられることが好ま
しい。16エントリのセグメントは、15の規則と、4
エントリセグメントへのポインタとを格納する。4エン
トリセグメントは、3つの規則と、2エントリセグメン
トの1つへのポインタとを格納し、2エントリセグメン
トは、1つの規則と、他の2エントリセグメントへのポ
インタとを格納する。最後のセグメントは2つの規則を
格納する。割当て中に、所望のサイズのセグメントが利
用できない場合には、より大きなセグメントが利用され
る。セグメント内の未使用の空間は単に未使用のまま残
されることができるか、或いは別法では、判定基準メモ
リ構成の割当ての場合に上で説明したのと同様にして、
他の結合子に割り当てるために利用することができる。
結合子を考慮する。この結合子の場合、サイズ16、
4、2及び2のセグメントが割り当てられることが好ま
しい。16エントリのセグメントは、15の規則と、4
エントリセグメントへのポインタとを格納する。4エン
トリセグメントは、3つの規則と、2エントリセグメン
トの1つへのポインタとを格納し、2エントリセグメン
トは、1つの規則と、他の2エントリセグメントへのポ
インタとを格納する。最後のセグメントは2つの規則を
格納する。割当て中に、所望のサイズのセグメントが利
用できない場合には、より大きなセグメントが利用され
る。セグメント内の未使用の空間は単に未使用のまま残
されることができるか、或いは別法では、判定基準メモ
リ構成の割当ての場合に上で説明したのと同様にして、
他の結合子に割り当てるために利用することができる。
【0068】一旦メモリ割当てが終了すれば、RM82
のためのエントリが作成され、RM82に書き込まれ
る。このプロセスの間に、各演算子タイプの規則は、そ
の規則で用いられることになる対応する判定基準メモリ
エントリのアドレスでプログラミングされ、その演算子
は、規則/判定基準の対によって表されるフィルタに基
づく適当な値でプログラミングされる。その規則は、フ
ィルタが検査されることになる所望のシーケンスに従っ
て、RM82において論理シーケンスに配列される。R
M82のセグメント内では、その規則は逐次的に配列さ
れる。多数のセグメントに及ぶ結合子の場合、そのセグ
メントは、規則が所望のシーケンスで評価されるよう
に、互いに連結される。
のためのエントリが作成され、RM82に書き込まれ
る。このプロセスの間に、各演算子タイプの規則は、そ
の規則で用いられることになる対応する判定基準メモリ
エントリのアドレスでプログラミングされ、その演算子
は、規則/判定基準の対によって表されるフィルタに基
づく適当な値でプログラミングされる。その規則は、フ
ィルタが検査されることになる所望のシーケンスに従っ
て、RM82において論理シーケンスに配列される。R
M82のセグメント内では、その規則は逐次的に配列さ
れる。多数のセグメントに及ぶ結合子の場合、そのセグ
メントは、規則が所望のシーケンスで評価されるよう
に、互いに連結される。
【0069】パケット分類に関係する種々の装置及び方
法が記載されてきた。本発明は主にインターネットプロ
トコル(IP)パケット或いはメッセージを参照して記
載されてきたが、記載された技術は、他のタイプのメッ
セージの場合でも用いられることは明らかであろう。ま
た、ここで開示された本発明の概念から逸脱することな
く、上記の技術に対する他の変更形態及びその変形形態
が実現可能であることは当業者には明らかであろう。従
って本発明は、添付の請求の範囲及びその精神によって
のみ制限されるものと見なされるべきである。
法が記載されてきた。本発明は主にインターネットプロ
トコル(IP)パケット或いはメッセージを参照して記
載されてきたが、記載された技術は、他のタイプのメッ
セージの場合でも用いられることは明らかであろう。ま
た、ここで開示された本発明の概念から逸脱することな
く、上記の技術に対する他の変更形態及びその変形形態
が実現可能であることは当業者には明らかであろう。従
って本発明は、添付の請求の範囲及びその精神によって
のみ制限されるものと見なされるべきである。
【0070】
【発明の効果】上記のように本発明によれば、パケット
フィルタリングを行うために高速のパケット分類を提供
する、ネットワーク装置内のパケット処理ロジックを実
現することができる。
フィルタリングを行うために高速のパケット分類を提供
する、ネットワーク装置内のパケット処理ロジックを実
現することができる。
【図1】本発明によるパケット分類エンジンを組み込ん
だネットワーク交換器のブロック図である。
だネットワーク交換器のブロック図である。
【図2】図1のネットワーク交換器における回線インタ
フェースのブロック図である。
フェースのブロック図である。
【図3】図2の回線インタフェース上のパケット転送エ
ンジンのブロック図である。
ンジンのブロック図である。
【図4】図3の転送エンジン内のパケットヘッダ分配器
の特定用途向け集積回路(ASIC)のブロック図であ
る。
の特定用途向け集積回路(ASIC)のブロック図であ
る。
【図5】図4のパケットヘッダ分配器ASIC内のルー
ティング及び分類エンジンのブロック図である。
ティング及び分類エンジンのブロック図である。
【図6】図5のルーティング及び分類エンジンに渡され
るルーティング及び分類要求の構造図である。
るルーティング及び分類要求の構造図である。
【図7】図5のルーティング及び分類エンジンによって
供給されるルーティング及び分類結果の構造図である。
供給されるルーティング及び分類結果の構造図である。
【図8】図5のルーティング及び分類エンジンによって
供給される状態指示の構造図である。
供給される状態指示の構造図である。
【図9】図5のルーティング及び分類エンジン内のパケ
ット分類エンジン(PCE)のブロック図である。
ット分類エンジン(PCE)のブロック図である。
【図10】図9のパケット分類エンジン内の規則メモリ
エントリの構造図である。
エントリの構造図である。
【図11】図9のパケット分類エンジン内の第1の判定
基準メモリエントリの構造図である。
基準メモリエントリの構造図である。
【図12】図9のパケット分類エンジン内の第2の判定
基準メモリエントリの構造図である。
基準メモリエントリの構造図である。
【図13】図9のパケット分類エンジン内の第3の判定
基準メモリエントリの構造図である。
基準メモリエントリの構造図である。
【図14】図9のパケット分類エンジン内の判定基準メ
モリのバンクに対する比較論理ブロックのブロック図で
ある。
モリのバンクに対する比較論理ブロックのブロック図で
ある。
【図15】図14の比較論理ブロックにおいて用いられ
る比較器論理ブロックのブロック図である。
る比較器論理ブロックのブロック図である。
【図16】図1の交換器内の種々の処理構成要素によっ
て、パケットフィルタリング情報が如何に作成され、分
配され、用いられるかを示す図である。
て、パケットフィルタリング情報が如何に作成され、分
配され、用いられるかを示す図である。
10 ネットワーク交換器 12 回線インタフェース 14 ネットワークセグメント 16 交換器構造部 18 交換器制御部 20 物理I/O及びフレーム処理回路 22 転送エンジン 24 交換器構造部インタフェース 26 IOP 28 タイミング制御部 30 DCパワーコンバータ及び分配器 40 着信SAR 42 発信SAR 44、46 制御メモリ 48、50 パケットメモリ 52 パケットヘッダ分配装置(PHD) 54 PCIバス 56 FPバス 58 転送プロセッサ(FP) 60 FPメモリ 64 Rxキュー 66 Txキュー 68 ルーティング及び分類エンジン 69 信号線 70 要求キュー 72 結果キュー 74 ルート探索エンジン(RCE) 76 パケット分類エンジン(PCE) 78 IN FIFO 80 OUT FIFO 82 規則メモリ(RM) 84、86、88、90 判定基準メモリ(CM) 92、94、96 比較論理ブロック 98 アドレス指定及び制御ロジック 100 バストランシーバ 102 ANDゲート 104 比較論理ブロック 106 セレクタ 108 構成セレクタ 110 EQUAL比較器 112 LESS THAN比較器 114 GREATER THAN比較器 116 インバータ 118 ANDゲート 120 エキスパンダロジック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サンジェイ ジー.チェリアン アメリカ合衆国 03033 ニューハンプシ ャー,ブルックリン,マックスウェル ド ライヴ 6
Claims (18)
- 【請求項1】 パケット分類装置であって、 パケット分類要求者によって処理されているパケットか
らの情報を含むパケット分類要求を受信するように動作
する入力インタフェースロジックと、 規則メモリエントリを記憶するように動作する規則メモ
リであって、前記各規則メモリエントリが演算子と判定
基準メモリポインタとを含む、該規則メモリと、 判定基準メモリエントリを記憶するように動作する判定
基準メモリであって、各判定基準メモリエントリが判定
基準を含むような該判定基準メモリと、 前記パケット分類要求者にパケット分類結果を提供する
ように動作する出力インタフェースロジックと、 前記受信したパケット分類要求に応答して、 (i)前記規則メモリからの規則メモリエントリを検索
し、 (ii)前記検索した規則メモリエントリ内の前記判定
基準メモリポインタによって規定される位置において、
前記判定基準メモリからの判定基準メモリエントリを検
索し、 (iii)前記検索した規則メモリエントリ内の前記演
算子によって規定される演算であって、前記演算が、前
記パケット分類要求からの前記パケット情報と、前記検
索した判定基準メモリエントリからの前記判定基準とに
基づいて実行されている、該演算を実行し、 (iv)前記演算を実行した結果を反映するパケット分
類結果を生成するように動作する制御ロジックとを備え
るパケット分類装置。 - 【請求項2】 前記規則メモリは、第1のタイプ及び第
2のタイプの両方の規則メモリエントリを記憶するよう
に動作し、前記各第1のタイプの規則メモリエントリは
演算子と判定基準メモリポインタとを含み、前記各第2
のタイプの規則メモリエントリは、規則メモリポインタ
を含み、 前記制御ロジックは、前記受信したパケット分類要求に
応答して、 (i)前記検索した規則メモリエントリが前記第1のタ
イプのエントリ、前記第2のタイプのエントリのいずれ
であるかを判定し、 (ii)前記検索した規則メモリエントリが前記第1の
タイプのエントリである場合には、前記判定基準メモリ
エントリを検索して、前記規定された演算を実行し、 (iii)前記検索した規則メモリエントリが第2のタ
イプのエントリである場合には、前記第2のタイプのエ
ントリに含まれる前記規則メモリポインタによって規定
される位置において別の規則メモリエントリを検索し、
新しく検索された規則メモリエントリに対して、上記の
ステップを繰返し行い、 (iv)全ての検索した第1のタイプのエントリによっ
て規定される各演算を実行した結果を反映するパケット
分類結果を生成するように動作する、請求項1に記載の
パケット分類装置。 - 【請求項3】 前記制御ロジックはさらに、終了の指示
があるまで、さらに別の規則メモリエントリに対してス
テップ(i)〜(iii)を繰返し行うように動作す
る、請求項1に記載のパケット分類装置。 - 【請求項4】 前記終了の指示は、検索した規則メモリ
エントリ内のアサートされたDONEビットである、請
求項3に記載のパケット分類装置。 - 【請求項5】 前記終了の指示は、検索した規則メモリ
エントリ内の前記演算子により規定される条件を満足す
ることである、請求項3に記載のパケット分類装置。 - 【請求項6】 前記さらに別の規則メモリエントリは、
前記規則メモリ内の連続した位置に順次アクセスするこ
とにより検索される、請求項3に記載のパケット分類装
置。 - 【請求項7】 前記さらに別の規則メモリエントリは、
検索した規則メモリエントリに含まれる規則メモリポイ
ンタに規定される位置にアクセスすることにより検索さ
れる、請求項3に記載のパケット分類装置。 - 【請求項8】 前記制御ロジックは、前記検索したパケ
ット分類要求に含まれる規則メモリアドレスに基づい
て、前記規則メモリエントリを検索するように動作す
る、請求項1に記載のパケット分類装置。 - 【請求項9】 前記制御ロジックによって検索された前
記規則メモリエントリは、第1の規則メモリエントリで
あり、前記制御ロジックは、前記受信したパケット分類
要求に含まれる第1の規則メモリアドレスに基づいて、
前記第1の規則メモリエントリを選択するように動作
し、前記制御ロジックはさらに、前記受信したパケット
分類要求に同様に含まれる第2の規則メモリアドレスに
基づいて、第2の規則メモリエントリを選択し、前記第
2の規則メモリエントリに対してステップ(i)〜(i
ii)を繰返し行うように動作する、請求項1に記載の
パケット分類装置。 - 【請求項10】 前記規則メモリエントリは、前記規則
メモリエントリが、第2の規則メモリエントリとの複合
規則を形成する第1の規則メモリエントリであるか否か
を示すCARRY指示子を含み、前記制御ロジックは、
前記パケット分類結果が、前記第1及び前記第2の規則
メモリエントリの両方に対する前記演算の結果を反映す
るように、前記第2の規則メモリエントリに対してステ
ップ(i)〜(iii)を繰返し行い、ステップ(i
v)において前記パケット分類結果を生成するように動
作する、請求項1に記載のパケット分類装置。 - 【請求項11】 前記判定基準メモリエントリ内の前記
判定基準、及び前記要求内の前記情報は、ネットワーク
アドレスである、請求項1に記載のパケット分類装置。 - 【請求項12】 前記アドレスは行先アドレスである、
請求項11に記載のパケット分類装置。 - 【請求項13】 前記各判定基準メモリエントリは、前
記判定基準メモリエントリが構成される方法を指示する
構成情報を含み、前記制御ロジックは、(i)前記検索
した判定基準メモリエントリの前記構成情報を解釈し
て、前記判定基準メモリエントリ内の多数のフィールド
のうちのいずれが、前記演算において用いられるかを判
定し、(ii)前記判定された構成に基づいて、前記判
定基準メモリの適切なフィールドと、前記パケット分類
要求からの対応する情報のみを用いて、前記演算を実行
するように動作する、請求項1に記載のパケット分類装
置。 - 【請求項14】 前記各判定基準メモリエントリは、前
記判定基準メモリエントリが構成される方法を指示する
構成情報を含み、前記制御ロジックは、(i)前記検索
した判定基準メモリエントリの前記構成情報を解釈し
て、前記パケット分類要求からのどの情報が、前記演算
において用いられるかを判定し、(ii)前記判定され
た構成に基づいて、前記パケット分類要求からの適切な
情報と、前記判定基準メモリ内の対応する情報のみを用
いて、前記演算を実行するように動作する、請求項1に
記載のパケット分類装置。 - 【請求項15】 前記判定基準メモリは主要部に編成さ
れて、前記各判定基準メモリエントリが前記種々の主要
部とそれぞれ関連する種々のフィールドを含むように
し、前記各フィールドは、前記判定基準メモリエントリ
に含まれる構成情報に従って種々のタイプの判定基準を
保持するように構成可能であり、前記制御ロジックは、
前記各主要部に対して、前記判定基準メモリエントリに
含まれる前記構成情報に基づいて、前記判定基準メモリ
エントリの前記各フィールドを用いる前記演算に用いる
ための、前記パケット分類要求からの情報を選択するよ
うに動作する、請求項1に記載のパケット分類装置。 - 【請求項16】 前記判定基準メモリは、前記各判定基
準メモリエントリが、ソースアドレス或いは行先アドレ
スのいずれかとして構成可能な第1のフィールドと、ソ
ースアドレス、行先アドレス、或いは1組のポート識別
子情報のいずれかとして構成可能な第2のフィールド
と、ソースアドレス、行先アドレス、1組のポート識別
子情報或いは1組のフラグ情報のいずれかとして構成可
能な第3のフィールドとを含むように、3つの主要部を
備える、請求項15に記載のパケット分類装置。 - 【請求項17】 ハードウエアサーチエンジンにサーチ
判定基準を保持するために用いられる1組の判定基準メ
モリ内の空間を管理する方法であって、 前記判定基準メモリの種々の構成の順序を保持する過程
であって、前記構成が前記各構成を用いて判定基準メモ
リエントリを記憶するために必要とされる判定基準メモ
リ記憶空間の総量に準じて順序付けされるような該保持
する過程と、 前記種々の構成に従って判定基準メモリエントリを記憶
するための前記判定基準メモリ内の空間の利用可能性を
指示する1組のリストを保持する過程と、 所与のサーチを実行するために、前記構成のいずれが、
前記サーチに必要とされる判定基準メモリエントリを記
憶する判定基準メモリ記憶空間の最低量しか必要としな
い最小構成であるかを判定する過程と、 前記リストによって指示されるように、最小の利用可能
な構成をサーチする過程であって、前記最小構成で開始
し、最初の前記利用可能な最小構成が見つかるまで、判
定基準メモリ空間の消費が増加する順序に進行するよう
なサーチする過程と、 前記サーチのために必要とされる前記判定基準メモリエ
ントリを記憶するために、前記最小の利用可能な構成を
割り当て、前記割り当てられた構成が利用可能でなくな
ることを示すために、利用可能性のリストを更新する過
程とを有する、方法。 - 【請求項18】 前記最小構成以外の構成が割り当てら
れる場合には、前記割り当てられた構成のうちの不要な
部分が、別の判定基準メモリエントリに割り当てること
ができる異なる構成として用いることができるか否かを
判定する過程と、前記異なる構成の前記利用可能性を示
すために前記利用可能性のリストを更新する過程とをさ
らに有する、請求項17に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/459,448 US6587463B1 (en) | 1999-12-13 | 1999-12-13 | Packet classification engine |
US09/459448 | 1999-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001223749A true JP2001223749A (ja) | 2001-08-17 |
JP3734704B2 JP3734704B2 (ja) | 2006-01-11 |
Family
ID=23824816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000378432A Expired - Fee Related JP3734704B2 (ja) | 1999-12-13 | 2000-12-13 | パケット分類エンジン |
Country Status (5)
Country | Link |
---|---|
US (1) | US6587463B1 (ja) |
EP (1) | EP1128609B1 (ja) |
JP (1) | JP3734704B2 (ja) |
CA (1) | CA2326939C (ja) |
DE (1) | DE60026676T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362590A (ja) * | 2003-06-06 | 2004-12-24 | Microsoft Corp | ネットワークファイアウォールを実装するための多層ベースの方法 |
JP2007243300A (ja) * | 2006-03-06 | 2007-09-20 | Fujitsu Ltd | 帯域制御プログラム、帯域制御装置、帯域制御方法 |
JP2020088519A (ja) * | 2018-11-21 | 2020-06-04 | 株式会社デンソー | 中継装置 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7230917B1 (en) * | 2001-02-22 | 2007-06-12 | Cisco Technology, Inc. | Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node |
US6973072B1 (en) * | 2001-02-22 | 2005-12-06 | Cisco Technology, Inc. | High performance protocol for an interconnect system of an intermediate network node |
US7286532B1 (en) * | 2001-02-22 | 2007-10-23 | Cisco Technology, Inc. | High performance interface logic architecture of an intermediate network node |
US6940854B1 (en) * | 2001-03-23 | 2005-09-06 | Advanced Micro Devices, Inc. | Systems and methods for determining priority based on previous priority determinations |
US7167472B2 (en) * | 2001-04-18 | 2007-01-23 | Brocade Communications Systems, Inc. | Fibre channel zoning by device name in hardware |
US7366194B2 (en) * | 2001-04-18 | 2008-04-29 | Brocade Communications Systems, Inc. | Fibre channel zoning by logical unit number in hardware |
US7286566B1 (en) * | 2001-05-08 | 2007-10-23 | Cortina Systems, Inc. | Multi-service segmentation and reassembly device that maintains reduced number of segmentation contexts |
US7389360B1 (en) * | 2001-11-05 | 2008-06-17 | Juniper Networks, Inc. | Context switched route lookup key engine |
US7813346B1 (en) * | 2001-11-21 | 2010-10-12 | Juniper Networks, Inc. | Filter-based forwarding in a network |
US7209482B1 (en) | 2001-12-21 | 2007-04-24 | Juniper Networks, Inc. | Reorder engine with error recovery |
US7043544B2 (en) * | 2001-12-21 | 2006-05-09 | Agere Systems Inc. | Processor with multiple-pass non-sequential packet classification feature |
US7423975B2 (en) | 2002-03-05 | 2008-09-09 | Broadcom Corporation | Method, apparatus and computer program product for performing data packet classification |
US7684400B2 (en) * | 2002-08-08 | 2010-03-23 | Intel Corporation | Logarithmic time range-based multifield-correlation packet classification |
US7724740B1 (en) * | 2002-08-27 | 2010-05-25 | 3Com Corporation | Computer system and network interface supporting class of service queues |
US7554980B1 (en) * | 2002-10-18 | 2009-06-30 | Alcatel Lucent | Packet classification using relevance scoring |
US8040886B2 (en) * | 2003-04-08 | 2011-10-18 | Cisco Technology, Inc. | Programmable packet classification system using an array of uniform content-addressable memories |
US7352740B2 (en) * | 2003-04-29 | 2008-04-01 | Brocade Communciations Systems, Inc. | Extent-based fibre channel zoning in hardware |
US8788823B1 (en) * | 2003-09-03 | 2014-07-22 | Cisco Technology, Inc. | System and method for filtering network traffic |
US7430203B2 (en) * | 2004-01-29 | 2008-09-30 | Brocade Communications Systems, Inc. | Fibre channel zoning hardware for directing a data packet to an external processing device |
CN100347992C (zh) * | 2004-07-09 | 2007-11-07 | 清华大学 | 实现线速对数据流按规则库近似匹配的可配置的硬件结构 |
US7492763B1 (en) * | 2004-07-16 | 2009-02-17 | Applied Micro Circuits Corporation | User-specified key creation from attributes independent of encapsulation type |
US7340570B2 (en) * | 2004-08-18 | 2008-03-04 | Intel Corporation | Engine for comparing a key with rules having high and low values defining a range |
US7630318B2 (en) * | 2004-12-15 | 2009-12-08 | Agilent Technologies, Inc. | Filtering wireless network packets |
US8631483B2 (en) * | 2005-06-14 | 2014-01-14 | Texas Instruments Incorporated | Packet processors and packet filter processes, circuits, devices, and systems |
US20090052443A1 (en) * | 2007-08-23 | 2009-02-26 | Santosh Kolenchery | Method and apparatus for managing dynamic filters for nested traffic flows |
US20090271857A1 (en) * | 2008-04-25 | 2009-10-29 | Jia Wang | Method and apparatus for filtering packets using an approximate packet classification |
US7957273B2 (en) * | 2008-06-06 | 2011-06-07 | Redpine Signals, Inc. | Packet re-transmission controller for block acknowledgement in a communications system |
US9106539B2 (en) * | 2009-03-26 | 2015-08-11 | At&T Intellectual Property I, L.P. | User-controlled network configuration for handling multiple classes of service |
DE102010020446B4 (de) | 2010-05-12 | 2012-12-06 | Wago Verwaltungsgesellschaft Mbh | Automatisierungsgerät und Verfahren zur beschleunigten Verarbeitung von selektierten Prozessdaten |
TWI540431B (zh) * | 2014-09-04 | 2016-07-01 | 晨星半導體股份有限公司 | 電子裝置及其管理方法 |
US10326817B2 (en) * | 2016-12-20 | 2019-06-18 | Cisco Technology, Inc. | System and method for quality-aware recording in large scale collaborate clouds |
EP4113951B1 (en) * | 2021-06-29 | 2025-01-01 | Renesas Electronics Corporation | Frame data processing |
US20230319168A1 (en) * | 2022-04-01 | 2023-10-05 | Nxp B.V. | Hardware ethernet header verification |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3369204B2 (ja) * | 1991-10-25 | 2003-01-20 | 株式会社東芝 | プログラマブルコントローラ |
US5818838A (en) * | 1995-10-12 | 1998-10-06 | 3Com Corporation | Method and apparatus for transparent intermediate system based filtering on a LAN of multicast packets |
US6081522A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US6041053A (en) * | 1997-09-18 | 2000-03-21 | Microsfot Corporation | Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards |
-
1999
- 1999-12-13 US US09/459,448 patent/US6587463B1/en not_active Expired - Fee Related
-
2000
- 2000-11-28 CA CA002326939A patent/CA2326939C/en not_active Expired - Fee Related
- 2000-12-04 DE DE60026676T patent/DE60026676T2/de not_active Expired - Fee Related
- 2000-12-04 EP EP00310753A patent/EP1128609B1/en not_active Expired - Lifetime
- 2000-12-13 JP JP2000378432A patent/JP3734704B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362590A (ja) * | 2003-06-06 | 2004-12-24 | Microsoft Corp | ネットワークファイアウォールを実装するための多層ベースの方法 |
JP4521225B2 (ja) * | 2003-06-06 | 2010-08-11 | マイクロソフト コーポレーション | ネットワークファイアウォールを実装するための多層ベースの方法 |
JP2007243300A (ja) * | 2006-03-06 | 2007-09-20 | Fujitsu Ltd | 帯域制御プログラム、帯域制御装置、帯域制御方法 |
JP2020088519A (ja) * | 2018-11-21 | 2020-06-04 | 株式会社デンソー | 中継装置 |
JP7225729B2 (ja) | 2018-11-21 | 2023-02-21 | 株式会社デンソー | 中継装置及び中継方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2326939C (en) | 2007-01-09 |
EP1128609A3 (en) | 2004-03-24 |
CA2326939A1 (en) | 2001-06-13 |
DE60026676D1 (de) | 2006-05-11 |
EP1128609A2 (en) | 2001-08-29 |
US6587463B1 (en) | 2003-07-01 |
DE60026676T2 (de) | 2006-11-09 |
EP1128609B1 (en) | 2006-03-15 |
JP3734704B2 (ja) | 2006-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3734704B2 (ja) | パケット分類エンジン | |
US7382787B1 (en) | Packet routing and switching device | |
US9154442B2 (en) | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors | |
US6044418A (en) | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers | |
US7606236B2 (en) | Forwarding information base lookup method | |
US7058642B2 (en) | Method and data structure for a low memory overhead database | |
US7257616B2 (en) | Network switch and components and method of operation | |
US6633565B1 (en) | Apparatus for and method of flow switching in a data communications network | |
US7304999B2 (en) | Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines | |
KR100498824B1 (ko) | Vlsi 네트워크 프로세서 및 방법 | |
US7000061B2 (en) | Caching queue status updates | |
US20050171937A1 (en) | Memory efficient hashing algorithm | |
EP1109363A2 (en) | Routing engine | |
KR20020024332A (ko) | 네트워크 프로세서, 메모리 조직 및 방법 | |
JPH0685842A (ja) | 通信装置 | |
JP2003508957A (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 | |
CN111937360A (zh) | 最长前缀匹配 | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
JP4209186B2 (ja) | パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ | |
EP1530854B1 (en) | Packet processing engine | |
US6895013B1 (en) | Coherent access to and update of configuration information in multiprocessor environment | |
KR100429543B1 (ko) | 네트워크 프로세서에서 다양한 개수의 포트들을 처리하기위한 방법 | |
CN114143195A (zh) | 一种数据包处理装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050822 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |