CN102375820A - Tcam表项的压缩方法 - Google Patents

Tcam表项的压缩方法 Download PDF

Info

Publication number
CN102375820A
CN102375820A CN2010102521946A CN201010252194A CN102375820A CN 102375820 A CN102375820 A CN 102375820A CN 2010102521946 A CN2010102521946 A CN 2010102521946A CN 201010252194 A CN201010252194 A CN 201010252194A CN 102375820 A CN102375820 A CN 102375820A
Authority
CN
China
Prior art keywords
section
sections
compression
rule
element value
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.)
Granted
Application number
CN2010102521946A
Other languages
English (en)
Other versions
CN102375820B (zh
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.)
Suzhou Centec Communications 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 CN 201010252194 priority Critical patent/CN102375820B/zh
Publication of CN102375820A publication Critical patent/CN102375820A/zh
Application granted granted Critical
Publication of CN102375820B publication Critical patent/CN102375820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种TCAM(Ternary Content Addressable Memory,三态内容寻址寄存器)表项的压缩方法,包括如下步骤:首先把一组没有前缀且只有一个变值元素的TCAM表项,划分为变值元素数值连续的段;通过采用添加新表项或者删除表项的方式,对段进行维护;对于数值连续的段,系统先找出段内可以马上进行掩码压缩的规则子段进行直接压缩,而对段内不能立即压缩的非规则子段,系统首先找出此类段公共数值,然后再进行压缩。经验证,在VPWS、VPLS的捆绑应用中,使用本发明,当表项数目大于100时,压缩率平均在50%以上,且表项数目越多,数值越连续,压缩效率越高。

Description

