更新处理方法及装置与流程

文档序号:13215825阅读:181来源:国知局
技术领域本发明涉及通信领域,具体而言,涉及一种更新处理方法及装置。

背景技术:
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。目前网络芯片包括ASIC和NP(网络处理器)两大类。网络处理器凭借其高速处理及灵活的可编程性,已成为当今网络中数据处理的有效解决方案。网络处理器中有多种不同的存储器,如静态随机储存器(StaticRandomAccessRam,简称为SRAM)、三态内容寻址存储器(ternarycontentaddressablememory,简称为TCAM)、同步动态随机储存器(DynamicRandomAccessRam,简称为SDRAM)等,这些存储器存放着各种业务表项,如端口表、MAC表、路由表等。TCAM是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。TCAM的主要特点是快速并行查找,在网络处理器上的应用通常是,微码从报文抽取相关信息组成一个KEY(键值),通过NP的TCAM控制器向TCAM发送查找命令,根据结果处理报文。目前一种常用的网络处理器连接TCAM方式,图1是相关技术中基于TCAM的ACL装置的示意图,如图1所示。CPU通过NP的TCAM适配接口访问外部TCAM,NP和TCAM之间通过Interlaken总线互联。TCAM的一种典型业务应用为访问控制列表(AccessControlList,简称为ACL),如图1所示,其中ACL规则存放于NP相连的外部TCAM中;ACL动作表存放在于外部动态随机储存器(DynamicRandomAccessRam,简称为DRAM)中。TCAM中规则相应的TCAM条目和DRAM中的动作表条目一一对应。对NP微码而言,命中TCAM条目会向NP返回TCAM地址,NP通过该地址转换成相应动作表条目在DRAM中的地址,找到动作表并执行相关ACL动作。目前TCAM条目数据宽度通常非常宽,典型地,IPV6ACL,TCAM键值通常需要640BIT以上;另外,DRAM优点是大容量,但其更新速率也比较慢。目前业界ACL更新通用做法是TCAM和DRAM更新是串行操作,在大容量ACL条目更新情况下,更新效率非常低下。针对相关技术中对大容量TCAM条目更新效率低的问题,目前尚未提出有效的解决方案。

技术实现要素:
本发明提供了一种更新处理方法及装置,以至少解决相关技术中对大容量TCAM条目更新效率低的问题。根据本发明的一个方面,提供了一种更新处理方法,包括:确定三态内容寻址TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理。进一步地,对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理包括:在没有完成对所述TCAM条目的所述TCAM写表操作更新处理的情况下,开始对所述DRAM写表操作进行更新处理。进一步地,对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理包括:判断是否首次对所述TCAM条目的所述TCAM及所述DRAM进行并行更新处理;在判断结果为是的情况下,对所述TCAM条目的所述TCAM及所述DRAM进行并行更新处理。进一步地,对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理包括:在判断结果为否的情况下,判断前一次是否完成对所述TCAM进行更新处理;在判断结果为是的情况下,对所述TCAM进行更新处理;判断前一次是否完成对所述DRAM进行更新处理;在判断结果为是的情况下,对所述DRAM进行更新处理。进一步地,对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理包括:对此次所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作与下一次所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理。进一步地,对此次所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作与下一次所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理包括:在开始对所述DRAM进行更新处理之后,在前一次完成对所述TCAM进行更新处理的情况下,对所述TCAM进行更新处理;和/或,在开始对所述TCAM进行更新处理之后,在前一次完成对所述DRAM进行更新处理的情况下,对所述DRAM进行更新处理。进一步地,所述TCAM条目包括以下之一:接入控制列表ACL,路由表,服务质量(QualityofService,简称为QoS)。根据本发明的另一方面,提供了一种更新处理装置,包括:确定模块,用于确定三态内容寻址TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;更新处理模块,用于对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理。进一步地,所述更新处理模块包括:第一更新处理单元,用于在没有完成对所述TCAM条目的所述TCAM写表操作更新处理的情况下,开始对所述DRAM写表操作进行更新处理。进一步地,所述更新处理模块包括:第一判断单元,用于判断是否首次对所述TCAM条目的所述TCAM及所述DRAM进行并行更新处理;第二更新处理单元,用于在判断结果为是的情况下,对所述TCAM条目的所述TCAM及所述DRAM进行并行更新处理。进一步地,所述更新处理模块包括:第二判断单元,用于在判断结果为否的情况下,判断前一次是否完成对所述TCAM进行更新处理;第三更新处理单元,用于在判断结果为是的情况下,对所述TCAM进行更新处理;第三判断单元,用于判断前一次是否完成对所述DRAM进行更新处理;第四更新处理单元,用于在判断结果为是的情况下,对所述DRAM进行更新处理。进一步地,所述更新处理模块包括:第五更新处理单元,用于对此次的所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作与下一次的所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理。进一步地,所述第三更新处理单元包括:第一更新处理子单元,用于在开始对所述DRAM进行更新处理之后,在前一次完成对所述TCAM进行更新处理的情况下,对所述TCAM进行更新处理;和/或,第二更新处理子单元,用于在开始对所述TCAM进行更新处理之后,在前一次完成对所述DRAM进行更新处理的情况下,对所述DRAM进行更新处理。通过本发明,采用确定TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;对所述TCAM条目的所述TCAM写表操作及所述DRAM写表操作进行并行更新处理,解决了相关技术中对大容量TCAM条目更新效率低的问题,从而的提高了大容量TCAM条目更新效率的效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是相关技术中基于TCAM的ACL装置的示意图;图2是根据本发明实施例的更新处理方法的流程图;图3是根据本发明实施例的更新处理装置的框图;图4是根据本发明优选实施例一的更新处理装置的框图;图5是根据本发明优选实施例二的更新处理装置的框图;图6是根据本发明优选实施例三的更新处理装置的框图;图7是根据本发明优选实施例四的更新处理装置的框图;图8是根据本发明优选实施例五的更新处理装置的框图;图9是相关技术中的ACL写表的流程图;图10是根据本发明实施例的ACL写表流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中提供了一种更新处理方法,图2是根据本发明实施例的更新处理方法的流程图,如图2所示,该流程包括如下步骤:步骤S202,确定三态内容寻址TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;步骤S204,对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理。通过上述步骤,确定TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理,其中,TCAM条目为按照TCAM格式写入的相关业务,例如,可以是访问控制列表ACL、路由表或QoS,解决了相关技术中对大容量TCAM条目更新效率低的问题,从而的提高了大容量TCAM条目更新效率的效果。对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理的方式有很多种,在一个可选的实施例中,可以包括:在没有完成对该TCAM条目的该TCAM写表操作更新处理的情况下,开始对该DRAM写表操作进行更新处理,由于不用等待TCAM写表操作更新处理完毕,就可以直接对DRAM写表操作进行更新处理,从而大大缩短了更新TCAM条目的时间,提高了更新效率。对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理还可以根据是否是首次更新处理,从而做出不同的处理,首先判断是否首次对该TCAM条目的该TCAM及该DRAM进行并行更新处理;在判断结果为是的情况下,对该TCAM条目的该TCAM及该DRAM进行并行更新处理:在判断结果为否的情况下,判断前一次是否完成对该TCAM进行更新处理;在判断结果为是的情况下,对该TCAM进行更新处理;判断前一次是否完成对该DRAM进行更新处理;在判断结果为是的情况下,对该DRAM进行更新处理。对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理还可以包括:对此次的该TCAM条目的该TCAM写表操作及该DRAM写表操作与下一次的该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理。即可以通过以下的方式实现:在开始对该DRAM进行更新处理之后,在前一次完成对该TCAM进行更新处理的情况下,对该TCAM进行更新处理;和/或,在开始对该TCAM进行更新处理之后,在前一次完成对该DRAM进行更新处理的情况下,对该DRAM进行更新处理,通过多次并行执行更新处理,提高了对TCAM条目的更行效率。上述的TCAM条目可以包括以下之一:访问控制列表ACL,路由表,服务质量QoS。本发明实施例还提供了一种更新处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是根据本发明实施例的更新处理装置的框图,如图3所示,包括:确定模块32,用于确定三态内容寻址TCAM条目的TCAM写表操作及动态随机存取储存器DRAM写表操作;更新处理模块34,用于对该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理。图4是根据本发明优选实施例一的更新处理装置的框图,如图4所示,该更新处理模块34包括:第一更新处理单元42,用于在没有完成对该TCAM条目的该TCAM写表操作更新处理的情况下,开始对该DRAM写表操作进行更新处理。图5是根据本发明优选实施例二的更新处理装置的框图,如图5所示,该更新处理模块34包括:第一判断单元52,用于判断是否首次对该TCAM条目的该TCAM及该DRAM进行并行更新处理;第二更新处理单元54,用于在判断结果为是的情况下,对该TCAM条目的该TCAM及该DRAM进行并行更新处理。图6是根据本发明优选实施例三的更新处理装置的框图,如图6所示,该更新处理模块34包括:第二判断单元62,用于在判断结果为否的情况下,判断前一次是否完成对该TCAM进行更新处理;第三更新处理单元64,用于在判断结果为是的情况下,对该TCAM进行更新处理;第三判断单元66,用于判断前一次是否完成对该DRAM进行更新处理;第四更新处理单元68,用于在判断结果为是的情况下,对该DRAM进行更新处理。图7是根据本发明优选实施例四的更新处理装置的框图,如图7所示,该更新处理模块34包括:第五更新处理单元72,用于对此次的该TCAM条目的该TCAM写表操作及该DRAM写表操作与下一次的该TCAM条目的该TCAM写表操作及该DRAM写表操作进行并行更新处理。图8是根据本发明优选实施例五的更新处理装置的框图,如图8所示,该第三更新处理单元72包括:第一更新处理子单元82,用于在开始对该DRAM进行更新处理之后,在前一次完成对该TCAM进行更新处理的情况下,对该TCAM进行更新处理;和/或,第二更新处理子单元84,用于在开始对该TCAM进行更新处理之后,在前一次完成对该DRAM进行更新处理的情况下,对该DRAM进行更新处理。下面以TCAM条目为访问控制列表ACL为例,结合可选实施例对本发明实施例进行进一步说明。如图1所示,基于TCAM的ACL装置包括:101CPU,控制面CPU,完成NP及TCAM配置,以及ACL下发原始数据到TCAM及DRAM硬件条目的转换;102NP,网络处理器,包括:CPU接口:CPU通过CPU接口访问TCAM及DRAM;TCAM接口:NP与TCAM的适配接口,NP通过Interlaken与TCAM互联,另外通过MDIO接口进行带外的寄存器访问;DRAM接口:NP与DRAM的适配接口。图9是相关技术中的ACL写表的流程图,如图9所示,ACL更新可以归结为三个步骤:步骤一,应用软件层将ACL规则按照TCAM定义的格式进行转换;ACL动作根据DRAM定义的格式进行转换;步骤二,更新TCAM规则直至结束;步骤三,更新DRAM动作表直至结束。这三个步骤是ACL更新主要的三个时间耗费点。步骤一的转换是由于上层平台传递下来的数据格式,与芯片底层的数据格式不一致导致的,因此需要上层软件在每一个规则及相应动作下发时候做相应的适配转换;步骤二在典型应用中耗费时间也很长,比如IPV4ACL,除了五元组(源IP,目的IP,协议号,源端口,目的端口)外,还可能包括目的MAC、源MAC、以太类型(ETHERTYPE)、接口号等,而TCAM的键值宽度典型的包括80bit、160bit、320bit、640bit,因此只能用640bit,按照图1所示,这80字节的数据在Interlaken上传输,还需要加上Interlaken定义的控制字(ControlWord),数据传输时间比较长,另外需要等待TCAM返回响应结果后才能断定TCAM更新完成,才可以进行步骤三;步骤三,更新DRAM动作表,与步骤二类似,目前随着网络业务的复杂度增加,ACL动作表通常也比较宽,数据通过NP的PCI-E接口到达NP与DRAM的适配接口,通过该接口更新DRAM,等待写DRAM结束完成该步操作。目前上层业务经常大批量写表,比如ACL,可能一次用户定义上万条ACL规则。业界通用做法是这三个步骤顺序串行执行,一次更新通常需要十几秒甚至几十秒。本可选实施例将硬件操作、软件操作并行执行,比如步骤二TCAM更新时,可以不需要等待TCAM写表完成并返回响应结果,而直接进行步骤三,在步骤三,也只需要开启DRAM写表操作不必等待完成,从而进行下一个ACL条目的更新,第二个循环的步骤一,组装下一条ACL规则的TCAM键值及DRAM表内容。在第二个循环步骤二,再一次写TCAM时,需要判断前一次操作是否执行结束,如果执行结束才可以开始第二个循环的TCAM写表操作;第二个循环步骤三与此类似,写DRAM前判断上一次执行是否结束。通过上述软件、硬件并行操作,可以大大提高ACL更新效率。如图9所示,目前ACL更新流程包括以下步骤:步骤S902,控制面组装硬件键值,将上层传递的ACL原始数据进行分解,一条一条的转换成TCAM写表键值及DRAM条目内容;步骤S904,写TCAM条目,等待完成,将步骤S902,组装好后的TCAM键值写入TCAM响应条目,等待Interlaken上数据传输完成并且TCAM返回写表成功的响应结果;步骤S906,写DRAM条目,等待完成,将步骤S902组装好后的DRAM动作表内容写入DRAM相应地址,并等待执行成功;一次循环结束,开始下次循环写ACL下一个条目,跳到步骤S902。图10是根据本发明实施例的ACL写表流程图,如图10所示,包括以下步骤:步骤S1002,控制面组装硬件键值,将上层传递的ACL原始数据进行分解,一条一条的转换成TCAM写表键值及DRAM条目内容;步骤S1004,检查前一次TCAM写表是否完成,如果完成,进入步骤S1008,否则进入步骤S1006;如何判断前一次TCAM更新是否完成,可以有不同实现方法。比如,NP通常有状态寄存器,表征Interlaken上数据传输是否完成,是否收到Interlaken的数据响应等;如果TCAM有相应寄存器,也可以作为前一次TCAM更新是否完成的判断依据。为了节省TCAM更新效率,TCAM写表通常不需要等待TCAM响应并解析,如果要做TCAM解析,则需要加上前一次TCAM返回结果的判断解析,如果执行失败,则加入失败链表进行失败重写。该操作不属于本专利的核心思想,不做赘述。步骤S1006,进行等待,等待一定周期,再进入步骤S1004检查,直到前一次写表完成为止,等待周期通常是微秒或者毫秒级;步骤S1008,开始写TCAM,配置TCAM相关寄存器,将步骤S1002组装的键值开始写入TCAM,需要说明的是对于第一次写表,不需要执行步骤S1004,的判断,直接写表;本步骤只是开启TCAM数据在NP和TCAM的Interlaken总线上的数据传输,不需要等待完成;步骤S1010,判断前一次DRAM操作是否完成;与步骤S1004类似,判断前一次操作是否完成,如果完成进入步骤S1014;否则进入步骤S1012;步骤S1012,等待,等待一定周期,再进入步骤S1010,检查直到前一次写表完成为止,等待周期通常是微秒或者毫秒级;步骤S1014,开始写DRAM,配置DRAM相关寄存器,将步骤S1002,组装的键值开始写入DRAM。本步骤只是开启DRAM数据在NP和DRAM硬件总线上的数据传输,不需要等待完成;本次循环结束,进入步骤S1002,开始下一条ACL数据的下发;在所有ACL数据下发完成之后,更新结束。由于采用并行执行,每次判断硬件前一次操作是否执行完成时,只有非常小的概率是未完成需要等待的。实际测试,采用本专利方法,批量ACL写表时间可以缩短到串行方式的百分之一。本可选实施例针对目前批量写TCAM生效慢的问题,提供了一种快速写表模式。将软件组键值、硬件写TCAM、硬件写DRAM,由通常的串行执行,改为并行执行。在硬件写表时不等待,而直接进行下一步操作,这样并行执行极大提高了写表效率。因此本可选实施例在大容量写表情况下可以节省很多时间,极大缩短了ACL业务生效时间。本可选实施例相对目前基于TCAM的批量ACL写表慢的问题,通过分解ACL的执行步骤,将其中的硬件操作、软件操作由目前通常惯用的串行操作,等待写表完成改为并行操作,后一次操作等待前一次完成的方式,极大提高了基于TCAM的ACL更新效率,特别在大容量ACL更新情况下,显得极为有应用价值。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1