JP3711895B2 - Search system, search condition CAM registration method used therefor, and program thereof - Google Patents

Search system, search condition CAM registration method used therefor, and program thereof Download PDF

Info

Publication number
JP3711895B2
JP3711895B2 JP2001177856A JP2001177856A JP3711895B2 JP 3711895 B2 JP3711895 B2 JP 3711895B2 JP 2001177856 A JP2001177856 A JP 2001177856A JP 2001177856 A JP2001177856 A JP 2001177856A JP 3711895 B2 JP3711895 B2 JP 3711895B2
Authority
JP
Japan
Prior art keywords
entry
cam
search
upper limit
lower limit
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
JP2001177856A
Other languages
Japanese (ja)
Other versions
JP2002374289A (en
Inventor
猛 藤吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2001177856A priority Critical patent/JP3711895B2/en
Publication of JP2002374289A publication Critical patent/JP2002374289A/en
Application granted granted Critical
Publication of JP3711895B2 publication Critical patent/JP3711895B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は検索システム及びそれに用いる検索条件CAM登録方法並びにそのプログラムに関し、特にルータ装置に用いられるCAM(Content−Addressable Memory)への検索条件の登録方法に関する。
【0002】
【従来の技術】
近年、ルータ装置においては、転送処理の性能を向上させるために、検索システムにCAMを使用する場合が増えており、CPU(中央処理装置)が管理する転送テーブルの一部のエントリをCAMにキャッシュすることで、全体的な処理性能を向上させる処理が行われている。
【0003】
このようなルータ装置でフィルタリング処理を行う場合、CAMを用いることで装置全体の負荷が小さくなり、性能が向上すると考えられる。ここで、フィルタリングとは、予め設定された条件(フィルタリング条件)に基いて、受信したパケットを通過させるか、廃棄するか等を決める処理である。
【0004】
フィルタリング条件としてはIP(Internet Protocol)アドレスやTCP/UDP(Transmission Control Protocol/User Datagram Protocol)ポート番号の範囲指定(下限及び上限)が設定されることがある。
【0005】
【発明が解決しようとする課題】
上述した従来の検索システムでは、フィルタリング条件をキャッシュとしてCAMに登録するため、その範囲に含まれる個々の要素を別々のエントリとしてCAMに登録している。
【0006】
しかしながら、フィルタリング条件の範囲が広くなると、登録されるべきエントリが増加し、その結果、検索ヒット率が下がり、さらにCPUによる転送テーブルの検索回数及びCAMへの登録回数が増加し、装置全体の性能を低下させてしまうという問題がある。
【0007】
そこで、本発明の目的は上記の問題点を解消し、検索ヒット条件を少ないエントリ数で登録することができ、検索性能を向上させることができる検索システム及びそれに用いる検索条件CAM登録方法並びにそのプログラムを提供することにある。
【0008】
【課題を解決するための手段】
本発明による検索システムは、範囲指定される検索ヒット条件をエントリとしてCAM(Content−Addressable Memory)へ登録し、パケットのヘッダ情報に対応するフロー識別子を前記CAMのエントリを用いて検索する検索システムであって、前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録する手段を有することを特徴とする
【0009】
本発明による検索条件CAM登録方法は、パケットのヘッダ情報に対応するフロー識別子をCAM(Content−Addressable Memory)のエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAMへ登録する検索条件CAM登録方法であって、前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録するステップを有することを特徴とする。
【0010】
本発明による検索条件CAM登録方法のプログラムは、パケットのヘッダ情報に対応するフロー識別子をCAM(Content−Addressable Memory)のエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAMへ登録する検索条件CAM登録方法のプログラムであって、コンピュータに、前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録するステップを実行させるためのプログラムであることを特徴とする。
【0011】
すなわち、本発明の検索条件CAM登録方法は、検索ヒット条件に範囲指定エントリをCAM(Content−Addressable Memory)へ登録する際に、CAMのマスク機能(Don’t Care機能)[検索ヒット情報の情報をマスク情報にてマスクしてから検索を行うための機能であり、マスクする部分はどのような値でもよい(Don’t Care)]を上手く使うことによって、少ないエントリ数で、一度にその範囲を含む検索条件を全て登録することが可能となる。
【0012】
したがって、CAMのマスク機能を使うことで、その範囲に属する全ての要素の検索ヒット条件を少ないエントリ数で登録することが可能となるので、検索システムの性能を向上させることが可能となる。
【0013】
【発明の実施の形態】
次に、本発明の一実施例について図面を参照して説明する。図1は本発明の一実施例による検索システムの構成を示すブロック図である。図1において、本発明の一実施例による検索システムはルータ装置における検索システムの構成例を示しており、パケットのヘッダ情報を入力とし、そのパケットが属するフロー識別子を出力するシステムである。
【0014】
ここで、ヘッダ情報とは受信パケットのヘッダに含まれるMAC(MediaAccess Control)アドレスやIP(Internet Protocol)アドレス、L4(レイヤ4)ポート番号等の組合わせである。フロー識別子とはそのヘッダ情報を持つパケットに対してルータ装置が行うべき転送処理を特定するための識別子である。
【0015】
上記の検索システムは検索エンジン1と、CAM(Content−Addressable Memory)2と、小容量高速メモリ3と、CPU(中央処理装置)4と、大容量低速メモリ5と、記録媒体6とから構成されており、検索エンジン1及びCPU4が実行するプログラムは記録媒体6に格納されている。
【0016】
検索エンジン1はパケットのヘッダ情報が入力されると、CAM2と小容量高速メモリ3とを用いてヘッダ情報に対応するフロー識別子を検索し、検索が成功すると、その検索結果として得られたフロー識別子を出力する。また、検索エンジン1は検索が失敗すると、CPU4と大容量低速メモリ5とを用いて再検索を行い、その検索結果として得られたフロー識別子を出力する。
【0017】
CAM2及び小容量高速メモリ3は高速であり、検索キーに対する検索結果を瞬時に出力する。CAM2は検索ヒット情報の情報をマスク情報にてマスクしてから検索を行うためのマスク機能(Don’t Care機能)を持っており、その場合、マスクする部分はどのような値でもよい(Don’t Care)。
【0018】
一方、CPU4はソフトウェア処理のため、CAM2に比べて検索に長い時間を要する。大容量低速メモリ5にはルータ装置(図示せず)が扱う全てのヘッダ情報とフロー識別子との対応が検索エントリとして格納されている。
【0019】
図2は図1の大容量低速メモリ5に格納される検索エントリの具体例を示す図である。図2において、大容量低速メモリ5の各エントリ#21〜#24にはヘッダ情報として送信元アドレス[「SA(Source Address)#1」,「SA#2」,「SA#3」,「SA#4」]と、宛先アドレス[「DA(Destination Address)#1」,「DA#2」,「DA#3」,「DA#4」]と、宛先ポート(「20〜150」,「5000〜6000」,「100〜200」,「10000〜20000」)とが格納され、それに対応するフロー識別子(「3」,「1」,「5」,「8」)が格納されている。ここで、各エントリ#21〜#24の宛先ポートは「下限〜上限」のような範囲指定の形式で与えられる点に注意する。
【0020】
図3は図1のCAM2及び小容量高速メモリ3に格納される検索エントリの具体例を示す図である。図3において、CAM2の各エントリ#31〜#36には送信元アドレス(32ビット)のデータ「SA#3」及びマスク情報「1111・・・1」と、宛先アドレス(32ビット)のデータ「DA#3」及びマスク情報「1111・・・1」と、宛先ポート(16ビット)のデータ「00000000 01100100」,「00000000 01101000」,「00000000 01110000」,「00000000 10000000」,「00000000 11001000」,「00000000 11000000」及びマスク情報「11111111 11111100」,「11111111 11111000」,「11111111 11110000」,「11111111 10000000」,「11111111 11111111」,「11111111 11111000」とが格納され、小容量高速メモリ3の各エントリにはそれに対応してフロー識別子「5]が格納されている。
【0021】
図4(a),(b)は本発明の一実施例で用いられるパケットの構成例を示す図であり、図5は本発明の一実施例による検索システムのアルゴリズムを示すフローチャートである。これら図1〜図5を参照して本発明の一実施例による検索システムの動作について説明する。図5に示すアルゴリズムはCPU4が記録媒体6のプログラムを実行することで実現される。
【0022】
CPU4は検索エンジン1からヘッダ情報が与えられると、そのヘッダ情報を持つ検索エントリを大容量低速メモリ5から検索し、対応するフロー識別子を検索エンジン1へ出力する。例えば、図4(a)に示すパケット#41のヘッダ情報がCPU4に与えられると、大容量低速メモリ5から図2に示すエントリ#23を検索し、そのエントリのフロー識別子=5を検索エンジン1へ出力する。
【0023】
CPU4は大容量低速メモリ5を検索した後、得られた検索エントリのヘッダ情報をCAM2に登録し、フロー識別子を小容量高速メモリ3へ登録する。この時、図2に示すエントリの宛先ポートのような範囲指定が検索ヒット条件に含まれる場合には、図5に示すアルゴリズムを用いて複数のエントリに分割したものをCAM2へ登録する。例えば、大容量低速メモリ5から図2に示すエントリ#23を検索した時、図3に示すような検索エントリがCAM2及び小容量高速メモリ3に追加登録される。
【0024】
CAM2は各エントリがデータエントリとマスクエントリとから構成されるターナリCAMであり、各ビットについて“0”、“1”、または“Don’t Care”のいずれかの値を検索条件として指定することができる。CAM2は検索エンジン1から検索キーとしてヘッダ情報が入力されると、そのヘッダ情報に一致するエントリを瞬時に見つけ出し、そのアドレスを小容量高速メモリ3へ受渡す。
【0025】
小容量高速メモリ3はCAM2からエントリのアドレスが入力されると、そのアドレスに格納されたフロー識別子を検索エンジン1へ出力する。例えば、CAM2及び小容量高速メモリ3に図3に示すようなエントリが格納されており、図4(a)に示すパケット#41のヘッダ情報が検索エンジン1から与えられた時、CAM2はエントリ#33を瞬時に見つけ出し、小容量高速メモリ3に格納されたフロー識別子=5が検索エンジン1へ出力される。CAM2及び小容量高速メモリ3に登録されたエントリは、CPU4によって最近検索されなくなったものから定期的に削除されるものとする。
【0026】
図5に示すフローチャートは検索ヒット条件として範囲条件A〜Bが与えられた時、CAM2へ登録すべき複数のデータエントリD[0],D[1],...,D[n−1]、マスクエントリM[0],M[1],...,M[n−1]及びエントリ数nを求めるアルゴリズムを示す。図5に示すフローチャート中のA,B,D[i],M[i]及びA’、B’は固定長ビット幅の変数であり、計算式中のOR、XOR、NOTはそれぞれビット毎のOR、Exclusive OR、NOTの論理演算を意味する。
【0027】
図1に示す検索システムの初期状態として、大容量低速メモリ5には図2に示す検索エントリが格納されており、CAM2及び小容量高速メモリ3には有効なエントリが1つも格納されていないものとする。
【0028】
ルータ装置が図4(a)に示すパケット#41を受信し、そのヘッダ情報として送信元アドレス=SA3、宛先IPアドレス=DA3、宛先ポート=121が検索エンジン1に入力されると、検索エンジン1はこれらのヘッダ情報を検索キーとしてCAM2へ入力する。この時点でCAM2には対応するエントリが存在しないため、CAM2に対する検索は失敗し、検索エンジン1はヘッダ情報をCPU4へ入力する。
【0029】
CPU4はこのヘッダ情報を検索キーとして大容量低速メモリ5を検索し、図2に示すエントリ#23を得る。このエントリ#23に含まれるフロー識別子=5を検索エンジン1へ受渡し、検索エンジン1はこれを本検索システムの出力とする。
【0030】
この時、CPU4は得られた検索エントリ#23をCAM2及び小容量高速メモリ3に登録するが、宛先ポートが[下限〜上限]の範囲条件で与えられているため、図5に示すアルゴリズムを用いて宛先ポートの[下限〜上限]の範囲をマスク情報にてマスクしやすいように分割し、CAM2に登録すべき複数のエントリを求める。以下、複数のエントリを求める処理について説明する。
【0031】
初期値として、エントリ#23の範囲条件の下限A=100、上限B=200を設定する。最初に登録すべきエントリは、下限をA=100とし、計算式#a1[A’←A OR (A−1)]によって上限A’=103が得られる。
【0032】
条件式#a2(A’>B)によって、上限A’=103が最終的な上限B=200以下であることを確認し、計算式#a3[D[n]←A,M[n]←NOT(A XOR A’)]によってデータエントリD[0]=100=00000000,01100100(2進)と、マスクエントリM[0]=11111111,11111100(2進)とが求まる(図3に示すエントリ#31)。このエントリは宛先ポートが100〜103の検索キーにヒットする。
【0033】
2番目のエントリは計算式#a4(n←n+1,A←A’+1)によって下限A=104、計算式#a1によって上限A’=111がそれぞれ得られる。条件式#a2によって上限A’=111が最終的な上限B=200以下であることを確認し、計算式#a3によってデータエントリD[1]=104=00000000,01101000(2進)と、マスクエントリM[1]=11111111,11111000(2進)とが求まる(図3に示すエントリ#32)。このエントリは宛先ポートが104〜111の検索キーにヒットする。
【0034】
3番目のエントリは計算式#a4によって下限A=112、計算式#a1によって上限A’=127がそれぞれ得られる。条件式#a2によって上限A’=127が最終的な上限B=200以下であることを確認し、計算式#a3によってデータエントリD[2]=112=00000000,01110000(2進)と、マスクエントリM[2]=11111111,11110000(2進)とが求まる(図3に示すエントリ#33)。このエントリは宛先ポートが112〜127の検索キーにヒットする。
【0035】
4番目のエントリは計算式#a4によって下限A=128、計算式#a1によって上限A’=191がそれぞれ得られる。条件式#a2によって上限A’=191が最終的な上限B=200以下であることを確認し、計算式#a3によってデータエントリD[3]=128=00000000,10000000(2進)と、マスクエントリM[3]=11111111,10000000(2進)とが求まる(図3に示すエントリ#34)。このエントリは宛先ポートが128〜191の検索キーにヒットする。
【0036】
5番目のエントリは計算式#a4によって下限A=192、計算式#a1によって上限A’=255がそれぞれ得られる。しかしながら、条件式#a2によって上限A’=255が最終的な上限B=200を超えていることが確認されるため、データエントリ及びマスクエントリの計算は行わず、#b1の処理に移り、残りの宛先ポートが下限A=192から上限B=200の検索キーにヒットするエントリを求める。
【0037】
5番目のエントリは上限B=200とし、計算式#b1[B’←B AND NOT(NOT(B)−1)]によって下限B’=200が得られる。条件式#b2(A>B’)によって、下限B’=200がA=192以上であることを確認し、計算式#b3[D[n]←B’,M[n]←NOT(B XOR B’)]によってデータエントリD[4]=200=00000000,11001000(2進)と、マスクエントリM[4]=11111111,11111111(2進)とが求まる(図3に示すエントリ#35)。このエントリは宛先ポートが200の検索キーにヒットする。
【0038】
6番目のエントリは計算式#b4(n←n+1,B←B’−1)によって上限B=199、計算式#b1によって下限B’=192がそれぞれ得られる。条件式#b2によって下限B’=192がA=192以上であることを確認し、計算式#b3によってデータエントリD[5]=192=00000000,11000000(2進)と、マスクエントリM[5]=11111111,11111000(2進)とが求まる(図3に示すエントリ#36)。このエントリは宛先ポートが192〜199の検索キーにヒットする。
【0039】
7番目のエントリは計算式#b4によって上限B=191,下限B’=128がそれぞれ得られるが、条件式#b2によって下限B’=128がA=192未満であるため、ここで処理を終了する。
【0040】
以上の処理によって、図3に示すCAM2の宛先ポートフィールドに登録すべきデータエントリD[0],D[1],...,D[5]及びマスクエントリM[0],M[1],...,M[5]が得られる。CPU4はこれらを用いてCAM2及び小容量高速メモリ3に、図3に示すように、エントリ登録を行い、パケット#41に関する処理を終了する。
【0041】
パケット#41に続いてルータ装置が図4(b)に示すパケット#42を受信すると、そのヘッダ情報として送信元アドレス=SA3、宛先アドレス=DA3、宛先ポート=153がそれぞれ検索エンジン1へ入力され、検索エンジン1は検索キーとしてそれをCAM2へ入力する。
【0042】
CAM2には既に、図3に示すエントリが登録されており、入力されたヘッダ情報はエントリ#34にヒットする。検索エンジン1は小容量高速メモリ3から対応するフロー識別子=5を受取り、それを検索システムの出力とする。
【0043】
このように、同一の検索エントリに属するパケットを再び受信した時に、CAM2及び小容量高速メモリ3に既にエントリが存在するため、CPU4と大容量低速メモリ5とによる低速な検索処理を必要とせず、非常に短時間で対応するフロー識別子を得ることができる。
【0044】
検索ヒット条件に範囲指定が含まれる検索エントリをCAM2に登録する場合、従来、その範囲に属する個々の要素毎にエントリを登録しているため、CAM2に登録するエントリ数が増加し、検索システムの性能の低下につながってしまう。
【0045】
これに対し、本発明ではCAM2のマスク機能(Don’t Care機能)を使うことで、その範囲に属する全ての要素の検索ヒット条件を少ないエントリ数で登録することができ、検索システムの性能を向上させることができる。
【0046】
上記のように、1つのCAM2によって多くの検索ヒット条件を登録することができるため、CAM2の1つ当たりの検索性能を向上させることができる。また、所望の性能を出すために必要となるCAM2のエントリ数を少なくすることができるため、コスト及び消費電力を小さくすることができる。
【0047】
さらに、CAM2へのエントリ登録回数が少なくなり、CPU4の負荷を小さくすることができる。さらにまた、CAM2の検索ヒット率が高くなるため、CPU4からCAM2へのエントリ登録回数が少なくなり、CPU4の負荷を小さくすることができる。
【0048】
上述した本発明の一実施例によるCAM2への検索条件の登録方法では、特に範囲の上限と下限との差が大きいほど、従来のCAM2への検索条件の登録方法に比べてその効果が大きくなる。
【0049】
尚、上記の説明ではヘッダ情報のうち、範囲指定される宛先ポートのみを分割して複数のエントリを求め、それら複数のエントリを一括してCAM2へ登録する処理について述べたが、ヘッダ情報の送信元アドレスや宛先アドレスも範囲指定される場合には、上記と同様の方法で、CAM2へ登録することができる。
【0050】
【発明の効果】
以上説明したように本発明によれば、範囲指定される検索ヒット条件を含むエントリをCAMへ登録し、パケットのヘッダ情報に対応するフロー識別子を検索する検索システムにおいて、エントリにおける範囲指定される検索ヒット条件を所定アルゴリズムを用いて複数に分割してCAMに登録することによって、検索ヒット条件を少ないエントリ数で登録することができ、検索性能を向上させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例による検索システムの構成を示すブロック図である。
【図2】図1の大容量低速メモリに格納される検索エントリの具体例を示す図である。
【図3】図1のCAM及び小容量高速メモリに格納される検索エントリの具体例を示す図である。
【図4】(a),(b)は本発明の一実施例で用いられるパケットの構成例を示す図である。
【図5】本発明の一実施例による検索システムのアルゴリズムを示すフローチャートである。
【符号の説明】
1 検索エンジン
2 CAM
3 小容量高速メモリ
4 CPU
5 大容量低速メモリ
6 記録媒体
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a search system, a search condition CAM registration method used therefor, and a program therefor, and more particularly, to a search condition registration method in a CAM (Content-Addressable Memory) used in a router apparatus.
[0002]
[Prior art]
In recent years, in a router device, in order to improve transfer processing performance, the number of cases in which a CAM is used in a search system is increasing, and some entries in a transfer table managed by a CPU (central processing unit) are cached in the CAM. Thus, processing for improving the overall processing performance is performed.
[0003]
When filtering processing is performed with such a router device, it is considered that the use of CAM reduces the load on the entire device and improves the performance. Here, filtering is a process for determining whether a received packet is allowed to pass or discarded based on a preset condition (filtering condition).
[0004]
As filtering conditions, IP (Internet Protocol) addresses and TCP / UDP (Transmission Control Protocol / User Datagram Protocol) port number range designation (lower limit and upper limit) may be set.
[0005]
[Problems to be solved by the invention]
In the conventional search system described above, in order to register the filtering condition as a cache in the CAM, individual elements included in the range are registered in the CAM as separate entries.
[0006]
However, when the range of filtering conditions is widened, the number of entries to be registered increases. As a result, the search hit rate decreases, and the number of transfer table searches by the CPU and the number of registrations to the CAM increase. There is a problem of lowering.
[0007]
Accordingly, an object of the present invention is to solve the above problems, register a search hit condition with a small number of entries, and improve a search performance, a search condition CAM registration method used therefor, and a program therefor Is to provide.
[0008]
[Means for Solving the Problems]
The search system according to the present invention is a search system in which a search hit condition specified as a range is registered as an entry in a CAM (Content-Addressable Memory), and a flow identifier corresponding to packet header information is searched using the CAM entry. The search hit condition specified by the range is divided into two or more and less than the number of ports, and is registered in the CAM .
[0009]
The search condition CAM registration method according to the present invention uses a search hit condition specified as a range as an entry for a search system that uses a CAM (Content-Addressable Memory) entry to search for a flow identifier corresponding to packet header information. The search condition CAM registration method for registering to the registration method includes the step of dividing the search hit condition specified in the range into two or more and less than the number of ports and registering it in the CAM.
[0010]
The search condition CAM registration method program according to the present invention includes a search system that searches for a flow identifier corresponding to packet header information using a CAM (Content-Addressable Memory) entry, and enters a search hit condition specified as a range. A search condition CAM registration method program for registering in the CAM as follows: A computer causes a computer to execute a step of dividing the search hit condition specified in the range into two or more and less than the number of ports and registering the entry in the CAM. It is the program for this.
[0011]
That is, according to the search condition CAM registration method of the present invention, when registering a range designation entry in the search hit condition to the CAM (Content-Addressable Memory), the CAM mask function (Don't Care function) [search hit information information] Is a function for performing a search after masking with mask information, and any value can be used for the masked part (Don't Care)], so that the range can be reduced at a time with a small number of entries. It becomes possible to register all the search conditions including.
[0012]
Therefore, by using the mask function of the CAM, it is possible to register the search hit conditions of all elements belonging to the range with a small number of entries, so that the performance of the search system can be improved.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Next, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a search system according to an embodiment of the present invention. In FIG. 1, a search system according to an embodiment of the present invention shows a configuration example of a search system in a router device, and is a system that receives packet header information and outputs a flow identifier to which the packet belongs.
[0014]
Here, the header information is a combination of a MAC (Media Access Control) address, an IP (Internet Protocol) address, an L4 (Layer 4) port number, and the like included in the header of the received packet. The flow identifier is an identifier for specifying a forwarding process to be performed by the router device for a packet having the header information.
[0015]
The search system includes a search engine 1, a CAM (Content-Addressable Memory) 2, a small-capacity high-speed memory 3, a CPU (central processing unit) 4, a large-capacity low-speed memory 5, and a recording medium 6. The programs executed by the search engine 1 and the CPU 4 are stored in the recording medium 6.
[0016]
When the header information of the packet is input, the search engine 1 searches for a flow identifier corresponding to the header information using the CAM 2 and the small-capacity high-speed memory 3, and if the search is successful, the flow identifier obtained as a search result Is output. When the search fails, the search engine 1 performs a re-search using the CPU 4 and the large-capacity low-speed memory 5 and outputs a flow identifier obtained as a result of the search.
[0017]
The CAM 2 and the small-capacity high-speed memory 3 are high-speed and instantaneously output the search result for the search key. The CAM 2 has a mask function (Don't Care function) for performing search after masking search hit information information with mask information. In this case, the masking portion may have any value (Don 't Care).
[0018]
On the other hand, since the CPU 4 is a software process, it takes a longer time to search than the CAM 2. The large-capacity low-speed memory 5 stores correspondences between all header information handled by a router device (not shown) and flow identifiers as search entries.
[0019]
FIG. 2 is a diagram showing a specific example of a search entry stored in the large-capacity low-speed memory 5 of FIG. In FIG. 2, each entry # 21 to # 24 of the large-capacity low-speed memory 5 has a source address [“SA (Source Address) # 1”, “SA # 2”, “SA # 3”, “SA” as header information. # 4 "], destination addresses [" DA (Destination Address) # 1 "," DA # 2 "," DA # 3 "," DA # 4 "]] and destination ports (" 20 to 150 "," 5000 " ˜6000 ”,“ 100 to 200 ”,“ 10000 to 20000 ”), and corresponding flow identifiers (“ 3 ”,“ 1 ”,“ 5 ”,“ 8 ”) are stored. Note that the destination ports of the entries # 21 to # 24 are given in a range designation format such as “lower limit to upper limit”.
[0020]
FIG. 3 is a diagram showing a specific example of search entries stored in the CAM 2 and the small-capacity high-speed memory 3 shown in FIG. 3, each entry # 31 to # 36 of CAM2 includes data “SA # 3” of the source address (32 bits), mask information “1111... 1”, and data “32” of the destination address (32 bits). DA # 3 and mask information “1111... 1” and destination port (16 bit) data “00000000 01100100”, “00000000 01101000”, “00000000 01110000”, “00000000 10000000”, “00000000 11001000”, “ 00000000 11000000 ”and mask information“ 11111111 11111100 ”,“ 11111111 11111000 ”,“ 11111111 11110000 ”,“ 11111111 10000000 ”,“ 111111 11 11111111 ”and“ 11111111 11111000 ”are stored, and the flow identifier“ 5 ”is stored in each entry of the small-capacity high-speed memory 3 correspondingly.
[0021]
FIGS. 4A and 4B are diagrams showing an example of a packet configuration used in an embodiment of the present invention, and FIG. 5 is a flowchart showing an algorithm of a search system according to an embodiment of the present invention. The operation of the search system according to one embodiment of the present invention will be described with reference to FIGS. The algorithm shown in FIG. 5 is realized by the CPU 4 executing the program of the recording medium 6.
[0022]
When the header information is given from the search engine 1, the CPU 4 searches the large-capacity low-speed memory 5 for a search entry having the header information, and outputs a corresponding flow identifier to the search engine 1. For example, when the header information of the packet # 41 shown in FIG. 4A is given to the CPU 4, the large-capacity low-speed memory 5 searches for the entry # 23 shown in FIG. Output to.
[0023]
After searching the large-capacity low-speed memory 5, the CPU 4 registers the header information of the obtained search entry in the CAM 2 and registers the flow identifier in the small-capacity high-speed memory 3. At this time, if the range specification such as the destination port of the entry shown in FIG. 2 is included in the search hit condition, the entry divided into a plurality of entries using the algorithm shown in FIG. 5 is registered in the CAM 2. For example, when the entry # 23 shown in FIG. 2 is searched from the large-capacity low-speed memory 5, the search entry as shown in FIG. 3 is additionally registered in the CAM 2 and the small-capacity high-speed memory 3.
[0024]
CAM2 is a ternary CAM in which each entry is composed of a data entry and a mask entry. For each bit, a value of “0”, “1”, or “Don't Care” is designated as a search condition. Can do. When header information is input as a search key from the search engine 1, the CAM 2 instantly finds an entry that matches the header information and passes the address to the small-capacity high-speed memory 3.
[0025]
When the entry address is input from the CAM 2, the small-capacity high-speed memory 3 outputs the flow identifier stored at the address to the search engine 1. For example, when an entry as shown in FIG. 3 is stored in the CAM 2 and the small-capacity high-speed memory 3, and the header information of the packet # 41 shown in FIG. 33 is instantly found, and the flow identifier = 5 stored in the small-capacity high-speed memory 3 is output to the search engine 1. It is assumed that entries registered in the CAM 2 and the small-capacity high-speed memory 3 are periodically deleted from those not recently searched by the CPU 4.
[0026]
In the flowchart shown in FIG. 5, when range conditions A to B are given as search hit conditions, a plurality of data entries D [0], D [1],. . . , D [n−1], mask entries M [0], M [1],. . . , M [n−1] and the number of entries n. In the flowchart shown in FIG. 5, A, B, D [i], M [i], A ′ and B ′ are variables of fixed-length bit width, and OR, XOR, and NOT in the calculation formula are respectively for each bit. Means OR, Exclusive OR, NOT logical operation.
[0027]
In the initial state of the search system shown in FIG. 1, the large-capacity low-speed memory 5 stores the search entry shown in FIG. 2, and the CAM 2 and the small-capacity high-speed memory 3 do not store any valid entries. And
[0028]
When the router apparatus receives the packet # 41 shown in FIG. 4A and inputs the source address = SA3, the destination IP address = DA3, and the destination port = 121 as the header information to the search engine 1, the search engine 1 Inputs these header information to the CAM 2 as a search key. Since there is no corresponding entry in CAM 2 at this time, the search for CAM 2 fails, and search engine 1 inputs header information to CPU 4.
[0029]
The CPU 4 searches the large-capacity low-speed memory 5 using this header information as a search key, and obtains entry # 23 shown in FIG. The flow identifier = 5 included in the entry # 23 is transferred to the search engine 1, and the search engine 1 outputs this as the output of the search system.
[0030]
At this time, the CPU 4 registers the obtained search entry # 23 in the CAM 2 and the small-capacity high-speed memory 3, but uses the algorithm shown in FIG. 5 because the destination port is given in the range condition of [lower limit to upper limit]. Then, the range from [lower limit to upper limit] of the destination port is divided so as to be easily masked by the mask information, and a plurality of entries to be registered in the CAM 2 are obtained. Hereinafter, processing for obtaining a plurality of entries will be described.
[0031]
As the initial values, the lower limit A = 100 and the upper limit B = 200 of the range condition of entry # 23 are set. For the entry to be registered first, the lower limit is A = 100, and the upper limit A ′ = 103 is obtained by the calculation formula # a1 [A ′ ← A OR (A−1)].
[0032]
It is confirmed by conditional expression # a2 (A ′> B) that the upper limit A ′ = 103 is not more than the final upper limit B = 200, and the calculation formula # a3 [D [n] ← A, M [n] ← NOT (A XOR A ′)] determines data entry D [0] = 100 = 00000000,01100100 (binary) and mask entry M [0] = 11111111,11111100 (binary) (entries shown in FIG. 3) # 31). This entry hits a search key whose destination port is 100 to 103.
[0033]
In the second entry, the lower limit A = 104 is obtained from the calculation formula # a4 (n ← n + 1, A ← A ′ + 1), and the upper limit A ′ = 111 is obtained from the calculation formula # a1. It is confirmed by conditional expression # a2 that the upper limit A ′ = 111 is the final upper limit B = 200 or less, and the data entry D [1] = 104 = 00000000,01101000 (binary) and mask by the calculation expression # a3 Entries M [1] = 11111111 and 11111000 (binary) are obtained (entry # 32 shown in FIG. 3). This entry hits a search key whose destination port is 104-111.
[0034]
For the third entry, the lower limit A = 112 is obtained from the calculation formula # a4, and the upper limit A ′ = 127 is obtained from the calculation formula # a1. The conditional expression # a2 confirms that the upper limit A ′ = 127 is equal to or less than the final upper limit B = 200, and the data entry D [2] = 112 = 00000000,01110000 (binary) and the mask by the calculation formula # a3 Entry M [2] = 11111111, 11110000 (binary) is obtained (entry # 33 shown in FIG. 3). This entry hits a search key whose destination port is 112-127.
[0035]
For the fourth entry, the lower limit A = 128 is obtained from the calculation formula # a4, and the upper limit A ′ = 191 is obtained from the calculation formula # a1. It is confirmed by conditional expression # a2 that upper limit A ′ = 191 is final upper limit B = 200 or less, and data entry D [3] = 128 = 00000000,10000000 (binary) and mask by calculation expression # a3 Entry M [3] = 11111111,10000000 (binary) is obtained (entry # 34 shown in FIG. 3). This entry hits a search key whose destination port is 128-191.
[0036]
For the fifth entry, the lower limit A = 192 is obtained from the calculation formula # a4, and the upper limit A ′ = 255 is obtained from the calculation formula # a1. However, since the conditional expression # a2 confirms that the upper limit A ′ = 255 exceeds the final upper limit B = 200, the calculation of the data entry and the mask entry is not performed, and the process proceeds to # b1 and the rest Find an entry whose destination port hits the search key from the lower limit A = 192 to the upper limit B = 200.
[0037]
The fifth entry has an upper limit B = 200, and a lower limit B ′ = 200 is obtained by the calculation formula # b1 [B ′ ← B AND NOT (NOT (B) −1)]. It is confirmed by conditional expression # b2 (A> B ′) that the lower limit B ′ = 200 is equal to or greater than A = 192, and calculation formula # b3 [D [n] ← B ′, M [n] ← NOT (B XOR B ′)] determines data entry D [4] = 200 = 00000000, 11001000 (binary) and mask entry M [4] = 11111111, 11111111 (binary) (entry # 35 shown in FIG. 3). . This entry hits a search key whose destination port is 200.
[0038]
In the sixth entry, the upper limit B = 199 is obtained by the calculation formula # b4 (n ← n + 1, B ← B′−1), and the lower limit B ′ = 192 is obtained by the calculation formula # b1. It is confirmed by conditional expression # b2 that the lower limit B ′ = 192 is equal to or greater than A = 192, and data entry D [5] = 192 = 00000000, 11000000 (binary) and mask entry M [5 by calculation expression # b3 ] = 11111111 and 11111000 (binary) are obtained (entry # 36 shown in FIG. 3). This entry hits a search key whose destination port is 192 to 199.
[0039]
In the seventh entry, the upper limit B = 191 and the lower limit B ′ = 128 are obtained by the calculation formula # b4. However, since the lower limit B ′ = 128 is less than A = 192 by the conditional expression # b2, the processing ends here. To do.
[0040]
Through the above processing, data entries D [0], D [1],... To be registered in the destination port field of CAM2 shown in FIG. . . , D [5] and mask entries M [0], M [1],. . . , M [5]. Using these, the CPU 4 performs entry registration in the CAM 2 and the small-capacity high-speed memory 3 as shown in FIG. 3, and ends the processing relating to the packet # 41.
[0041]
When the router device receives the packet # 42 shown in FIG. 4B following the packet # 41, the source address = SA3, the destination address = DA3, and the destination port = 153 are input to the search engine 1 as header information thereof. The search engine 1 inputs it to the CAM 2 as a search key.
[0042]
The entry shown in FIG. 3 is already registered in CAM2, and the input header information hits entry # 34. The search engine 1 receives the corresponding flow identifier = 5 from the small-capacity high-speed memory 3 and uses it as the output of the search system.
[0043]
In this way, when a packet belonging to the same search entry is received again, the entry already exists in the CAM 2 and the small-capacity high-speed memory 3, so that low-speed search processing by the CPU 4 and the large-capacity low-speed memory 5 is not required. The corresponding flow identifier can be obtained in a very short time.
[0044]
When registering a search entry whose range is included in the search hit condition in CAM2, conventionally, since an entry is registered for each element belonging to the range, the number of entries to be registered in CAM2 increases. It will lead to performance degradation.
[0045]
In contrast, in the present invention, by using the CAM2 mask function (Don't Care function), the search hit conditions of all elements belonging to the range can be registered with a small number of entries, and the performance of the search system can be improved. Can be improved.
[0046]
As described above, since many search hit conditions can be registered by one CAM2, the search performance per CAM2 can be improved. In addition, since the number of CAM2 entries required to obtain desired performance can be reduced, cost and power consumption can be reduced.
[0047]
Furthermore, the number of entry registrations to the CAM 2 is reduced, and the load on the CPU 4 can be reduced. Furthermore, since the search hit rate of CAM2 increases, the number of entry registrations from the CPU 4 to the CAM 2 decreases, and the load on the CPU 4 can be reduced.
[0048]
In the method for registering search conditions in the CAM 2 according to the above-described embodiment of the present invention, the effect becomes greater as compared with the conventional method for registering the search conditions in the CAM 2 as the difference between the upper limit and the lower limit of the range is particularly large. .
[0049]
In the above description, the header information is divided into only the destination ports specified in the range, a plurality of entries are obtained, and the plurality of entries are registered in the CAM 2 at the same time. When the range of the original address and the destination address is also specified, it can be registered in the CAM 2 by the same method as described above.
[0050]
【The invention's effect】
As described above, according to the present invention, in a search system for registering an entry including a search hit condition specified for a range in the CAM and searching for a flow identifier corresponding to the header information of the packet, the range specified search in the entry By dividing the hit condition into a plurality of parts using a predetermined algorithm and registering it in the CAM, the search hit condition can be registered with a small number of entries, and the search performance can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a search system according to an embodiment of the present invention.
2 is a diagram showing a specific example of a search entry stored in the large-capacity low-speed memory of FIG. 1. FIG.
FIG. 3 is a diagram showing a specific example of search entries stored in the CAM and the small-capacity high-speed memory shown in FIG. 1;
FIGS. 4A and 4B are diagrams showing a configuration example of a packet used in an embodiment of the present invention.
FIG. 5 is a flowchart illustrating an algorithm of a search system according to an embodiment of the present invention.
[Explanation of symbols]
1 Search engine 2 CAM
3 Small-capacity high-speed memory 4 CPU
5 Large-capacity low-speed memory 6 Recording medium

Claims (10)

範囲指定される検索ヒット条件をエントリとしてCAM(Content−Addressable Memory)へ登録し、パケットのヘッダ情報に対応するフロー識別子を前記CAMのエントリを用いて検索する検索システムであって、
前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録する手段を有することを特徴とする検索システム。
A search system for registering a search hit condition specified in a range as an entry in a CAM (Content-Addressable Memory) and searching for a flow identifier corresponding to packet header information using the CAM entry,
A search system comprising: means for dividing the search hit condition specified in the range into entries of 2 or more and less than the number of ports and registering them in the CAM .
前記CAMに登録されるエントリは、該エントリにおける下限のポート番号を表すデータエントリと、該データエントリと共に用いることで該エントリの上限のポート番号を規定するマスクエントリとを格納するようにしたことを特徴とする請求項1記載の検索システム。 The entry registered in the CAM stores a data entry that represents the lower limit port number in the entry and a mask entry that defines the upper limit port number of the entry when used together with the data entry. The search system according to claim 1, wherein: 記CAMに登録されるエントリは、前記ヘッダ情報のうちの少なくとも送信元アドレスと宛先アドレスと宛先ポートとを格納するようにしたことを特徴とする請求項1または2記載の検索システム。 Entries registered before Symbol CAM is search system according to claim 1 or 2, characterized in that so as to store at least the source address and destination address and destination port of said header information. 範囲指定される検索ヒット条件をエントリとしてCAM(Content−Addressable Memory)へ登録し、パケットのヘッダ情報に対応するフロー識別子を前記CAMのエントリを用いて検索する検索システムであって、A search system for registering a search hit condition specified in a range as an entry in a CAM (Content-Addressable Memory) and searching for a flow identifier corresponding to packet header information using the CAM entry,
前記範囲指定される検索ヒット条件を、下限から上限に向かって行う分割と上限から下限に向かって行う分割とを組み合わせることにより、2以上かつポート数未満のエントリに分割し、前記CAMに登録する手段を有することを特徴とする検索システム。  The search hit condition specified by the range is divided into entries of 2 or more and less than the number of ports by combining the division performed from the lower limit to the upper limit and the division performed from the upper limit to the lower limit, and is registered in the CAM. A search system comprising means.
パケットのヘッダ情報に対応するフロー識別子をCAM(Content−Addressable Memory)のエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAMへ登録する検索条件CAM登録方法であって、This is a search condition CAM registration method for registering a search hit condition specified as a range in the CAM as an entry for a search system that searches for a flow identifier corresponding to packet header information using a CAM (Content-Addressable Memory) entry. hand,
前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録するステップを有することを特徴とする検索条件CAM登録方法。  A search condition CAM registration method comprising a step of registering the search hit condition specified in the range into entries of 2 or more and less than the number of ports and registering the entry in the CAM.
前記CAMに登録されるエントリは、該エントリにおける下限のポート番号を表すデータエントリと、該データエントリと共に用いることで該エントリの上限のポート番号を規定するマスクエントリとを格納するようにしたことを特徴とする請求項5記載の検索条件CAM登録方法。 The entry registered in the CAM stores a data entry that represents the lower limit port number in the entry and a mask entry that defines the upper limit port number of the entry when used together with the data entry. The search condition CAM registration method according to claim 5, wherein: 前記CAMに登録されるエントリは、前記ヘッダ情報のうちの少なくとも送信元アドレスと、宛先アドレスと、宛先ポートとを格納するようにしたことを特徴とする請求項5または6記載の検索条件CAM登録方法。 7. The search condition CAM registration according to claim 5 or 6, wherein the entry registered in the CAM stores at least a transmission source address, a destination address, and a destination port in the header information. Method. パケットのヘッダ情報に対応するフロー識別子を前記CAMのエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAM(Content−Addressable Memory)へ登録する検索条件CAM登録方法であって、A search condition CAM registration method for registering a search hit condition specified as a range in a CAM (Content-Addressable Memory) as an entry for a search system that searches for a flow identifier corresponding to packet header information using the CAM entry. There,
前記範囲指定される検索ヒット条件を、下限から上限に向かって行う分割と上限から下限に向かって行う分割とを組み合わせることにより、2以上かつポート数未満のエントリに分割し、前記CAMに登録することを特徴とする検索条件CAM登録方法。  The search hit condition specified by the range is divided into entries of 2 or more and less than the number of ports by combining the division performed from the lower limit to the upper limit and the division performed from the upper limit to the lower limit, and is registered in the CAM. The search condition CAM registration method characterized by the above-mentioned.
パケットのヘッダ情報に対応するフロー識別子を前記CAMのエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAM(Content−Addressable Memory)へ登録する検索条件CAM登録方法であって、A search condition CAM registration method for registering a search hit condition specified as a range in a CAM (Content-Addressable Memory) as an entry for a search system that searches for a flow identifier corresponding to packet header information using the CAM entry. There,
前記範囲指定される検索ヒット条件を、下限から上限に向かって行う分割のステップと、上限から下限に向かって行う分割のステップを有し、  The range-specified search hit condition includes a division step for performing from the lower limit toward the upper limit, and a division step for performing from the upper limit toward the lower limit,
前記下限から上限に向かって行う分割のステップにおいては、与えられた下限値をエントリのデータエントリとし、該エントリの下限値の最下位ビットから見て最初に  In the division step performed from the lower limit toward the upper limit, the given lower limit value is set as the data entry of the entry, and the first is seen from the least significant bit of the lower limit value of the entry. 11 が表れるまでの全ビットをAll the bits until 11 に置き換えたものを、該エントリにおける上限値として算出し、該エントリの上限値に対応するマスク値を該エントリのマスクエントリとするエントリを作成してエントリとしてCAMに登録し、前記下限値を該上限値に1加えた値に更新する、Is calculated as an upper limit value in the entry, and an entry having a mask value corresponding to the upper limit value of the entry as a mask entry of the entry is created and registered as an entry in the CAM. Update to the upper limit plus one, 下限から上限に向かって行う分割における分割エントリ生成ステップを有し、A split entry generation step in the split performed from the lower limit toward the upper limit;
前記上限から下限に向かって行う分割のステップにおいては、与えられた上限値をエントリの上限値とし、該エントリの下限値の最下位ビットから見て最初に0が表れるまでの全ビットを1に置き換えたものを、該エントリにおけるデータエントリし、該エントリの上限値に対応するマスク値を該エントリのマスクエントリとするエントリを作成してエントリとしてCAMに登録し、前記上限値を該下限値から1引いた値に更新する、上限から下限に向かって行う分割の分割エントリ生成ステップを有し、  In the division step performed from the upper limit toward the lower limit, the given upper limit value is set as the upper limit value of the entry, and all bits until 0 appears first when viewed from the least significant bit of the lower limit value of the entry are set to 1. The replaced entry is a data entry in the entry, an entry having a mask value corresponding to the upper limit value of the entry as a mask entry of the entry is created, registered as an entry in the CAM, and the upper limit value is determined from the lower limit value. A division entry generation step of division performed from the upper limit to the lower limit, which is updated to a value obtained by subtracting 1;
前記下限から上限に向かって行う分割の分割エントリ生成ステップは、該ステップにおいて算出された前記範囲指定で与えられた上限値より大きくなるまで繰り返し実行され、  The division entry generation step of division performed from the lower limit toward the upper limit is repeatedly executed until it becomes larger than the upper limit value given by the range designation calculated in the step,
前記限から下限に向かって行う分割の分割エントリ生成ステップは、該ステップにおいて算出された前記範囲指定で与えられた下限値より小さくなるまで繰り返し実行されることを特徴とする検索条件CAM登録方法。  The search condition CAM registration method, wherein the division entry generation step of division performed from the limit toward the lower limit is repeatedly performed until the division entry generation step is smaller than a lower limit value given by the range specification calculated in the step.
パケットのヘッダ情報に対応するフロー識別子をCAM(Content−Addressable Memory)のエントリを用いて検索する検索システムに対し、範囲指定される検索ヒット条件をエントリとしてCAMへ登録する検索条件CAM登録方法のプログラムであって、A search condition CAM registration method program for registering a search hit condition specified as a range in the CAM as an entry for a search system that searches a flow identifier corresponding to packet header information using a CAM (Content-Addressable Memory) entry Because
コンピュータに、前記範囲指定される検索ヒット条件を、2以上かつポート数未満のエントリに分割して前記CAMに登録するステップを実行させるためのプログラム。  A program for causing a computer to execute a step of dividing the search hit condition specified in the range into two or more and less than the number of ports and registering it in the CAM.
JP2001177856A 2001-06-13 2001-06-13 Search system, search condition CAM registration method used therefor, and program thereof Expired - Fee Related JP3711895B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001177856A JP3711895B2 (en) 2001-06-13 2001-06-13 Search system, search condition CAM registration method used therefor, and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001177856A JP3711895B2 (en) 2001-06-13 2001-06-13 Search system, search condition CAM registration method used therefor, and program thereof

Publications (2)

Publication Number Publication Date
JP2002374289A JP2002374289A (en) 2002-12-26
JP3711895B2 true JP3711895B2 (en) 2005-11-02

Family

ID=19018640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001177856A Expired - Fee Related JP3711895B2 (en) 2001-06-13 2001-06-13 Search system, search condition CAM registration method used therefor, and program thereof

Country Status (1)

Country Link
JP (1) JP3711895B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1721411A4 (en) * 2004-01-14 2010-09-08 Riverstone Networks Inc Managing processing utilization in a network node
JP5519257B2 (en) * 2009-12-10 2014-06-11 Necエンジニアリング株式会社 Data transfer device
JP5967967B2 (en) * 2012-02-13 2016-08-10 キヤノン株式会社 Information processing apparatus and control method thereof
US8775726B2 (en) 2012-07-27 2014-07-08 International Business Machine Corporation TCAM extended search function

Also Published As

Publication number Publication date
JP2002374289A (en) 2002-12-26

Similar Documents

Publication Publication Date Title
Gupta et al. Packet classification on multiple fields
US7039018B2 (en) Technique to improve network routing using best-match and exact-match techniques
JP4614946B2 (en) System and method for efficiently searching a forwarding database divided into a limited number of sub-databases having a limited size
US7437354B2 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
US6985483B2 (en) Methods and systems for fast packet forwarding
US7389377B2 (en) Access control list processor
US7325071B2 (en) Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks
JP3957570B2 (en) Router device
US20070171911A1 (en) Routing system and method for managing rule entry thereof
EP3258657B1 (en) Ip route caching with two search stages on prefix length
US8599859B2 (en) Iterative parsing and classification
US7861291B2 (en) System and method for implementing ACLs using standard LPM engine
US7142541B2 (en) Determining routing information for an information packet in accordance with a destination address and a device address
WO2020207248A1 (en) Stream classification method and device
US20190294549A1 (en) Hash Table-Based Mask Length Computation for Longest Prefix Match Caching
US7739445B1 (en) Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
TW201603537A (en) A method of representing a generic format header using continuous bytes and an apparatus thereof
JP3711895B2 (en) Search system, search condition CAM registration method used therefor, and program thereof
TW201611548A (en) A method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
US7369554B1 (en) Method and apparatus for performing filter operations on data packets using an instruction
US6633880B1 (en) Method and apparatus for performing distinct types of radix searches
CN113328947B (en) Variable-length route searching method and device based on application of controllable prefix extension bloom filter
US7039627B1 (en) Method and apparatus for performing a radix search by selecting one of a valid table and a transition table
Ghosh et al. A hash based architecture of longest prefix matching for fast IP processing
JP4726310B2 (en) Information retrieval apparatus, information retrieval multiprocessor and router

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050808

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees