JP2009219012A - 固定長データの検索方法 - Google Patents
固定長データの検索方法 Download PDFInfo
- Publication number
- JP2009219012A JP2009219012A JP2008062589A JP2008062589A JP2009219012A JP 2009219012 A JP2009219012 A JP 2009219012A JP 2008062589 A JP2008062589 A JP 2008062589A JP 2008062589 A JP2008062589 A JP 2008062589A JP 2009219012 A JP2009219012 A JP 2009219012A
- Authority
- JP
- Japan
- Prior art keywords
- fixed
- length data
- search
- data
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】 ルートテーブルが保有するIPアドレスを一度に検索可能数まで細分化し高速に検索する。その手段として、ポインタテーブル200と、2次ポインタテーブルと、ローカルテーブルと、ルートテーブルとを、そしてより細分化が必要な場合、数値比較機能を持つテーブルを備える。ACLテーブルの検索はACLテーブルを構成する従固定長データの固定長データテーブルを作成し、ルートテーブルの検索方法を使って、ACLテーブルの検索を行う。これらのテーブルは効率のよい構築・管理を行い、検索動作を妨害しない管理を行うための手段として、テーブル管理手段600を備える。
【選択図】 図1
Description
本発明における固定長データの検索および管理に係る実施例を示す機能ブロック図を図1に示す。
検索命令1は検索命令処理手段100に入力される。図3に検索命令処理手段100の機能を示す。検索命令は検索すべきIPアドレス(サーチキー12)と検索のための命令コード11から構成される。検索命令処理手段100はポインタテーブルメモリ200に格納されたポインタテーブルのインデックス102を抽出し、命令コード101、全インデックス103、サーチキー104、F151を出力する。出力されるインデックス102はIPアドレスの上位nビットである。なお、実際はポインタテーブルメモリ200のベースアドレスと上位nビットの和であるが、簡単の為、以後の説明においてもインデックス102はIPアドレスの上位nビットであるとして説明する。nは選択可能である。図でプレグループ回路110は32ビットIPアドレスの検索において、入力されるサーチキーの上位nビットをそのまま出力する。同じく出力するF151は32ビットIPアドレスの検索法では使われない。そして、32ビットIPアドレスのルートテーブルの検索では全インデックス103とサーチキー104はサーチキー12である。以後の説明において簡単の為、nは16と仮定する。ポインタテーブルの役目はデータベース内の固定長データ(FLD)をグループに分割し、そのグループ内のFLDの数(メンバー数)を少なくし、一度に比較可能なまでにすることである。
図4に、ポインタテーブルメモリ200の構成例を示す。なお、図4には、ポインタテーブルメモリ200、データベースメモリ400の構成が似ている場合の例をまとめて記載したものである。図4の下段には、これらの各メモリとして使用する場合の制御信号、アドレス、データの組合せが記載されている。よって、ポインタメモリの説明はデータベースメモリにも適用可能であり、異なる場合は別途説明する。
ポインタテーブルメモリ200の出力であるエントリーデータ(読み出しデータ297)はポインタ処理手段300に入力される(図1)。ポインタ処理手段300の目的は入力された情報から次の工程であるポインタテーブルメモリ、またはデータベースメモリのインデックスを出力することである。ポインタ処理手段300の入力は、ポインタテーブルの前記エントリーデータと、検索命令処理手段100の出力である全インデックス103と命令コード101とF151と、比較手段を通してデータベースメモリ400から出力されるルートテーブルのエントリー制御データとである。ポインタテーブルの前記エントリーデータとルートテーブルのエントリー制御データとは同じ形式を持つので、以降の説明では単にエントリーデータという。
(1)ポインタテーブルのこのエントリーに、IPアドレスは無い。
(2)ポインタテーブルのこのエントリーに、一つのIPアドレスが存在する。
(3)ポインタテーブルの再読み出し、を行う。
(4)ローカルテーブル(LT)の読み出しを行い、比較を実行する。
(5)ルートテーブルの読み出しを行い、NVC(数値比較)を実行する。
(6)ルートテーブルの読み出しを行い、比較を実行する。
これら次工程を詳しく説明する。
図4にデータベースメモリ400(図1)の構成例を示す。データベースメモリ400の説明はポインタテーブルメモリ200と同じ為、省く。データベースメモリ400に格納されるルートテーブルの構成を説明する。図7に、ルートテーブルのFLD416の構成を示す。ルートテーブルのFLD416は2つの形式が存在し、前次工程(データベースメモリ400の読み出し要求)がその形式を決定する。一つは前次工程が(4)か(6)の比較動作を指示した場合の形式(1)であり、他は前次工程(5)のNVC動作を指示した場合の形式(2)である。形式(1)は有効ビット421、プレフィックス・マスク422、IPアドレス下位(32−n)ビット423、ID422,およびユーザーデータ425から構成される。nはポインタテーブルのインデック102の長さである。形式(2)は被比較値427、ルートテーブルの変位428、MCD429から構成される。形式(1)のFLD416は内蔵するプレフィックス・マスク422の長い順に格納される。図7を例にすれば、式1が成り立つ。
LOP_FLDm≧LOP_FLDm−1≧・・・≧LOP_FLD0 式1
LOP_FLDmはFLDmが内蔵するプレフィックス・マスクの長さを意味する。同様に、形式(2)の被比較値427に対して、式2が成立する。
被比較値FLDm≧被比較値FLDm−1≧・・・≧被比較値FLD0 式2
被比較値FLDmはFLDmが内蔵する被比較値427である。被比較値は無符号値として扱われる。
データベースメモリ400の出力である読み出しデータ497は比較手段500に入力される。比較手段500の目的は、次工程404が(4)または(6)の場合、入力された読み出しデータのFLDと検索命令処理手段100の出力の前もって保存されたサーチキー504とを比較し(比較動作)、比較により得られた結果を出力すること、次工程404が(5)の場合、ポインタ処理手段300から出力された全インデックス403から抽出した抽出インデックスを大小比較すること、および、読み出しデータ497のエントリー制御データの次工程に従い、次の工程を決定することである。
図3において、プレグループ回路110は,設定可能なレジスターRとサブ比較器を内蔵するサブ比較回路115をm個と、選択器116と、連結器117を持つ。プレグループ回路110はサーチキーのnビットとサーチキーを入力され、ポインタテーブルのインデックス102と、F151を出力する回路である。レジスターRは図が示すようにサブグループ、サブマスク、PTベース、F、PT開始、そして終了を保存する。サブマスクは最上位ビットから最大n個の1を持つマスクである。その1の数をサブマスクの長さと呼ぶ。その機能はサブ比較器で、サブマスクが1に相当するビットを比較する。サブマスクを使って、サーチキーのnビットとレジスターに保存されているサブグループを比較する。この動作を全てのサブ比較回路115で行う。一致したサブ比較回路115のPTベースと、Fと、PT開始と終了が選択器116により選択、出力される。m個のサブ比較回路は優先順位を持ち、複数のサブ比較回路115が一致した場合、優先順位の一番高いサブ比較回路115のレジスター内の上記パラメータが出力される。また、一致するサブ比較回路115が存在しない場合、優先順位の一番低いサブ比較回路115の上記パラメータが出力される。出力されたFを除く上記パラメータは連結器117に入力され、ポインタテーブルのインデックス102が出力される。Fは選択器から、そのまま検索命令処理手段から出力される(F151)。連結器の機能を説明する。PT開始と終了で示されるサーチキーのその間のビットを抽出し、それを下位データとするポインタテーブルのインデックス長のデータ1を作成する。データ1の上位データは0である。そして、PTベースを上位データとするポインタテーブルのインデックス長のデータ2を作成する。データ2の下位データは0である。データ1とデータ2の論理和がポインタテーブルのインデックス102である。PT開始がn+1を指定した場合、Fは1であり、その他の値の場合、0である。
128ビットIPアドレスのルートテーブルの検索で、ポインタテーブルメモリ200が保存するポインタテーブルのエントリーデータはF151の値で形式が異なる。F151が1の場合、32ビットIPアドレスのそれと同じであるが、0の場合、PTIDとデフォルトデータが不必要である。
ポインタ処理手段300の機能は、F151が1の場合、32ビットIPアドレスの検索のそれと同じである。F151が0の場合、エントリーデータはPTIDとデフォルトデータは格納しないので、PTID308は0が、DEFは無効ビットつきで出力される。
128ビットIPアドレスの検索で、データベースメモリ400の読み出しデータの形式がF351の値で異なる。それを図7に示す。F351が1の場合、IPアドレスの長さを除き、32ビットIPアドレスの検索のそれと同じである。この場合、IPアドレス下位(128−p)ビットのpは図3で、(サブマスクの長さ)+(PT開始と終了の差)+1で表される。以後の説明では例としてpは23とする。F351が0の場合、128ビットのIPアドレスが格納され、IDは削除されている。プリフィックスマスクは7ビットで表される。
比較手段500で、32ビットIPアドレスの検索のそれと異なる点は、プリフィックスマスク422の展開される形式が32ビット長ではなく128ビット長である。一例として、それが49の場合、比較に使われるマスクは16進表示でFFFFFFFFFFFF80000000000000000000に展開される。F451が1の場合、pは23であるから、同様に0と1を逆に展開し、それと上記マスクと論理積演算を行った結果が比較に使われるマスクである。この場合、pを展開すると16進表示で000001FFFFFFFFFFFFFFFFFFFFFFFFFFが得られる。その結果、比較に使われるマスクは000001FFFFFF80000000000000000000が得られる。このマスクを使い、上位ビットが0で、128ビット形式に展開されたIPアドレス下位(128−p)ビット423とサーチキー504が比較される。結果出力3の判定は、32ビットIPアドレスの検索のそれと同じである。F451が0の場合、展開されたプリフィックスマスクだけを使って、IPアドレス128ビット423とサーチキー504が比較される。結果出力3の判定は、32ビットIPアドレスの検索のそれと異なる。DEF409が無効であるため、比較結果が不一致の場合、不一致結果を結果出力3に出力する。
ACLテーブル1のFLD416とサーチキー1が一致した場合、一致したFLD416のユーザーデータ、または一致しない場合でDEFが有効な場合のDEF(ユーザーデータと同じ形式を持つ)が得られる。一致しない場合、不一致結果が結果出力になる。ACLテーブル1の検索で注意したいことは、ACLテーブル1を読み出して得られたエントリー制御データの次工程は、ルートテーブルの比較結果を得る場合(1)であるがACLテーブル1の比較結果を得る場合(7)である(図5参照)。その機能は、比較結果が不一致の場合、不一致結果を出力し終了するが、一致の場合、ACLテーブル2の検索に移行する。ACLテーブル1の検索で得られたユーザーデータ、またはDEFから、ACLテーブル2を読み出すACLテーブル2のベースインデックス427を得る。ACLテーブル2のインデックスはその下位ビットに、細分化データ428により生成されるビットを代入して得られる。細分化データ428の有効ビット429が無効であれば、得られたACLテーブル2のベースインデックス427がACLテーブル2のインデックスである。有効ビット429が有効である場合、読み出すACLテーブル2に一度に比較できない数のFLD416が存在することを意味する。細分化データ428は一度に比較が可能とする手段を与える。細分化の例を図10に示す。図ではインデックス生成選択430とメモリ読み出し回数431が細分化データ428である。わかりやすい方法から説明する。メモリ読み出し回数431は、一回のACLテーブル2の読み出しにより、ACLテーブル2に格納されているP個のFLD416が得られるとすると、連続してメモリを読み出す回数を増やせば、比較可能なFLD416の数は2P、3P、4Pのように増加する。この目的でメモリ読み出し回数431はACLテーブル2の読み出し回数を定める。インデックス生成選択430は例として、PR分離432、IP分離0(433)、IP分離1(434)、IP分離2(435)、IP分離3(436)から構成される。前述したが、比較回路500の保存回路510はサーチキーが保存されている。ACLテーブル2のFLD416を構成するプロトコールとIPアドレスに対応する、サーチキーの保存プロトコールと保存IPアドレスを読み出し、保存プロトコールはデコードを行い、保存IPアドレスから上記データによりビットを抽出する。PR分離432が有効な場合、保存プロトコールのデコードの結果、それが例えばTCPであれば、ACLテーブル2のベースインデックス427のビット4を1に、それ以外であれば0の設定を行う。また、IP分離0(433)、IP分離1(434)、IP分離2(435)、IP分離3(436)は有効ビットとビット位置から構成されるが、それぞれの有効ビットが有効である場合、保存IPアドレスから、それぞれのビット位置で指定するビットを抽出し、抽出したビットを順にACLテーブル2のベースインデックス427のビット0、ビット1、ビット2、ビット3に代入する。このように、細分化しない場合にACLテーブル2のベースインデックス427で読み出さなければならないACLテーブル2のFLD416の数は、インデックス生成選択430を使った処理を行うことにより5ビット、32分割の細分化が実現できる。実際には均等に分割されることはないが前述のメモリ読み出し回数431を併用すれば細分化の効果は十分である。
ポインタ処理手段300は記述した処理を実行し、命令コード301、次工程304、RTIX306、MCD307をデータベースメモリ400に出力し、ACLテーブル2を読み出す。
ルートテーブルの検索と同様に、ACLテーブル2の読み出しデータ497のFLD416は比較回路520で、エントリーデータ415は次工程回路で処理される。エントリーデータ415の次工程は(1)である。複数の連続したメモリ読み出しが行われた場合、エントリーデータ415は全て同じである。読み出されたFLD416は保存回路に保存されているサーチキーを読み出し、それと比較される。ACLテーブル2のFLD416の詳細は図10を参照し、略語で説明する。また読み出されたサーチキーの部分には保存を先頭につける。例えば、保存IPアドレス。FLD416のPFM462とIPA463は保存IPアドレスと比較される(比較1)。PFM462は5ビット(7ビット)であり、LPMルールで説明した方法で展開される。展開されたマスクを使ってIPA463と保存IPアドレスが比較される。IPA463は32ビット(128ビット)で全ビットが比較される。ビット数はIPv4の場合で、カッコ内はIPv6の場合である。保存送信元ポートはSPH464そしてSPL465と比較される(比較2)。保存送信元ポートの値がSPH464とSPL465の間にある場合、一致と認識される。保存宛先ポートはDPH466そしてDPL467と比較される(比較3)。保存宛先ポートの値がDPH466とDPL467の間にある場合、一致と認識される。保存プロトコールはPR468と比較される(比較4)。保存TOSはTOSマスク、TOSM469を使って、マスクされていないTOS470のビットと比較される(比較5)。保存制御フラグはCFマスク、CFM471を使って、マスクされていないCF472のビットと比較される(比較6)。ユーザーデータ425のACLID426とAID473が比較される(比較7)。比較1から比較7、全ての比較結果が一致であれば、そのFLD416はサーチキーと一致したと判断される。一致したFLD416が2個以上存在すれば、そのうち優先順位が一番高いFLD416のUD474と一致結果と命令コード401が結果出力3である。ひとつのFLD416も一致しなかった場合、不一致結果と命令コード401が結果出力3である。本発明の重要な点である、ACLID426とAID473の比較法を詳しく説明する。ACLID426とAID473は同じ形式を持つ。ACLID426は一致IDと範囲IDから構成される。一致IDは、読み出しデータ497に複数の異なるグループが存在する場合、それを区別する目的で比較される。ACLID426の範囲IDがAID473の範囲IDの値以上であれば一致と判断される。その理由を説明する。ACLテーブル2に格納されている、細分化されたグループのFLD416は、ACLテーブル1の検索で一致したIPアドレスに属する。しかし、一致したIPアドレスは複数存在する可能性がある。それらの例をIP0、IP1、IP2、IP3とし、IP0,IP1,IP2,IP3の順でそれらのプリフィックスマスク長が長くなるとする。ACLテーブル1の検索で、プリフィックスマスク長が最長のIP3が選択されれば、このグループに属する全てのFLD416が比較対象となる。しかし、ACLテーブル1の検索で、IP2が選択された場合、IP3に関係するFLD416は比較対象から除かれなければならない。このため、それを実現する為に、IP3に関係するFLD416の範囲IDに例として3を割り当てる。同様に、IP0、IP1、IP2に関係するFLD416の範囲IDにそれぞれ0,1,2を割り当てる。このようにACLID426とAID473を設定すると、ACLテーブル1の検索で、IP3が選択された場合、そのACLID426の範囲IDが3であるから、3を含むそれ以下のAID473の範囲IDをもつ、グループ内の全てのFLD416のAID473が一致する。IP1が選択された場合、そのACLID426の範囲IDが1であるから、グループ内のACLID426の範囲IDが0と1を持つFLD416が比較対象となる。
次にテーブル管理手段600の機能を説明する。テーブル管理手段600は基本的にプロセッサーとそのプログラムを格納するメモリから構成される。そのプロセッサーの処理可能なアドレス空間にポインタテーブルメモリ200とデータベースメモリ400はマップされている。プロセッサーからの両メモリに対する書き込みと読み出しは書き込み・読み出しアドレス制御信号(293と493)と書き込み・読み出しデータ(294と494)を使って行われる(図4)。またテーブル管理手段600は検索命令処理手段100、ポインタ処理手段300、比較手段500に保持される、テーブル管理命令2の実行状況を読み出すインターフェイスを備える(図1の点線で示す)。
100 検索命令処理手段
200 ポインタテーブルメモリ
300 ポインタ処理手段
400 データベースメモリ
500 比較手段
600 テーブル管理手段
Claims (14)
- 検索のための命令を表す命令コードとサーチキーとから構成される入力された検索命令に対して、指定された処理を行って出力する検索命令処理手段と、
前記検索命令処理手段またはポインタ処理手段からの出力値をインデックスにして読み出すためのポインタテーブルを格納するポインタテーブルメモリと、
前記ポインタテーブルメモリから出力されるポインタ値と前記検索命令処理手段の出力と比較手段から出力される比較結果とを用いて指定された処理を行って前記サーチキーに対応するアドレスを出力する前記ポインタ処理手段と、
前記ポインタ処理手段の出力によりアドレス指定される、検索に必要な固定長データに対応するデータ、または、検索に必要なデータの少なくともいずれかのデータと、多数の固定長データとを保持する固定長データテーブルを格納するデータベースメモリと、
前記固定長データテーブルに格納されている複数の固定長データと前記入力された検索命令のサーチキーを指定された方法によって比較する比較手段であって、比較結果が一致の場合に、一致結果と一致した固定長データのユーザーデータとを検索結果として出力する比較手段と、
入力されたテーブル管理命令に対して、ポインタテーブルと固定長データテーブルを変更するテーブル管理手段と
を備える固定長データ検索装置。 - 固定長データテーブルを構成する全ての固定長データの中で、前記ポインタテーブルのインデックス(mビット長)と固定長データの上位mビットのうち、固定長データに付属するプリフィックスマスクで示されるビットだけを比較して、一致する固定長データを選出し、
一致する固定長データをすべて固定長データテーブルに保存するか、または
一致する固定長データのプリフィックスマスクの長さがm+1以上である固定長データを固定長データテーブルに保存し、かつ、一致する固定長データのプリフィックスマスクの長さがm以下である固定長データのうちで一番大きなプリフィックスマスクの長さを持つ固定長データを固定長データテーブルに保存することを特徴とする請求項1に記載の固定長データ検索装置。 - 前記比較手段が、比較結果が不一致でポインタテーブルの出力にデフォルトデータが存在する場合に、一致結果とそのデフォルトデータを検索結果として出力し、比較結果が不一致でポインタテーブルの出力にデフォルトデータが存在しない場合に、不一致結果を検索結果として出力することを特徴とする請求項1に記載の固定長データ検索装置。
- 固定長データテーブルを構成する全ての固定長データの中で、前記ポインタテーブルのインデックス(mビット長)と固定長データの上位mビットのうち、固定長データに付属するプリフィックスマスクで示されるビットだけを比較して、一致する固定長データを選出し、
一致する固定長データのプリフィックスマスクの長さがm+1以上である固定長データを固定長データテーブルに保存し、
一致する固定長データのプリフィックスマスクの長さがm以下である固定長データのうちで一番大きなプリフィックスマスクの長さを持つ固定長データのユーザーデータを前記デフォルトデータとしてポインタテーブルに保存することを特徴とする請求項3に記載の固定長データ検索装置。 - 検索すべき固定長データが複数の要素から構成されており、
前記データベースメモリが、検索すべき固定長データの個々の要素を保存する固定長データテーブルを複数格納するか、または、複数の要素をグループ化して保存する固定長データテーブルを複数格納することを特徴とする請求項1に記載の固定長データ検索装置。 - 前記データベースメモリに複数の固定長データテーブルが格納されており、
最後に検索される固定長データテーブルを除き、各固定長データテーブルは、
要素と、
該要素に一致するものがある場合に次に検索する固定長データテーブルのインデックスと、
該インデックスにより読み出される要素の数を細分化するパラメータと、
要素の比較を有効にするIDと
を保存することを特徴とする請求項1に記載の固定長データ検索装置。 - 前記比較手段が検索結果を出力する出力手段をさらに備えており、
検索すべき固定長データの要素が複数の固定長データテーブルに保存されており、
前記比較手段は、複数の固定長データテーブルに対して、
(1)検索する固定長データテーブルを定めて今次の固定長データテーブルとし、該今次の固定長データテーブルからの固定長データをサーチキーと比較し、
(2)該比較において不一致の場合には検索結果を前記出力手段から出力し、該比較において一致した場合には、該今次の固定長データテーブルの次の固定長データテーブルから読み出すための読み出し指令を前記ポインタ処理手段に発行するとともに、前記読み出し指令に応じてデータベースメモリから読み出された当該次の固定長データテーブルからの固定長データとそれに対応するサーチキーの一部とをさらに比較し、
(3)最後の固定長データテーブルに格納している最後の固定長データとなるまで(1)から(2)を繰り返すことを特徴とする請求項1に記載の固定長データ検索装置。 - 前記テーブル管理手段は、ポインタテーブルと固定長データテーブルの修正に必要な情報を保持する手段と該保持した情報を読み出す手段とを備えており、
前記テーブル管理手段は、入力されたテーブル管理命令に対応する命令コードを持つ検索命令を生成して該命令コードの処理を実行し、前記保持する手段に該検索実行過程でポインタテーブルと固定長データテーブルの修正に必要な情報を保持することを特徴とする請求項1に記載の固定長データ検索装置。 - 前記テーブル管理手段は、ポインタテーブルと固定長データテーブルを修正するために、それらが格納されているポインタテーブルメモリとデータベースメモリのもつ構造上の特徴を利用するフィルオーダー、シフトオーダー、比較オーダーを発行する手段を備えることを特徴とする請求項1に記載の固定長データ検索装置。
- 前記テーブル管理手段は、固定長データテーブルに保存する固定長データの数を最大化するため、ペアリング手法を使い固定長データテーブルの空きロケーションをなくす手段を備えることを特徴とする請求項1に記載の固定長データ検索装置。
- 検索のための命令を表す命令コードとサーチキーとから構成される入力された検索命令に対して、指定された処理を行って出力する検索命令処理ステップと、
前記検索命令処理ステップの出力値をインデックスにしてポインタテーブルからポインタ値を読み出すステップと、
前記ポインタテーブルから読み出された前記ポインタ値と検索命令処理ステップの出力値とを用いて、指定された処理を行って前記サーチキーに対応するアドレスを出力するポインタ処理ステップと、
前記ポインタ処理ステップの出力によりアドレス指定される、検索に必要な固定長データに対応するデータ、または、検索に必要なデータの少なくともいずれかのデータと、多数の固定長データとを保持する固定長データテーブルから複数の固定長データを読み出すステップと、
前記固定長データテーブルから読み出された複数の固定長データと前記入力された検索命令のサーチキーを指定された方法によって比較するステップであって、比較結果が一致の場合、一致結果と一致した固定長データのユーザーデータを検索結果として出力する比較ステップと
を有する固定長データ検索方法。 - 前記比較ステップが、比較結果が不一致でポインタテーブルの出力にデフォルトデータが存在する場合、一致結果とそのデフォルトデータを検索結果として出力し、比較結果が不一致でポインタテーブルの出力にデフォルトデータが存在しない場合、不一致結果を検索結果として出力するものである、請求項11に記載の固定長データ検索方法。
- 検索のための命令を表す命令コードとサーチキーとから構成される入力された検索命令に対して、指定された処理を行って出力する検索命令処理ステップと、
前記検索命令処理ステップの出力値をインデックスとしてポインタテーブルからポインタ値を読み出すステップと、
(1)前記ポインタテーブルから読み出された前記ポインタ値と検索命令処理ステップの出力値と、または比較ステップの出力値とを用いて、指定された処理を行って前記サーチキーに対応するアドレスを出力するポインタ処理ステップと、
(2)前記ポインタ処理ステップの出力によりアドレス指定される、検索に必要な固定長データに対応するデータ、または、検索に必要なデータの少なくともいずれかのデータと、多数の固定長データとを保持する固定長データテーブルを読み出すステップと、
(3)指定された方法によって、前記固定長データテーブルに格納されている複数の固定長データを、前記入力された検索命令のサーチキーの複数の固定長データに対応する部分と同時に比較し、比較結果が一致した場合、次の固定長データテーブルを読み出す命令をポインタ処理ステップに出力する比較ステップと、
検索すべき固定長データを構成する要素を固定長データとして保存する複数の固定長データテーブルに対して(1)から(3)のステップを繰り返し、最後の固定長データテーブルが読み出され、指定された方法によって、前記固定長データテーブルに格納されている複数の固定長データを、前記入力された検索命令のサーチキーの固定長データに対応する部分と同時に比較し、比較結果が一致した場合、一致結果と一致した固定長データに伴うユーザーデータを、比較結果が不一致の場合、不一致の検索結果を出力する比較ステップと
を有する固定長データ検索方法。 - コンピュータを、請求項1〜請求項10のいずれかに記載の装置として機能させることを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062589A JP4995125B2 (ja) | 2008-03-12 | 2008-03-12 | 固定長データの検索方法 |
US12/140,590 US8010557B2 (en) | 2008-03-12 | 2008-06-17 | Retrieving method for fixed length data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062589A JP4995125B2 (ja) | 2008-03-12 | 2008-03-12 | 固定長データの検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009219012A true JP2009219012A (ja) | 2009-09-24 |
JP4995125B2 JP4995125B2 (ja) | 2012-08-08 |
Family
ID=41064138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008062589A Expired - Fee Related JP4995125B2 (ja) | 2008-03-12 | 2008-03-12 | 固定長データの検索方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8010557B2 (ja) |
JP (1) | JP4995125B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422164A (zh) * | 2021-11-29 | 2022-04-29 | 杭州迪普科技股份有限公司 | 五元组表项下发装置及方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9406381B2 (en) * | 2010-08-01 | 2016-08-02 | Gsi Technology Israel Ltd. | TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules |
US9460300B1 (en) * | 2012-09-10 | 2016-10-04 | Google Inc. | Utilizing multiple access control objects to manage access control |
US20140095785A1 (en) * | 2012-09-28 | 2014-04-03 | Broadcom Corporation | Content Aware Block Power Savings |
US9473732B2 (en) * | 2013-05-31 | 2016-10-18 | Arris Enterprises, Inc. | Self correcting record pipeline |
US11347706B2 (en) * | 2015-12-31 | 2022-05-31 | Scott W. McLellan | Rotor movement control and rotor wiring for rotor-based encryption machines and electronic equivalents |
WO2017117459A1 (en) * | 2015-12-31 | 2017-07-06 | F5 Networks, Inc. | Transparent control and transfer of network protocols |
JP2017147662A (ja) * | 2016-02-18 | 2017-08-24 | 株式会社オートネットワーク技術研究所 | 中継装置 |
US10778721B1 (en) * | 2016-02-26 | 2020-09-15 | Arista Networks, Inc. | Hash-based ACL lookup offload |
CN105721303B (zh) | 2016-03-31 | 2018-05-18 | 华为技术有限公司 | 一种路由控制方法、网络设备及控制器 |
US10708272B1 (en) | 2017-02-10 | 2020-07-07 | Arista Networks, Inc. | Optimized hash-based ACL lookup offload |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004046988A (ja) * | 2002-07-12 | 2004-02-12 | Fujitsu Ltd | 連想メモリ装置及びそれを用いた中継装置 |
JP2004229163A (ja) * | 2003-01-27 | 2004-08-12 | Internatl Business Mach Corp <Ibm> | 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 |
WO2005104456A1 (ja) * | 2004-03-31 | 2005-11-03 | Ipt Corporation | 固定長データの検索装置および検索管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7178100B2 (en) * | 2000-12-15 | 2007-02-13 | Call Charles G | Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers |
JP2002334114A (ja) * | 2001-05-10 | 2002-11-22 | Allied Tereshisu Kk | テーブル管理方法及び装置 |
US7054315B2 (en) * | 2001-09-17 | 2006-05-30 | Pmc-Sierra Ltd. | Efficiency masked matching |
US7415463B2 (en) * | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Programming tree data structures and handling collisions while performing lookup operations |
-
2008
- 2008-03-12 JP JP2008062589A patent/JP4995125B2/ja not_active Expired - Fee Related
- 2008-06-17 US US12/140,590 patent/US8010557B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004046988A (ja) * | 2002-07-12 | 2004-02-12 | Fujitsu Ltd | 連想メモリ装置及びそれを用いた中継装置 |
JP2004229163A (ja) * | 2003-01-27 | 2004-08-12 | Internatl Business Mach Corp <Ibm> | 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 |
WO2005104456A1 (ja) * | 2004-03-31 | 2005-11-03 | Ipt Corporation | 固定長データの検索装置および検索管理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422164A (zh) * | 2021-11-29 | 2022-04-29 | 杭州迪普科技股份有限公司 | 五元组表项下发装置及方法 |
CN114422164B (zh) * | 2021-11-29 | 2023-09-15 | 杭州迪普科技股份有限公司 | 五元组表项下发装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4995125B2 (ja) | 2012-08-08 |
US8010557B2 (en) | 2011-08-30 |
US20090234841A1 (en) | 2009-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4995125B2 (ja) | 固定長データの検索方法 | |
US6697363B1 (en) | Method and apparatus for longest matching prefix determination in a communication network | |
US8856203B1 (en) | System and method for algorithmic TCAM packet classification | |
US6434144B1 (en) | Multi-level table lookup | |
US7403494B2 (en) | Method for generating nodes in multiway search tree and search method using the same | |
US7565343B2 (en) | Search apparatus and search management method for fixed-length data | |
JP3782950B2 (ja) | 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造 | |
KR100748772B1 (ko) | 최장의 정합 어드레스 탐색장치 및 방법 | |
US8880507B2 (en) | Longest prefix match using binary search tree | |
US8325721B2 (en) | Method for selecting hash function, method for storing and searching routing table and devices thereof | |
US6618760B1 (en) | Forwarding information retrieval technique | |
US20050171959A1 (en) | Efficient ipv4/ipv6 best matching prefix method and apparatus | |
US20050243827A1 (en) | Lookup engine | |
KR20100120812A (ko) | Ip주소 검색을 위한 장치 및 방법 | |
JP5960863B1 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
JP3570323B2 (ja) | アドレスに関するプレフィクスの格納方法 | |
US7478109B1 (en) | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes | |
US20030009474A1 (en) | Binary search trees and methods for establishing and operating them | |
JP2004194343A (ja) | パイプライン型ハードウエアビットマップ型マルチビットトライアルゴリズムネットワーク検索エンジンにおけるパス圧縮最適化のためのシステム及び方法 | |
KR100420957B1 (ko) | 클래스 분할 기법을 이용한 라우팅 테이블 자료구조,라우팅 테이블을 이용한 라우팅 경로 검색방법 및 장치 | |
Erdem et al. | Value-coded trie structure for high-performance IPv6 lookup | |
JP2003500901A (ja) | 最長一致プレフィックス・ルックアップ | |
WO2003003250A1 (en) | Range content-addressable memory | |
JP6205463B2 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
Zhao et al. | Pipelined architecture for fast IP lookup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120327 |
|
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: 20120413 |
|
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: 20120509 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150518 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |