范围匹配及查找方法

文档序号:6376275阅读:802来源:国知局
专利名称:范围匹配及查找方法
技术领域
本发明涉及网络处理器芯片,以及交换机、路由器等需要进行查找处理的网络技术领域,特别是涉及一种查找引擎的范围匹配及查找方法。
背景技术
在通信网络设备特别是交换机和路由器中,为了对不同的数据流进行相应的处理,需要对接收到的报文提取关心的部分组成键值进行报文查找,以决定网络设备将要对报文进行何种操作,例如决定转发策略或者丢弃,访问控制列表或者决定报文优先级等。在网络处理器(交换机,路由器等对数据报文进行处理的设备)对报文处理的过程中,如图I所示,需要用查找引擎以完成各种查找,查找引擎会返回查找到的规则表项地址以读取关联数据或者直接返回关联数据,然后网络处理器会根据返回的关联数据决定对该数据包文 如何处理。在现有的基于查找引擎(例如TCAM)的网络查找中,对于查找规则中的范围匹配部分,一直缺乏有效的手段直接完成范围匹配,而往往采取间接转化的方法,导致需要很大的存储空间存储转化后的规则,造成查找引擎实际所能存储的规则条目变小。例如在查找引擎所存储的规则表项中,有的规则表项包含范围匹配的部分,例如对ipv4报头中的TCP端口设定范围。如果采用传统的直接转化成TCAM规则的方法,一条范围匹配规则将转化为多条TCAM规则,以16bit TCP端口的范围比较为例,假设需要匹配的范围为I到14,则所转化成的TCAM规则表项如下表I所示
~15b Ob~
~16,bOOOO—0000—0000—0001端P I
~16,bOOOO—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表I从上表I中可以看出,为了表示0-14的范围匹配,采用直接转化的方法将会耗费7条查找引擎的存储空间,而且如果在一条比较规则中包含2个及以上的范围匹配的时候,将会导致更复杂、更耗费存储空间的“规则爆炸”问题。
传统TCAM不能采取直接范围匹配的一个重要原因是TCAM的功耗及面积,如果TCAM中的每一条规则除了完成精确匹配、通配符匹配,还要完成更复杂的范围匹配,将会大大增加TCAM的功耗以及面积。

发明内容
为了至少解决上述问题之一,本发明提出了一种查找规则的范围匹配方法,其特征在于,包括以下步骤Tl :当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式 统一,并实现范围匹配比较。本发明另一方面提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤Ml :将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎;M2 :查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;M3 :将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;M4 :读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;M5 :最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。为了解决非范围匹配时的多重匹配问题,本发明又一方面提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤SI :将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则;S2 :将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎,在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果;S3 :查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;S4 :将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;S5 :读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;
S6:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。本发明采用对范围匹配直接比较的方式,可以完成范围匹配并有效避免传统范围匹配处理方式因规则转化而引起的规则爆炸问题,节省查找引擎的存储空间。采用本技术方案,可以用较低的功耗代价有效的完成范围匹配,并有效减少查找引擎所需要的存储空间,而且采用本技术方案对多重范围匹配同样有效,可以解决多重范围匹配所引起的规则爆炸问题。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I为本发明实施例的网络处理器流程示意图;图2为本发明实施例的查找规则扩展结构示意图;图3为本发明实施例的查找流程示意具体实施例方式下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的一个实施例提出了一种查找规则的范围匹配方法,其特征在于,包括以下步骤Tl :当查找规则中存在范围匹配时,对范围匹配部分进行扩展,如图2所示,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。如图2所示的转化是为了存储需要,并可以减少比较电路的复杂度,比较电路只需要可以完成大于等于或者小于等于的功能即可,从而减少整个查找引擎和比较电路的功耗和面积。在查找的时候,则需要待查找键值按照同样的扩展方式进行扩展,以实现查找键值和其对应的已存储规则的格式统一。例如查找规则的16bit范围匹配部分为10-1024,则范围匹配上限为1024,范围匹配下限位10,在查找的时候如果按相同方式扩展的查找部分既大于范围匹配下限,又小于范围匹配上限,则该部分匹配原始的范围匹配部分。本发明另一方面的实施例提出了一种基于上述范围匹配方法的查找方法,其特征在于,包括以下步骤Ml :将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎;M2 :查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;M3 :将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址;M4 :读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;M5:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。为了解决非范围匹配时的多重匹配问题,本发明又一方面的实施例提出了一种基于上述范围匹配方法的查找方法,如图3所示,包括以下步骤 SI :将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则;S2 :将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎,在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果;S3 :查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分;S4 :将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址,非范围匹配部分会与查找引擎中存储的相应部分进行匹配(精确匹配及通配符匹配),在这一步中匹配的条目会获得在后续范围匹配电路中进行匹配的资格。S5 :读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较;S6:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种查找规则的范围匹配方法,其特征在于,包括以下步骤 Tl :当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎; T2:查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。
2.一种基于权利要求I所述的范围匹配方法的查找方法,其特征在于,包括以下步骤 Ml :将查找规则拆分为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎; M2 :查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分; M3 :将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址; M4 :读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较; M5:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
3.一种基于权利要求I所述的范围匹配方法的查找方法,其特征在于,包括以下步骤 51:将查找引擎从物理上划分为不同的查找单元,在查找引擎进行查找的时候,每个查找单元都独立的输出该查找单元内匹配优先级最高的规则; 52:将查找规则扩展为范围匹配部分部分和非范围匹配部分,将范围匹配部分的上限和下限分别扩展为查找规则的相同长度的两部分,并将对应的整条规则存入查找引擎。在将非范围匹配部分送入查找引擎时,将互相之间会发生多重匹配的拆分键值写入不同的查找单元中,这样即使发生了多重匹配,各查找单元仍可以保留这些发生了多重匹配的各个结果; 53:查找时,将待查找键值拆分为范围匹配部分和非范围匹配部分,将范围匹配部分同样扩展为上限和下限两部分; 54:将待查找键值的非范围匹配部分送入查找引擎中进行查找,得到所有匹配的规则地址; 55:读出待查找键值的范围匹配部分,如果存在范围匹配的规则条目,则进一步对其中的范围匹配部分进行比较; 56:最后,将范围匹配也成功的条目进行优先级比较,从而得到最终的查找结果。
全文摘要
本发明提供了一种查找规则的范围匹配方法,包括以下步骤T1.当查找规则中存在范围匹配时,对范围匹配部分进行扩展,将范围匹配的上限和下限分别扩展为原始规则的相同长度的两部分,并将对应的整条规则存入查找引擎;T2.查找时,将待查找键值中的范围匹配部分同样扩展为上限和下限两部分,实现待查找键值中的范围匹配部分和其对应的已存储的查找规则的格式统一,并实现范围匹配比较。本发明采用对范围匹配直接比较的方式,可以完成范围匹配并有效避免传统范围匹配处理方式因规则转化而引起的规则爆炸问题,节省查找引擎的存储空间。
文档编号G06F17/30GK102831235SQ201210321148
公开日2012年12月19日 申请日期2012年9月3日 优先权日2012年9月3日
发明者熊冰, 张建杰 申请人:苏州雄立科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1