基于TCAM的IPMC数据存储方法技术

技术编号:18444424 阅读:123 留言:0更新日期:2018-07-14 10:10
本发明专利技术公开了一种基于TCAM的IPMC数据存储方法,包括:在TCAM存储空间中规划六个连续地址的存储块Block,用于存储IPv4 IPMC条目和IPv6 IPMC条目;当向任一块Block添加对应类型的IPMC条目时,若当前Block存储空间不足,则查找其他Block是否存在空闲存储空间,若存在,则为当前Block扩容存储空间。采用本发明专利技术能够实现IPv4 IPMC条目和IPv6 IPMC条目的存储空间资源共享,以及(S,G)、(*,G)和(*,*)三种类型条目的存储空间资源共享。

IPMC data storage method based on TCAM

The invention discloses a TCAM based IPMC data storage method, including: planning six continuous address storage blocks Block in TCAM storage space for storing IPv4 IPMC entries and IPv6 IPMC entries; when adding a corresponding type of IPMC entry to any block Block, if the current Block storage space is insufficient, the other Block is found. If there is free storage space, if it exists, it will expand the storage space for the current Block. The invention can be used to share the storage space resources of IPv4 IPMC entries and IPv6 IPMC entries, and (S, G), (*, G) and (*, *) three types of storage space resources.

【技术实现步骤摘要】
基于TCAM的IPMC数据存储方法
本专利技术涉及一种TCAM存储方法,特别涉及一种基于TCAM的IPMC数据存储方法,属于数据存储

技术介绍
IPMC(InternetProtocolMulticast,IP组播)条目存放在TCAM(TernaryContentAddressableMemory,三态内容寻址存储器)中,首先需要区分该IPMC条目的类型。IPMC条目根据目的地址和源地址分为以下三种:1.(S,G),需要匹配目的和源地址;2.(*,G),不关心源地址,只需要匹配目的地址;3.(*,*),不关目的和源地址。根据地址长度,IPMC条目分为IPv4条目和IPv6条目。传统的存储方式是将TCAM划分为不共享的两块资源,IPv4IPMC条目和IPv6IPMC条目在各自的存储空间内单独维护,在各自的存储空间初始化时为三种类型的条目分配好存储范围。如图1所示,(S,G)条目采用正向分配,(*,G)条目采用反向分配,(*,*)条目是default条目,预留好相应VRF数量的条目数。然而,现有技术的这种存储方法,IPv4和IPv6的IPMC条目资源是独立存储的,对TCAM的存储空间利用率低,且存储(S,G)、(*,G)与(*,*)三种类型条目的存储空间固定,无法进行空间资源共享。
技术实现思路
针对现有技术的不足,本专利技术的目的在于提供一种基于TCAM的IPMC数据存储方法,通过对IPv4和IPv6IPMC条目在TCAM中存储方式的规划,以及调整存储空间资源,实现不同类型的IPMC条目共享存储空间的目的。为实现前述专利技术目的,本专利技术采用的技术方案包括:在TCAM存储空间中规划六个连续地址的存储块Block,用于存储IPv4和IPv6IPMC条目,所述IPv4或IPv6IPMC条目以Block地址递增的方向按照(S,G)、(*,G)、(*,*)的顺序存储;当向任一块Block添加对应类型的IPMC条目时,若当前Block存储空间不足,则查找其他Block是否存在空闲存储空间,若存在,则为当前Block扩容存储空间并存储所述对应类型的IPMC条目。优选地,根据地址递增的顺序,为所述六块Block依次分配连续递增的数值作为BlockID,记录每一块Block的起始偏移位置和结束偏移位置。优选地,在任一块Block中添加相应类型的IPMC条目时,均从该块Block的起始偏移位置处累计存储,直到累计使用的偏移位置达到结束偏移位置时,表示该块Block的存储空间已满。优选地,所述为当前Block扩容存储空间包括以下步骤:S1:根据方向查找与当前Block最邻近的且具有存储空间的Block,获取当前Block的ID;记为block_id,获取已查找到的Block的ID记为adj_block_id;S2:判断adj_block_id与block_id是否相等,若不相等,执行S3;否则执行S6;S3:判断adj_block_id是否大于block_id,若大于,执行S4;否则,执行S5;S4:将ID为adj_block_id的Block中的数据向下移动2个偏移单位,且该Block的起始偏移位置加2,其前一个相邻Block的结束偏移位置加2,adj_block_id减1,返回执行S2;S5:将ID为adj_block_id的Block的结束偏移位置减2,其后一个Block中的数据向上移动2个偏移单位,所述后一个Block的起始偏移位置减2,adj_block_id加1,返回执行S2;S6:在当前Block中申请存储空间;S7:结束。优选地,一条IPv4IPMC条目占用的存储空间大小为一个偏移单位,一条IPv6IPMC条目占用的存储空间大小为两个偏移单位。优选地,一个偏移单位的大小为160bit。与现有技术相比,本专利技术的优点包括:能够实现不同类型的IPMC条目共享存储空间的目的,不仅实现IPv4IPMC条目和IPv6IPMC条目的存储空间资源共享,同时实现(S,G)、(*,G)和(*,*)这三种类型条目的存储空间资源共享,可满足不同类型用户的网络规格需求,从而提高了存储空间资源利用率。附图说明图1是现有技术中三种类型的IPMC条目的存储空间资源分配示意图;图2是本专利技术的IPv4和IPv6IPMC条目的存储空间资源分配示意图;图3a是本专利技术一典型实施例的添加IPMC条目过程的调整空间资源前的存储空间资源分配示意图;图3b是本专利技术一典型实施例的添加IPMC条目过程的调整空间资源后的存储空间资源分配示意图;图4是本专利技术一典型实施例的存储空间资源调整过程的流程图。具体实施方式鉴于现有技术中的不足,本案专利技术人经长期研究和大量实践,得以提出本专利技术的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。本专利技术提出了一种IPMC条目在TCAM中存储的方法,其技术方案作如下具体阐述。首先,为IPv4和IPv6IPMC条目规划一个共同的TCAM存储空间,并对所述TCAM存储空间进行规划分配,图2是本专利技术的IPv4和IPv6IPMC条目的存储空间资源分配示意图,如图2所示,其中,V4(S,G)、V4(*,G)和V4(*,*)是IPv4IPMC条目的三种类型,V6(S,G)、V6(*,G)和和V6(*,*)是IPv6IPMC条目的三种类型。将用于存放IPv4IPMC条目和IPv6IPMC条目的TCAM存储空间规划为六块Block,按照地址递增顺序依次分配给V4(S,G)、V6(S,G)、V4(*,G)、V6(*,G)、V4(*,*)和V6(*,*)。需要注意的是,在向Block中分配和存储IPv4或IPv6IPMC条目时,不限于上述的分配方式,只需要保证用于存储(S,G)类型的IPv4IPMC条目的Block地址前于用于存储(*,G)类型的IPv4IPMC条目的Block地址,用于存储(*,G)类型的IPv4IPMC条目的Block地址前于用于存储(*,*)类型的IPv4IPMC条目的Block地址;同时,用于存储(S,G)类型的IPv6IPMC条目的Block地址前于用于存储(*,G)类型的IPv6IPMC条目的Block地址,用于存储(*,G)类型的IPv6IPMC条目的Block地址前于用于存储(*,*)类型的IPv6IPMC条目的Block地址即可,具体分配方式取决于实际使用中不同类型条目的规格。表1是本专利技术一典型实施例为各Block进行初始分配的示例,如下所示。表1表1中,ID表示根据地址递增顺序的自上而下六块Block的标识,L表示该块Block的起始偏移位置,R表示该块Block的结束偏移位置,M表示当前Block对应的条目所占用的偏移单位数量,ALL表示该块Block空间的总大小,Used表示已经使用的空间大小。一条IPv4IPMC条目占用的存储空间大小为一个偏移单位,一条IPv6IPMC条目占用的存储空间大小为两个偏移单位,一个偏移单位的大小为160bit。在向每一块Block中添加相应类型的IPMC条目时,均从该块Block的起始偏移位置处开始存储,直到累计使用的偏移位置达到结束偏移位置时,表示该块Block存储空间已满,再次添加该类型的IPMC条目时,则需要进行存储空间资源调整。若某一块Block预先本文档来自技高网...