TCAM表项的压缩方法
【技术领域】
本发明涉及一种TCAM(Ternary Content Addressable Memory,三态内容寻址寄存器)表项的压缩方法,属于互联网数据通信内容压缩领域。
【背景技术】
随着互联网的高速发展,网络中节点数目大幅度增长,对路由器接口速率的要求也越来越高,例如支持10G速率的路由器,单包转发处理时间已经要求小于50纳秒,软件路由查找机制显然已不能满足线速转发要求。由于三态内容可寻址寄存器(TCAM)查表速度快,且解决了CIDR最长前缀匹配的问题,已成为业界目前常用的硬件解决方案。
TCAM的每个单元位可以赋予3个逻辑态:0、1或者x,其中x代表一个不确定位,可以起到掩码的作用,这个掩码使得TCAM可以存储那些包含有通配符的规则。TCAM另外一个优点是它所保存的表项可以实现长度灵活配置,结合掩码的应用可以在同一个TCAM芯片中保存任意长度的关键字表项,因此,TCAM非常适用于最长前缀路由的查找。
但是,由于TCAM对路由表项存放的有序性要求,使其表项管理较为复杂。若表项更新时间过长,必然影响查表速度,非常容易引起处理队列阻塞甚至丢包,严重影响路由器的性能,也提高了路由器设计的难度,如对缓存容量提出更高的要求等。
与本发明相关的现有技术请参阅2005年3月2日公告的中国发明专利第CN1191520C号,该专利揭示了一种把都基于树结构的路由压缩以及建立在把TCAM芯片内的空间划分为N个子空间的前缀链约束基础上的前缀更新这两个步骤前后合在一起的TCAM高速更新方法,其中,判断前缀是否需要更新的原则是该节点是否冗余,冗余则不更新,反之,则更新。
然而,现有技术所揭示的方案适用于具有前缀的路由表项的压缩,却不适合于不具有前缀的非路由的普通TCAM表项的压缩。例如,在虚拟私有局域网服务(VPLS)和虚拟专线服务(VPWS)应用中,一个端口可以支持多个虚拟局域网(VLAN)的绑定。这种绑定方式称为捆绑(bundle),它是MEF(Metro Ethernet Forum)城域以太网论坛定义的一种绑定方式。在此种应用下,系统中存在大量的不具有前缀的表项,它们的源端口相同,VLAN不同,而处理相同。现有技术并不适合于此类表项的压缩。
【发明内容】
本发明所要解决的技术问题在于提供一种能够处理没有前缀且只有一个变值元素的TCAM(Ternary Content Addressable Memory,三态内容寻址寄存器)表项的压缩方法。
为解决上述技术问题,本发明采用如下技术方案:一种TCAM表项的压缩方法,其特征在于包括如下步骤:
(1).首先把一组没有前缀且只有一个变值元素的TCAM表项,划分为变值元素数值连续的段;
(2).对于数值连续的段,系统先找出段内可以马上进行掩码压缩的规则子段进行直接压缩;而对段内不能立即压缩的非规则子段,系统首先找出此类段公共数值,然后再进行压缩。
作为本发明的进一步改进,在添加新表项的步骤中,包括如下过程:(a).确定元素值;(b).判断该元素值是否不属于任何段,如果属于,结束;如果不属于,进行下一步;(c).判断元素值是否在某段的边缘,如果不在,就创建新段,其start和end分别为元素值;如果在,进行下一步;(d).判断元素值是否在某两段的边缘,如果不在,把元素值合并入步骤(c)中的该某段,如果在,把该两段合并成一段;(e).结束。
作为本发明的进一步改进,在删除表项的步骤中,包括如下过程:(a).确定删除表项的元素值;(b).判断元素值是否属于某段,如果不属于,结束;如果属于,进行下一步;(c).判断元素值是否在某段的边缘,如果不在,就创建两个新段,范围分别为start~元素值-1,元素值+1~end;如果在,进行下一步;(d).更新步骤(c)中的该某段;(e).结束。
作为本发明的进一步改进,规则子段的压缩包括如下过程:(a).压缩规则子段段(start~end);(b).保存公共数值;(c).得到规则子段压缩后的数据和掩码;(d).对新段(start~end)继续压缩。
作为本发明的进一步改进,非规则子段的压缩包括如下过程:(a).压缩非规则子段段(start~end);(b).保存公共数值;(c).得到规则子段压缩后的数据和掩码;(d).对新段(start~end)继续压缩;(e).提取段公共数值,继续压缩,直至非规则子段不能压缩为止。
作为本发明的进一步改进,所述步骤(1)与步骤(2)之间还包括一个通过采用添加新表项或者删除表项的方式对段进行维护的步骤。
相较于现有技术,经验证,在VPWS、VPLS的捆绑应用中,使用本发明,当表项数目大于100时,压缩率平均在50%以上,且表项数目越多,数值越连续,压缩效率越高。
【附图说明】
图1是本发明压缩方法中添加表项时的段划分流程图。
图2是本发明压缩方法中删除表项时的段划分流程图。
【具体实施方式】
一组没有前缀的TCAM(Ternary Content Addressable Memory,三态内容寻址寄存器)表项,其中表项内的其它元素数值均相同,只有一项元素数值不同,对这样的元素,称为变值元素,本发明就是针对这种TCAM表项,提供一种使用掩码的压缩方法。本发明压缩方法的基本思想是首先把这样的一组TCAM表项,划分为变值元素数值连续的段,然后通过下述方法,对表项段进行压缩。
图1和图2分别描述了在添加和删除表项时,TCAM如何维护表项段。请参图1所示,(1).添加新表项,元素值为a;(2).判断元素值a是否不属于任何段,如果属于,结束;如果不属于,进行下一步;(3).判断元素值a是否在某段的边缘,如果不在,就创建新段,其start和end分别为a;如果在,进行下一步;(4).判断元素值a是否在某两段的边缘,如果不在,把元素值a合并入步骤(3)中的该某段,如果在,把该两段合并成一段;(5).结束。
请参图2所示,(1).删除表项,元素值为a;(2).判断元素值a是否属于某段,如果不属于,结束;如果属于,进行下一步;(3).判断元素值a是否在某段的边缘,如果不在,就创建两个新段,范围分别为start~a-1,a+1~end;如果在,进行下一步;(4).更新步骤(3)中的该某段;(5).结束。
对于一个数值连续的段,本发明使用如下算法,压缩表项段。
首先,系统先找出段内可以马上进行掩码压缩的子段。如子段(4~7)可以直接压缩,其压缩后,data=4,mask=0x1100。这样的段,特征在于start=2x,end=2x+1-1,并被称之为规则子段。规则子段压缩后,data=start,mask=^(2x-1)。
对于不能立即压缩的子段,被称之为非规则子段。非规则字段也可以压缩,系统首先找出此类段公共数值,再进行压缩。如段(6~7)不能直接压缩,找出段公共数值为4,则新段成为(2~3),段(2~3)可以直接压缩。压缩后,data=4+2,mask=0x1110。此类段的公共数值为2x,
对于规则子段的压缩算法伪码如下:
compress_regular_segment(start,end)//压缩规则子段段(start~end)
{
common_value=0;//保存公共数值
While(1)
{
x=log2(start);
//立即得到规则子段压缩后的数据和掩码
data=start+common_value;
mask=^(2x-1);
start=2x+1;
continue;//对新段(start~end)继续压缩
}
}
对于非规则子段的压缩算法伪码如下:
compress_unrelular_segment(start,end)//压缩非规则子段段(start~end)
{
common_value=0;//保存公共数值
While(1)
{
x=log2(start);
if(start==2x)
{
If(end>=2x+1)
{
//立即得到规则子段压缩后的数据和掩码
data=start+common_value;
mask=^(2x-1);
start=2x+1;
continue;//对新段(start~end)继续压缩
}
Else
{
common_value=common_value+2x;
start=start-common_value;
end=end-common_value;
continue;//提取段公共数值common_value,继续压缩。
}
}
else
{
common_value=common_value+2x;
start=start-common_value;
end=end-common_value;
continue;//提取段公共数值common_value,继续压缩。
}
}
}
本发明的压缩方法,先把表项分为数值连续的段,然后对段进行压缩。可以实现对没有前缀且只有一个变值元素的TCAM表项进行压缩。经验证,在VPWS、VPLS的捆绑应用中,使用本发明,当表项数目大于100时,压缩率平均在50%以上,且表项数目越多,数值越连续,压缩效率越高。
综上所述,以上仅为本发明的较佳实施例而已,不应以此限制本发明的范围,即凡是依本发明权利要求书及发明说明书内容所作的简单的等效变化与修饰,皆应仍属本发明专利涵盖的范围内。

