CN108279853A - 基于tcam的ipmc数据存储方法 - Google Patents

基于tcam的ipmc数据存储方法 Download PDF

Info

Publication number
CN108279853A
CN108279853A CN201810053708.1A CN201810053708A CN108279853A CN 108279853 A CN108279853 A CN 108279853A CN 201810053708 A CN201810053708 A CN 201810053708A CN 108279853 A CN108279853 A CN 108279853A
Authority
CN
China
Prior art keywords
block
ipmc
entries
memory space
tcam
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201810053708.1A
Other languages
English (en)
Inventor
李晨
周杰
杨曙军
杨其柑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centec Networks Suzhou Co Ltd
Original Assignee
Centec Networks Suzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201810053708.1A priority Critical patent/CN108279853A/zh
Publication of CN108279853A publication Critical patent/CN108279853A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

基于TCAM的IPMC数据存储方法
技术领域
本发明涉及一种TCAM存储方法,特别涉及一种基于TCAM的IPMC数据存储方法,属于数据存储技术领域。
背景技术
IPMC(Internet Protocol Multicast,IP组播)条目存放在TCAM(TernaryContent Addressable Memory,三态内容寻址存储器)中,首先需要区分该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依次分配连续递增的数值作为Block ID,记录每一块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条目的三种类型。将用于存放IPv4 IPMC条目和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预先分配的存储空间资源已被用完,再次向该块Block添加对应IPMC条目时,需要从最邻近的有空闲存储空间的Block中调整出存储资源供该块Block使用。图3a~3b 是本发明一典型实施例的添加IPMC条目的示意图,如图3a所示,TCAM存储器自上而下六块 Block分别存储V4(S,G)、V6(S,G)、V4(*,G)、V6(*,G)、V4(*,*)和V6 (*,*)IPMC条目,该六块Block的起始偏移位置和结束偏移位置分别为(L0,R0)、(L1,R1)、(L2,R2)、(L3,R3)、(L4,R4)、(L5,R5);其中,阴影部分表示存储空间已满,空白部分表示存储空间空闲。
如图3a所示,V4(*,G)Block存储空间已满,此时若继续添加一条新的V4(*,G),则需通过调整空间资源来完成添加,从下方V6(*,G)Block中调整出2个偏移单位大小的存储空间资源给V4(*,G)。相应的,V4(*,G)Block的存储空间增大了2个偏移单位,V6 (*,G)Block的存储空间减小了2个偏移单位。V4(*,G)Block的结束偏移位置变为R2',且R2'=R2+2,起始偏移位置不变;V6(*,G)Block的起始偏移位置变为L3',且L3'=L3-2,调整空间资源后的TCAM存储空间的存储分配情况如图3b所示。
图4是本发明一典型实施例的存储空间资源调整过程的流程图,其中,当前Block的ID用变量block_id表示,最邻近的且具有存储空间的Block的ID用变量adj_block_id表示,具体调整过程如下:
步骤401:判断当前Block是否有存储空间,若没有,执行步骤402,否则跳转执行步骤 407;
步骤402:查找到与当前Block最邻近的且具有存储空间的Block;
执行查找操作时,可设置向上查找或向下查找的优先顺序,或者同时执行向上和向下查找,目的是找到最邻近的且有空余存储空间的Block。
步骤403:判断adj_block_id与block_id是否相等,若不相等,执行步骤404,否则执行步骤407;
步骤404:判断adj_block_id是否大于block_id,若大于,执行步骤405,否则执行步骤 406;
步骤405:将ID为adj_block_id的Block中的数据向下移动2个偏移单位,该Block的起始偏移位置L index加2,其前一个Block的结束偏移位置R index加2,adj_block_id减1,返回执行步骤403;
步骤406:将ID为adj_block_id的Block的结束偏移位置R index减2,其后一个Block中的数据向上移动2个偏移单位,后一个Block的起始偏移位置L index减2,adj_block_id加1,返回执行步骤403;
步骤407:在当前Block中申请存储空间;
步骤408:结束。
需要说明的是,本发明实施例中所公开的具体实施方案,仅用来阐述本发明技术方案的核心思想,并不因此而限制本发明的保护范围,基于本发明核心思想的其他实施方式,例如不同类型的IPMC条目在六块Block中的不同分配方式,资源调整的其他方法等,都应涵盖在本发明的保护范围之内。
本发明技术方案提出的基于TCAM存放IPMC条目的方法,能够实现不同类型的IPMC条目共享存储空间的目的,包括IPv4和IPv6IPMC条目资源共享,以及(S,G)、(*,G)和 (*,*)三种类型IPMC条目资源共享,可满足不同类型的网络规格需求,从而提高了存储空间资源利用率。
应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (6)

