基于TCAM资源绑定查找ACL的实现方法及装置转让专利

申请号 : CN201610896188.1

文献号 : CN106506388B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔兴龙周伟方沛昱

申请人 : 盛科网络(苏州)有限公司

摘要 :

本发明揭示了一种基于TCAM资源绑定查找ACL的实现方法及装置,所述装置包括:至少一个TCAM寄存器单元、至少一个ACL物理查找寄存器单元,以及至少一个ACL物理查找寄存器单元,所述TCAM寄存器用于存放ACL表项;所述ACL物理查找寄存器与所述TCAM寄存器一一对应连接;以及至少一个ACL逻辑查找寄存器单元,所述ACL逻辑查找寄存器单元与所述ACL物理查找寄存器单元相连接,通过相应配置命令控制所述ACL逻辑查找寄存器单元来访问ACL物理查找寄存器单元,实现对TCAM寄存器单元进行ACL表项查找。本发明具有降低硬件开销、提高查找效率的优点。

权利要求 :

1.一种基于TCAM资源绑定查找ACL的实现装置,其特征在于,所述装置包括:至少一个TCAM寄存器单元,所述TCAM寄存器单元用于存放ACL表项;

至少一个ACL物理查找寄存器单元,所述ACL物理查找寄存器单元与所述TCAM寄存器单元一一对应连接;以及至少一个ACL逻辑查找寄存器单元,所述ACL逻辑查找寄存器单元与所述ACL物理查找寄存器单元相连接,通过相应配置命令控制所述ACL逻辑查找寄存器单元来访问ACL物理查找寄存器单元,实现对TCAM寄存器单元进行ACL表项查找。

2.根据权利要求1所述的装置,其特征在于,所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间关系为1:N,1个ACL逻辑查找寄存器单元能够访问N个ACL物理查找寄存器单元,其中,N为ACL物理查找寄存器单元的数量。

3.根据权利要求1所述的装置,其特征在于,所述ACL逻辑查找寄存器单元的数量不小于ACL物理查找寄存器单元的数量。

4.根据权利要求1所述的装置,其特征在于,所述配置命令包括如下命令:AclLogicLookup K En[N-1:0],其中,K表示第K个ACL逻辑查找寄存器单元,N表示N个TCAM寄存器单元。

5.一种基于TCAM资源绑定查找ACL的实现方法,其特征在于,所述方法包括如下步骤:S1,根据需求设定ACL逻辑寄存器单元数量;

S2,对所述ACL逻辑寄存器单元执行相应配置命令,查找对应的ACL物理查找寄存器单元;

S3,所述ACL物理查找寄存器单元查找对应的TCAM寄存器单元,进行ACL表项查找,所述ACL物理查找寄存器单元与所述TCAM寄存器单元一一对应连接。

6.根据权利要求5所述的方法,其特征在于,所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间关系为1:N,1个ACL逻辑查找寄存器单元能够访问N个ACL物理查找寄存器单元,其中,N为ACL物理查找寄存器单元的数量。

7.根据权利要求5所述的方法,其特征在于,所述ACL逻辑查找寄存器单元的数量不小于ACL物理查找寄存器单元的数量。

8.根据权利要求5所述的方法,其特征在于,所述配置命令包括如下命令:AclLogicLookup K En[N-1:0],其中,K表示第K个ACL逻辑查找寄存器单元,N表示ACL物理查找寄存器单元的数量。

说明书 :

基于TCAM资源绑定查找ACL的实现方法及装置

技术领域

[0001] 本发明涉及一种通信领域,尤其是涉及一种基于TCAM资源绑定查找ACL的实现方法及装置。

背景技术