Claims (6)

1.一种TCAM表项的压缩方法,其特征在于包括如下步骤:
(1).首先把一组没有前缀且只有一个变值元素的TCAM(Ternary ContentAddressable Memory,三态内容寻址寄存器)表项,划分为变值元素数值连续的段;
(2).对于数值连续的段,系统先找出段内可以马上进行掩码压缩的规则子段进行直接压缩;而对段内不能立即压缩的非规则子段,系统首先找出此类段公共数值,然后再进行压缩。
2.如权利要求1所述的压缩方法,其特征在于:在添加新表项的步骤中,包括如下过程:(a).确定元素值;(b).判断该元素值是否不属于任何段,如果属于,结束;如果不属于,进行下一步;(c).判断元素值是否在某段的边缘,如果不在,就创建新段,其start和end分别为元素值;如果在,进行下一步;(d).判断元素值是否在某两段的边缘,如果不在,把元素值合并入步骤(c)中的该某段,如果在,把该两段合并成一段;(e).结束。
3.如权利要求1所述的压缩方法,其特征在于:在删除表项的步骤中,包括如下过程:(a).确定删除表项的元素值;(b).判断元素值是否属于某段,如果不属于,结束;如果属于,进行下一步;(c).判断元素值是否在某段的边缘,如果不在,就创建两个新段,范围分别为start~元素值-1,元素值+1~end;如果在,进行下一步;(d).更新步骤(c)中的该某段;(e).结束。
4.如权利要求1所述的压缩方法,其特征在于:规则子段的压缩包括如下过程:(a).压缩规则子段段(start~end);(b).保存公共数值;(c).得到规则子段压缩后的数据和掩码;(d).对新段(start~end)继续压缩。
5.如权利要求1所述的压缩方法,其特征在于:非规则子段的压缩包括如下过程:(a).压缩非规则子段段(start~end);(b).保存公共数值;(c).得到规则子段压缩后的数据和掩码;(d).对新段(start~end)继续压缩;(e).提取段公共数值,继续压缩,直至非规则子段不能压缩为止。
6.如权利要求1所述的压缩方法,其特征在于:所述步骤(1)与步骤(2)之间还包括一个通过采用添加新表项或者删除表项的方式对段进行维护的步骤。
CN 201010252194 2010-08-12 2010-08-12 Tcam表项的压缩方法 Active CN102375820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010252194 CN102375820B (zh) 2010-08-12 2010-08-12 Tcam表项的压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010252194 CN102375820B (zh) 2010-08-12 2010-08-12 Tcam表项的压缩方法

