JP3640299B2 - ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ - Google Patents
ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ Download PDFInfo
- Publication number
- JP3640299B2 JP3640299B2 JP2000378438A JP2000378438A JP3640299B2 JP 3640299 B2 JP3640299 B2 JP 3640299B2 JP 2000378438 A JP2000378438 A JP 2000378438A JP 2000378438 A JP2000378438 A JP 2000378438A JP 3640299 B2 JP3640299 B2 JP 3640299B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- request
- queue
- result
- classification
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、データ通信ネットワークの分野に関する。
【0002】
【従来の技術】
データ通信ネットワークでは、ネットワークを通してパケットを経路指定するために、スイッチなどのネットワーク装置が使用される。一般に、各スイッチは、各々が異なるネットワークセグメントに接続された多数のラインインタフェースを有している。パケットが所定のラインインタフェースで受信される場合、フォワーディングロジックは、パケットがいずれのラインインタフェースから送信されるべきかを決定し、パケットは、適当な出力ラインインタフェースに転送されることにより、ネットワークのその宛先に向かって送信される。
【0003】
ラインインタフェースにおいて、マイクロプロセッサと共に専門のフォワーディングロジックを採用することが知られている。マイクロプロセッサは、パケット処理およびフォワーディング全体に対して責任を有している。フォワーディングロジックは、高速メモリに1つまたは複数のフォワーディングテーブルを格納する。フォワーディングテーブルは、一般にパケット内に含まれる宛先アドレスに基づいて、パケットがいかに送られるべきかを示す情報を含む。フォワーディングテーブルは、スイッチで実行しているバックグラウンドプロセスによって保持される。ラインインタフェースでパケットが受信されると、マイクロプロセッサは、パケットから選択された情報を含むルックアップ要求を生成し、フォワーディングロジックにルックアップ要求を発行する。フォワーディングロジックは、1つまたは複数のフォワーディングテーブルの専用の探索を実行し、マイクロプロセッサにルックアップ結果を返す。ルックアップ結果は、フォワーディング情報が見つかったか否かの指示を含み、見つかっている場合、フォワーディング情報自体を含む。マイクロプロセッサは、そのフォワーディング情報を使用してパケットを送る。このアーキテクチャが使用されることにより、マイクロプロセッサのみを使用して達成され得るものよりも高いパケットフォワーディングレートが達成される。
【0004】
また、スイッチなどのネットワーク装置においてパケットフィルタリングを実行することも知られている。パケットフィルタリングは、トラフィックの監視およびセキュリティの目標など、種々のネットワーク管理目標を達成するために使用することができる。フィルタリング基準は、ネットワーク管理者によって確立され、フィルタリング動作を実行するスイッチまたは他の装置に提供される。スイッチによって受信されるパケットがチェックされることにより、確立されたフィルタのいずれかに対しそれらパケットの特徴が基準に一致するか否かが判断される。1つまたは複数のフィルタに対する基準を満たすパケットに対し、それらフィルタに関連する予め決められた動作が実行される。たとえば、環境によっては、所定のネットワークノードから発信しているパケットがネットワークにおいて送られずに破棄されることが望ましい場合がある。基準が、パケットソースアドレスが特定の値、すなわちパケットが破棄されるべきノードのアドレスに正確に一致しているということである、フィルタを定義することができる。そのフィルタに関連する動作は、パケットの破棄である。ソースアドレスがこの基準を満たすパケットが受信されると、それは、正常な方法で送られずに破棄される。
【0005】
パケットをフィルタリングするために使用されてもよい、多数の異なる種類の基準がある。これら基準は、範囲チェック、すなわち、パケットの値がある値の範囲内にあるか否かをチェックすることと共に、完全な一致を含む。基準として、ソースアドレス、宛先アドレス、ポート識別子、サービスのタイプなど多数のパケットパラメータを使用することができる。有用であるために、パケットフィルタリングプロセスは、これらおよび他の基準の種々の組合せを用いて、フィルタが柔軟に定義されるようにしなければならない。
【0006】
【発明が解決しようとする課題】
パケットフィルタリングは、このような固有の複雑さを有するため、従来、パケットフィルタリングをサポートしているスイッチまたは他のネットワーク装置内のソフトウェアにおいて、広くまたは排他的に実行されてきた。しかしながら、高いパケットフォワーディング性能が要求される場合、ソフトウェアベースのフィルタリングはボトルネックをもたらす。ネットワーク管理者は、たとえば、以前のシステムがラインレートにおいて頑強なパケットフィルタリングが可能でなかったため、ネットワーク反応性とネットワークセキュリティとの間の望ましくないトレードオフを考慮しなければならなかった。
【0007】
【課題を解決するための手段】
本発明によれば、パケットフィルタリングの目的でパケット分類と共に高速フォワーディング探索を提供する、ネットワーク装置におけるパケット処理ロジックが、開示されている。フォワーディング性能を低下させる通信ボトルネックの発生を防止するために、パケット処理マイクロプロセッサと専用の探索および分類ロジックとの間に、新規な要求および応答アーキテクチャが使用される。
【0008】
パケット処理ロジックは、パケットプロセッサからルックアップ要求を受信する要求待ち行列を含み、各要求は、受信パケットからの種々の情報要素を含み、各要求は、要求に含まれる情報要素に基づいてルートルックアップとパケット分類との両方が実行されるべきであることを示す。ルートルックアップエンジン(RLE)は、要求から選択された情報要素を受信する要求待ち行列に連結された入力を有する。同様に、パケット分類エンジン(PCE)は、要求待ち行列に連結された入力を有する。各要求における情報要素に基づいて、RLEは、要求に対応するパケットがいかに送られるべきかを示すフォワーディング情報を探索し、PCEは、分類プロセスを実行し、要求に対応するパケットに関する分類情報を生成する。各要求に対し、RLEからのフォワーディング情報とPCEからの分類情報とが結合され、結果待ち行列に格納される1つの結果となる。各結果は、1つの通信トランザクションにおいてパケットプロセッサに供給される。
【0009】
この共有の要求および結果アーキテクチャにより、パケットプロセッサとPCEおよびRLEとの間の通信の効率および速度が向上し、高速パケットフォワーディングおよび分類が可能になる。
【0010】
本発明の他の態様、特徴および利点は、以下の詳細な説明において開示されている。
【0011】
【発明の実施の形態】
図1において、ネットワークスイッチ10が、それぞれのネットワークセグメント14に接続された多数のラインインタフェース12を含むものとして示されている。ラインインタフェース12は、パケットフォワーディングに対しラインインタフェース12間の接続を提供するために使用されるスイッチファブリック16に接続されている。スイッチファブリック16の動的構成を含むスイッチ10の動作全体は、スイッチ制御18によって制御される。概して、種々のネットワーク14は異なるタイプのものであってよい。たとえば、ある種のネットワークセグメント14は、OC−3/STM−1およびOC−12/STM−4など、種々の標準信号速度のいずれで動作する光リンクであってもよい。他のネットワークセグメント14は、たとえば同軸ケーブルを採用し異なるフォーマットの信号を搬送する非光リンクであってよい。
【0012】
各ラインインタフェース12は、当然のことながら、それが接続している特定のタイプのネットワークセグメント14と共に動作するよう設計されている。各ラインインタフェース12の1次タスクは、他のラインインタフェース12に接続されたネットワークセグメント14で送るために、接続されたネットワークセグメント14から受信したパケットまたはフレームを、スイッチファブリック16を介して別のラインインタフェース12に転送することと、接続されたネットワークセグメント14で送るために、スイッチファブリック16を介して他のラインインタフェース12からパケットを受信することと、である。
【0013】
図2は、1つのタイプのラインインタフェース12の構造を示す。このインタフェースは、4つの別々の光インタフェースポートを含み、それらは各々、物理的入力/出力およびフレーミング回路20(以下、物理的I/Oブロック20とする)とフォワーディングエンジン22とを含む。フォワーディングエンジン22は、すべて、図1のスイッチファブリック16とインタフェースするスイッチファブリックインタフェースロジック24に接続されている。また、フォワーディングエンジンは、ラインインタフェースI/Oプロセッサ(IOP)26とも通信する。タイミング制御ロジック28およびDC電源回路30もまた含まれている。
【0014】
各フォワーディングエンジン22は、接続された物理的I/Oブロック20とスイッチファブリックインタフェース24との間の双方向データ経路を提供する。受信されたパケットは、図1のスイッチファブリック16を介して他のラインインタフェース12に転送されるために、複数の固定サイズのATMのようなセルに分割される。スイッチファブリックインタフェース24を介してスイッチファブリック16から受信されたセルは、接続された物理的I/Oブロック20に出力転送されるために、パケットに再組立される。
【0015】
IOP26は、バックグラウンド機能、すなわち、パケットベースでは実行されないパケットのフォワーディングをサポートする機能を実行する汎用プロセッサである。IOP26によって実行される1つの機能は、図1のスイッチ制御18からパケットフォワーディング情報およびパケットフィルタリング情報を受信し、フォワーディングエンジン22にその情報を分配する。このプロセスについては、後述する。
【0016】
図3は、フォワーディングエンジン22のブロック図を示す。インバウンド分割および再組立(SAR)ロジックブロック40(以下、単にインバウンドSAR40とする)は、図2の物理的I/Oブロック20からスイッチファブリック16へのデータ経路を提供し、アウトバウンドSARロジックブロック42(以下、単にアウトバウンドSAR42とする)は、スイッチファブリック16からそれぞれの物理的I/Oブロック20へのデータ経路を提供する。各SAR40、42は、分割または再組立機能を実行する際に使用されるそれぞれの制御メモリ44、46およびパケットメモリ48、50に連結されている。
【0017】
SAR40、42は、共に64ビットPCIバス54を介してパケットヘッダディストリビュータ(PHD)特定用途向け集積回路(ASIC)52(以下、単にPHD ASIC52とする)に接続されている。後に詳述するように、PHD ASIC52は、PCIバス54と別の64ビットバス56との間のFIFO待ち行列インタフェースを提供する。バス56は、PHD ASIC52をフォワーディングプロセッサ(FP)58およびフォワーディングプロセッサメモリ60と接続する。また、PHD ASIC52は、別のバス62により図2のIOP26にも接続されている。
【0018】
図4は、図3のPHD52の構造を示す。FP58宛てのパケットヘッダおよび他のメッセージの一時的なバッファリングのために、1組の受信待ち行列またはRX待ち行列64が使用される。示されているように、4つのRX待ち行列64、すなわち高優先度トラフィックのための2つの待ち行列と低優先度トラフィックのための2つの待ち行列とがある。高優先度トラフィックの例は、認定速度(committed rate)など、高サービス品質(Quality of Service(QOS))保証を有するトラフィックである。低優先度トラフィックは、ベストエフォート(best−effors)など、QOSが低いかまたはQOSの無い保証を有するトラフィックである。各優先度レベルに対し、インバウンドSAR40から発信しているトラフィックに対する1つの待ち行列(「0」とラベル付けされている)と、アウトバウンドSAR42から発信しているトラフィックに対する他の待ち行列(「1」とラベル付けされている)と、がある。FP58からSAR40、42宛てのパケットヘッダおよび他のメッセージの一時的なバッファリングのために、1組の送信待ち行列またはTX待ち行列66が使用される。ルートおよび分類エンジン68は、FP58の代りにルートルックアップおよびあらゆるパケットフィルタリングチェックを実行する。パケットフィルタリング動作については後述する。ルートおよび分類エンジン68は、信号線69を介して待ち行列64,66からステータス情報を受信し、この情報を後述する方法でFP58に対し入手可能にする。
【0019】
フォワーディングエンジン22の動作全体を、図3および図4に関して述べる。パケットは、図2の関連する物理層回路、すなわち物理的I/Oブロック20からインバウンドSAR40によって受信され、パケットメモリ48に格納される。インバウンドSAR40は、パケットヘッダをPHD52のRX待ち行列64の適当な1つに転送する。FP58は、PHD52をポーリングすることにより、待ち行列ステータスを決定し、RX待ち行列64からパケットヘッダを適宜検索する。ヘッダ処理の一部として、FP58は、ルートおよび分類要求において各ヘッダからのいくつかの情報要素をルートおよび分類エンジン68に送信する。ルートおよび分類エンジン68は、要求におけるヘッダ要素に対しルートルックアップおよび種々のパケットフィルタリングチェックを実行し、これらチェックの結果を結果待ち行列(後述する)に配置する。FP58は、結果待ち行列からルートルックアップおよび分類結果を取得し、これら結果を用いてパケットに対し新たなヘッダを生成する。新たなヘッダは、パケットが分割後に送られるべき内部回路を識別する情報と共に、TX待ち行列66の1つを介してPHD52に戻すよう転送される。インバウンドSAR40は、新たなヘッダを検索し、受信したパケットのペイロード部と共にパケットメモリ48に配置し、新たなパケットを分割して、結果としてのセルを、FP58によって指定される内部回路の図1のスイッチファブリック16に転送する。
【0020】
アウトバウンド方向では、アウトバウンドSAR42は、図1のスイッチファブリック16からパケットを受信し、これらパケットを再組立してパケットメモリ50に入れる。パケットヘッダはPHD52に送信され、FP58によってPHD52から検索される。大抵のパケットに対し、ルートルックアップおよびフィルタリングチェックはインバウンド処理の間に既に実行されているため、これら動作は繰返されない。しかしながら、プロトコルによっては、インバウンドとアウトバウンドとの両方のパケットに対しルックアップおよびフィルタリングを要求するものがあり、そのためにこれら動作は、ルートおよび分類エンジン68と共にFP58によって任意に実行される。適当な場合は、FP58は、分割されたアウトバウンドパケットが受信される内部回路の識別に部分的に基づいて、パケットに対する新たなヘッダを定式化する。この新たなヘッダは、送信回路情報と共にPHD52に書込まれる。PHD52は、新たなヘッダをアウトバウンドSAR42に転送する。アウトバウンドSAR42は、パケットペイロードと共に新たなヘッダをパケットメモリ50に配置し、図2の関連する物理層インタフェース、すなわち物理的I/Oブロック20にパケットを送信する。
【0021】
図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に現れるステータスを含むステータス情報のいずれかを読出すことができるようにする。
【0022】
図6は、図5の要求待ち行列70を介してPCE76およびRLE74に渡されるルートおよび分類要求の構成を示す。要求のサイズは、4つの64ビットワードである。種々のフィールドは、以下のように定義されている。
【表1】
【0023】
上記表から分かるように、2つの別々の分類チェックのセットが提供されている。すなわち、一方は「PCEルート0」とラベル付けされたアドレスで開始し、他方は「PCEルート1」とラベル付けされたアドレスで開始する。これら別々の開始アドレスの重要性については、後述する。
【0024】
上述したように、図5のRLE74およびPCE76についてのそれぞれの入力FIFO78に対し、要求の適当なフィールドが提供される。要求IDおよびIP宛先アドレスなどのいくつかのフィールドは、RLE74とPCE76との両方に提供される。他のフィールドは、一方かまたは他方のみに対して提供される。PCEに経路指定されたフィールドの使用については、特に後述する。
【0025】
図7および図8は、図4のルートおよび分類エンジン68から読出される2つの異なるタイプのエントリのそれぞれの構成を示す。図7は、図5の結果待ち行列72から取得され、分類探索の結果を伝える、結果エントリを示す。図8は、ステータス情報を図3のFP58に伝えるために使用されるステータスエントリを示す。
【0026】
図7に示す結果エントリのフィールドは、以下のように定義される。
【表2】
【0027】
図8に示すステータスエントリのフィールドは、以下のように定義される。
【表3】
【0028】
ルートおよび分類エンジン68の概略的な動作を、図5ないし図8を参照して説明する。図3のFP58は、要求待ち行列70にルックアップおよび分類要求を書込む。要求が要求待ち行列70の最前列に達すると、RLE74およびPCE76のそれぞれの入力FIFO78に対し、要求からの異なる情報要素が同時に書込まれる。RLE74およびPCE76は、各要求の別々の部分に対し独立して動作し、概して、異なる時刻に所定の要求に対するそれぞれの処理動作を終了する。これら動作の結果は、出力FIFO80に書込まれる。所定のパケットについての結果のセットが共に出力FIFO80の最前列に達すると、1つの結合された結果が結果待ち行列72に書込まれる。その結合された結果は、上述したように、FP58によって読出され、図3のSAR40および42について新たなパケットヘッダおよび回路情報を定式化するために使用される。
【0029】
より詳細には、FP58は、バッチ方式でルートおよび分類エンジン68を使用する。要求待ち行列70に十分な空間がある場合、要求のバーストが書込まれる。上述したように、各要求のそれぞれの部分が、PCE76およびRLE74によって処理される。FP58は、RCE68に対して読出しコマンドを発行することによって結果を取得する。各読出しに対し、4つの64ビットエントリのブロックは、FPバス56を介してFP58に戻される。各ブロックは、読出し時に入手可能な限りの結果待ち行列72からの結果と、パディングとして多数のステータスエントリと、を含んでいる。これにより、結果ブロックにおける以下のような5つの異なる組合せのエントリの1つが読出される。
1.4つの結果エントリ
2.3つの結果エントリと続く1つのステータスエントリ
3.2つの結果エントリと続く2つのステータスエントリ
4.1つの結果エントリと続く3つのステータスエントリ
5.4つのステータスエントリ
【0030】
FP58は、概して、結果待ち行列72が空になるまで読出しコマンドを発行し、それは、1つまたは複数のステータスエントリが結果ブロックに含まれている時はいつでも推論される。そして、ルートおよび分類エンジン68が次の要求のバッチを処理する間、FP58は、これらの結果を使用する。FP58は、RLE74およびPCE76は使用中のままであり、待ち行列70,72およびFIFO78、80はオーバフローしないように、ステータス情報を使用して要求の流れを管理する。
【0031】
なお、例示されている実施の形態では、読出すことができるステータスエントリは1つしかなく、結果ブロックにおける複数のステータスエントリは、この1つのエントリの複数の読出しを表している。代替的な実施の形態では、たとえば、統計的収集の目的かまたは他のバックグラウンド処理のために、第2ないし第4のステータスエントリに追加の低優先度情報を提供することが有用である場合もある。
【0032】
結果にステータス情報を添付する1つの重要な利点は、FPバス56を使用する際の効率が改善されたことである。FP58が結果に対する読出しを発行する際はいつでも、有用な結果または有用なステータス情報のいずれかが返される。更に、結果ブロックがバースト方式で返されるため、読出しに関連するオーバヘッドが低減される。また、FP58は、1つの読出しトランザクションにおいて、RLE74およびPCE76の周りの待ち行列に関する情報と、RX待ち行列64およびTX待ち行列66に関する情報と、を取得する。
【0033】
図9は、図5のPCE76の構造を示す。フィルタおよびバインディング(後述する)を表すデータは、ルールメモリ(RM)82および基準メモリ(CM)84に格納される。CM84は、3つの共通にアドレス指定されたメモリCM086、CM188およびCM290を含む。3つの比較ロジックブロック92、94および96が、基準メモリ86、88および90のそれぞれに関連付けられている。アドレス指定および制御ロジック98は、図5の要求待ち行列70から受信した要求を復号化し、RM82およびCM84のアドレスを生成し、各要求によって要求されるように複数のルールを順序付けし、図5の結果待ち行列72に戻すよう渡される結果を生成する。また、アドレス指定および制御ロジック98は、図2のIOP26にインタフェースすることにより、IOP26によるRM82およびCM84の読出しおよび書込みを可能にする。バストランシーバ100は、IOP26とRM82およびCM84との間の必要なデータ経路を提供する。ANDゲート102は、比較ロジックブロック92、94および96からの対応するMATCHn出力がすべて真である場合に、1つのMATCH信号を提供する。
【0034】
パケットフィルタリングに対するルールセットは、一般に、ネットワーク管理ステーション(NMS)によって作成されるが、識別された流れに基づいてFP58によって動的に割当てられることも可能である。以下の情報の一部またはすべてが、フィルタに対しNMSまたはFP58によって提供される。すなわち、マスクを有するIP宛先アドレスと、マスクを有するIPソースアドレスと、IPプロトコル識別子と、TCP/UDPソースポートおよび宛先ポート識別子と、IPサービスタイプ識別子およびマスクと、種々のフラグと、である。フィルタからの種々の情報要素は、各受信パケットからの対応する要素と比較されることにより、パケットがフィルタ基準と一致するか否か判断される。一致する場合、故意にパケットを破棄するなど、フィルタに対するある特定の動作がとられる。一致しない場合、パケットをその宛先に向かって進行させるなど、一般にあるデフォルトの動作がとられる。
【0035】
従来から、パケットフィルタは、線形に探索される比較セットの順序付けられたリストとして表される。PCE76において、フィルタ要素は基準(比較値)とルール(各比較に使用されるリスト自体と演算子)とに分割される。このルールおよび基準の分離は、別々のルールメモリ(RM)82と基準メモリ(CM)84との使用に反映される。メモリ82および84が、それら各々の機能に対し別々に最適化されることにより、効率および性能が向上する。また、CM84内のエントリをRM82内の複数のルールによって参照することができることにより、記憶効率が向上する。
【0036】
RM82は、ルールメモリエントリのアレイを含み、それらの各々は2つのタイプのうちの1つとしてよい。第1のタイプは、1組の演算子と、対応するフィルタに対する比較対象を格納するCM84の行に対するポインタと、を含む。第2のタイプは、他のルールメモリエントリに対するポインタを含む。これらエントリは、逐次探索されている1組のルールにおける不連続なセグメント間のジャンプを実行するために使用される。例示されている実施の形態では、RM82は、16Kまでのエントリを含むことができる。
【0037】
CM84は、3つの別々のメモリCM086,CM188およびCM290に分割される。例示されている実施の形態では、それらは各々、4Kまでのエントリを含むことができる。CM84の構成は、IPパケット分類に固有の階層構造を活用する。いくつかのフィールドにおけるフィルタリングには、通常、他のフィールドに基づく同様のフィルタリングが付随することにより、いずれのフィールドが別々のメモリCM0、CM1およびCM2に格納されるかを制限することが適当である。これらの制限により、更に、記憶効率が向上する。最も一般的にフィルタリングされるフィールド、すなわちソースアドレスおよび宛先アドレスは、3つのメモリCM086、CM188およびCM290すべてにおいてサポートされている。後述するように、他のフィールドは、CM188および/またはCM290においてのみサポートされている。このアーキテクチャにより、CM84の空間を割当てる際に可能な柔軟性が最大化し、同時に、強力な並行探索が可能になる。CM84の構成および使用は、後により詳細に述べる。
【0038】
パケット分類エンジン(PCE)76の動作は、概して以下のように進む。
1.図2のIOP26により、RM82およびCM84が初期化される。これは、動的割当てによるかまたはネットワーク管理ステーション(NMS)(後述する)により、パワーアップ時および動作中に発生する。
【0039】
2.図5の要求待ち行列70から、FP58によって提起されるパケット分類要求が検索される。
【0040】
3.要求のルート0アドレスの内容によりRM82が索引付けされることによって、探索の第1ルールメモリエントリが検索される。エントリがポインタタイプである場合、検索されたエントリにおいてルールメモリアドレスに対しこのステップが繰返される。このステップは、複数回繰返すことが可能である。
【0041】
4.検索されたルールメモリエントリが演算子タイプである場合、ルールメモリエントリのCMアドレスによって指定される場所で、基準メモリエントリが検索される。CM84からの選択された比較対象は、ルールメモリエントリの演算子にしたがって要求の対応するフィールドと比較される。上述したように、種々のフィールドがマスクされてよい。
【0042】
5.DONE(終了)ビットが1にセットされたエントリに達するか、または一致状態が見つかる(すなわち、比較演算の結果がTRUE(真)である)まで、ルールメモリアドレスは1インクリメントする。ルールは、そのCARRY(キャリー)ビットをセットしてよく、それには、一致が宣言される前に次のルールもまたTRUEとして評価することが必要である。
【0043】
6.探索において見つかったルールメモリエントリがポインタタイプのエントリである場合、それは、基準メモリエントリではなく他のルールメモリエントリを指す。この場合、逐次のルール評価は、指定されたルールメモリエントリでの開始を続ける。
【0044】
7.上記プロセスは、要求のルート0アドレスで開始すると実行される。ルート0に関連するフィルタに対しDONEに達すると、プロセスはルート1アドレスでの開始が繰返される。一致が見つかると、結果は、それがルート0ルールを用いて見つかったのかルート1ルールを用いて見つかったのかを示す。
【0045】
8.一致が見つかることによるか、またはルート1探索においてDONEとなることにより、探索が終了すると、フィルタリングチェックの結果を示す結果が、結果待ち行列72に書戻される。結果は、チェックされた最終ルールのアドレスと、一致が見つかったか否かと、を含む。一致が見つかった場合、FP58によってそのアドレスが使用されることにより索引付けされ、結果に対して適当な動作を開始する動作テーブルに格納される。たとえば、一致が、ある値より小さいDAを有するすべてのパケットが落とされるべきであることを示すルールに対するものである場合、動作テーブルは、パケットが故意に破棄されるようなルーチンを指す。
【0046】
図10は、図5のルートルックアップエンジン(RLE)の構成を示す。図2のIOP26によって提供されるフォワーディングテーブルを格納するために、メモリ110が使用される。ルックアップ制御ロジック112は、メモリ110の動作を制御し、IOP26、図5のRLEの入力FIFO78および図5のRLEの出力FIFO80に対するインタフェースを含む。
【0047】
RLE74は、図3のフォワーディングプロセッサ58に対するネクストホップインデクスを決定するために使用される、ハードウェア探索エンジンである。RLEは、IPネットワーク、たとえば仮想私設網(Virtual private Network(VPN))および公のインタネットに対し、ユニキャストおよびマルチキャスト両方のIPアドレスルックアップを実行する。各IPネットワークは、そのネットワークに特定のメモリ110におけるフォワーディングテーブルのルートが割当てられる。
【0048】
パケットがマルチキャストである場合、探索は、まずIP宛先アドレス(DA)に対して実行され、続いてIPソースアドレス(SA)に対して実行される。この動作は自動的に発生し、通常、ネクストホップインデクスが見つかるかまたはインデクスが見つからずに探索キー(DAまたはSA)の終端に達する場合に終了する。いわゆるパトリシアツリーアルゴリズムを含む種々のルックアップアルゴリズムが使用されてよい。上記結果の説明に示すように、正常な探索は、フォワーディングテーブルの探索キー(DAまたはSAのいずれか)に対応する場所で見つかったネクストホップポインタを返す。ネクストホップポインタは、メッセージに対するフォワーディングエンベロープを生成するためにフォワーディングプロセッサ58に入手可能なネットワークアドレスの事前に定義されたテーブルにするポインタである。
【0049】
パケットルートルックアップおよび分類要求に対する提起および応答アーキテクチャを説明した。当業者には、本明細書で開示された発明の概念から逸脱することなく、上述した技術に対する他の変更および変形が可能であることが明らかとなろう。したがって、本発明は、添付の特許請求の範囲によってのみ限定されるものと見なされなければならない。
【図面の簡単な説明】
【図1】本発明によるパケット分類エンジンを組込んだネットワークスイッチのブロック図である。
【図2】図1のネットワークスイッチにおけるラインインタフェースのブロック図である。
【図3】図2のラインインタフェースにおけるパケットフォワーディングエンジンのブロック図である。
【図4】図3のフォワーディングエンジンにおけるパケットヘッダディストリビュータ特定用途向け集積回路(ASIC)のブロック図である。
【図5】図4のパケットヘッダディストリビュータASICにおけるルートおよび分類エンジンのブロック図である。
【図6】図5のルートおよび分類エンジンに渡されるルートおよび分類要求の構成の図である。
【図7】図5のルートおよび分類エンジンによって提供されるルートおよび分類結果の構成の図である。
【図8】図5のルートおよび分類エンジンによって提供されるステータス指示の構成の図である。
【図9】図5のルートおよび分類エンジンにおけるパケット分類エンジン(PCE)のブロック図である。
【図10】図5のルートおよび分類エンジンにおけるルートルックアップエンジン(RLE)のブロック図である。
Claims (8)
- パケット処理装置において、該パケット処理装置は、
パケットプロセッサから複数のルックアップ要求を受信するよう動作する要求待ち行列を含み、各要求が、対応する受信パケットからの種々の情報要素を含むと共に、ルートルックアップとパケット分類との両方がその要求に含まれるそれら情報要素に基づいて実行されており、該要求待ち行列は内部に空エントリの数を示すよう動作する関連ステータス情報を有しており、前記パケット処理装置はさらに、
該要求待ち行列に連結され、該要求待ち行列から要求の選択された情報要素を受信するよう動作するRLE入力待ち行列と、RLE出力待ち行列とを有するルートルックアップエンジン(RLE)であって、各要求の該選択された情報要素に基づいて、該要求に対応する前記パケットがどのように送られるべきかを示すフォワーディング情報を探索するよう動作し、該探索が完了した際に該RLE出力待ち行列に該フォワーディング情報を配置するよう動作するルートルックアップエンジン(RLE)と、
該要求待ち行列に連結され、該要求待ち行列から要求の選択された情報要素を受信するよう動作するPCE入力待ち行列と、PCE出力待ち行列とを有するパケット分類エンジンであって、各要求の該選択された情報要素に基づいて分類プロセスを実行すると共に、該要求に対応する該パケットに関する分類情報を生成するよう動作し、該分類プロセスが完了した際に、該PCE出力待ち行列に該分類情報を配置するよう動作するパケット分類エンジン(PCE)と、
該RLE出力待ち行列と、該PCE出力待ち行列とに連結される結果待ち行列であって、(i)各要求から結果として得られる該フォワーディング情報および該分類情報を受信し、(ii)各要求に対する1つの結果に該受信したフォワーディング情報および分類情報を含み、(iii)対応する通信トランザクションにおいて該パケットプロセッサに各結果を供給し、そして(iv)ステータス情報を使用して内部の空エントリの数を示すよう動作する結果待ち行列と、を含むことを特徴とするパケット処理装置。 - 前記PCEが、ルールメモリエントリを含むルールメモリを含み、各ルールメモリエントリが、前記分類プロセスに適用される対応する分類基準を表すものであり、各結果に含まれる前記分類情報が、該結果が生成された前記要求によって対応する分類基準が満たされるルールメモリエントリのアドレスを含む請求項1に記載のパケット処理装置。
- 前記PCEによって使用される前記情報要素のセットおよび前記RLEによって使用される前記情報要素のセットが、部分的に重複するがまったく同じではないものである請求項1記載のパケット処理装置。
- 前記部分的に重複する情報要素が、受信パケットからの宛先アドレスを含んでいる請求項3に記載のパケット処理装置。
- 該ステータス情報を該結果待ち行列からの結果と結合して結合された結果を生成するよう動作し、かつ、1つの対応する通信トランザクションの一部として前記パケットプロセッサに該結合された結果を供給するよう動作する読出しロジックを更に含む請求項1に記載のパケット処理装置。
- 前記読出しロジックが、バスを介して前記パケットプロセッサに連結されており、前記結合された結果は、複数の逐次的バスサイクルに亙ってマルチワードブロックとして該パケットプロセッサに供給される請求項5に記載のパケット処理装置。
- 前記結合された結果のブロックが、固定サイズブロックであり、この固定サイズブロックが前記パケットプロセッサに供給される時点で前記結果待ち行列において入手可能な数の結果エントリと、該結果ブロックをその固定サイズにパッドするために必要な数のステータスエントリとを含んでいる請求項6に記載のパケット処理装置。
- 前記読出しロジックが、バスを介して前記パケットプロセッサに連結されており、同様に該バスを介して該パケットプロセッサに連結された追加の待ち行列を更に具備し、各追加の待ち行列が、空エントリの数を示す関連するステータス情報を有し、該追加の待ち行列の該ステータス情報もまた、前記結合された結果に含まれている請求項5に記載のパケット処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/460,299 US6463067B1 (en) | 1999-12-13 | 1999-12-13 | Submission and response architecture for route lookup and packet classification requests |
US09/460299 | 1999-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001230817A JP2001230817A (ja) | 2001-08-24 |
JP3640299B2 true JP3640299B2 (ja) | 2005-04-20 |
Family
ID=23828141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000378438A Expired - Fee Related JP3640299B2 (ja) | 1999-12-13 | 2000-12-13 | ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ |
Country Status (5)
Country | Link |
---|---|
US (1) | US6463067B1 (ja) |
EP (1) | EP1109363B1 (ja) |
JP (1) | JP3640299B2 (ja) |
CA (1) | CA2327564C (ja) |
DE (1) | DE60021846T2 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068661B1 (en) | 1999-07-13 | 2006-06-27 | Alcatel Canada Inc. | Method and apparatus for providing control information in a system using distributed communication routing |
US6990103B1 (en) | 1999-07-13 | 2006-01-24 | Alcatel Canada Inc. | Method and apparatus for providing distributed communication routing |
US6963572B1 (en) * | 1999-10-22 | 2005-11-08 | Alcatel Canada Inc. | Method and apparatus for segmentation and reassembly of data packets in a communication switch |
US6687247B1 (en) * | 1999-10-27 | 2004-02-03 | Cisco Technology, Inc. | Architecture for high speed class of service enabled linecard |
US6711153B1 (en) * | 1999-12-13 | 2004-03-23 | Ascend Communications, Inc. | Route lookup engine |
US6848029B2 (en) * | 2000-01-03 | 2005-01-25 | Dirk Coldewey | Method and apparatus for prefetching recursive data structures |
US6697334B1 (en) | 2000-01-18 | 2004-02-24 | At&T Corp. | Method for designing a network |
TW498650B (en) * | 2000-03-22 | 2002-08-11 | Ind Tech Res Inst | Flexible and highly efficient packet classification method |
US6957272B2 (en) * | 2000-05-24 | 2005-10-18 | Alcatel Internetworking (Pe), Inc. | Stackable lookup engines |
US7286565B1 (en) * | 2000-06-28 | 2007-10-23 | Alcatel-Lucent Canada Inc. | Method and apparatus for packet reassembly in a communication switch |
US8619793B2 (en) * | 2000-08-21 | 2013-12-31 | Rockstar Consortium Us Lp | Dynamic assignment of traffic classes to a priority queue in a packet forwarding device |
JP3646638B2 (ja) * | 2000-09-06 | 2005-05-11 | 日本電気株式会社 | パケット交換装置及びそれに用いるスイッチ制御方法 |
US7061907B1 (en) * | 2000-09-26 | 2006-06-13 | Dell Products L.P. | System and method for field upgradeable switches built from routing components |
US7193968B1 (en) * | 2001-02-08 | 2007-03-20 | Cisco Technology, Inc. | Sample netflow for network traffic data collection |
US6940854B1 (en) * | 2001-03-23 | 2005-09-06 | Advanced Micro Devices, Inc. | Systems and methods for determining priority based on previous priority determinations |
US7142509B1 (en) * | 2001-09-12 | 2006-11-28 | Extreme Networks | Method and apparatus providing for delivery of streaming media |
US7464180B1 (en) * | 2001-10-16 | 2008-12-09 | Cisco Technology, Inc. | Prioritization and preemption of data frames over a switching fabric |
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 |
US7239639B2 (en) * | 2001-12-27 | 2007-07-03 | 3Com Corporation | System and method for dynamically constructing packet classification rules |
US7106740B1 (en) * | 2002-01-02 | 2006-09-12 | Juniper Networks, Inc. | Nexthop to a forwarding table |
KR100428773B1 (ko) | 2002-01-21 | 2004-04-28 | 삼성전자주식회사 | 라우터 시스템과 이를 이용한 포워딩 엔진 이중화 방법 |
JP2003324464A (ja) * | 2002-04-30 | 2003-11-14 | Fujitsu Ltd | データ検索装置及びデータ検索方法 |
US7280527B2 (en) * | 2002-05-13 | 2007-10-09 | International Business Machines Corporation | Logically grouping physical ports into logical interfaces to expand bandwidth |
US7372864B1 (en) | 2002-08-01 | 2008-05-13 | Applied Micro Circuits Corporation | Reassembly of data fragments in fixed size buffers |
US7701949B1 (en) * | 2003-06-24 | 2010-04-20 | Cisco Technology, Inc. | System and method for switching high priority traffic with low latency |
US7903555B2 (en) * | 2003-12-17 | 2011-03-08 | Intel Corporation | Packet tracing |
US7558890B1 (en) * | 2003-12-19 | 2009-07-07 | Applied Micro Circuits Corporation | Instruction set for programmable queuing |
US20050198362A1 (en) * | 2003-12-31 | 2005-09-08 | Navada Muraleedhara H. | Exception packet forwarding |
US7649879B2 (en) * | 2004-03-30 | 2010-01-19 | Extreme Networks, Inc. | Pipelined packet processor |
US7889750B1 (en) * | 2004-04-28 | 2011-02-15 | Extreme Networks, Inc. | Method of extending default fixed number of processing cycles in pipelined packet processor architecture |
JP2006333438A (ja) * | 2005-04-28 | 2006-12-07 | Fujitsu Ten Ltd | ゲートウェイ装置及びルーティング方法 |
US7894451B2 (en) * | 2005-12-30 | 2011-02-22 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US7822033B1 (en) | 2005-12-30 | 2010-10-26 | Extreme Networks, Inc. | MAC address detection device for virtual routers |
US7817633B1 (en) | 2005-12-30 | 2010-10-19 | Extreme Networks, Inc. | Method of providing virtual router functionality through abstracted virtual identifiers |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905723A (en) * | 1993-06-23 | 1999-05-18 | Cabletron Systems, Inc. | System for achieving scalable router performance |
US6081522A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US5918074A (en) * | 1997-07-25 | 1999-06-29 | Neonet Llc | System architecture for and method of dual path data processing and management of packets and/or cells and the like |
US6285679B1 (en) * | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6069895A (en) * | 1997-08-29 | 2000-05-30 | Nortel Networks Corporation | Distributed route server |
US6160811A (en) * | 1997-09-12 | 2000-12-12 | Gte Internetworking Incorporated | Data packet router |
US6266706B1 (en) * | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
US6259699B1 (en) * | 1997-12-30 | 2001-07-10 | Nexabit Networks, Llc | System architecture for and method of processing packets and/or cells in a common switch |
US6192051B1 (en) * | 1999-02-26 | 2001-02-20 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
-
1999
- 1999-12-13 US US09/460,299 patent/US6463067B1/en not_active Expired - Fee Related
-
2000
- 2000-12-04 CA CA002327564A patent/CA2327564C/en not_active Expired - Fee Related
- 2000-12-08 DE DE60021846T patent/DE60021846T2/de not_active Expired - Fee Related
- 2000-12-08 EP EP00310913A patent/EP1109363B1/en not_active Expired - Lifetime
- 2000-12-13 JP JP2000378438A patent/JP3640299B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE60021846T2 (de) | 2006-05-24 |
EP1109363B1 (en) | 2005-08-10 |
EP1109363A2 (en) | 2001-06-20 |
EP1109363A3 (en) | 2003-11-26 |
JP2001230817A (ja) | 2001-08-24 |
US6463067B1 (en) | 2002-10-08 |
CA2327564C (en) | 2005-06-28 |
DE60021846D1 (de) | 2005-09-15 |
CA2327564A1 (en) | 2001-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3640299B2 (ja) | ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
US7167474B2 (en) | Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer | |
US7016352B1 (en) | Address modification within a switching device in a packet-switched network | |
US6731652B2 (en) | Dynamic packet processor architecture | |
US6724767B1 (en) | Two-dimensional queuing/de-queuing methods and systems for implementing the same | |
US6633565B1 (en) | Apparatus for and method of flow switching in a data communications network | |
US7100020B1 (en) | Digital communications processor | |
US6172980B1 (en) | Multiple protocol support | |
JP3734704B2 (ja) | パケット分類エンジン | |
US8671219B2 (en) | Method and apparatus for efficiently processing data packets in a computer network | |
US8194666B2 (en) | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability | |
US7146478B2 (en) | Cache entry selection method and apparatus | |
EP1095325B1 (en) | Systems and methods for on-chip storage of virtual connection descriptors | |
US6147999A (en) | ATM switch capable of routing IP packet | |
US7649885B1 (en) | Network routing system for enhanced efficiency and monitoring capability | |
US6711153B1 (en) | Route lookup engine | |
US6658003B1 (en) | Network relaying apparatus and network relaying method capable of high-speed flow detection | |
US7664045B2 (en) | Sampling to a next hop | |
US5434855A (en) | Method and apparatus for selective interleaving in a cell-switched network | |
US6671277B1 (en) | Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control | |
US6963566B1 (en) | Multiple address lookup engines running in parallel in a switch for a packet-switched network | |
JP3645733B2 (ja) | ネットワーク中継装置及びネットワーク中継方法 | |
US6963567B1 (en) | Single address lookup table with multiple address lookup engines running in parallel in a switch for a packet-switched network | |
JP2000312225A (ja) | パケット中継装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040917 |
|
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: 20041220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050113 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |