一种TCAM表空间回收的方法及装置制造方法及图纸

技术编号:10423371 阅读:111 留言:0更新日期:2014-09-12 14:05
本发明专利技术公开了一种TCAM表空间的回收方法及装置。通过在CPU内存中维护一张TCAM空间状态表,该表记录了对应TCAM空间的使用状态,当状态表记录TCAM的剩余空间不足以添加新的表项时,触发TCAM空间的回收。与现有技术相比,本发明专利技术在真正需要TCAM表空间时,才进行表空间回收操作。因而,平常在TCAM上添加、删除表项会快速完成;同时,由于只在TCAM空间耗尽时,才会触发空间回收,进而执行表项移动操作,其他情况下均不执行表项移动操作,因而,在TCAM查找表项的准确性上,较现有技术也有大幅提升。

【技术实现步骤摘要】
—种TCAM表空间回收的方法及装置
本专利技术涉及数据通信领域,尤其涉及一种TCAM表空间回收的方法及装置。
技术介绍
在数据通信中,均会涉及到表项的存储和查找。传统的表项查找方法有很多。例如:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,其共同特点是查找速度慢。随着基于TCAM(Ternary Content Addressable Memory, 一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项)的硬件匹配技术越来越成熟,越来越多的应用开始使用这种快速的方式对表项进行存储和查找。在使用TCAM时,选定不同的策略和方法对表空间进行添加、删除等维护性操作,将会极大地影响TCAM使用的效率和实际的匹配结果。现有技术方案为满足默认的ACL先配置优先级高,后配置优先级低的应用需求,针对TCAM表地址低的优先匹配的硬件特性,对TCAM表空间使用即时回收的策略进行维护。在添加TCAM表项时,申请高地址空间,写入表项;删除TCAM表项时,如果删除的表项地址是使用的最高地址,就直接置表项无效;如果不是最高地址,就把删除点地址到表项最高地址之间的所有表项向低地址移动,把删除点表项覆盖掉,同时把最高地址的表项置为无效;无效表项空间被直接回收,供下次添加新的表项时使用。这种方法实现TCAM表项操作虽然逻辑简单,但当表项较多,删除较低地址的表项时,需要进行大量的表项移动操作,耗时较长,影响效率。同时频繁的移动操作,相当于频繁的修改表项,会对TCAM查找产生影响,造成误命中的情况出现。
技术实现思路
有鉴于此,本专利技术提供一种TCAM表空间回收的方法和装置,以解决上述现有技术中存在的不足。本专利技术是通过如下技术方案实现的:一种TCAM空间回收的装置,包括有TCAM空间维护单元、TCAM表项处理单元以及TCAM空间回收单元,其中:所述TCAM空间维护单元,用于创建TCAM空间状态表,并根据TCAM空间状态的变化,及时维护对应TCAM空间的使用状态;所述TCAM表项处理单元,用于根据TCAM空间状态表的记录,对实际的TCAM硬件进行表项的添加、删除操作;所述TCAM空间回收单元,用于当TCAM空间不足以添加新的表项时,启动对TCAM无效表项空间的回收。其中,当所述TCAM表项处理单元接收到用户添加表项的指示时,通过TCAM空间维护单元获得TCAM空间的状态,当TCAM的剩余空间足够时,直接将所述待添加表项写入TCAM中;当TCAM的剩余空间不足以添加新的表项时,则通知所述TCAM空间回收单元对TCAM空间回收。其中,所述TCAM空间回收单元完成对TCAM空间的回收后,所述TCAM表项处理单元再次通过TCAM空间维护单元获得TCAM空间回收后的状态,当TCAM的剩余空间足够时,直接将所述待添加表项写入TCAM中,否则,丢弃本次添加表项的请求,并向用户返回添加表项失败的响应,或者按照尽力原则,添加部分表项,并丢弃本次未添加的表项,然后向用户返回未添加表项失败的响应。其中,当所述TCAM表项处理单元接收到用户删除表项的指示时,直接通知TCAM空间维护单元将对应表项置为无效。其中,所述TCAM空间回收单元完成对TCAM空间的回收后,通知TCAM空间维护单元及时对TCAM空间状态表进行更新。本专利技术还同时提供一种TCAM空间回收的方法,应用于对TCAM空间的回收,其中,所述方法包括如下步骤:步骤1、接收用户发送的表项处理的指示,当接收的是TCAM表项添加指示时,贝Ij进行步骤2 ;步骤2、获取TCAM空间状态,并判断TCAM剩余空间是否满足添加新的表项的空间要求,如果是,则进行步骤3,否则,进行步骤4 ;步骤3、向TCAM申请高地址空间,并将待添加的表项写入TCAM中。步骤4、完成对TCAM空间的回收。其中,所述装置在完成对TCAM空间的回收后,将再次判断TCAM剩余空间是否满足添加新的表项的空间要求,如果是,则向TCAM申请高地址空间,并将待添加的表项写入TCAM中;否则,则丢弃本次添加表项的请求,并向用户返回添加表项失败的响应,或者按照尽力原则,添加部分表项,并丢弃本次未添加的表项,然后向用户返回未添加表项失败的响应。其中,当所述装置接收到用户删除表项的指示时,直接将对应表项置为无效。其中,所述装置完成对TCAM空间的回收后,还将对TCAM空间状态表进行更新。与现有的技术相比,本专利技术不再使用及时回收TCAM表空间的空间维护方法,而是在真正需要TCAM表空间时,才进行TCAM表空间回收操作。因而,在TCAM表空间充足时,添加、删除表项会快速完成;同时,只在TCAM表空间耗尽时,添加表项操作才会触发空间回收,执行表项移动操作,在其他情况下均不执行表项移动操作,因而,在TCAM查找表项的准确性上,较现有技术也有大幅度提升。【附图说明】图1为本专利技术TCAM表空间回收的装置示意图。图2为本专利技术TCAM表空间回收的方法流程示意图。图3为本专利技术某应用场景下TCAM表空间回收详细实现流程图。【具体实施方式】为了实现本专利技术目的,本专利技术采用的核心技术思想为:通过在CPU内存中维护一张TCAM空间状态表,该表记录了对应TCAM空间的使用状态,当状态表记录TCAM的剩余空间不足以添加新的表项时,触发TCAM空间的回收。与现有技术相比,本专利技术在真正需要TCAM表空间时,才进行表空间回收操作。因而,平常在TCAM上添加、删除表项会快速完成;同时,由于只在TCAM空间耗尽时,添加表项操作才会触发空间回收,进而执行表项移动操作,其他情况下并不执行表项移动操作,因而不会影响TCAM查找,在TCAM表项查找的准确性上,较现有技术也有大幅度提升。为使本领域技术人员更加清楚和明白,以下结合本专利技术附图及实施例,详细描述本专利技术实现细节。如图1所示,为本专利技术TCAM表空间回收的装置示意图。该装置是CPU执行内存中的计算机指令所形成的逻辑装置。该装置包括:TCAM空间维护单元、TCAM表项处理单元以及TCAM空间回收单元。为了实现本专利技术目的,本专利技术装置需要在CPU内存中维护一个TCAM空间的状态表,该表的数据结构定义如下表1所示:本文档来自技高网...

【技术保护点】
一种TCAM空间回收的装置,包括有TCAM空间维护单元、TCAM表项处理单元以及TCAM空间回收单元,其特征在于:所述TCAM空间维护单元,用于创建TCAM空间状态表,并根据TCAM空间状态的变化,及时维护对应TCAM空间的使用状态;所述TCAM表项处理单元,用于根据TCAM空间状态表的记录,对实际的TCAM硬件进行表项的添加、删除操作;所述TCAM空间回收单元,用于当TCAM空间不足以添加新的表项时,启动对TCAM无效表项空间的回收。

【技术特征摘要】
1.一种TCAM空间回收的装置,包括有TCAM空间维护单元、TCAM表项处理单元以及TCAM空间回收单元,其特征在于: 所述TCAM空间维护单元,用于创建TCAM空间状态表,并根据TCAM空间状态的变化,及时维护对应TCAM空间的使用状态; 所述TCAM表项处理单元,用于根据TCAM空间状态表的记录,对实际的TCAM硬件进行表项的添加、删除操作; 所述TCAM空间回收单元,用于当TCAM空间不足以添加新的表项时,启动对TCAM无效表项空间的回收。2.如权利要求1所述的装置,其特征在于,当所述TCAM表项处理单元接收到用户添加表项的指示时,通过TCAM空间维护单元获得TCAM空间的状态,当TCAM的剩余空间足够时,直接将所述待添加表项写入TCAM中;当TCAM的剩余空间不足以添加新的表项时,则通知所述TCAM空间回收单元对TCAM空间回收。3.如权利要求2所述的装置,其特征在于,所述TCAM空间回收单元完成对TCAM空间的回收后,所述TCAM表项处理单元再次通过TCAM空间维护单元获得TCAM空间回收后的状态,当TCAM的剩余空间足够时,直接将所述待添加表项写入TCAM中,否则,丢弃本次添加表项的请求,并向用户返回添加表项失败的响应,或者按照尽力原则,添加部分表项,并丢弃本次未添加的表项,然后向用户返回未添加表项失败的响应。4.如权利要求1所述的装置,其特征在于,当所述TCAM表项处理单元接收...

【专利技术属性】
技术研发人员:范路路
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1