Publications (2)

Publication Number Publication Date
CN102375820A true CN102375820A (zh) 2012-03-14
CN102375820B CN102375820B (zh) 2013-07-31

Family

ID=45794443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010252194 Active CN102375820B (zh) 2010-08-12 2010-08-12 Tcam表项的压缩方法

Country Status (1)

Country Link
CN (1) CN102375820B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988231A (zh) * 2020-08-20 2020-11-24 国家计算机网络与信息安全管理中心 一种掩码五元组规则匹配的方法及装置
CN112787938A (zh) * 2021-01-14 2021-05-11 北京星网锐捷网络技术有限公司 一种路由表项配置方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1447223A (zh) * 2003-04-04 2003-10-08 清华大学 支持路由压缩的tcam高速更新方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1447223A (zh) * 2003-04-04 2003-10-08 清华大学 支持路由压缩的tcam高速更新方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘刚等: "基于三态内容寻址存储器的路由表", 《西安交通大学学报》 *
赵峥嵘等: "TCAM表项管理算法研究", 《微计算机信息(管控一体化)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988231A (zh) * 2020-08-20 2020-11-24 国家计算机网络与信息安全管理中心 一种掩码五元组规则匹配的方法及装置
CN111988231B (zh) * 2020-08-20 2022-07-22 国家计算机网络与信息安全管理中心 一种掩码五元组规则匹配的方法及装置
CN112787938A (zh) * 2021-01-14 2021-05-11 北京星网锐捷网络技术有限公司 一种路由表项配置方法及装置
CN112787938B (zh) * 2021-01-14 2022-09-20 北京星网锐捷网络技术有限公司 一种路由表项配置方法及装置

Also Published As

Publication number Publication date
CN102375820B (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
US11102120B2 (en) Storing keys with variable sizes in a multi-bank database
EP3035613B1 (en) Ccn routing using hardware-assisted hash tables
CN101345707B (zh) 一种实现IPv6报文分类的方法及设备
US7706375B2 (en) System and method of fast adaptive TCAM sorting for IP longest prefix matching
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US9369293B2 (en) Compressing singly linked lists sharing common nodes for multi-destination group expansion
WO2016184029A1 (zh) 支持哈希查找和路由查找的存储、查找方法和装置、存储介质
US8179792B1 (en) Packet de-duplication
CN109639579B (zh) 组播报文的处理方法及装置、存储介质、处理器
CN107431660B (zh) 检索装置、检索方法及记录介质
Bremler-Barr et al. CompactDFA: Scalable pattern matching using longest prefix match solutions
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
US10587516B1 (en) Hash lookup table entry management in a network device
WO2016106506A1 (zh) 一种路由方法和设备
CN102045412B (zh) IPv6地址前缀压缩存储方法及设备
Le et al. Memory-efficient and scalable virtual routers using FPGA
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN102375820B (zh) Tcam表项的压缩方法
US11775342B2 (en) System and method for processing information hierarchy management
Chang et al. LayeredTrees: Most specific prefix-based pipelined design for on-chip IP address lookups
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
CN114448886A (zh) 一种流表的处理方法及装置
Li et al. Deterministic and efficient hash table lookup using discriminated vectors
Kogan et al. Efficient FIB representations on distributed platforms
Matoušek et al. Towards hardware architecture for memory efficient IPv4/IPv6 Lookup in 100 Gbps networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: 215006 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.