JP4542539B2 - ルートルックアップエンジン - Google Patents

ルートルックアップエンジン Download PDF

Info

Publication number
JP4542539B2
JP4542539B2 JP2006319441A JP2006319441A JP4542539B2 JP 4542539 B2 JP4542539 B2 JP 4542539B2 JP 2006319441 A JP2006319441 A JP 2006319441A JP 2006319441 A JP2006319441 A JP 2006319441A JP 4542539 B2 JP4542539 B2 JP 4542539B2
Authority
JP
Japan
Prior art keywords
lookup
route
engine
memory
route lookup
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
Application number
JP2006319441A
Other languages
English (en)
Other versions
JP2007110745A (ja
Inventor
テー.ヘブ アンドリュー
ジー.チェリアン サンジェイ
Original Assignee
アセンド コミュニケーションズ インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アセンド コミュニケーションズ インコーポレーテッド filed Critical アセンド コミュニケーションズ インコーポレーテッド
Publication of JP2007110745A publication Critical patent/JP2007110745A/ja
Application granted granted Critical
Publication of JP4542539B2 publication Critical patent/JP4542539B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • H04Q3/66Traffic distributors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13097Numbering, addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13141Hunting for free outlet, circuit or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13204Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13216Code signals, frame structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1329Asynchronous transfer mode, ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13299Bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1332Logic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13367Hierarchical multiplexing, add-drop multiplexing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13384Inter-PBX traffic, PBX networks, e.g. corporate networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13389LAN, internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13399Virtual channel/circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Radio Relay Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)

Description