[0002] ACL(Access Control List,访问控制列表)是一个有序的语句集,在交换机、路由器中被广泛应用,它是一种基于将规则与报文进行匹配,用来允许或拒绝报文通过,从而达到对报文流量进行控制。在传统的ACL匹配过程中,当路由器处理某种业务时,根据报文的某种特征,去到ACL表中逐一匹配,如果命中,则执行相应规则中指定的动作,如果报文不匹配,则继续匹配下一个语句。
[0003] 在交换机,以及路由器中,多业务处理带来频繁的对ACL表的访问,使得交换机、路由器性能大大下降。为了使交换机、路由器在某些特定复杂的应用环境中表现出更优越的性能,需要一种高效实用的方法来实现对ACL的访问,而TCAM正好满足这种需求。TCAM在ACL中的应用放弃了原来对ACL表项的逐条查找匹配算法,实用特定硬件搜索,可以在极短时间即可完成对每条语句高达几百比特位的ACL列表的搜索,从而大大提高了对ACL表的查找速度。
[0004] 现有交换机、路由器中在实现对ACL表进行查找时,需要满足多次ACL查找,并且,每一次的ACL查找可以访问所有的TCAM寄存器,如图1所示,ACL物理查找寄存器单元同TCAM寄存器单元做全连接(Full-Mesh),实现每次ACL查找都能够访问所有的TCAM寄存器单元,图中所示为4次ACL查找,需要16条硬件连线,才能实现每次ACL查找访问所有的TCAM寄存器单元。随着ACL查找次数的增多,ACL物理查找寄存器单元同TCAM寄存器单元之间的硬件连线也相应的增长,若ACL查找数目为p,则硬件连线的数目为m=2^p。
[0005] 鉴于现有技术中实现ACL查找时,硬件开销较大,并且,随着ACL查找数目的增多,硬件连线以幂指数的方式增加,硬件开销较大,亟需一种解决方式。

发明内容

[0006] 本发明的目的在于克服现有技术的缺陷,提供一种基于TCAM资源绑定的查找ACL实现方法及装置,能够减小硬件开销,提高查找效率。
[0007] 为实现上述目的,本发明提出如下技术方案:一种基于TCAM资源绑定ACL的实现装置,所述装置包括:
[0008] 至少一个TCAM寄存器单元,所述TCAM寄存器用于存放ACL表项;
[0009] 至少一个ACL物理查找寄存器单元,所述ACL物理查找寄存器与所述TCAM寄存器相连接;以及
[0010] 至少一个ACL逻辑查找寄存器单元,所述ACL逻辑查找寄存器单元与所述ACL物理查找寄存器单元相连接,通过相应配置命令控制所述ACL逻辑查找寄存器单元来访问ACL物理查找寄存器单元,实现对TCAM寄存器单元进行ACL表项查找。
[0011] 优选地,所述ACL物理查找寄存器单元与所述TCAM寄存器单元一一对应连接。
[0012] 优选地,所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间关系为1:N,1个ACL逻辑查找寄存器单元能够访问N个ACL物理查找寄存器单元,其中,N为ACL物理寄存器单元的数量。
[0013] 优选地,所述ACL逻辑查找寄存器单元的数量不小于ACL物理查找寄存器单元的数量。
[0014] 优选地,所述配置命令包括如下命令:
[0015] AclLogicLookup K En[N-1:0],其中,K表示第K个ACL逻辑查找寄存器,N表示N个TCAM寄存器单元。
[0016] 一种基于TCAM资源绑定查找ACL的实现方法,其特征在于,所述方法包括如下步骤:
[0017] S1,根据需求设定ACL逻辑寄存器单元数量;
[0018] S2,对所述ACL逻辑寄存器执行相应配置命令,查找对应的ACL物理查找寄存器单元;
[0019] S3,所述ACL物理查找寄存器单元查找对应的TCAM寄存器单元,进行ACL表项查找。
[0020] 优选地,所述ACL物理查找寄存器单元与所述TCAM寄存器单元一一对应连接。
[0021] 优选地,所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间关系为1:N,1个ACL逻辑查找寄存器单元能够访问N个ACL物理查找寄存器单元,其中,N为ACL物理寄存器单元的数量。
[0022] 优选地,所述ACL逻辑查找寄存器单元的数量不小于ACL物理查找寄存器单元的数量。
[0023] 优选地,根据权利要求6所述的方法,其特征在于,所述配置命令包括如下命令:
[0024] AclLogicLookup K En[N-1:0],其中,K表示第K个ACL逻辑查找寄存器,N表示ACL物理查找寄存器单元的数量。
[0025] 本发明的有益效果是:
[0026] 本发明所揭示的基于TCAM资源绑定ACL的实现方法及装置,无需在ACL物理查找寄存器单元与TCAM寄存器单元使用全连接(Full-Mesh),有效地降低交换芯片或者路由器芯片的复杂度和成本,并且,降低了查找ACL表项时的硬件开销,提高了查找效率。

附图说明