1.一种基于TCAM的IPMC数据存储方法,其特征在于,包括:
在TCAM存储空间中规划六个连续地址的存储块Block,用于存储IPv4IPMC条目和IPv6IPMC条目,所述IPv4IPMC条目或IPv6IPMC条目以Block地址递增的方向按照(S,G)、(*,G)、(*,*)的顺序存储;
当向任一块Block添加对应类型的IPMC条目时,若当前Block存储空间不足,则查找其他Block是否存在空闲存储空间,若存在,则为当前Block扩容存储空间并存储所述对应类型的IPMC条目。
2.根据权利要求1所述的基于TCAM的IPMC数据存储方法,其特征在于:根据地址递增的顺序,为所述六块Block依次分配连续递增的数值作为Block ID;记录每一块Block的起始偏移位置和结束偏移位置。
3.根据权利要求2所述的基于TCAM的IPMC数据存储方法,其特征在于:在向任一块Block中添加相应类型的IPMC条目时,均从该块Block的起始偏移位置处累计存储,直到累计使用的偏移位置达到结束偏移位置时,表示该块Block的存储空间已满。
4.根据权利要求2或3所述的任一项基于TCAM的IPMC数据存储方法,其特征在于,所述为当前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:结束。
5.根据权利要求1~3所述的任一项基于TCAM的IPMC数据存储方法,其特征在于:一条IPv4IPMC条目占用的存储空间大小为一个偏移单位,一条IPv6IPMC条目占用的存储空间大小为两个偏移单位。
6.根据权利要求5所述的基于TCAM的IPMC数据存储方法,其特征在于:一个偏移单位的大小为160bit。
CN201810053708.1A 2018-01-19 2018-01-19 基于tcam的ipmc数据存储方法 Withdrawn CN108279853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810053708.1A CN108279853A (zh) 2018-01-19 2018-01-19 基于tcam的ipmc数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810053708.1A CN108279853A (zh) 2018-01-19 2018-01-19 基于tcam的ipmc数据存储方法

Publications (1)

Publication Number Publication Date
CN108279853A true CN108279853A (zh) 2018-07-13

Family

ID=62804196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810053708.1A Withdrawn CN108279853A (zh) 2018-01-19 2018-01-19 基于tcam的ipmc数据存储方法

Country Status (1)

Country Link
CN (1) CN108279853A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737404A (zh) * 2019-09-02 2020-01-31 深圳市金泰克半导体有限公司 硬盘数据存储方法、装置及存储介质
CN113328948A (zh) * 2021-06-02 2021-08-31 杭州迪普信息技术有限公司 资源管理方法、装置、网络设备及计算机可读存储介质
CN114745177A (zh) * 2022-04-11 2022-07-12 浪潮思科网络科技有限公司 一种acl规则的处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039252A (zh) * 2006-03-15 2007-09-19 中兴通讯股份有限公司 一种三重内容可寻址存储器路由表管理方法
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
CN106708433A (zh) * 2016-12-06 2017-05-24 深圳市深信服电子科技有限公司 存储数据的读写方法及装置
US9852807B1 (en) * 2015-12-17 2017-12-26 Cadence Design Systems, Inc. Content addressable memory in an emulation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039252A (zh) * 2006-03-15 2007-09-19 中兴通讯股份有限公司 一种三重内容可寻址存储器路由表管理方法
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
US9852807B1 (en) * 2015-12-17 2017-12-26 Cadence Design Systems, Inc. Content addressable memory in an emulation system
CN106708433A (zh) * 2016-12-06 2017-05-24 深圳市深信服电子科技有限公司 存储数据的读写方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737404A (zh) * 2019-09-02 2020-01-31 深圳市金泰克半导体有限公司 硬盘数据存储方法、装置及存储介质
CN113328948A (zh) * 2021-06-02 2021-08-31 杭州迪普信息技术有限公司 资源管理方法、装置、网络设备及计算机可读存储介质
CN114745177A (zh) * 2022-04-11 2022-07-12 浪潮思科网络科技有限公司 一种acl规则的处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN108279853A (zh) 基于tcam的ipmc数据存储方法
US6778984B1 (en) Flexible and high-performance packet classification algorithm
US7313666B1 (en) Methods and apparatus for longest common prefix based caching
US10148571B2 (en) Jump on a match optimization for longest prefix match using a binary search tree
CN102402611B (zh) 一种用tcam实现关键字快速查找并读表的方法
US7096277B2 (en) Distributed lookup based on packet contents
CN103339887A (zh) 用于优化网络前缀列表搜索的方法
US9331942B2 (en) Apparatus and method for processing alternately configured longest prefix match tables
WO2001043346A2 (en) Method and apparatus for longest match address lookup
EP3661153B1 (en) Building decision tree for packet classification
US20100098073A1 (en) Mechanism for Enabling Layer Two Host Addresses to be Shielded from the Switches in a Network
US20140086248A1 (en) Method for IP Longest Prefix Match Using Prefix Length Sorting
TWI638554B (zh) 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法
CN109634966A (zh) 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备
EP3280104B1 (en) Ip routing lookup
CN108259346A (zh) 一种等价路由表项建立方法和装置
CN1216473C (zh) 支持多个下一跳的三态内容可寻址存储器查找方法及系统
CN110557335B (zh) 三态内容寻址存储器tcam表项处理方法及装置
CN108134739A (zh) 一种基于索引特里树的路由查找方法及装置
CN110191135B (zh) Acl配置方法、装置、电子设备
CN103457855B (zh) 无类域间路由表建立、以及报文转发的方法和装置
US10897422B2 (en) Hybrid routing table for routing network traffic
US20230041395A1 (en) Method and Device for Processing Routing Table Entries
CN102164080B (zh) 路由地址查询方法和装置
CN108092898A (zh) 一种多出口网络选路方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20180713

WW01 Invention patent application withdrawn after publication