CN102831235A - 范围匹配及查找方法 - Google Patents
范围匹配及查找方法 Download PDFInfo
- Publication number
- CN102831235A CN102831235A CN2012103211486A CN201210321148A CN102831235A CN 102831235 A CN102831235 A CN 102831235A CN 2012103211486 A CN2012103211486 A CN 2012103211486A CN 201210321148 A CN201210321148 A CN 201210321148A CN 102831235 A CN102831235 A CN 102831235A
- Authority
- CN
- China
- Prior art keywords
- commensurate
- scope
- rule
- search
- expanded
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种查找规则的范围匹配方法,包括以下步骤:T1.当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;T2.查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。本发明采用对范围匹配直接比较的方式,可以完成范围匹配并有效避免传统范围匹配处理方式因规则转化而引起的规则爆炸问题,节省查找引擎的存储空间。
Description
技术领域
本发明涉及网络处理器芯片,以及交换机、路由器等需要进行查找处理的网络技术领域,特别是涉及一种查找引擎的范围匹配及查找方法。
背景技术
在通信网络设备特别是交换机和路由器中,为了对不同的数据流进行相应的处理,需要对接收到的报文提取关心的部分组成键值进行报文查找,以决定网络设备将要对报文进行何种操作,例如:决定转发策略或者丢弃,访问控制列表或者决定报文优先级等。在网络处理器(交换机,路由器等对数据报文进行处理的设备)对报文处理的过程中,如图1所示,需要用查找引擎以完成各种查找,查找引擎会返回查找到的规则表项地址以读取关联数据或者直接返回关联数据,然后网络处理器会根据返回的关联数据决定对该数据包文如何处理。
在现有的基于查找引擎(例如TCAM)的网络查找中,对于查找规则中的范围匹配部分,一直缺乏有效的手段直接完成范围匹配,而往往采取间接转化的方法,导致需要很大的存储空间存储转化后的规则,造成查找引擎实际所能存储的规则条目变小。
例如:在查找引擎所存储的规则表项中,有的规则表项包含范围匹配的部分,例如对ipv4报头中的TCP端口设定范围。如果采用传统的直接转化成TCAM规则的方法,一条范围匹配规则将转化为多条TCAM规则,以16bit TCP端口的范围比较为例,假设需要匹配的范围为1到14,则所转化成的TCAM规则表项如下表1所示:
15b 0b | 端口 |
16’b0000_0000_0000_0001 | 端口1 |
16’b0000_0000_0000_001* | 端口2,端口3 |
16’b0000_0000_0000_01** | 端口4-7 |
16’b0000_0000_0000_10** | 端口8–11 |
16’b0000_0000_0000_110* | 端口12,端口13 |
16’b0000_0000_0000_1110 | 端口14 |
表1
从上表1中可以看出,为了表示0-14的范围匹配,采用直接转化的方法将会耗费7条查找引擎的存储空间,而且如果在一条比较规则中包含2个及以上的范围匹配的时候,将会导致更复杂、更耗费存储空间的“规则爆炸”问题。
传统TCAM不能采取直接范围匹配的一个重要原因是TCAM的功耗及面积,如果TCAM中的每一条规则除了完成精确匹配、通配符匹配,还要完成更复杂的范围匹配,将会大大增加TCAM的功耗以及面积。
发明内容
为了至少解决上述问题之一,本发明提出了一种查找规则的范围匹配方法,其特征在于,包括以下步骤:
T1:当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。
本发明另一方面提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤:
M1:将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
M2:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
M3:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;
M4:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
M5:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
为了解决非范围匹配时的多重匹配问题,本发明又一方面提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤:
S1:将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则;
S2:将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎,在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果;
S3:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
S4:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;
S5:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
S6:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
本发明采用对范围匹配直接比较的方式,可以完成范围匹配并有效避免传统范围匹配处理方式因规则转化而引起的规则爆炸问题,节省查找引擎的存储空间。采用本技术方案,可以用较低的功耗代价有效的完成范围匹配,并有效减少查找引擎所需要的存储空间,而且采用本技术方案对多重范围匹配同样有效,可以解决多重范围匹配所引起的规则爆炸问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的网络处理器流程示意图;
图2为本发明实施例的查找规则扩展结构示意图;
图3为本发明实施例的查找流程示意图;
具体实施方式
下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一个实施例提出了一种查找规则的范围匹配方法,其特征在于,包括以下步骤:
T1:当查找规则中存在范围匹配时,对范围匹配部分进行扩展,如图2所示,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。
如图2所示的转化是为了存储需要,并可以减少比较电路的复杂度,比较电路只需要可以完成大于等于或者小于等于的功能即可,从而减少整个查找引擎和比较电路的功耗和面积。在查找的时候,则需要待查找键值按照同样的扩展方式进行扩展,以实现查找键值和其对应的已存储规则的格式统一。例如查找规则的16bit范围匹配部分为10-1024,则范围匹配上限为1024,范围匹配下限位10,在查找的时候如果按相同方式扩展的查找部分既大于范围匹配下限,又小于范围匹配上限,则该部分匹配原始的范围匹配部分。
本发明另一方面的实施例提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤:
M1:将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
M2:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
M3:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;
M4:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
M5:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
为了解决非范围匹配时的多重匹配问题,本发明又一方面的实施例提出了一种基于上述范围匹配方法的查找方法,如图3所示,包括以下步骤:
S1:将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则;
S2:将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎,在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果;
S3:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
S4:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址,非范围匹配部分会与查找引擎中存储的相应部分进行匹配(精确匹配及通配符匹配),在这一步中匹配的条目会获得在后续范围匹配电路中进行匹配的资格。
S5:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
S6:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (3)
1.一种查找规则的范围匹配方法,其特征在于,包括以下步骤:
T1:当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。
2.一种基于权利要求1所述的范围匹配方法的查找方法,其特征在于,包括以下步骤:
M1:将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎;
M2:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
M3:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;
M4:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
M5:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
3.一种基于权利要求1所述的范围匹配方法的查找方法,其特征在于,包括以下步骤:
S1:将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则;
S2:将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎。在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果;
S3:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;
S4:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;
S5:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
S6:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103211486A CN102831235A (zh) | 2012-09-03 | 2012-09-03 | 范围匹配及查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103211486A CN102831235A (zh) | 2012-09-03 | 2012-09-03 | 范围匹配及查找方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102831235A true CN102831235A (zh) | 2012-12-19 |
Family
ID=47334370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103211486A Pending CN102831235A (zh) | 2012-09-03 | 2012-09-03 | 范围匹配及查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831235A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092613A (zh) * | 2014-07-15 | 2014-10-08 | 山东超越数控电子有限公司 | 一种基于模糊匹配的快速查表方法 |
CN105681201A (zh) * | 2015-12-28 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 报文的规则匹配方法和装置 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728676A (zh) * | 2004-07-28 | 2006-02-01 | 国家数字交换系统工程技术研究中心 | 路由查找装置 |
US20120137060A1 (en) * | 2010-08-01 | 2012-05-31 | Avidan Akerib | Multi-stage TCAM search |
-
2012
- 2012-09-03 CN CN2012103211486A patent/CN102831235A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728676A (zh) * | 2004-07-28 | 2006-02-01 | 国家数字交换系统工程技术研究中心 | 路由查找装置 |
US20120137060A1 (en) * | 2010-08-01 | 2012-05-31 | Avidan Akerib | Multi-stage TCAM search |
Non-Patent Citations (1)
Title |
---|
周立力: "基于TCAM技术的高速路由查找方案", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092613A (zh) * | 2014-07-15 | 2014-10-08 | 山东超越数控电子有限公司 | 一种基于模糊匹配的快速查表方法 |
CN105681201A (zh) * | 2015-12-28 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 报文的规则匹配方法和装置 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017133344A1 (zh) | 应用于dns查询的ip地址列表存储和查询方法 | |
US9627063B2 (en) | Ternary content addressable memory utilizing common masks and hash lookups | |
CN101594319A (zh) | 表项查找方法和装置 | |
CN101827137B (zh) | 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法 | |
CN100531097C (zh) | 一种桥接的方法及装置 | |
CN102880724A (zh) | 处理哈希冲突的方法及系统 | |
CN101309216B (zh) | 一种ip包分类方法和设备 | |
CN107770076A (zh) | 一种哈希冲突的处理方法、装置及交换设备 | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
CN100536435C (zh) | 一种基于二叉树的流分类查找方法 | |
CN104580027A (zh) | 一种OpenFlow报文转发方法及设备 | |
US8848707B2 (en) | Method for IP longest prefix match using prefix length sorting | |
WO2006099186A2 (en) | Information retrieval architecture for packet classification | |
CN104468361A (zh) | 带有优先级的tcam储存和查找方法及装置 | |
CN103107945B (zh) | 一种快速查找ipv6路由的系统及方法 | |
CN101505279A (zh) | 一种路由查找方法和装置 | |
CN106789859B (zh) | 报文匹配方法及装置 | |
CN103546378A (zh) | 基于tcam的范围多匹配2级分层查找方法 | |
CN106302172A (zh) | 同时支持哈希查找和路由查找的存储、查找方法和装置 | |
US9485179B2 (en) | Apparatus and method for scalable and flexible table search in a network switch | |
CN102831235A (zh) | 范围匹配及查找方法 | |
CN103581358A (zh) | Ip地址列表匹配方法及装置 | |
CN109981464A (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
CN103581023A (zh) | 实现最长掩码匹配的方法及装置 | |
US20060198379A1 (en) | Prefix optimizations for a network search engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121219 |