データ転送においてルートルックアップを実行するルートルックアップエンジンに関する。
ルータのようなネットワークデバイスは処理動作のその一部としてルートルックアップを実行しなくてはならない。ルートルックアップは、次にパケットがどこに送られるべきかを判断するために、ルータにより受け取られる各パケットごとに必要となる。受信パケットは32ビット長の宛先アドレスを含む。宛先アドレスはパケットの転送がなされる固有のアドレスを識別する。ルートルックアップでは受信パケットの宛先アドレスを使用して、ルーティングテーブルにおける次ホップアドレスと出口ポートを識別する。宛先アドレスが32ビット長である場合、宛先可能数は10憶以上となる。インターネットプロトコル(IP)アドレスはネットワーク番号とホスト番号から構成されている。ネットワーク番号は可変長であり、固有のネットワークを識別する。ネットワーク番号に連結しているのがホスト番号であり、ホスト番号は特定のネットワーク内の固有のホストシステムを識別する。受信アドレスのネットワーク番号部分はルーティングテーブルにおける複数エントリーとマッチングが行われる。この最適マッチは、アドレスの最初の部分のビットが最大数マッチングするものである。
しかしながら、この従来のルートルックアップにおいてマッチングを実行するために使用される従来技術による方法は複雑、かつ時間がかかる。よって、ルートルックアップを迅速、かつ効果的に実行するルートルックアップエンジンが必要とされる。
上述した問題を解決するため、本発明は次ホップインデックスを判断するルートルックアップエンジンを開示する。ルートルックアップエンジンはルックアップキーを受け取り、プレフィックスエキスパンションと可変ストライド(stride)ツリーキャプチャによりマルチビット樹木探索を実行する。ルートルックアップエンジンが返送するデータは、次ホップ情報およびステータスフラグより構成される。ルートルックアップエンジンはコンパクトでフィールド再利用可能なデータ構造を使用する。ルートルックアップエンジンでは仮想プライベートネットワーク上にてユニキャストIPアドレスルックアップおよびマルチキャストIPアドレスルックアップの両方を実行する。ルートルックアップエンジンは別々のインデックスメモリーと転送メモリーを使用する。ルートルックアップエンジンのサーチタイムの上界はルートテーブルサイズに関係なく決定される。
ルートルックアップエンジンを開示する。ルートルックアップエンジンは多数アプリケーションにおいて使用が可能である。望ましい実施形態においては、ルートルックアップエンジンは非同期トランスファモード(ATM)スイッチのインターネットプロトコル(IP)ルーティングサブシステムの一部である。ATMスイッチのルーティングサブシステムは迅速かつ効果的なルートルックアップメカニズムを提供する。図1はATMスイッチのトップレベルブロック図である。ATMスイッチは入/出力アダプタ52を備えている。この入/出力アダプタはインターフェースオプティクス、同期光ネットワーク(SONET)フレーマ、およびハイレベルデータリンク制御手順(HDLC)コントローラを備えている。ATMスイッチはまた、入/出力モジュール10を備えている。入/出力モジュールは複数の転送エンジン20を備えている。さらに入/出力モジュールはタイミング制御ユニット30、DC電流変換/分配ユニット40、スイッチファブリックインターフェース50、および制御プロセッサ60を備えている。入/出力モジュールのタイミング制御ユニット30はローカルタイミングのシステムリファレンスを物理層に提供する。入/出力モジュールのDC電流変換/分配ユニット40は直流直流コンバータより成る。パックプレインより可能な48ボルトはモジュールに必要な電圧に変換される。
スイッチファブリックインターフェース50は、スイッチファブリック経由で各転送エンジンとスイッチにおける他のカードとを連結する。データはATMセル形式で搬送される。スイッチファブリック過密情報もまたファブリックから返送され、転送エンジン用に再フォーマット/サマライズされる。
制御プロセッサ60は、バックグラウンド汎用プロセッサとしてペンティアム(登録商標)マイクロプロセッサにより構成される。転送エンジン20については以下に詳細に記載する。
図2は入/出力モジュールの単一転送エンジン20のブロック図である。転送エンジン20は、制御メモリ160およびパケットメモリ170と連動するインバウンドセグメンテーション/再アセンブリ(SAR)デバイス150、制御メモリ190およびパケットメモリ200と連動するアウトバウンドセグメンテーション/再アセンブリ(SAR)180、パケットヘッダーディストリビュータ210、パケット分類エンジン110、ルートルックアップエンジン100、転送プロセッサ130、転送プロセッサと連動するキャッシュ140、およびDRAM/SRAM120から構成されている。
転送エンジン20はインバウンドパケットおよびアウトバウンドパケットを処理する。インバウンドパケットに関して、パケットはインバウンドSAR150にトランスファされ、そこでパケットはパケットメモリ170に保存される。インバウンドSAR150は最高サービス品質パケットをパケットヘッダーディストリビュータ210に送る。転送プロセッサ130はパケットヘッダーディストリビュータのステータスチェックを行い、インバウンドパケットの受取りがいつ可能になるかを判断する。転送プロセッサ130は、パケットヘッダーディストリビュータFIFOからのプライオリティの最も高いヘッダーを検索し、これをキャッシュ140に保存する。転送プロセッサ130はヘッダーを処理し、ルートルックアップエンジン100とパケット分類エンジン110の両方に要求されたヘッダーエレメントを同時に送信する。そこで、それらはイグレス(egress)キューに保存される。ルートルックアップエンジン100はパブリックあるいは仮想プライベートネットワークユニキャストルックアップを実行し、必要な場合、次のマルチキャストルックアップを実行する。一方で、パケット分類エンジン110はヘッダーエレメントに対してフィルタチェックを実行する。
ルートルックアップエンジン100とパケット分類エンジン110のパケットヘッダーディストリビュータ210へのステータスパスが完了すると、転送プロセッサ130によりポーリングされるイグレスキューに結果を保存する。ルートルックアップエンジン100の動作については詳細を後述する。転送プロセッサ130はポーリングを行い、次に、新規ヘッダーが公式化されるルートルックアップと分類結果を得る。次に伝送情報に加えて新規ヘッダーがパケットヘッダーディストリビュータ210に書込まれる。インバウンドSAR150は新規にフォーマット化されたヘッダーを検索し、それをパケットの残りとともにパケットメモリ170に返送して、そして、セグメント化されスイッチファブリックに伝送されるパケットをスケジュールする。
転送エンジン20はアウトバウンドパケットを次のように処理する。ATMセルはスイッチパケットからアウトバウンドSAR180にトランスファされ、そこで全体パケットが再アセンブリされ、パケットメモリ200に保存される。アウトバウンドSAR180は最高サービス品質パケットのヘッダーをパケットヘッダーディストリビュータ210に送信する。転送プロセッサ130はパケットヘッダーディストリビュータ210のステータスチェックを行い、アウトバウンドパケットの受け取りが可能であることを判断する。転送プロセッサ130はパケットヘッダーディストリビュータFIFOからプライオリティの最も高いヘッダーを検索して、それをそれらのキャッシュに保存する。転送プロセッサ130はヘッダーを処理し、ルートルックアップエンジン100とパケット分類エンジン110の両方に要求されたヘッダーエレメントを同時に送信する。そこでそれらはイグレスキューに保存される。ルートルックアップエンジン100はパブリックあるいは仮想プライベートネットワークユニキャストルックアップを実行し、必要な場合、次のマルチキャストルックアップを実行する。一方で、パケット分類エンジン110はヘッダーエレメントに対してフィルタチェックを行う。
ルートルックアップエンジン100とパケット分類エンジン110のパケットヘッダーディストリビュータ210へのステータスパスが完了すると、転送プロセッサ130によりポーリングが行われるイグレスキューとなる。転送プロセッサ130はポーリングを行い、次に、新規ヘッダーが公式化されるルートルックアップと分類結果を得る。次に伝送情報に加えて新規ヘッダーがパケットヘッダーディストリビュータ210に書込まれる。アウトバウンドSAR180は新規にフォーマット化されたヘッダーを検索して、パケットの残りとともにパケットメモリ200にそれを返送し、物理フレームインターフェースに伝送されるパケットをスケジュールする。
図3は転送エンジン20のルートルックアップエンジン100のブロック図である。ルートルックアップエンジンは転送プロセッサ130の次ホップインデックスを判断するハードウェアサーチエンジンである。ルートルックアップエンジン100は、転送プロセッサインターフェース65、入/出力FIFO40および入/出力FIFO50、ルックアップコントローラ20、ルックアップテーブルDRAM30、および制御プロセッサインターフェース70とにより構成される。転送プロセッサインターフェース65はサーチエンジンのキーをロードするために使用される。キーは、物理ポート/論理ポートに固有のツリー根のアドレス/仮想プライベートネットワーク ID、IP宛先アドレス、IPソースアドレス、ツリーの第一レベルのオーダ、および、シーケンスエラーチェック用にヘッダーといっしょに返送されるオプショナルリクエストIDとにより構成される。制御プロセッサインターフェース70はルックアップ間のテーブル更新に使用される。
その動作において、転送プロセッサは、ルートルックアップエンジンとパケット分類エンジン両方の共通アドレスに1つあるいはそれ以上のキャッシュラインを同時に書込む。転送プロセッサインターフェース65はルートルックアップエンジンとパケット分類エンジン両方からの結果を同時に検索するために使用される。これらは、パケット分類エンジンより供給される結果部分とルートルックアップエンジンより供給される結果部分と共に同一アドレスから同時にリポートする。
ルートルックアップエンジンはFIFOもしくは他のインターフェースを備え、スループットを最大限にすることを可能にする。入/出力FIFOは、転送プロセッサからの複数ルックアップリクエストを所定時間で明確にする。これらのパケットが異なるルックアップ時間を有する場合、FIFOはいくつかのヘッダーバーストをイン/アウトさせることによりルックアップレートを平滑にする。ルートルックアップエンジンは仮想プライベートネットワーク(VPN)上でユニキャストIPアドレスルックアップおよびマルチキャストIPアドレスルックアップの両方を実行する。各仮想プライベートネットワークは、その仮想プライベートネットワークに特定のテーブル根に対するポインタとして使用される。多重仮想プライベートネットワークはソフトウェアの間接処理により同一ルートテーブルをマップする。
IPパケットを転送するために、パワープロセッサコントローラはルートルックアップリクエストをパケットヘッダディストリビュータに提示する。ルートルックアップエンジンのハードウェア可変ストライドツリーテーブルは、ルートルックアップエンジンからの回答と共に含まれる結果インデックスによりリクエストを解決するために使用される。インデックスがパワープロセッサコントローラに対し使用可能となると、これらは転送テーブルからの転送情報への直接アクセスのために使用される。
ルートルクアップからの結果は、次ホップインデックス、有効ルックアップ/ルート未発見ビット、ステータスフラグ、マルチキャストルックアップ実行ビット、統計情報、および、シーケンスエラーチェックのためのオプショナルリクエストIDにより構成される。
パケットがマルチキャストパケットである場合、ルートルックアップエンジンサーチはまず最初にIP宛先アドレスにおいて実行され、次にIPソースアドレスにおいて実行される。サーチにはプレフィックスエキスパンションおよびキャプチャによるマルチビット樹木探索を用いる。次ホップインデックスが発見されたかあるいはキー終了に達した場合にサーチは終了となる。この試みにおいてIPソースアドレスの終了時にIPヘッダーサーチの64ビット超を継続させると、ハードウェアエラーチェックはサーチを終了させ、エラーリポートを行う。ルーティングサブシステムのルートルックアップエンジンマネジャーはルートルックアップエンジンメモリ管理を行う。ルートルックアップエンジンメモリは、デフォルト仮想プライベートネットワーク(VPN)、VPN0を含む、構成された仮想プライベートネットワーク(VPN)各々に対するハードウェア可変ストライドツリー(VST)ルートテーブルを保存するために使用される。各ハードウェアVSTは最小の近接メモリスペースが保証されている。残りのメモリスペースはメモリブロックのフリープールとして利用可能である。ルートがVSTテーブルに追加されると、また、これから削除されると、メモリブロックがこれらメモリプールから割当てされ、そして、これらメモリプールに解除される。ルーティングサブシステムはメモリの断片化を最小に保つよう管理する。
ルーティングサブシステムは、パワープロセッサコントローラのメモリ上の転送データベースレジデントとルートルックアップエンジンのメモリー上のハードウェアVSTテーブルレジデントとを確実に同期させておく。同様に、カーネルプロセッサのメモリ上のソフトウェアVSTテーブルレジデントはルートルックアップエンジンのハードウェアVSTテーブルと同期を保たなくてはならない。
ルートルックアップエンジンはローカルメモリに備わったVSTベースルートルックアップテーブルを含む。これらのVSTテーブルは1つの特定ルートに一致する。ハードウェアVSTテーブルの各エントリは、パワープロセッサコントローラメモリ上の転送テーブルレジデント内における相当転送エントリに対するインデックスを有する。
各VPNに関して、シングルソフトウェアVSTはカーナルプロセッサのメモリにて維持され、相当のハードウェアVSTはルートルックアップエンジンメモリにて維持される。VSTルートテーブルは高レートにて最適マッチングプレフィックスをサポートするVSTデータ構造にて構築される。VSTテーブルはサーチキーを別個のビットストリングに分割することで構築される。サーチキーはIPアドレスである。VSTレベル数はルートルックアップ中の最大メモリアクセス数を特定する。このように、ルックアップを完了する時間はバウンドされるが決定性を持つものではない。各VSTレベル長はストライド長として知られ、その区分を表すノード内のエレメント数を判断する。
ハードウェアVSTデータ構造は次のようになる。