【技术保护点】
1.一种基于TCAM的IPMC数据存储方法,其特征在于,包括:在TCAM存储空间中规划六个连续地址的存储块Block,用于存储IPv4IPMC条目和IPv6IPMC条目,所述IPv4IPMC条目或IPv6IPMC条目以Block地址递增的方向按照(S,G)、(*,G)、(*,*)的顺序存储;当向任一块Block添加对应类型的IPMC条目时,若当前Block存储空间不足,则查找其他Block是否存在空闲存储空间,若存在,则为当前Block扩容存储空间并存储所述对应类型的IPMC条目。

【技术特征摘要】
1.一种基于TCAM的IPMC数据存储方法,其特征在于,包括:在TCAM存储空间中规划六个连续地址的存储块Block,用于存储IPv4IPMC条目和IPv6IPMC条目,所述IPv4IPMC条目或IPv6IPMC条目以Block地址递增的方向按照(S,G)、(*,G)、(*,*)的顺序存储;当向任一块Block添加对应类型的IPMC条目时,若当前Block存储空间不足,则查找其他Block是否存在空闲存储空间,若存在,则为当前Block扩容存储空间并存储所述对应类型的IPMC条目。2.根据权利要求1所述的基于TCAM的IPMC数据存储方法,其特征在于:根据地址递增的顺序,为所述六块Block依次分配连续递增的数值作为BlockID;记录每一块Block的起始偏移位置和结束偏移位置。3.根据权利要求2所述的基于TCAM的IPMC数据存储方法,其特征在于:在向任一块Block中添加相应类型的IPMC条目时,均从该块Block的起始偏移位置处累计存储,直到累计使用的偏移位置达到结束偏移位置时,表示该块Block的存储空间已满。4.根据权利要求2或3所述的任一项基于TCAM的IPMC数据存储方法,其特征在于,所述为当前Block扩容存储空间包括以下步骤:S1:查找与当前Block...

【专利技术属性】
技术研发人员:李晨周杰杨曙军杨其柑
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏,32

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

1