[0027] 图1是现有的ACL查找结构示意图;
[0028] 图2是本发明的ACL查找装置结构示意图;
[0029] 图3是本发明的配置4次ACL查找结构示意图;
[0030] 图4是本发明的配置2次ACL查找结构示意图;
[0031] 图5是本发明的配置2次ACL查找逻辑效果框图示意图;
[0032] 图6是本发明的ACL查找方法流程图示意图。

具体实施方式

[0033] 下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
[0034] 结合图2所示,本发明所揭示的一种基于TCMA资源绑定查找ACL的实现装置,所述装置包括至少一个TCAM寄存器单元,至少一个ACL物理查找寄存器单元,以及至少一个ACL逻辑查找寄存器单元,其中,所述TCAM寄存器单元与所述ACL物理查找寄存器单元相连接,本实施例中,TCAM寄存器单元与ACL物理查找寄存器单元通过硬件连线进行连接,并且,优选地,所述TCAM寄存器单元与ACL物理查找寄存器单元一一对应连接,即,如图所示,每个TCAM寄存器单元通过硬件连线连接一个ACL物理查找寄存器单元;
[0035] 所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元通过逻辑连线进行连接,具体的,通过相应的配置命令来控制ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间的逻辑连线,实现ACL逻辑寄存器单元访问ACL物理查找寄存器单元,进一步对TCAM寄存器单元中的ACL表项进行查询,所述ACL逻辑查找寄存器单元与ACL物理查找寄存器单元之间关系为1:N,即,1个ACL逻辑查找寄存器单元能够访问N个ACL物理查找寄存器单元,其中,N为ACL物理查找寄存器单元的数量,相应的配置命令为AlcLogicLookup K En[N-1:0]=Nb`0000….0,其中,二进制数0的数量为N,当ACL逻辑查找寄存器单元需要使能查找某一ACL物理查找寄存器单元时,只需将对应的二进制数置为1即可。
[0036] 进一步地,本发明所述的装置中,由于ACL物理查找寄存器单元与TCAM寄存器单元存在一一对应的关系,而非full-mesh连接,因此,可以减少硬件的开销并且降低交换芯片、以及路由器芯片的复杂度和成本,同时,ACL逻辑寄存器的数量可以根据实际工作需要进行添加,并且所述ACL逻辑寄存器的数量不大于TCAM寄存器单元的数量。
[0037] 本实施例中,以4个TCAM寄存器单元、4个ACL物理查找寄存器单元,以及4个ACL逻辑查找寄存器单元为例,对本发明所揭示的基于TCAM资源绑定的ACL实现方法及装置进行详细的说明。
[0038] 如图3所示,本实施例中将所述4个TCAM寄存器单元依次编号为TCAM#0,TCAM#1,TCAM#2,TCAM#3,将所述ACL物理查找寄存器单元依次编号为ACL Lookup#0,ACL Lookup#1,ACL Lookup#2,ACL Lookup#3,将所述ACL逻辑查找寄存器单元依次编号为ACL Logic Lookup#0,ACL Logic Lookup#1,ACL Logic Lookup#2,ACL Logic Lookup#3,其中,TCAM#0与ACL Lookup#0,TCAM#1与ACL Lookup#1,TCAM#2与ACL Lookup#2,以及TCAM#3与ACL Lookup#3通过硬件连线进行连接,4个ACL逻辑寄存器单元与4个ACL物理查找寄存器单元通过逻辑连线进行连接,每次ACL查找时,都可以访问1次、2次、3次或4次ACL物理查找寄存器单元,具体的,通过对每个ACL逻辑查找寄存器单元进行相应的配置实现ACL查找,其配置命令如下:
[0039] AclLogicLookup0EN[3:0];
[0040] AclLogicLookup1EN[3:0];
[0041] AclLogicLookup2EN[3:0];
[0042] AclLogicLookup3EN[3:0];
[0043] 每个ACL逻辑查找寄存器单元使能时,有4位二进制数,分别控制ACL逻辑查找寄存器单元访问ACL物理查找寄存器单元进行物理查找。
[0044] 更进一步的,为了控制同一次逻辑查找中,多次物理查找结果的优先级,本实施例中,通过设置TCAM寄存器单元的优先级,优选地,TCAM#0>TCAM#1>TCAM#2>TCAM#3,当然,还可以通过另外增加相应数量的寄存器定义优先级。
[0045] 如图3所示,配置4次ACL查找,每次ACL逻辑查找寄存器单元控制一次ACL物理查找寄存器单元,具体配置命令如下,
[0046] AclLogicLookup0En[3:0]=4`b0001;
[0047] AclLogicLookup1En[3:0]=4`b0010;
[0048] AclLogicLookup2En[3:0]=4`b0100;
[0049] AclLogicLookup3En[3:0]=4`b1000;
[0050] 通过上述方式对每个ACL逻辑寄存器单元进行配置,能够实现每次ACL逻辑查找只能通过一个ACL物理查找寄存器单元访问一个TCAM寄存器单元。
[0051] 更进一步地,如图4所示,配置2次ACL查找,具体配置命令如下;
[0052] AclLogicLookup0En[3:0]=4`b0011;
[0053] AclLogicLookup1En[3:0]=4`b0000;
[0054] AclLogicLookup2En[3:0]=4`b1101;
[0055] AclLogicLookup3En[3:0]=4`b0000;
[0056] 通过上述方式对每个ACL逻辑寄存器单元进行配置,ACL Logic Lookup#0控制2次ACL物理查找寄存器单元进行物理查找,ACL Logic Lookup#2控制2次ACL物理查找寄存器单元进行物理查找,4个TCAM寄存器单元都可以被访问,通过上述方式进行配置,只需通过2次ACL逻辑查找就能够对4个TCAM寄存器单元进行查找后,有效的减少了硬件的开销。
[0057] 由于设置了TCAM寄存器单元的优先级,在ACL查找结果中,可能出现不同,本实施例中,以ACL Logic Lookup#0为例,对ACL查找结果进行进一步的说明;
[0058] 在ACL Logic Lookup#0中,TCAM#0和TCAM#1都会被查找,会产生4中结果,具体的,[0059] 1:TCAM#0和TCAM#1都未查询到相关的ACL表项,则无需对报文执行相应的处理;
[0060] 2:TCAM#0查询到相关的ACL表项,TCAM#1中未查询到相关的ACL表项,则使用TCAM#0中的ACL表项对报文执行相应的处理;
[0061] 3:TCAM#0未查询到相关的ACL表项,TCAM#1查询到相关的ACL表项,则使用TCAM#1中的ACL表项对报文执行相应的处理;
[0062] 4:TCAM#0和TCAM#1都查询到相关的ACL表项,由于TCAM#0的优先级大于TCAM#1的优先级,则使用TCAM#0中的ACL表项对报文执行相应的处理。
[0063] 因此,软件设计时,无需感知TCAM#0和TCAM#1,只需要都当做TCAM#0来处理,看到的TCAM大小变为原来的2倍,配置ACL表项时,优先级高的配置到TCAM顶部,优先级低的配置到TCAM底部,逻辑效果如图5所示,
[0064] 如图6所示,一种基于TCAM资源绑定查找ACL的实现方法,所述方法包括如下步骤:
[0065] S1,根据需求设定ACL逻辑寄存器单元数量;
[0066] S2,对所述ACL逻辑寄存器进行相应配置,查找对应的ACL物理查找寄存器单元;
[0067] S3,所述ACL物理查找寄存器单元查找对应的TCAM寄存器单元,进行ACL查找。
[0068] 其中,所述ACL逻辑寄存器单元的数量不大于TCAM寄存器的数量。
[0069] 对所述ACL逻辑寄存器进行配置,其配置命令如下:AclLogicLookup KEn[N-1:0],其中,K表示第K个ACL逻辑查找寄存器,N表示ACL物理查找寄存器单元的数量。
[0070] 本发明所揭示的基于TCAM资源绑定的ACL实现方法及装置,无需在ACL物理查找寄存器单元与TCAM寄存器单元使用全连接(Full-Mesh),有效地降低交换芯片或者路由器芯片的复杂度和成本,并且,降低了查找ACL表项时的硬件开销,提高了查找效率,同时,本发明所述的装置扩展性好,后续需要增加ACL查找数目时,增加硬件连线数目和ACL查找数目是线性相关,而不是幂指数相关;并且本发明所述的方法中,只需要增加对应的逻辑连线的ACL逻辑查找控制寄存器单元,ACL查找结果无需新增逻辑,可以沿用既有的逻辑完成。
[0071] 本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。