エレメント
Figure 0004542539

タイプ : 0=葉,1=ノード
オーダ : ノードについてlog、葉についてプレフィックス長
ポインタ : 次ノードのベースアドレスに対するポインタ(無効の場合ゼロ、または転送エントリに対するインデックス(無効の場合0xFFFFFF)

ノード
Figure 0004542539
ハードウェアルートサーチデータ構造はノードにより構成され、その各々はエレメントのアレーである。ノードにおけるエレメント数はノードオーダにより決定する。ここでオーダは、このノードの評価に使用されるサーチキー(宛先IPアドレス)のビット数である。各エレメントは、葉か他のノード根のどちらかとして次ノードを指示するタイプインジケータを有する。現在のノードのタイプが「ノード」である場合、オーダは次ノードのオーダを示す。また、現在のノードのタイプが「葉」である場合、オーダは葉のプレフィックス長を示す。ポインタフィールドはエレメントタイプにより決定する。タイプが「葉」である場合、ポインタはフォアグラウンドの転送テーブルのインデックスであり、宛先アドレス/マスクペアの転送エントリを識別する。タイプが「ノード」である場合、ポインタは評価される次ノードのアドレスを識別するサーチスペースのポインタである。次のテーブルはオーダの意味と異なるタイプのポインタフィールドを示したものである。
Figure 0004542539

Figure 0004542539

P: パリティビット。奇数パリティはハードウェアによりオプショナルにS DRAMに書込まれ、SDRAMより読取られる。
{1ビット}
T: タイプビット 0=ノード,1=葉{1ビット}
I: 間接ビット。1=間接,0=ダイレクト
{1ビット}
オーダ : 1から32に相当する次レベルのオーダ{5ビット}
RLE-Root/Flag.NHP: (ルートルックアップエンジン(RLE)根/フラ グ.次ホップポインタ):Tビットによってこのデータフィールド に対し2コンテキストが存在する。ノードの場合、次ノードポイン タ{24ビット}、または葉の場合、RLE次ホップポインタ{1 6ビット}にプリペンドされたRLEフラグ(8ビット)。
ルートルックアップエンジン根はサーチ開始に使用される。ルートルックアップエンジン根は根ポインタとツリーの第一レベルのオーダを含む。第一ルックアップアドレスは根ポインタ、プラス、インデックスにより構成される。インデックスは宛先アドレスの上位ビットから導出される。ビット数は可変であり、第一レベルのオーダによって示される。このアドレスはテーブルからのエレメントをルックアップするために使用される。このエレメントが葉である場合、サーチは完了し、エレメントはパケット分類エンジン/ルートルックアップエンジンマネジャーにもどされる。エレメントがノードである場合、ポインタは次のルックアップに使用される。
次ルックアップのアドレスは上記のポインタ、プラス、インデックスから成る。インデックスは宛先アドレスからの「次」ビットから導出される。正確なビットは、最終レベルのオーダ、プラス、このレベルのオーダから導出される。ゆえに、インデックスに使用される宛先アドレスの相当ビットを知る目的で、各レベルのオーダがトラックされなくてはならない。
このアドレスはテーブルのエレメントをルックアップするために再度使用される。このエレメントが葉である場合、サーチは完了し、このエレメントはパケット分類エンジン/ルートルックアップエンジンマネジャーにもどされる。このエレメントがノードである場合、ポインタは次のルックアップに使用される。これは葉が見つけ出されるまで繰り返される。アクセス数やレベル数が最大数を超過した場合には、代わりにエラーが返送される。
ある構成においてはルートルックアップに間接方法を有することが望ましい。これは間接ビットを用い達成される。間接ビットが設定されると、葉フラグは無視され、オーダフィールドは使用されず、そのインデックスロケーションから返送されたルート結果により、現24ビットポインタがダイレクトテーブルインデックスとして使用される。間接ファンクションはデプスをゼロに設定することにより呼び出すことも可能である。
図4は、本発明によりルートルックアップを実行する方法300のフローチャートである。ルックアップはステップ310にてリクエストを受け取ることから開始する。ステップ320において、これがそのリクエストに対する最初のルックアップであるかどうかの判断が行われる。これがリクエストに対する最初のルックアップでない場合、ステップ330に示すように、TYPE、INDIRECT、ORDER、およびRLE ROOTの前回値が使用される。これがリクエストに対する最初のルックアップである場合、TYPE、INDIRECT、ORDER、およびRLE ROOTがリクエストブロックデータから取り出される。
ステップ350において、TYPEビットが評価される。タイプが「葉」でない場合、ステップ420において、DRAMアドレスは、宛先アドレスとソースアドレスが繋げられたRLE ROOT+0に設定される。
次にステップ430において、DRAMアドレスからの読取りが実行され、TYPE、INDIRECT、ORDER、およびRLE ROOTの新規値が得られる。ステップ440において、現在のオーダが、現オーダ、プラス、オーダに設定される。
ステップ450において、現在のオーダが64よりも小さいかあるいは等しいかの判断がなされる。そうでない場合、エラーコンディションが示されてサーチは終了する。現在のオーダが64よりも小さいかあるいは等しい場合には、現在のオーダが32より大きいかどうかがステップ470にて判断される。もしそうでない場合、ステップ320より開始する他のルックアップが実行される。現在のオーダが32により大きい場合、ステップ480が実行され、マルチキャストオペレーションを示すLビットが設定される。ステップ480の後、ステップ320より開始する他のルックアップが実行される。
ステップ350に戻り、TYPEビットが「葉」でなかった場合、ステップ360にて間接ビットが設定されるかどうかが判断される。間接ビットが設定されない場合、ステップ410で示すようにルックアップは完了し、その結果が保存される。
間接ビットがステップ360にて設定されると、ステップ370において、DRAMアドレスがRLE ROOTに設定される。ステップ380において、RLE DRAMのアドレスが読取られ、TYPE、INDIRECT、ORDER、およびRLE ROOTの新規値が得られる。ステップ390において、INDIRECTビットが設定される場合、あるいはタイプが「ノード」の場合、エラーコンディションが示され、ステップ400で示すようにルックアップは終了する。INDIRECTビットが設定されないか、あるいはTYPEビットがノードを示さないかのどちらかである場合、ステップ410で示すようにルックアップは完了となり、その結果が保存される。
以上、本発明の実施形態を詳細に説明したが、本発明の範囲を逸脱することなく他の方法でも具体化出来ることは当業者にとって明らかである。
ATMスイッチのトップレベルブロック図である。 転送エンジンのブロック図である。 本発明によるルートルックアップエンジンのブロック図である。 本発明に基づいてルートルックアップを実行するフローチャートである。

Claims (8)

  1. ルートルックアップエンジンであって、
    少なくとも1つのネットワークに対して少なくとも1つの可変ストライドツリーを含む可変ストライドツリーメモリ、
    単一の宛先、複数の宛先及び間接的なルートで構成されるグループから選択された1つの宛先に関連した次ホップインデックスを得るために、該可変ストライドツリーメモリとの通信を行い、該可変ストライドツリーメモリを1つのルートから1つの葉へ、ルートデータ及び葉データを含むブロックデータを用いてサーチするように適合したルックアップコントローラ、及び
    前記ルックアップコントローラとの電気通信を行う転送プロセッサインターフェースであって、前記可変ストライドツリーのサーチを開始するためのサーチキーを供給する転送プロセッサインターフェース
    からなるルートルックアップエンジン。
  2. 前記少なくとも1つのネットワークは仮想プライベートネットワークであることを特徴とする請求項1記載のルートルックアップエンジン。
  3. 前記可変ストライドツリーメモリの更新を行うために前記ルックアップコントローラと通信するプロセッサインターフェースをさらに備えた請求項1記載のルートルックアップエンジン。
  4. 前記転送プロセッサインターフェースと前記ルックアップコントローラに接続されたルックアップキーメモリをさらに備えた請求項1記載のルートルックアップエンジン。
  5. 前記ルックアップキーメモリがFIFO(先入れ先出し)メモリであることを特徴とする請求項4に記載のルートルックアップエンジン。
  6. 前記ルックアップコントローラと前記転送プロセッサインターフェースに接続された次ホップ結果メモリをさらに備えたことを特徴とする請求項1に記載のルートルックアップエンジン。
  7. 前記次ホップ結果メモリがFIFOメモリであることを特徴とする請求項6に記載のルートルックアップエンジン。
  8. 前記プロセッサインターフェース、前記転送プロセッサインターフェース、および前記ルックアップコントローラと通信を行う制御/ステータスレジスタを備えたことを特徴とする請求項1に記載のルートルックアップエンジン。
JP2006319441A 1999-12-13 2006-11-28 ルートルックアップエンジン Expired - Fee Related JP4542539B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/459,441 US6711153B1 (en) 1999-12-13 1999-12-13 Route lookup engine

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000378532A Division JP3926558B2 (ja) 1999-12-13 2000-12-13 ルートルックアップエンジン

Publications (2)

Publication Number Publication Date
JP2007110745A JP2007110745A (ja) 2007-04-26
JP4542539B2 true JP4542539B2 (ja) 2010-09-15

Family

ID=23824784

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000378532A Expired - Fee Related JP3926558B2 (ja) 1999-12-13 2000-12-13 ルートルックアップエンジン
JP2006319441A Expired - Fee Related JP4542539B2 (ja) 1999-12-13 2006-11-28 ルートルックアップエンジン

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000378532A Expired - Fee Related JP3926558B2 (ja) 1999-12-13 2000-12-13 ルートルックアップエンジン

Country Status (4)

Country Link
US (1) US6711153B1 (ja)
EP (1) EP1122927A3 (ja)
JP (2) JP3926558B2 (ja)
CA (1) CA2326928C (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850516B2 (en) * 2000-03-02 2005-02-01 Agere Systems Inc. Virtual reassembly system and method of operation thereof
US7000034B2 (en) * 2000-03-02 2006-02-14 Agere Systems Inc. Function interface system and method of processing issued functions between co-processors
DE10011667C2 (de) * 2000-03-10 2002-11-21 Infineon Technologies Ag Hochgeschwindigkeits-Router
US6798777B1 (en) 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US6957272B2 (en) * 2000-05-24 2005-10-18 Alcatel Internetworking (Pe), Inc. Stackable lookup engines
US6555511B2 (en) * 2000-06-19 2003-04-29 Lance L. Renfrow Stable hydrotropic surfactants comprising alkylamino propionate
US6880064B1 (en) * 2000-06-21 2005-04-12 Mosaid Technologies, Inc. Method and apparatus for physical width expansion of a longest prefix match lookup table
JP4225681B2 (ja) * 2000-12-06 2009-02-18 富士通株式会社 仮想閉域網構築方法及び装置並びに中継装置
US6940854B1 (en) * 2001-03-23 2005-09-06 Advanced Micro Devices, Inc. Systems and methods for determining priority based on previous priority determinations
US7389360B1 (en) * 2001-11-05 2008-06-17 Juniper Networks, Inc. Context switched route lookup key engine
US20030174717A1 (en) * 2002-03-15 2003-09-18 Boris Zabarski System and method for longest prefix match for internet protocol lookup
US7493412B2 (en) 2002-09-12 2009-02-17 International Business Machines Corporation Method for processing a data packet
US7356033B2 (en) * 2002-11-21 2008-04-08 Lucent Technologies Inc. Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures
US7924839B2 (en) * 2002-12-06 2011-04-12 Stmicroelectronics, Inc. Mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm
US7782853B2 (en) * 2002-12-06 2010-08-24 Stmicroelectronics, Inc. Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine
US7620040B2 (en) * 2002-12-11 2009-11-17 Aspen Networks, Inc. Application non disruptive task migration in a network edge switch
DE10260604B4 (de) * 2002-12-23 2006-09-21 Infineon Technologies Ag Multikanal-Prozessor
KR100512949B1 (ko) * 2003-02-28 2005-09-07 삼성전자주식회사 필드레벨 트리를 이용한 패킷분류장치 및 방법
US7702882B2 (en) * 2003-09-10 2010-04-20 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US7586911B2 (en) * 2003-10-17 2009-09-08 Rmi Corporation Method and apparatus for packet transmit queue control
GB0524845D0 (en) * 2005-12-06 2006-01-11 Univ Belfast Sorting apparatus and method
US7644343B2 (en) * 2006-01-17 2010-01-05 Rajugopal Gubbi Error resilience methods for multi-protocol encapsulation forward error correction implementations
CN1946052A (zh) * 2006-10-19 2007-04-11 北京四达时代软件技术有限公司 单向网络视频点播的门户系统
WO2011078812A1 (en) * 2009-12-22 2011-06-30 Bazlamacci Cuneyt F Systolic array architecture for fast ip lookup
US10135734B1 (en) 2015-12-28 2018-11-20 Amazon Technologies, Inc. Pipelined evaluations for algorithmic forwarding route lookup

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274347A (ja) * 1992-01-10 1993-10-22 Digital Equip Corp <Dec> アドレス知覚エンジン
WO1996000945A1 (en) * 1994-06-30 1996-01-11 International Business Machines Corp. Variable length data sequence matching method and apparatus
JPH09511105A (ja) * 1993-12-24 1997-11-04 ニューブリッジ ネットワークス コーポレイション パケット系ネットワーク用探索エンジン
JPH11191781A (ja) * 1997-12-25 1999-07-13 Nec Corp 経路検索回路及び通信制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842224A (en) 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
AU620994B2 (en) 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
US5412654A (en) 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5870739A (en) 1996-09-20 1999-02-09 Novell, Inc. Hybrid query apparatus and method
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5946679A (en) 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
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
US6061712A (en) 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6052683A (en) 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6192051B1 (en) * 1999-02-26 2001-02-20 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274347A (ja) * 1992-01-10 1993-10-22 Digital Equip Corp <Dec> アドレス知覚エンジン
JPH09511105A (ja) * 1993-12-24 1997-11-04 ニューブリッジ ネットワークス コーポレイション パケット系ネットワーク用探索エンジン
WO1996000945A1 (en) * 1994-06-30 1996-01-11 International Business Machines Corp. Variable length data sequence matching method and apparatus
JPH11191781A (ja) * 1997-12-25 1999-07-13 Nec Corp 経路検索回路及び通信制御装置

Also Published As

Publication number Publication date
JP3926558B2 (ja) 2007-06-06
EP1122927A3 (en) 2004-04-14
EP1122927A2 (en) 2001-08-08
JP2001223750A (ja) 2001-08-17
US6711153B1 (en) 2004-03-23
CA2326928C (en) 2005-01-11
CA2326928A1 (en) 2001-06-13
JP2007110745A (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
JP4542539B2 (ja) ルートルックアップエンジン
JP3340846B2 (ja) Atm−lan及びサーバ及びatmアドレス管理方法
US6633565B1 (en) Apparatus for and method of flow switching in a data communications network
JP3734704B2 (ja) パケット分類エンジン
JP2837650B2 (ja) ルーティング情報の格納及び取り出しのシステム及び方法
JP3735471B2 (ja) パケット中継装置およびlsi
JP3453148B2 (ja) スイッチング装置における高速可変長ベストマッチルックアップ
EP2019360B1 (en) Data processing apparatus and data transfer method
US7580408B2 (en) Configurable packet processor
US20050171937A1 (en) Memory efficient hashing algorithm
US6581106B1 (en) Fast address lookup in routing tables
JP2001045061A (ja) 通信ノード装置
JP3371006B2 (ja) テーブル検索方法及びルータ装置
JP2000032004A (ja) ノード装置
CN109743414B (zh) 利用冗余连接提高地址翻译可用性的方法及计算机可读存储介质
KR100793349B1 (ko) Ppp 멀티링크를 지원하는 시스템에서의 멀티캐스트트래픽 포워딩 장치 및 제어방법
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
TWI241089B (en) Method and apparatus to perform network routing using multiple length trie blocks
US20030236913A1 (en) Network address translation for internet control message protocol packets
EP1161059B1 (en) Method and device for translating telecommunication network IP addresses by a leaky-controlled memory
US7590112B2 (en) Packet forwarding apparatus of high speed routing system and routing lookup method using the same
US10185783B2 (en) Data processing device, data processing method, and non-transitory computer readable medium
US6671277B1 (en) Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control
US20040093424A1 (en) Packet routing device
KR20040054957A (ko) 복수개의 프로세서 및 다중/역다중화기를 갖는라인카드에서 주소학습에 따른 네트워크 프로세서의포워딩 테이블 관리방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090727

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: 20100602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100625

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: 20130702

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees