CN101079817A - 一种路由查找方法及系统 - Google Patents
一种路由查找方法及系统 Download PDFInfo
- Publication number
- CN101079817A CN101079817A CNA2007101229253A CN200710122925A CN101079817A CN 101079817 A CN101079817 A CN 101079817A CN A2007101229253 A CNA2007101229253 A CN A2007101229253A CN 200710122925 A CN200710122925 A CN 200710122925A CN 101079817 A CN101079817 A CN 101079817A
- Authority
- CN
- China
- Prior art keywords
- slogan
- route entry
- route
- micro engine
- fast cache
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由查找方法,预设定包含路由表索引和路由表ID的查找键值,所述方法包括:根据所述查找键值进行内容寻址储存器CAM的匹配查找,并返回包含命中标记和入口号的查找结果;所述入口号与缓存在微引擎内部快速缓存中的路由条目相对应;根据所述查找结果中的命中标记进行判断,如果查找命中,根据所述查找结果中的入口号,定位到存储在微引擎内部快速缓存中的路由条目;否则,根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系。本发明通过查找结果中的入口号直接读取缓存在微引擎内部快速缓存中的路由表项内容,从而达到缩短路由查找时间、提高路由查找效率的目的。
Description
技术领域
本发明涉及通信技术领域,尤其涉及路由查找技术领域。
背景技术
现有的路由查找技术,包括普通路由算法查找方式和TCAM(三态内容可寻址寄存器)查找方式。
现有的路由查找,如图1所示,在通过普通路由算法查找或TCAM查找获得路由表索引后,网络处理器都要根据路由表索引从外部内存中读取路由表内容。由于网路处理器(比如Intel IXP2800)对于外部内存的读写访问次数非常敏感,该操作对于网络处理器的10G甚至更高速率的路由器来说都是一次很大的性能损耗,从而造成现有技术中的路由查找时间长,效率低。
发明内容
本发明提供了一种路由查找方法及系统,达到缩短路由查找时间、提高路由查找效率的目的。
本发明提供了一种路由查找方法,预设定包含路由表索引和路由表ID的查找键值,所述方法包括:
根据所述查找键值进行内容寻址储存器CAM的匹配查找,并返回包含命中标记和入口号的查找结果;所述入口号与缓存在微引擎内部快速缓存中的路由条目相对应;
根据所述查找结果中的命中标记进行判断,如果查找命中,根据所述查找结果中的入口号,定位到存储在微引擎内部快速缓存中的路由条目;否则,根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系。
在执行所述方法之前还包括:
对CAM进行初始化,清除缓存在其中的路由条目。
其中,所述根据所述入口号,定位到存储在微引擎内部快速缓存中的路由条目的步骤具体包括:
根据查找结果获取入口号;
保存微引擎内部快速缓存指针;
根据入口号设置所述微引擎内部快速缓存指针,定位到微引擎内部快速缓存中存储的路由条目,并读取所述路由条目的内容信息。
所述根据所述入口号,定位到存储在微引擎内部快速缓存中的路由条目的步骤还包括:
恢复微引擎内部快速缓存指针,并定期清除保存在CAM中的所述入口号和所述查找键值的映射关系。
所述根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系的步骤具体包括:
根据所述路由表索引读取外部内存中的路由条目,并读取所述路由条目的内容信息;
保存所述微引擎内部快速缓存指针,根据所述入口号定位到微引擎内部快速缓存,将所述路由条目复制到所述微引擎内部快速缓存中。
所述根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系的步骤还包括:
恢复微引擎内部快速缓存指针,并定期清除保存在CAM中的所述入口号和所述查找键值的映射关系。
本发明又提供了一种路由查找系统,包括:
内容寻址存储器CAM,用于根据预设定包含路由表索引和路由表ID的查找键值进行匹配查找,并返回包含命中标记和入口号的查找结果;
微引擎内部快速缓存单元,用于缓存路由条目,所述缓存在微引擎内部快速缓存中的路由条目与所述入口号相对应;
查找处理单元,用于根据所述查找结果中的命中标记进行判断,如果查找命中,根据所述查找结果中的入口号,定位到存储在微引擎内部快速缓存中的路由条目;否则,根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系。
所述系统还包括:
CAM初始化单元,用于对CAM进行初始化,清除缓存在其中的路由条目。
综上所述,本发明提供了一种路由查找方法及系统,当CAM查找命中时,可以根据查找结果中的入口号直接读取缓存在微引擎内部快速缓存中的路由表项内容,这样就减少了从外部内存读取路由表项的次数,从而达到缩短路由查找时间、提高路由查找效率的目的。
附图说明
图1为现有技术中路由查找的过程示意图;
图2为本发明实施例所述方法的原理示意图;
图3为本发明实施例所述方法的流程示意图;
图4为本发明实施例所述系统的结构示意图。
具体实施方式
下面结合附图对本发明实施例所述方法及系统进行详细阐述。
首先结合附图2和附图3对本发明实施例所述方法进行说明。
如图2所示,本发明的主要原理是通过查找路由表条目和入口号的映射关系,当CAM(Content Addressing Memory,内容寻址存储器)匹配查找命中时,可以直接读取微引擎内部快速缓存中的路由表内容进行转发,不命中时才去访问外部内存,这样,就减少了访问外部内存的次数,从而达到在不增加成本的前提下,减少路由查找时间、提高路由查找效率的目的。
如图3所示,本发明实施例所述方法在具体实施过程中可以包括以下步骤:
步骤301:使用特定指令初始化CAM;
步骤302:针对要查找的路由表的类型,设定路由表ID(表号),在本发明实施例的具体实现过程中可以包括3种类型的路由表:V4路由,V6路由,标签路由;
步骤303:根据获得的路由表索引和路由表ID构造查找键值;所述路由表索引可以通过普通路由算法查找或TCAM查找等方式获得到,由于现有技术中对于路由表索引的获得已有成熟解决方案,此处不再赘述;
步骤304:使用tag(查找键值)进行CAM表的匹配查找,返回结果为result,所述返回结果result包括:命中标记、与查找键值对应的微引擎本地快速缓存中的entry_num(入口号);具体的说就是,所述CAM表的映射关系为:CAM表索引<->内容Content,CAM映射是CAM表索引和Content(内容)的双向映射,即,可以通过CAM表索引得到内容,也可以通过内容得到索引,利用这种特性,可以把查找键值中的路由表索引号作为内容去和CAM中存储的CAM表索引号进行比较,如果查找到,说明查找命中,命中标记可以设置为1,否则说明查找不命中,命中标记可以设置为0;具体匹配查找过程现有技术中已有成熟解决方案,此处不再赘述;所述微引擎本地快速缓存中的入口号为微引擎本地快速缓存中存储的路由条目的地址;
步骤305:根据返回结果result中的命中标记位判断前一步是否查找命中,如果命中(比如命中标记为1),转步骤306;如果不命中(比如命中标记为0),转步骤309;
步骤306:从返回结果result中获取所述微引擎本地快速缓存中的入口号;
步骤307:保存所述微引擎本地快速缓存指针,该指针用于将所述微引擎本地快速缓存内容进行定位,保存的目的是为了在所述微引擎本地快速缓存的路由条目读取完毕之后进行指针恢复;
步骤308:根据设置本地内存指针,定位到微引擎本地快速缓存中存储的路由表内容,读取该路由表内容信息(该信息等同于根据路由表索引从外部内存读取的路由条目信息),转312;
步骤309:查找不命中,则需要通过路由表索引重新读取存储在外部内存中的路由表条目信息;
步骤310:保存本地快速内存指针,根据入口号定位到所述微引擎本地快速缓存,并将309读取的路由条目信息拷贝到所述微引擎本地快速缓存中;
步骤311:建立入口号和查找键值的映射关系,用于以后针对该搜索的匹配查找;
步骤312:在读取到路由条目信息后,统一恢复本地内存指针,然后便可进行路由转发的后续处理工作;
步骤313:定时清除保存在CAM中的入口号和查找键值的映射关系,防止当路由条目发生变化时,路由器仍然按照错误的转发条目进行转发。
下面结合附图对本发明实施例所述系统进行详细说明。
如图4所示,本发明实施例所述系统具体包括:
CAM初始化单元,用于对CAM进行初始化,清除缓存在其中的路由条目。
内容寻址存储器CAM,用于根据预设定包含路由表索引和路由表ID的查找键值进行匹配查找,并返回包含命中标记和入口号的查找结果;具体的说就是,CAM是一种专用存储器件,可以进行快递大量的并行搜索,其中,CAM表的映射关系为:CAM表索引<->内容Content,CAM映射是CAM表索引和Content(内容)的双向映射,即,可以通过CAM表索引得到内容,也可以通过内容得到索引,利用这种特性,可以把查找键值中的路由表索引号作为内容去和CAM中存储的CAM表索引号进行比较,如果查找到,说明查找命中,命中标记可以设置为1,否则说明查找不命中,命中标记可以设置为0;
微引擎内部快速缓存单元,用于缓存路由条目,所述缓存在微引擎内部快速缓存中的路由条目与所述入口号相对应;
查找处理单元,用于根据CAM返回的查找结果中的命中标记进行判断,如果查找命中,保存所述微引擎本地快速缓存指针,该指针用于将所述微引擎本地快速缓存内容进行定位,保存的目的是为了在所述微引擎本地快速缓存的路由条目读取完毕之后进行指针恢复;然后根据设置本地内存指针,定位到微引擎本地快速缓存中存储的路由表内容,读取该路由表内容信息根据所述查找结果中的入口号,定位到微引擎内部快速缓存单元中的路由条目;
如果查找没有命中,则需要通过路由表索引重新读取存储在外部内存中的路由表条目信息;保存本地快速内存指针,根据入口号定位到所述微引擎本地快速缓存,并将读取的路由条目信息拷贝到所述微引擎本地快速缓存中,并建立所述入口号和所述查找键值的映射关系。
所述查找处理单元在本发明实施例的具体实施过程中,可以作为一个单独的软将功能模块,串行加载在路由索引查找完毕之后,即使不使用也可以卸载,不会对其他功能模块产生影响,灵活方便。
综上所述,本发明实施例提供了一种路由查找方法及系统,通过查找路由表条目和入口号的映射关系,当CAM匹配查找命中时,可以直接读取微引擎内部快速缓存中的路由表内容进行转发,不命中时才去访问外部内存,这样,就减少了访问外部内存的次数,从而达到在不增加成本的前提下,减少路由查找时间、提高路由查找效率的目的。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1、一种路由查找方法,其特征在于,预设定包含路由表索引和路由表ID的查找键值,所述方法包括:
根据所述查找键值进行内容寻址储存器CAM的匹配查找,并返回包含命中标记和入口号的查找结果;所述入口号与缓存在微引擎内部快速缓存中的路由条目相对应;
根据所述查找结果中的命中标记进行判断,如果查找命中,根据所述查找结果中的入口号,定位到存储在微引擎内部快速缓存中的路由条目;否则,根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系。
2、如权利要求1所述的方法,其特征在于,在执行所述方法之前还包括:
对CAM进行初始化,清除缓存在其中的路由条目。
3、根据权利要求1或2所述的方法,其特征在于,所述根据所述入口号,定位到存储在微引擎内部快速缓存中的路由条目的步骤具体包括:
根据查找结果获取入口号;
保存微引擎内部快速缓存指针;
根据入口号设置所述微引擎内部快速缓存指针,定位到微引擎内部快速缓存中存储的路由条目,并读取所述路由条目的内容信息。
4、根据权利要求3所述的方法,其特征在于,所述根据所述入口号,定位到存储在微引擎内部快速缓存中的路由条目的步骤还包括:
恢复微引擎内部快速缓存指针,并定期清除保存在CAM中的所述入口号和所述查找键值的映射关系。
5、根据权利要求1或2所述的方法,其特征在于,所述根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系的步骤具体包括:
根据所述路由表索引读取外部内存中的路由条目,并读取所述路由条目的内容信息;
保存所述微引擎内部快速缓存指针,根据所述入口号定位到微引擎内部快速缓存,将所述路由条目复制到所述微引擎内部快速缓存中。
6、根据权利要求5所述的方法,其特征在于,所述根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系的步骤还包括:
恢复微引擎内部快速缓存指针,并定期清除保存在CAM中的所述入口号和所述查找键值的映射关系。
7、一种路由查找系统,其特征在于,包括:
内容寻址存储器CAM,用于根据预设定包含路由表索引和路由表ID的查找键值进行匹配查找,并返回包含命中标记和入口号的查找结果;
微引擎内部快速缓存单元,用于缓存路由条目,所述缓存在微引擎内部快速缓存中的路由条目与所述入口号相对应;
查找处理单元,用于根据所述查找结果中的命中标记进行判断,如果查找命中,根据所述查找结果中的入口号,定位到存储在微引擎内部快速缓存中的路由条目;否则,根据所述路由表索引定位到外部内存中的路由条目,并建立所述入口号和所述查找键值的映射关系。
8、根据权利要求7所述的系统,其特征在于,所述系统还包括:
CAM初始化单元,用于对CAM进行初始化,清除缓存在其中的路由条目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101229253A CN101079817A (zh) | 2007-07-04 | 2007-07-04 | 一种路由查找方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101229253A CN101079817A (zh) | 2007-07-04 | 2007-07-04 | 一种路由查找方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101079817A true CN101079817A (zh) | 2007-11-28 |
Family
ID=38907055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101229253A Pending CN101079817A (zh) | 2007-07-04 | 2007-07-04 | 一种路由查找方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101079817A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242362B (zh) * | 2008-03-07 | 2010-11-10 | 华为技术有限公司 | 查找键值生成装置及方法 |
CN103246626A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 大规模i/o共享系统pci桥非预取访存空间扩展方法 |
CN103279423A (zh) * | 2013-05-15 | 2013-09-04 | 华为技术有限公司 | 一种内容寻址存储器的寻址方法及设备 |
CN104346289A (zh) * | 2013-07-30 | 2015-02-11 | 联发科技股份有限公司 | 查表装置以及查表方法 |
CN105515856A (zh) * | 2015-12-07 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 基于通道的fc网络余度设计方法 |
CN105939263A (zh) * | 2015-08-12 | 2016-09-14 | 杭州迪普科技有限公司 | 一种报文发送方法和装置 |
CN106416150A (zh) * | 2015-05-07 | 2017-02-15 | 华为技术有限公司 | 一种路由查询方法和网络设备 |
CN107204926A (zh) * | 2017-05-16 | 2017-09-26 | 上海博达数据通信有限公司 | 预处理cache的路由快速查找方法 |
WO2018006786A1 (zh) * | 2016-07-04 | 2018-01-11 | 新华三技术有限公司 | 转发表项访问 |
CN107888513A (zh) * | 2017-10-23 | 2018-04-06 | 深圳市楠菲微电子有限公司 | 用于交换芯片的缓存方法及装置 |
CN114866471A (zh) * | 2022-03-25 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 路由查找方法、装置及设备 |
-
2007
- 2007-07-04 CN CNA2007101229253A patent/CN101079817A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242362B (zh) * | 2008-03-07 | 2010-11-10 | 华为技术有限公司 | 查找键值生成装置及方法 |
CN103246626A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 大规模i/o共享系统pci桥非预取访存空间扩展方法 |
CN103279423A (zh) * | 2013-05-15 | 2013-09-04 | 华为技术有限公司 | 一种内容寻址存储器的寻址方法及设备 |
CN103279423B (zh) * | 2013-05-15 | 2016-11-23 | 华为技术有限公司 | 一种内容寻址存储器的寻址方法及设备 |
CN104346289A (zh) * | 2013-07-30 | 2015-02-11 | 联发科技股份有限公司 | 查表装置以及查表方法 |
CN106416150A (zh) * | 2015-05-07 | 2017-02-15 | 华为技术有限公司 | 一种路由查询方法和网络设备 |
CN106416150B (zh) * | 2015-05-07 | 2020-01-10 | 华为技术有限公司 | 一种路由查询方法和网络设备 |
CN105939263B (zh) * | 2015-08-12 | 2019-07-09 | 杭州迪普科技股份有限公司 | 一种报文发送方法和装置 |
CN105939263A (zh) * | 2015-08-12 | 2016-09-14 | 杭州迪普科技有限公司 | 一种报文发送方法和装置 |
CN105515856A (zh) * | 2015-12-07 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 基于通道的fc网络余度设计方法 |
CN105515856B (zh) * | 2015-12-07 | 2018-12-25 | 中国航空工业集团公司西安航空计算技术研究所 | 基于通道的fc网络余度设计方法 |
WO2018006786A1 (zh) * | 2016-07-04 | 2018-01-11 | 新华三技术有限公司 | 转发表项访问 |
US11038797B2 (en) | 2016-07-04 | 2021-06-15 | New H3C Technologies Co., Ltd. | Forwarding table entry access |
CN107204926A (zh) * | 2017-05-16 | 2017-09-26 | 上海博达数据通信有限公司 | 预处理cache的路由快速查找方法 |
CN107204926B (zh) * | 2017-05-16 | 2021-06-11 | 上海博达数据通信有限公司 | 预处理cache的路由快速查找方法 |
CN107888513A (zh) * | 2017-10-23 | 2018-04-06 | 深圳市楠菲微电子有限公司 | 用于交换芯片的缓存方法及装置 |
CN114866471A (zh) * | 2022-03-25 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 路由查找方法、装置及设备 |
CN114866471B (zh) * | 2022-03-25 | 2024-05-28 | 阿里巴巴(中国)有限公司 | 路由查找方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101079817A (zh) | 一种路由查找方法及系统 | |
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
CN1179523C (zh) | 用于四路散列表的方法和装置 | |
US9269411B2 (en) | Organizing data in a hybrid memory for search operations | |
US8295286B2 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US20060265370A1 (en) | Method and apparatus for reducing overflow of hash table entries | |
CN102377664A (zh) | 一种基于tcam的区域匹配装置和方法 | |
CN102364463B (zh) | 一种基于Hash查找CAM的方法 | |
CN1306773C (zh) | 使用缓存来维护分组顺序的方法和系统 | |
WO2012071992A1 (en) | Method and apparatus for high performance, updatable, and deterministic hash table for network equipment | |
US20080133494A1 (en) | Method and apparatus for searching forwarding table | |
CN1828556A (zh) | 一种数据存储的方法、系统及设备 | |
CN1885820A (zh) | 一种路由转发表地址查找引擎装置 | |
CN107608912B (zh) | 内存物理地址查询方法和装置 | |
CN1441579A (zh) | 支持多nexthop的TCAM高速查找方法及其系统 | |
CN1859208A (zh) | 一种tcam路由表管理方法和系统 | |
CN103973571A (zh) | 网络处理器及其路由查找方法 | |
CN101478482B (zh) | 报文分类中的非规则匹配方法、装置和系统 | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US20060198379A1 (en) | Prefix optimizations for a network search engine | |
CN1917662A (zh) | 一种手机短信息的自动处理装置及方法 | |
CN108075979B (zh) | 实现最长掩码匹配的方法及系统 | |
CN104301227B (zh) | 基于tcam的高速低功耗ip路由表查找方法 | |
US7792825B2 (en) | Fast select for fetch first N rows with order by | |
CN1798088A (zh) | 基于fpga的路由查找和刷新的调度方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20071128 |