JP4614946B2 - 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 - Google Patents
限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 Download PDFInfo
- Publication number
- JP4614946B2 JP4614946B2 JP2006509416A JP2006509416A JP4614946B2 JP 4614946 B2 JP4614946 B2 JP 4614946B2 JP 2006509416 A JP2006509416 A JP 2006509416A JP 2006509416 A JP2006509416 A JP 2006509416A JP 4614946 B2 JP4614946 B2 JP 4614946B2
- Authority
- JP
- Japan
- Prior art keywords
- sub
- prefixes
- database
- prefix
- databases
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000012545 processing Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 6
- 239000004744 fabric Substances 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 241000712062 Patricia Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
アルゴリズムSplit(R,Tsplit)
ListPending ={R}
While(ListPendingが空でない)
{
ListPendingからノードAを削除する
n=|subtrie(A)|
If(n>Tspli){
/*Aを分割する*/
Aの左側の子(空でない場合)と右側の子(空でない場合)をListPendingに入れる}
}
else{ノードAを候補SEとしてマークする}
/*アルゴリズムSplit()の終わり*/
アルゴリズムMergeUsingRecursion(R,Tmerge)
L=RecurseMerge(R,Tmerge);
If(Lが空でない[すなわち非ゼロ])RをSEとし、LをそのLSNとする
/*アルゴリズムMergeUsingRecursionの終わり*/
/*上記のアルゴリズムで以下の再帰関数を使用する。[]のインスタンスは、このコンテキストでは該当しないため、すべて削除されたい。*/
関数リスト[int]RecurseMerge(A,Tmerge)
{
If(AがNULL)NULL[0]を返す;
If(Aがすでにマークされた候補SE)
{
if(|subtrie(A)|≧Tmerge){AをSEとしてマークする;NULL[0]を返す}
else{A[1]を返す;}
}
L1=RecurseMerge(A−>leftChild,Tmerge);
L2=RecurseMerge(A−>rightCild,Tmerge);
L=L1+L2;/*連結オペレーション[または整数の場合は整数加算オペレーション]をリストする*/
If(Aにプレフィクスがある){ret=({A}+L)[1+L}
else{ret=L;}
if(ret≧Tmerge)
{
/*ret<=2*Tmerge−1であることが保証される。これは、Tmerge「T/2」の場合、<=Tである)*/
AをSEとしてマークし、LをそのLSNとしてマーク;
return NULL[0]
}
else return(ret);
/*アルゴリズムRecurseMege()の終わり*/
Claims (19)
- 通信ネットワークにおいてデータのパケットを送るための転送データベースの形成方法であって、
プレフィクス内の1つまたはそれ以上のマスクされないビット値に排他的に基づいて、それぞれT個以下のプレフィクスを有する前記データベース内のN個(ここで、TはNより小さい所定の値である)のプレフィクスを、Nに比例しTに反比例する数に制限された数のサブデータベースに分割することと、
ポインタの第1のセットを形成することとを含み、
前記サブデータベースの少なくとも1つは1個を超えるプレフィクスを有し、ポインタの前記第1のセットのそれぞれは前記サブデータベースのそれぞれ1つを指す、前記転送データベースの形成方法。 - 前記ポインタの第1のセットと前記ポインタの第1のセットによって指示された前記サブデータベースとの中間にあり、前記サブデータベースの対応する1つのサブデータベースを指示する、ポインタの第2のセットを再帰的に形成することをさらに含む請求項1に記載の方法。
- 前記分割は、N個のプレフィクスの最上位ビットから開始し、N個のプレフィクスを反復的に分割することによって、ルート・ノードと複数の葉ノードとの間に延びる木を形成することを含み、各葉ノードはT個以下のプレフィクスを有する請求項1に記載の方法。
- 最小プレフィクス数未満のプレフィクスを有する第1の葉ノードを、前記第1の葉ノードより前記ルート・ノードに近く配置された第2の葉ノードにマージすることをさらに含む請求項3に記載の方法。
- 前記プレフィクスの最小数がT/2である請求項4に記載の方法。
- 前記サブデータベース数はNと(2N/T)+1との間に制限される請求項4に記載の方法。
- 前記形成は、N個のプレフィクスの最上位ビットから開始し、より下位のビットのビット値を各サブデータベースの最上位ビットに達するまで加算することを含む請求項1に記載の方法。
- それぞれの前記サブデータベースを同じ物理ブロックの別々にアクセス可能な部分に配置することをさらに含む請求項1に記載の方法。
- コンピュータ可読記憶媒体に記憶され請求項1に記載の方法に従って解釈されるルックアップ・テーブル。
- ルータまたは交換機、または前記ルータまたは交換機のライン・カードまたは入出力ポート、または前記ルータまたは交換機のスイッチ・ファブリック内にあり請求項1に記載の方法を実行する、コンピュータまたは特殊用途向け集積回路(ASIC)。
- 処理主体によって実行されると、前記処理主体に、
プレフィクス内の1つまたはそれ以上のマスクされないビット値に排他的に基づいて、それぞれT個以下のプレフィクスを有する前記データベース内のN個(ここで、TはNより小さい所定の値である)のプレフィクスを、Nに比例しTに反比例する数に制限された数のサブデータベースに分割させ、
ポインタの第1のセットを形成させる命令を格納し、
前記サブデータベースの少なくとも1つは1個を超えるプレフィクスを有し、ポインタの前記第1のセットのそれぞれは前記サブデータベースのそれぞれを指す、コンピュータ可読記憶媒体。 - 前記処理主体によって実行されると、前記処理主体に、
前記サブデータベースのそれぞれを、データ記憶装置のそれぞれ別々の部分に配置させる命令をさらに格納する請求項11に記載のコンピュータ可読記憶媒体。 - 前記処理主体に、データベース内のN個のプレフィクスをサブデータベースに分割させる命令は、前記処理主体に、
N個のプレフィクスの最上位ビットから開始し、N個のプレフィクスを反復的に分割することによって、ルート・ノードと複数の葉ノードとの間に延びる木を形成させる命令であり、各葉ノードはT個以下のプレフィクスを有する請求項11に記載のコンピュータ可読記憶媒体。 - 前記処理主体によって実行されると、前記処理主体に、
最小プレフィクス数未満のプレフィクスを有する第1の葉ノードを、前記第1の葉ノードより前記ルート・ノードに近く配置された第2の葉ノードにマージさせる命令をさらに格納する請求項13に記載のコンピュータ可読記憶媒体。 - 前記プレフィクスの最小数がT/2である請求項14に記載のコンピュータ可読記憶媒体。
- 前記サブデータベース数はNと(2N/T)+1との間に制限される請求項14に記載のコンピュータ可読記憶媒体。
- 前記処理主体に、ポインタの第1のセットを形成させる命令は、前記処理主体に、
N個のプレフィクスの最上位ビットから開始し、より下位のビットのビット値を各サブデータベースの最上位ビットに達するまで加算させる命令である請求項11に記載のコンピュータ可読記憶媒体。 - 前記処理主体によって実行されると、前記処理主体に、
それぞれの前記サブデータベースを同じ物理ブロックの別々にアクセス可能な部分に配置させる命令をさらに格納する請求項11に記載のコンピュータ可読記憶媒体。 - 前記処理主体によって実行されると、前記処理主体に、
前記ポインタの第1のセットと前記ポインタの第1のセットによって指示された前記サブデータベースとの中間にあり、前記サブデータベースのセットの対応する1つのサブデータベースを指示する、ポインタの第2のセットを再帰的に形成させる命令をさらに含む請求項11に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/402,887 US7426518B2 (en) | 2003-03-28 | 2003-03-28 | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
PCT/US2004/009531 WO2004088548A1 (en) | 2003-03-28 | 2004-03-26 | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006527526A JP2006527526A (ja) | 2006-11-30 |
JP4614946B2 true JP4614946B2 (ja) | 2011-01-19 |
Family
ID=32989833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006509416A Expired - Fee Related JP4614946B2 (ja) | 2003-03-28 | 2004-03-26 | 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7426518B2 (ja) |
EP (1) | EP1611533A1 (ja) |
JP (1) | JP4614946B2 (ja) |
CN (1) | CN1784678A (ja) |
WO (1) | WO2004088548A1 (ja) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020089937A1 (en) | 2000-11-16 | 2002-07-11 | Srinivasan Venkatachary | Packet matching method and system |
US7571156B1 (en) * | 2003-03-28 | 2009-08-04 | Netlogic Microsystems, Inc. | Network device, storage medium and methods for incrementally updating a forwarding database |
US7426518B2 (en) * | 2003-03-28 | 2008-09-16 | Netlogic Microsystems, Inc. | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
US7418519B1 (en) * | 2003-05-29 | 2008-08-26 | Nortel Networks Limited | Technique for prefix limit exchange for route advertisement |
US7437354B2 (en) * | 2003-06-05 | 2008-10-14 | Netlogic Microsystems, Inc. | Architecture for network search engines with fixed latency, high capacity, and high throughput |
US7934198B2 (en) * | 2003-10-17 | 2011-04-26 | Netlogic Microsystems, Inc. | Prefix matching structure and method for fast packet switching |
US7515588B2 (en) * | 2004-03-18 | 2009-04-07 | Intel Corporation | Method and apparatus to support a large internet protocol forwarding information base |
US7603346B1 (en) | 2004-07-23 | 2009-10-13 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein |
US7725450B1 (en) | 2004-07-23 | 2010-05-25 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations |
US7747599B1 (en) | 2004-07-23 | 2010-06-29 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations |
US7653619B1 (en) | 2004-07-23 | 2010-01-26 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height |
US8886677B1 (en) | 2004-07-23 | 2014-11-11 | Netlogic Microsystems, Inc. | Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length |
US7646773B2 (en) * | 2004-08-02 | 2010-01-12 | Extreme Networks | Forwarding database in a network switch device |
US7461200B1 (en) * | 2004-09-23 | 2008-12-02 | Netlogic Microsystems, Inc. | Method and apparatus for overlaying flat and tree based data sets onto content addressable memory (CAM) device |
US20060248375A1 (en) | 2005-04-18 | 2006-11-02 | Bertan Tezcan | Packet processing switch and methods of operation thereof |
EP1821571A1 (en) * | 2006-02-15 | 2007-08-22 | Oticon A/S | Loop antenna for in the ear audio device |
US7817652B1 (en) * | 2006-05-12 | 2010-10-19 | Integrated Device Technology, Inc. | System and method of constructing data packets in a packet switch |
US7747904B1 (en) | 2006-05-12 | 2010-06-29 | Integrated Device Technology, Inc. | Error management system and method for a packet switch |
US7706387B1 (en) | 2006-05-31 | 2010-04-27 | Integrated Device Technology, Inc. | System and method for round robin arbitration |
US7697518B1 (en) | 2006-09-15 | 2010-04-13 | Netlogic Microsystems, Inc. | Integrated search engine devices and methods of updating same using node splitting and merging operations |
US7953721B1 (en) | 2006-11-27 | 2011-05-31 | Netlogic Microsystems, Inc. | Integrated search engine devices that support database key dumping and methods of operating same |
US7831626B1 (en) | 2006-11-27 | 2010-11-09 | Netlogic Microsystems, Inc. | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node |
US7987205B1 (en) | 2006-11-27 | 2011-07-26 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations |
US8086641B1 (en) | 2006-11-27 | 2011-12-27 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same |
GB2452760A (en) * | 2007-09-14 | 2009-03-18 | Data Connection Ltd | Storing and searching data in a database tree structure for use in data packet routing applications. |
US7886176B1 (en) | 2007-09-24 | 2011-02-08 | Integrated Device Technology, Inc. | DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions |
US7716204B1 (en) | 2007-12-21 | 2010-05-11 | Netlogic Microsystems, Inc. | Handle allocation managers and methods for integated circuit search engine devices |
US7801877B1 (en) | 2008-04-14 | 2010-09-21 | Netlogic Microsystems, Inc. | Handle memory access managers and methods for integrated circuit search engine devices |
US8255496B2 (en) | 2008-12-30 | 2012-08-28 | Juniper Networks, Inc. | Method and apparatus for determining a network topology during network provisioning |
EP2560327B1 (en) * | 2010-04-12 | 2014-06-04 | Huawei Technologies Co., Ltd. | Routing table establishment method and device |
US8438330B2 (en) | 2010-05-17 | 2013-05-07 | Netlogic Microsystems, Inc. | Updating cam arrays using prefix length distribution prediction |
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 |
US9305115B1 (en) | 2010-10-04 | 2016-04-05 | Broadcom Corporation | Method and apparatus for reducing power consumption during rule searches in a content search system |
US8862603B1 (en) | 2010-11-03 | 2014-10-14 | Netlogic Microsystems, Inc. | Minimizing state lists for non-deterministic finite state automatons |
US9002859B1 (en) | 2010-12-17 | 2015-04-07 | Moonshadow Mobile, Inc. | Systems and methods for high-speed searching and filtering of large datasets |
US8891406B1 (en) | 2010-12-22 | 2014-11-18 | Juniper Networks, Inc. | Methods and apparatus for tunnel management within a data center |
US8615015B1 (en) * | 2010-12-30 | 2013-12-24 | Juniper Networks, Inc. | Apparatus, systems and methods for aggregate routes within a communications network |
CA2823839A1 (en) | 2011-01-10 | 2012-07-19 | Roy W. Ward | Systems and methods for high-speed searching and filtering of large datasets |
US9155320B2 (en) * | 2011-07-06 | 2015-10-13 | International Business Machines Corporation | Prefix-based leaf node storage for database system |
US8861241B1 (en) | 2011-09-01 | 2014-10-14 | Netlogic Microsystems, Inc. | Content search system having embedded power control units |
US8639875B1 (en) | 2011-09-06 | 2014-01-28 | Netlogic Microsystems, Inc. | Content search system having multiple pipelines |
US9171054B1 (en) | 2012-01-04 | 2015-10-27 | Moonshadow Mobile, Inc. | Systems and methods for high-speed searching and filtering of large datasets |
US8990204B1 (en) | 2012-01-17 | 2015-03-24 | Roy W. Ward | Processing and storage of spatial data |
CN102663051B (zh) * | 2012-03-29 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 搜索内容可寻址存储器的方法和系统 |
US9680747B2 (en) | 2012-06-27 | 2017-06-13 | Futurewei Technologies, Inc. | Internet protocol and Ethernet lookup via a unified hashed trie |
ES2626061T3 (es) | 2012-12-25 | 2017-07-21 | Huawei Technologies Co., Ltd. | Método de creación de tablas de búsqueda y método de consulta, y su controlador, dispositivo de reenvío y sistema |
CN105229980B (zh) | 2013-04-11 | 2018-11-16 | 马维尔以色列(M.I.S.L.)有限公司 | 利用可变关键字大小的精确匹配查找的方法及设备 |
US9602407B2 (en) * | 2013-12-17 | 2017-03-21 | Huawei Technologies Co., Ltd. | Trie stage balancing for network address lookup |
US9935831B1 (en) * | 2014-06-03 | 2018-04-03 | Big Switch Networks, Inc. | Systems and methods for controlling network switches using a switch modeling interface at a controller |
CN106202084A (zh) * | 2015-04-30 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储方法和数据存储装置 |
CN105763454B (zh) * | 2016-02-25 | 2018-11-27 | 比威网络技术有限公司 | 基于二维路由策略的数据报文转发方法及装置 |
US10521411B2 (en) | 2016-08-10 | 2019-12-31 | Moonshadow Mobile, Inc. | Systems, methods, and data structures for high-speed searching or filtering of large datasets |
US10700974B2 (en) * | 2018-01-30 | 2020-06-30 | Marvell Israel (M.I.S.L) Ltd. | Dynamic allocation of memory for packet processing instruction tables in a network device |
US11327974B2 (en) * | 2018-08-02 | 2022-05-10 | Mellanox Technologies, Ltd. | Field variability based TCAM splitting |
US11003715B2 (en) | 2018-09-17 | 2021-05-11 | Mellanox Technologies, Ltd. | Equipment and method for hash table resizing |
CN110210307B (zh) * | 2019-04-30 | 2023-11-28 | 中国银联股份有限公司 | 人脸样本库部署方法、基于人脸识别业务处理方法及装置 |
CN110324403A (zh) * | 2019-05-23 | 2019-10-11 | 平安科技(深圳)有限公司 | 动态分库路由方法、装置、服务器及存储介质 |
US11539622B2 (en) | 2020-05-04 | 2022-12-27 | Mellanox Technologies, Ltd. | Dynamically-optimized hash-based packet classifier |
US11782895B2 (en) | 2020-09-07 | 2023-10-10 | Mellanox Technologies, Ltd. | Cuckoo hashing including accessing hash tables using affinity table |
US11917042B2 (en) | 2021-08-15 | 2024-02-27 | Mellanox Technologies, Ltd. | Optimizing header-based action selection |
US11929837B2 (en) | 2022-02-23 | 2024-03-12 | Mellanox Technologies, Ltd. | Rule compilation schemes for fast packet classification |
US11968285B2 (en) | 2022-02-24 | 2024-04-23 | Mellanox Technologies, Ltd. | Efficient memory utilization for cartesian products of rules |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994001828A1 (en) * | 1992-07-02 | 1994-01-20 | Wellfleet Communications | Data packet processing method and apparatus |
EP0863640A3 (en) * | 1997-03-04 | 2005-09-21 | Texas Instruments Incorporated | Improved physical layer interface device |
JP3520709B2 (ja) * | 1997-03-13 | 2004-04-19 | 三菱電機株式会社 | ネットワークアドレス検索方式 |
US5991758A (en) * | 1997-06-06 | 1999-11-23 | Madison Information Technologies, Inc. | System and method for indexing information about entities from different information sources |
US6181698B1 (en) * | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6018524A (en) * | 1997-09-09 | 2000-01-25 | Washington University | Scalable high speed IP routing lookups |
US6223172B1 (en) * | 1997-10-31 | 2001-04-24 | Nortel Networks Limited | Address routing using address-sensitive mask decimation scheme |
US6212184B1 (en) * | 1998-07-15 | 2001-04-03 | Washington University | Fast scaleable methods and devices for layer four switching |
IT1305140B1 (it) * | 1998-10-27 | 2001-04-10 | Cselt Centro Studi Lab Telecom | Memoria per la ricerca di informazioni mediante analisi di prefissi inparticolare per la realizzazione di tabelle di instradamento in nodi |
US6266262B1 (en) | 1998-11-05 | 2001-07-24 | Lara Technology, Inc. | Enhanced binary content addressable memory for longest prefix address matching |
US6081440A (en) | 1998-11-05 | 2000-06-27 | Lara Technology, Inc. | Ternary content addressable memory (CAM) having fast insertion and deletion of data values |
US6385649B1 (en) * | 1998-11-06 | 2002-05-07 | Microsoft Corporation | Routers and methods for optimal routing table compression |
JP4156112B2 (ja) * | 1998-12-25 | 2008-09-24 | 富士通株式会社 | 高速検索方法及び高速検索装置 |
US6237061B1 (en) | 1999-01-05 | 2001-05-22 | Netlogic Microsystems, Inc. | Method for longest prefix matching in a content addressable memory |
US6963924B1 (en) * | 1999-02-01 | 2005-11-08 | Nen-Fu Huang | IP routing lookup scheme and system for multi-gigabit switching routers |
US6460112B1 (en) | 1999-02-23 | 2002-10-01 | Netlogic Microsystems, Llc | Method and apparatus for determining a longest prefix match in a content addressable memory device |
US6499081B1 (en) | 1999-02-23 | 2002-12-24 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
JP2000242532A (ja) * | 1999-02-23 | 2000-09-08 | Fujitsu Ltd | 出力ファイル制御装置、その装置を用いたデータ処理システム及びその装置での処理をコンピュータで行わせるためのプログラムを格納した記憶媒体 |
US6892272B1 (en) | 1999-02-23 | 2005-05-10 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a content addressable memory device |
US6192051B1 (en) * | 1999-02-26 | 2001-02-20 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
US6298340B1 (en) * | 1999-05-14 | 2001-10-02 | International Business Machines Corporation | System and method and computer program for filtering using tree structure |
JP3216630B2 (ja) * | 1999-06-09 | 2001-10-09 | 日本電気株式会社 | 通信制御装置 |
US6505270B1 (en) | 1999-07-02 | 2003-01-07 | Lara Technology, Inc. | Content addressable memory having longest prefix matching function |
US6801981B1 (en) | 2000-06-14 | 2004-10-05 | Netlogic Microsystems, Inc. | Intra-row configurability of content addressable memory |
US6795892B1 (en) | 2000-06-14 | 2004-09-21 | Netlogic Microsystems, Inc. | Method and apparatus for determining a match address in an intra-row configurable cam device |
US6799243B1 (en) | 2000-06-14 | 2004-09-28 | Netlogic Microsystems, Inc. | Method and apparatus for detecting a match in an intra-row configurable cam system |
US6751701B1 (en) | 2000-06-14 | 2004-06-15 | Netlogic Microsystems, Inc. | Method and apparatus for detecting a multiple match in an intra-row configurable CAM system |
US6662184B1 (en) * | 1999-09-23 | 2003-12-09 | International Business Machines Corporation | Lock-free wild card search data structure and method |
US6542391B2 (en) | 2000-06-08 | 2003-04-01 | Netlogic Microsystems, Inc. | Content addressable memory with configurable class-based storage partition |
US6934795B2 (en) | 1999-09-23 | 2005-08-23 | Netlogic Microsystems, Inc. | Content addressable memory with programmable word width and programmable priority |
US6813680B1 (en) | 2000-06-14 | 2004-11-02 | Netlogic Microsystems, Inc. | Method and apparatus for loading comparand data into a content addressable memory system |
US6374326B1 (en) * | 1999-10-25 | 2002-04-16 | Cisco Technology, Inc. | Multiple bank CAM architecture and method for performing concurrent lookup operations |
US6154384A (en) * | 1999-11-12 | 2000-11-28 | Netlogic Microsystems, Inc. | Ternary content addressable memory cell |
US6502163B1 (en) | 1999-12-17 | 2002-12-31 | Lara Technology, Inc. | Method and apparatus for ordering entries in a ternary content addressable memory |
US6615210B1 (en) * | 2000-02-04 | 2003-09-02 | Broad Web Corporation | Bit stream ternary match scheme |
TW498650B (en) * | 2000-03-22 | 2002-08-11 | Ind Tech Res Inst | Flexible and highly efficient packet classification method |
JP2002016638A (ja) * | 2000-06-29 | 2002-01-18 | Mitsubishi Electric Corp | ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体 |
US6792502B1 (en) * | 2000-10-12 | 2004-09-14 | Freescale Semiconductor, Inc. | Microprocessor having a content addressable memory (CAM) device as a functional unit therein and method of operation |
US20020089937A1 (en) * | 2000-11-16 | 2002-07-11 | Srinivasan Venkatachary | Packet matching method and system |
EP1386432A4 (en) * | 2001-03-21 | 2009-07-15 | John A Stine | PROTOCOL OF ACCESS AND ROUTING FOR AD HOC NETWORKS, IN WHICH THE COLLISION RESOLUTION AND THE DISSEMINATION OF NODE STATES ARE USED |
US6735600B1 (en) * | 2001-03-30 | 2004-05-11 | Lsi Logic Corporation | Editing protocol for flexible search engines |
US20030031179A1 (en) * | 2001-08-08 | 2003-02-13 | Jintae Oh | Self-updateable longest prefix matching method and apparatus |
KR100413528B1 (ko) * | 2001-11-30 | 2004-01-03 | 한국전자통신연구원 | Lpm 기반 cam의 룩업 테이블 관리 방법, 장치 및 그기록매체 |
US7050317B1 (en) | 2002-03-15 | 2006-05-23 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices that support power saving longest prefix match operations and methods of operating same |
US7441074B1 (en) * | 2002-08-10 | 2008-10-21 | Cisco Technology, Inc. | Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation |
US7162481B2 (en) * | 2002-12-06 | 2007-01-09 | Stmicroelectronics, Inc. | Method for increasing storage capacity in a multi-bit trie-based hardware storage engine by compressing the representation of single-length prefixes |
US7426518B2 (en) * | 2003-03-28 | 2008-09-16 | Netlogic Microsystems, Inc. | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
US7571156B1 (en) * | 2003-03-28 | 2009-08-04 | Netlogic Microsystems, Inc. | Network device, storage medium and methods for incrementally updating a forwarding database |
TWI227395B (en) * | 2003-06-02 | 2005-02-01 | Genesys Logic Inc | Method for parallel processing of memory data and error correction code and related device thereof |
US7174441B2 (en) | 2003-10-17 | 2007-02-06 | Raza Microelectronics, Inc. | Method and apparatus for providing internal table extensibility with external interface |
US7934198B2 (en) * | 2003-10-17 | 2011-04-26 | Netlogic Microsystems, Inc. | Prefix matching structure and method for fast packet switching |
US7194573B1 (en) * | 2003-10-31 | 2007-03-20 | Integrated Device Technology, Inc. | CAM-based search engine devices having advanced search and learn instruction handling |
US7249228B1 (en) * | 2004-03-01 | 2007-07-24 | Cisco Technology, Inc. | Reducing the number of block masks required for programming multiple access control list in an associative memory |
US7461200B1 (en) * | 2004-09-23 | 2008-12-02 | Netlogic Microsystems, Inc. | Method and apparatus for overlaying flat and tree based data sets onto content addressable memory (CAM) device |
US7339810B1 (en) * | 2005-03-24 | 2008-03-04 | Netlogic Microsystems, Inc. | Device and method for ensuring current consumption in search engine system |
US7694068B1 (en) | 2005-12-08 | 2010-04-06 | Netlogic Microsystems, Inc. | Re-entrant processing in a content addressable memory |
US7624226B1 (en) | 2005-12-20 | 2009-11-24 | Netlogic Microsystems, Inc. | Network search engine (NSE) and method for performing interval location using prefix matching |
US7555593B1 (en) * | 2006-01-31 | 2009-06-30 | Netlogic Microsystems, Inc. | Simultaneous multi-threading in a content addressable memory |
US7933282B1 (en) * | 2007-02-08 | 2011-04-26 | Netlogic Microsystems, Inc. | Packet classification device for storing groups of rules |
-
2003
- 2003-03-28 US US10/402,887 patent/US7426518B2/en not_active Expired - Fee Related
-
2004
- 2004-03-26 WO PCT/US2004/009531 patent/WO2004088548A1/en active Application Filing
- 2004-03-26 EP EP04758519A patent/EP1611533A1/en not_active Withdrawn
- 2004-03-26 JP JP2006509416A patent/JP4614946B2/ja not_active Expired - Fee Related
- 2004-03-26 CN CNA2004800084745A patent/CN1784678A/zh active Pending
-
2008
- 2008-07-10 US US12/171,099 patent/US8073856B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080275872A1 (en) | 2008-11-06 |
US20040193619A1 (en) | 2004-09-30 |
EP1611533A1 (en) | 2006-01-04 |
US7426518B2 (en) | 2008-09-16 |
US8073856B2 (en) | 2011-12-06 |
CN1784678A (zh) | 2006-06-07 |
JP2006527526A (ja) | 2006-11-30 |
WO2004088548A1 (en) | 2004-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4614946B2 (ja) | 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 | |
US7571156B1 (en) | Network device, storage medium and methods for incrementally updating a forwarding database | |
US7437354B2 (en) | Architecture for network search engines with fixed latency, high capacity, and high throughput | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
US9819637B2 (en) | Efficient longest prefix matching techniques for network devices | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
EP1623557B1 (en) | A bounded index extensible hash-based ipv6 address lookup method | |
US5946679A (en) | System and method for locating a route in a route table using hashing and compressed radix tree searching | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
CN111937360B (zh) | 最长前缀匹配 | |
US20040085953A1 (en) | Longest prefix matching (LPM) using a fixed comparison hash table | |
JP2002207771A (ja) | 最長プレフィクス一致のための高速でフレキシブルなサーチ・エンジン | |
KR100512949B1 (ko) | 필드레벨 트리를 이용한 패킷분류장치 및 방법 | |
US7739445B1 (en) | Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device | |
US6925503B2 (en) | Method and system for performing a longest prefix match search | |
EP3319279B1 (en) | Ip routing lookup | |
KR100428247B1 (ko) | 아이피 주소룩업에서 고속 엘피엠 탐색을 위한 파이프라인씨에이엠의 구성 방법 | |
US7376657B1 (en) | Fast IPv6 address lookup using skip level processing on multi-bit tries | |
KR100460188B1 (ko) | 인터넷 프로토콜 주소 룩-업 방법 | |
KR100459542B1 (ko) | 인터넷 프로토콜 주소 룩-업 장치 | |
JP3639553B2 (ja) | ルーティング処理装置およびルーティング方法 | |
WO2005013566A1 (ja) | データ検索方法及び装置 | |
Erdem et al. | MIPS extension for a TCAM based parallel architecture for fast IP lookup | |
JP2020201656A (ja) | 検索回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20061016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061016 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070326 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100412 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100419 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100512 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100519 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100614 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100621 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100707 |
|
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: 20100921 |
|
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: 20101019 |
|
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: 20131029 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131029 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131029 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |