CN108512776A - 交换芯片中tcam表的灵活组合方法、装置及芯片 - Google Patents

交换芯片中tcam表的灵活组合方法、装置及芯片 Download PDF

Info

Publication number
CN108512776A
CN108512776A CN201810190655.8A CN201810190655A CN108512776A CN 108512776 A CN108512776 A CN 108512776A CN 201810190655 A CN201810190655 A CN 201810190655A CN 108512776 A CN108512776 A CN 108512776A
Authority
CN
China
Prior art keywords
tcam
logic
tables
physics
result
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
CN201810190655.8A
Other languages
English (en)
Other versions
CN108512776B (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.)
Shenzhen Forward Industrial Co Ltd
Original Assignee
Shenzhen Forward Industrial 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 Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN201810190655.8A priority Critical patent/CN108512776B/zh
Publication of CN108512776A publication Critical patent/CN108512776A/zh
Application granted granted Critical
Publication of CN108512776B publication Critical patent/CN108512776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list

Abstract

本发明提供了一种交换芯片中TCAM表的灵活组合方法、装置及芯片,涉及数据通信的技术领域,该方法包括多个物理TCAM表,每个物理TCAM表分别分配至一个逻辑TCAM表,每个逻辑TCAM表分别设置有一个逻辑TCAM过滤器;根据逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;按照数量将空闲的物理TCAM表分配至逻辑TCAM表;当接收到报文时,对物理TCAM表进行查找,得到查找结果;将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果;输出过滤结果。这种方法可以得到更多TCAM表的组合方法,没有连续、数量上的限制。

Description

交换芯片中TCAM表的灵活组合方法、装置及芯片
技术领域
本发明涉及数据通信技术领域,尤其是涉及一种以太交换机用交换芯片中TCAM表的灵活组合方法、装置及芯片。
背景技术
在数据通信网络中,以太交换机具有举足轻重的作用。而交换机的核心器件由交换芯片构成。交换芯片负责数据的转发,能够达到很高的性能。
现代交换芯片都能够支持L3路由、L4ACL(Access Control List,访问控制列表)功能。而这些功能在交换芯片设计上,都是通过TCAM(Ternary Content AddressableMemory,三态内容寻址存储器)表实现的,一般一张TCAM表的大小为512条或1024条表项。但是,交换机的路由表容量指标一般会达到16K条表项,甚至更多;而L4ACL表项数量也会达到6K~8K,单张TCAM表不满足需求。为了解决容量不够的问题,采用多张TCAM表构逻辑上组合成一张更大的表,例如4张512条的TCAM(PTCAM)表,可以组合成2K条大小的逻辑TCAM(LTCAM)表项。
现有技术在对TCAM表进行组合时,仅有几种工作模式,灵活性不足,软件管理困难,容易浪费资源。
发明内容
有鉴于此,本发明的目的在于提供一种交换芯片中TCAM表的灵活组合方法,可以按需分配申请PTCAM表,管理比较简单,能够充分利用所有的PTCAM资源。
第一方面,本发明实施例提供了一种交换芯片中TCAM表的灵活组合方法,其中,交换芯片包括多个物理TCAM表,每个物理TCAM表分别分配至一个逻辑TCAM表,每个逻辑TCAM表分别设置有一个逻辑TCAM过滤器;该方法包括:根据逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;按照数量将空闲的物理TCAM表分配至所述逻辑TCAM表;当接收到报文时,对物理TCAM表进行查找,得到查找结果;将查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果;输出过滤结果。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,按照数量将空闲的物理TCAM表分配至逻辑TCAM表的步骤包括:确定欲分配至逻辑TCAM表的物理TCAM表;配置逻辑TCAM表的Bitmap;将欲分配至逻辑TCAM表的物理TCAM表在Bitmap中的对应位设置为1;将其他逻辑TCAM表的物理TCAM表在Bitmap中的对应位设置为0。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,包括:当接收到增加物理TCAM表的请求时,根据所需求的物理TCAM表的数量将其他逻辑TCAM表中空闲的物理TCAM表分配到所述逻辑TCAM表中。
结合第一方面及其各可能的实施方式之一,本发明实施例提供了第一方面的第三种可能的实施方式,其中,各个逻辑TCAM过滤器串联;将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:将查找结果输入首个所述逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器;将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
结合第一方面及其各可能的实施方式之一,本发明实施例提供了第一方面的第四种可能的实施方式,其中,各个逻辑TCAM过滤器并联;将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:将查找结果输入每个所述逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果;将不属于的查找结果去除,将过滤器输出的结果送到过滤结果合并器合并。
结合第一方面及其各可能的实施方式之一,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在将查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果步骤之后,还包括:根据得到的过滤结果,查找PPOLICY表项以获得对应的处理动作。
第二方面,本发明实施例还提供一种交换芯片中TCAM表灵活组合装置,其中,交换芯片包括多个物理TCAM表,每个物理TCAM表分别分配至一个逻辑TCAM表,每个逻辑TCAM表分别设置有一个逻辑TCAM过滤器;该装置包括:数量确定模块,用于根据逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;分配模块,用于按照数量将空闲的物理TCAM表分配至逻辑TCAM表;查找模块,用于当接收到报文时,对物理TCAM表进行查找,得到查找结果;过滤模块,用于将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果;输出模块,用于输出过滤结果。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,各个逻辑TCAM过滤器串联;过滤模块还用于:将查找结果输入首个所述逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器;将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,各个逻辑TCAM过滤器并联;过滤模块还用于:将查找结果输入每个逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果;将不属于的查找结果去除,将过滤器输出的结果送到过滤结果合并器合并。
第三方面,本发明实施例还提供一种交换芯片,包括存储器、处理器,存储器中存储有可在所述处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述第一方面及其各可能的实施方式之一的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种交换芯片中TCAM表的灵活组合方法、装置以及芯片,通过按照ACL需求数量将空闲的物理TCAM表分配至有需求的逻辑TCAM表,可以实现物理TCAM表的灵活组合,相对于现有技术仅有固定的几种组合方法,本发明实施例可以得到更多TCAM表的组合方法,没有连续、数量上的限制。不同的逻辑TCAM表由不同个数物理TCAM表按照需求数量灵活组合而成,故本发明实施例能够充分利用所有的物理TCAM资源,避免因对物理TCAM表分配方法单一而造成TCAM表资源的浪费。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为TCAM表配置模式2的工作原理图;
图2为本发明实施例提供的一种交换芯片中TCAM表的灵活组合方法的流程图;
图3为本发明实施例提供的过滤器串联工作原理图;
图4为本发明实施例提供的过滤器串联算法流程图;
图5为本发明实施例提供的过滤器并联工作原理图;
图6为本发明实施例提供的过滤器并联算法流程图;
图7为本发明实施例提供的交换芯片中TCAM表的灵活组合装置的结构框图;
图8为本发明实施例提供的交换芯片的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到查表速度,在一张逻辑TCAM中,不是串行地查找逻辑TCAM下的物理TCAM,而是并行查找所有的物理TCAM。如果有多张物理TCAM都命中了,应该根据一定的规则,选择其中一个命中结果,作为整个逻辑TCAM的查找结果。
对于ACL功能,用户可能会创建多张ACL表项,每一个数据报文都会查找这些ACL表项,并执行相应的动作。所以,交换芯片在设计ACL功能时,采用了可配置的的组合方式。例如,在SF9564交换芯片中,使用了16张TCAM表项实现ACL功能,而这16张TCAM可以配置成下面几种工作模式:
模式0:单张物理TCAM表为1张逻辑TCAM表,共有16张逻辑TCAM表。
模式1:每两个连续TCAM表组合成一张逻辑TCAM表,共有8张逻辑TCAM表。即:PTCAM0~PTCAM1组合成LTCAM0;PTCAM2~PTCAM3组合成LTCAM1;以此类推。
模式2:每四个连续TCAM表组合成一张逻辑TCAM表,共有4张逻辑TCAM表。即:PTCAM0~PTCAM3组合成LTCAM0;PTCAM4~PTCAM7组合成LTCAM1;以此类推。可以参见图1所示的TCAM表配置模式2的工作原理图。
模式3:每八个连续TCAM表组合成一张逻辑TCAM表,共有2张逻辑TCAM表。即:PTCAM0~PTCAM7组合成LTCAM0;PTCAM8~PTCAM15组合成LTCAM1。
模式4:16个TCAM表组合成一张逻辑表,总共就一张逻辑TCAM表。即PTCAM0~PTCAM15组合成LTCAM0。
查找TCAM表时,所有的物理TCAM表并行查找。每一个PTCAM输出一个命中索引号,以及是否命中信号的查找结果信息,用(pindex,pvalid)表示。然后根据TCAM配置的工作模式,对这些命中索引号进行过滤。例如,假设工作在模式2下,PTCAM0~PTCAM3输出四个查找结果信息(0,0),(52,1),(100,1),(0,0)。因为一张逻辑TCAM表只能命中一条表项,需要对这四个结果进行过滤。物理TCAM表ID高的具有高优先级,所以最终的PTCAM0~PTCAM3的输出结果为(0,0),(0,0),(100,1),(0,0)。LTCAM0取了PTCAM2的查找结果作为最终输出结果,然后根据这个结果查找PPOLICY表项,得到处理动作,并进行相应的处理。
此方法仅有几种工作模式,灵活性不足,软件管理困难,容易浪费资源。例如,用户创建八张ACL0~ACL7表。每一张ACL表需要对应一张逻辑的TCAM表。刚开始,由于ACL的表项规则都比较小,软件将TCAM配置成模式0,并分配PTCAM15~PTCAM8给ACL7~ACL0表。当向PTCAM15不断添加规则时,使其超过了512条规则。此时,软件需要切换模式,改成模式1。因为进行了模式调整,PTCAM14与PTCAM15形成了一张逻辑TCAM,原来的PTCAM14的规则必须搬移到别处。同理,PTCAM13,与PTCAM12形成了一张逻辑TCAM,PTCAM12的规则也必须搬移到别处,其他依次类推。理想的情况,应该调整为PTCAM15~PTCAM14对应ACL7;PTCAM13~PTCAM12对应ACL 6…。这一步,对软件有较大的考验,而且搬移大量的规则,软件性能也不行。此时,所有的PTCAM已经被分配,没法创建新的ACL表,而其实仍然有7张PTCAM没有被使用,资源有极大的浪费,另外此时,每一张ACL表的大小不能再次被扩展,最多创建1024条规则。
基于此,本发明实施例提供的一种交换芯片中TCAM表的灵活组合方法、装置以及芯片,通过按照ACL需求数量将空闲的物理TCAM表分配至有需求的逻辑TCAM表,可以实现物理TCAM表的灵活组合,相对于现有技术仅有固定的几种组合方法,本发明实施例可以得到更多TCAM表的组合方法,没有是否连续、数量上的限制。不同的逻辑TCAM表由不同个数物理TCAM表按照需求数量灵活组合而成,故本发明实施例能够充分利用所有的物理TCAM资源,避免因对物理TCAM表分配方法单一而造成TCAM表资源的浪费。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种交换芯片中TCAM表的灵活组合方法进行详细介绍。
实施例1
本发明实施例一提供了一种交换芯片中TCAM表的灵活组合方法,交换芯片包括多个物理TCAM表,其中每个物理TCAM表分别分配至一个逻辑TCAM表,每个逻辑TCAM表分别设置有一个逻辑TCAM过滤器。
在实现ACL功能时,用户可能会创建多张ACL表项,由于物理TCAM表的表项数有限,可以通过将一个或者多个物理TCAM表组成一个逻辑TCAM表的方法使每一张ACL表对应一张逻辑TCAM表。在组成逻辑TCAM表时,首先对逻辑TCAM表进行初始化,即将每个物理TCAM表分别分配至一个逻辑TCAM表。在查找TCAM表时,所有的物理TCAM表并行查找,而一个或多个物理TCAM组成一个逻辑TCAM表意味着一张逻辑表会包括一个或多个物理TCAM表的查找结果,因此要对每个逻辑TCAM表分别设置一个逻辑TCAM表过滤器,用于筛选逻辑TCAM表中各物理TCAM表的查找结果。
以16张物理TCAM表为例,最多可以组成16张逻辑TCAM表,对16张物理TCAM表对进行初始化分配,形成16张逻辑TCAM表,每个逻辑TCAM表设置一个逻辑TCAM过滤器,即分别形成16个逻辑TCAM过滤器。
参见图2所示的交换芯片中TCAM表的灵活组合方法的流程图,该方法包括以下步骤:
步骤S202,根据逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量。
一张ACL表对应一张逻辑TCAM表,逻辑TCAM表由物理TCAM表组成,用于实现ACL表的功能。根据不同ACL表中功能的不同,确定相应ACL表需要逻辑TCAM表的大小,根据需要逻辑TCAM表的大小,确定用于组成不同大小逻辑TCAM表的物理TCAM表的数量。
以16张物理TCAM表为例,当用户创建3张ACL表时,需要组成3张逻辑TCAM表实现其功能,根据ACL表功能不同,确定3张逻辑表分别需要5、4、1张物理TCAM表。
步骤S204,按照数量将空闲的物理TCAM表分配至逻辑TCAM表。
空闲的物理TCAM表是指经初始化分配后未用于实现ACL功能的逻辑TCAM表中的物理TCAM表。
以16张物理TCAM表为例,分别为PTCAM0,PTCAM1,PTCAM2……PTCAM15,经初始化分配成16张逻辑TCAM表,分别为LTCAM0,LTCAM1,LTCAM2……LTCAM15,当用户创建3张ACL表,即确定需要3张逻辑TCAM表,分别为LTCAM0,LTCAM1,LTCAM2,空闲的物理TCAM表即是指LTCAM3……LTCAM15中初始化分配的物理TCAM表,根据ACL功能确定需要5、4、1张物理表分别组成1张逻辑TCAM表,则将LTCAM3……LTCAM15中空闲的物理TCAM表分别分配4、3、0张分别至LTCAM0,LTCAM1,LTCAM2中形成新的逻辑TCAM表。需要进一步解释说明的是,上述TCAM表ID仅用于区分不同的TCAM表,实际运行时的顺序没有必须连续分配的限制。例如上述确定需要3张逻辑表可以分别为LTCAM5,LTCAM11,LTCAM12,分配给它们的空闲的物理表可以分别为PTCAM1、PTCAM,6、PTCAM7、PTCAM8,PTCAM10、PTCAM3、PTCAM2。
步骤S206,当接收到报文时,对上述物理TCAM表进行查找,得到查找结果。
物理TCAM,每进来一个报文,都会在所有物理TCAM上并行查找,每一个物理TCAM输出一个(index、valid)查找结果。valid为1,index表示命中的表项ID;valid为0,则没有命中表项,index无意义。valid为1时,称为有效查找结果。
步骤S208,将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果。
一个逻辑TCAM表由多个物理TCAM组成,每个物理TCAM经过查找都会得到一个查找结果,逻辑TCAM过滤器对属于本逻辑TCAM的物理TCAM表查找结果进行过滤,最终每个逻辑表得到一个过滤结果。
步骤S210,输出过滤结果。
将过滤结果输出,查找对应的PPOLICY表项进行后续处理。
上述步骤S204可以采用如下方式执行:
(1)确定欲分配至所述逻辑TCAM表的物理TCAM表。
(2)配置所述逻辑TCAM表的Bitmap。
(3)将欲分配至所述逻辑TCAM表的物理TCAM表在所述Bitmap中的对应位设置为1;将其他所述逻辑TCAM表的物理TCAM表在所述Bitmap中的对应位设置为0。
选择未用于实现ACL功能的逻辑TCAM表中的空闲物理TCAM表作为欲分配至逻辑TCAM表的物理TCAM表。每一张逻辑TCAM表均配有一张Bitmap表,Bitmap表中包含所有物理TCAM表ID,Bitmap表中物理TCAM ID对应的位为0或1,当物理TCAM属于当前逻辑TCAM表时,该物理TCAM ID对应的位为1,否则为0,通过更改欲分配至逻辑TCAM表的物理TCAM表在相应逻辑TCAM表中ID对应位来实现物理TCAM表的分配。
在上述步骤S204之后,ACL功能的实现可能需要增加规则,即对应的逻辑TCAM需要增加物理TCAM表,因此上述方法还可以包括如下步骤:
当接收到增加物理TCAM表的请求时,根据所需求的物理TCAM表的数量将其他逻辑TCAM表中空闲的物理TCAM表分配到所述逻辑TCAM表中。
例如,在上述步骤S203的16张物理TCAM表的例子中,在将LTCAM3……LTCAM15中空闲的物理TCAM表分别分配4、3、0张分别至LTCAM0,LTCAM1,LTCAM2中形成新的逻辑TCAM表后,还可将这4、3、0,之外的属于LTCAM3……LTCAM15中的其他空闲的物理TCAM表继续根据需求分配至用于实现ACL功能的逻辑TCAM表中。
本发明PTCAM(物理TCAM)可以灵活地被分配到到LTCAM(逻辑TCAM),没有连续以及数量上的限制。例如:按照背景技术的方案,只有连续的PTCAM才可能被分配到一张逻辑TCAM表中,而本方案没有这个限制。可以将PTCAM0~PTCAM3,分配到一张逻辑TCAM中;也可以将PTCAM0、PTCAM5、PTCAM13分配到一张逻辑表中;甚至PTCAM0分配为一张逻辑TCAM,而PTCAM1~PTCAM15分配到另一张逻辑TCAM中。基于上述描述的优点,软件可以按需分配申请PTCAM。当容量不足时,申请一个PTCAM到LTCAM中,无需调整之前已经分配了的规则的位置。软件管理比较简单,性能也有提高。另外,本发明能够充分利用所有的PTCAM资源。例如,在创建了两张ACL表的环境中,背景技术方案,最多能够使用8张PTCAM,可能有7张PTCAM会被浪费。而本方案中,则可以将15张PTCAM分配给一张ACL,而将剩余的一张PTCAM分配给另一张ACL。本发明能够实现TCAM表的灵活分配,不仅限于现有技术方案中的几种模式,同时避免了因工作模式的切换带来的不便。
实施例2
本发明实施例二提供了一种交换芯片中TCAM表的灵活组合方法,参见图3所示的过滤器串联工作原理图和图4所示的过滤器串联算法流程图,各个逻辑TCAM过滤器串联;将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:
步骤S402,将查找结果输入首个逻辑TCAM过滤器。
当TCAM过滤器串联时,所有物理TCAM的查找结果全部输入首个TCAM过滤器。
步骤S404,判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表。
一个逻辑TCAM表设有一个逻辑TCAM过滤器。它有一个Bitmap,表示含有哪些物理TCAM,如果物理TCAM ID对应的位为1,则该物理TCAM属于本逻辑TCAM表,如果物理TCAM ID对应的位为0,则该物理TCAM不属于本逻辑TCAM表。软件可以根据具体情况,动态配置逻辑TCAM的Bitmap,将物理TCAM分配到一个逻辑TCAM中。但是,各个逻辑TCAM中的Bitmap不能重叠,即,一个物理TCAM不能被分配到多个逻辑TCAM中。
步骤S406,将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器。
预设过滤规则是指,属于本逻辑TCAM表的物理TCAM表查找结果,仅物理TCAM ID最高的有效查找结果被选中,传递到下一级,其余的结果的valid位被清零。串联过滤器由最后一级TCAM过滤器输出所有TCAM过滤器过滤结果。
步骤S408,将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
当逻辑TCAM过滤器串联时,可以减少连接线,减轻连线的复杂度。
在将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果步骤之后,还包括:根据得到的过滤结果,查找PPOLICY表项以获得对应的处理动作。
实施例3
本发明实施例三提供了一种交换芯片中TCAM表的灵活组合方法,参见图5所示的过滤器并联工作原理图和图6所示的过滤器并联算法流程图,各个逻辑TCAM过滤器并联;将所述查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:
步骤S602,将查找结果输入每个逻辑TCAM过滤器。
当TCAM过滤器并联时,所有物理TCAM的查找结果同时输入每一个个TCAM过滤器。
步骤S604,判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表。
步骤S606,将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果。
预设过滤规则同过滤器串联时一致,在此不再赘述。并联过滤器由每一个TCAM过滤器输出相应过滤结果,然后对每一个LTCAM过滤器的输出进行合并,合并的原则是选择有效查找结果。
步骤S608,将不属于的查找结果去除。
逻辑TCAM过滤器只输出本逻辑TCAM的过滤结果,不属于本逻辑TCAM的物理TCAM结果,被去除。去除是指将相应查找结果的valid位设置为0。
步骤S610,将过滤器输出的结果送到过滤结果合并器合并。
当TCAM过滤器并联时,以16个物理TCAM表为例,因为同一个物理TCAM的查找结果,会送到16个逻辑TCAM过滤器中,最终会产生16个处理结果。然后再由过滤结果合并器,将16个处理结果合并成一个。就像同一件事交给16个人干,有16个结果,然后再有一个人将结果汇总成最终的一个结果。串联时,查找结果始终是16个,只操作了valid位。但是在并联时,在中间,查找结果呈指数增加了。有16*16=256个结果,所以需要有一个合并器进行合并。
参见图5,每一个LTCAM过滤器输出结果都包含了16个查找结果,这16个查找结果分别对应到PTCAM0到PTCAM15的查找结果。对于某个PTCAM,最多在其中一个LTCAM过滤器输出中有效,其他LTCAM过滤器输出无效。例如,PTCAM15的查找结果,仅在LTCAM1过滤器中输出有效,其他过滤器输出无效。所以,需要在过滤器结果合并器15中,将有效结果选出来。过滤器结果合并器15的输入为:LTCAM15过滤器输出结果的PTCAM15查找结果,LTCAM14过滤器输出结果的PTCAM15查找结果,...,LTCAM0过滤器输出结果的PTCAM15查找结果。过滤器结果合并器14的输入为:LTCAM15过滤器输出结果的PTCAM14查找结果,LTCAM14过滤器输出结果的PTCAM14查找结果,...,LTCAM0过滤器输出结果的PTCAM14查找结果,...,过滤器结果合并器0的输入为:LTCAM15过滤器输出结果的PTCAM0查找结果,LTCAM14过滤器输出结果的PTCAM0查找结果,...,LTCAM0过滤器输出结果的PTCAM0查找结果。过滤器结果合并器的输入仅有一个查找结果有效,过滤器结果合并器的功能就是将这个有效的查找结果作为输出;如果输入中没有有效查找结果,则输出无效查找结果,即输出查找结果(0,0)。
当逻辑TCAM过滤器并联时,可以提高过滤效率。
在将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果步骤之后,还包括:根据得到的过滤结果,查找PPOLICY表项以获得对应的处理动作。
实施例4
本发明实施例四提供了一种交换芯片中TCAM表灵活组合装置,交换芯片包括多个物理TCAM表,每个物理TCAM表分别分配至一个逻辑TCAM表,每个逻辑TCAM表分别设置有一个逻辑TCAM过滤器;参见图7所示的交换芯片中TCAM表的灵活组合装置的结构框图,该装置包括:
数量确定模块701,用于根据逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;
分配模块702,用于按照数量将空闲的物理TCAM表分配至逻辑TCAM表;
查找模块703,用于当接收到报文时,对物理TCAM表进行查找,得到查找结果;
过滤模块704,用于将查找结果输入逻辑TCAM过滤器进行过滤,得到过滤结果;
输出模块705,用于输出过滤结果。
其中,各个逻辑TCAM过滤器可以串联;过滤模块704还用于:将查找结果输入首个所述逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器;将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
各个逻辑TCAM过滤器还可以并联;过滤模块704还用于:将查找结果输入每个逻辑TCAM过滤器;判断查找结果对应的物理TCAM表是否属于逻辑TCAM过滤器对应的逻辑TCAM表;将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果;将不属于的查找结果去除。
本发明实施例提供的交换芯片中TCAM表灵活组合装置,与上述实施例提供的交换芯片中TCAM表的灵活组合方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例5
本发明实施例五提供了一种交换芯片,参见图8所示的芯片结构框图,包括:
存储器801、处理器802,存储器801中存储有可在处理器802上运行的计算机程序,其特征在于,处理器802执行计算机程序时实现上述交换芯片中TCAM表的灵活组合方法的步骤。
本发明实施例提供的交换芯片,与上述实施例提供的交换芯片中TCAM表的灵活组合方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种交换芯片中TCAM表的灵活组合方法,其特征在于,交换芯片包括多个物理TCAM表,每个所述物理TCAM表分别分配至一个逻辑TCAM表,每个所述逻辑TCAM表分别设置有一个逻辑TCAM过滤器;该方法包括:
根据所述逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;
按照所述数量将空闲的物理TCAM表分配至所述逻辑TCAM表;
当接收到报文时,对所述物理TCAM表进行查找,得到查找结果;
将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果;
输出所述过滤结果。
2.根据权利要求1所述的方法,其特征在于,所述按照所述数量将空闲的物理TCAM表分配至所述逻辑TCAM表的步骤包括:
确定欲分配至所述逻辑TCAM表的物理TCAM表;
配置所述逻辑TCAM表的Bitmap;
将欲分配至所述逻辑TCAM表的物理TCAM表在所述Bitmap中的对应位设置为1;将其他所述逻辑TCAM表的物理TCAM表在所述Bitmap中的对应位设置为0。
3.根据权利要求1所述的方法,其特征在于,还包括:
当接收到增加物理TCAM表的请求时,根据所需求的物理TCAM表的数量将其他逻辑TCAM表中空闲的物理TCAM表分配到所述逻辑TCAM表中。
4.根据权利要求1-3任一项所述的方法,其特征在于,各个逻辑TCAM过滤器串联;所述将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:
将所述查找结果输入首个所述逻辑TCAM过滤器;
判断所述查找结果对应的物理TCAM表是否属于所述逻辑TCAM过滤器对应的逻辑TCAM表;
将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器;
将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
5.根据权利要求1-3任一项所述的方法,其特征在于,各个逻辑TCAM过滤器并联;所述将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果的步骤,包括:
将所述查找结果输入每个所述逻辑TCAM过滤器;
判断所述查找结果对应的物理TCAM表是否属于所述逻辑TCAM过滤器对应的逻辑TCAM表;
将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果;
将不属于的查找结果去除;
将过滤器输出的结果送到过滤结果合并器合并。
6.根据权利要求1-3任一项所述的方法,其特征在于,在所述将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果步骤之后,还包括:
根据得到的过滤结果,查找PPOLICY表项以获得对应的处理动作。
7.一种交换芯片中TCAM表灵活组合装置,其特征在于,交换芯片包括多个物理TCAM表,每个所述物理TCAM表分别分配至一个逻辑TCAM表,每个所述逻辑TCAM表分别设置有一个逻辑TCAM过滤器;该装置包括:
数量确定模块,用于根据所述逻辑TCAM表对应的ACL表分配所需的物理TCAM表的数量;
分配模块,用于按照所述数量将空闲的物理TCAM表分配至所述逻辑TCAM表;
查找模块,用于当接收到报文时,对所述物理TCAM表进行查找,得到查找结果;
过滤模块,用于将所述查找结果输入所述逻辑TCAM过滤器进行过滤,得到过滤结果;
输出模块,用于输出所述过滤结果。
8.根据权利要求7所述的装置,其特征在于,各个逻辑TCAM过滤器串联;所述过滤模块还用于:
将所述查找结果输入首个所述逻辑TCAM过滤器;
判断所述查找结果对应的物理TCAM表是否属于所述逻辑TCAM过滤器对应的逻辑TCAM表;
将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果,传递给下一级逻辑TCAM过滤器;
将不属于的查找结果,直接传递给下一级逻辑TCAM过滤器。
9.根据权利要求7所述的装置,其特征在于,各个逻辑TCAM过滤器并联;所述过滤模块还用于:
将所述查找结果输入每个所述逻辑TCAM过滤器;
判断所述查找结果对应的物理TCAM表是否属于所述逻辑TCAM过滤器对应的逻辑TCAM表;
将属于的查找结果,根据预设过滤规则过滤后,输出过滤结果;
将不属于的查找结果去除。
10.一种交换芯片,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6任一项所述的方法的步骤。
CN201810190655.8A 2018-03-07 2018-03-07 交换芯片中tcam表的灵活组合方法、装置及芯片 Active CN108512776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810190655.8A CN108512776B (zh) 2018-03-07 2018-03-07 交换芯片中tcam表的灵活组合方法、装置及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810190655.8A CN108512776B (zh) 2018-03-07 2018-03-07 交换芯片中tcam表的灵活组合方法、装置及芯片

Publications (2)

Publication Number Publication Date
CN108512776A true CN108512776A (zh) 2018-09-07
CN108512776B CN108512776B (zh) 2021-09-14

Family

ID=63377392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810190655.8A Active CN108512776B (zh) 2018-03-07 2018-03-07 交换芯片中tcam表的灵活组合方法、装置及芯片

Country Status (1)

Country Link
CN (1) CN108512776B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802872A (zh) * 2019-03-19 2019-05-24 北京信而泰科技股份有限公司 一种报文捕获方法、装置及设备
CN110336748A (zh) * 2019-07-10 2019-10-15 迈普通信技术股份有限公司 表项下发方法、装置、数据转发设备及可读存储介质
CN112087389A (zh) * 2019-06-14 2020-12-15 深圳市中兴微电子技术有限公司 一种报文匹配查表方法、系统、存储介质和终端
CN112994886A (zh) * 2021-05-21 2021-06-18 芯启源(南京)半导体科技有限公司 一种用于生成tcam搜索关键字的硬件及实现方法

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101411136A (zh) * 2006-04-03 2009-04-15 极进网络股份有限公司 利用超过cam关键字长度的表索引执行查表操作的方法
CN102299853A (zh) * 2011-09-05 2011-12-28 神州数码网络(北京)有限公司 一种实现交换机资源有效利用的方法
CN102402611A (zh) * 2011-12-12 2012-04-04 盛科网络(苏州)有限公司 一种用tcam实现关键字快速查找并读表的方法
TW201223303A (en) * 2010-11-30 2012-06-01 Realtek Semiconductor Corp Device and method for processing network packet
CN102508786A (zh) * 2011-11-02 2012-06-20 盛科网络(苏州)有限公司 优化空间利用率芯片设计方法及其芯片
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统
CN103475584A (zh) * 2012-06-07 2013-12-25 中兴通讯股份有限公司 三态内容寻址存储器(tcam)查询方法和装置
CN103546378A (zh) * 2013-05-20 2014-01-29 李险峰 基于tcam的范围多匹配2级分层查找方法
CN104348757A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种流表交互方法、交换机及系统
US20160014028A1 (en) * 2014-07-11 2016-01-14 Telefonaktiebolaget L M Ericsson (Publ) Prefix distribution-based table performance optimization in sdn
CN105681218A (zh) * 2016-04-11 2016-06-15 北京邮电大学 一种Openflow 网络中流量处理的方法及装置
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法
CN106506468A (zh) * 2016-10-31 2017-03-15 盛科网络(苏州)有限公司 一种减少ace条目消耗的方法
CN106506388A (zh) * 2016-10-14 2017-03-15 盛科网络(苏州)有限公司 基于tcam资源绑定查找acl的实现方法及装置
US20170118041A1 (en) * 2015-10-21 2017-04-27 Brocade Communications Systems, Inc. Distributed rule provisioning in an extended bridge
CN106789859A (zh) * 2016-01-29 2017-05-31 新华三技术有限公司 报文匹配方法及装置
US9692705B1 (en) * 2013-12-06 2017-06-27 Google Inc. System and method for measurement of flow statistics
CN107342948A (zh) * 2017-06-09 2017-11-10 烽火通信科技股份有限公司 一种基于tcam的数据流识别处理装置、系统和方法

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101411136A (zh) * 2006-04-03 2009-04-15 极进网络股份有限公司 利用超过cam关键字长度的表索引执行查表操作的方法
TW201223303A (en) * 2010-11-30 2012-06-01 Realtek Semiconductor Corp Device and method for processing network packet
CN102299853A (zh) * 2011-09-05 2011-12-28 神州数码网络(北京)有限公司 一种实现交换机资源有效利用的方法
CN102508786A (zh) * 2011-11-02 2012-06-20 盛科网络(苏州)有限公司 优化空间利用率芯片设计方法及其芯片
CN102402611A (zh) * 2011-12-12 2012-04-04 盛科网络(苏州)有限公司 一种用tcam实现关键字快速查找并读表的方法
CN103475584A (zh) * 2012-06-07 2013-12-25 中兴通讯股份有限公司 三态内容寻址存储器(tcam)查询方法和装置
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统
CN103546378A (zh) * 2013-05-20 2014-01-29 李险峰 基于tcam的范围多匹配2级分层查找方法
CN104348757A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种流表交互方法、交换机及系统
US9692705B1 (en) * 2013-12-06 2017-06-27 Google Inc. System and method for measurement of flow statistics
US20160014028A1 (en) * 2014-07-11 2016-01-14 Telefonaktiebolaget L M Ericsson (Publ) Prefix distribution-based table performance optimization in sdn
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
US20170118041A1 (en) * 2015-10-21 2017-04-27 Brocade Communications Systems, Inc. Distributed rule provisioning in an extended bridge
CN106789859A (zh) * 2016-01-29 2017-05-31 新华三技术有限公司 报文匹配方法及装置
CN105681218A (zh) * 2016-04-11 2016-06-15 北京邮电大学 一种Openflow 网络中流量处理的方法及装置
CN106506388A (zh) * 2016-10-14 2017-03-15 盛科网络(苏州)有限公司 基于tcam资源绑定查找acl的实现方法及装置
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法
CN106506468A (zh) * 2016-10-31 2017-03-15 盛科网络(苏州)有限公司 一种减少ace条目消耗的方法
CN107342948A (zh) * 2017-06-09 2017-11-10 烽火通信科技股份有限公司 一种基于tcam的数据流识别处理装置、系统和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802872A (zh) * 2019-03-19 2019-05-24 北京信而泰科技股份有限公司 一种报文捕获方法、装置及设备
CN109802872B (zh) * 2019-03-19 2021-07-30 北京信而泰科技股份有限公司 一种报文捕获方法、装置及设备
CN112087389A (zh) * 2019-06-14 2020-12-15 深圳市中兴微电子技术有限公司 一种报文匹配查表方法、系统、存储介质和终端
CN110336748A (zh) * 2019-07-10 2019-10-15 迈普通信技术股份有限公司 表项下发方法、装置、数据转发设备及可读存储介质
CN110336748B (zh) * 2019-07-10 2021-08-17 迈普通信技术股份有限公司 表项下发方法、装置、数据转发设备及可读存储介质
CN112994886A (zh) * 2021-05-21 2021-06-18 芯启源(南京)半导体科技有限公司 一种用于生成tcam搜索关键字的硬件及实现方法

Also Published As

Publication number Publication date
CN108512776B (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN108512776A (zh) 交换芯片中tcam表的灵活组合方法、装置及芯片
CN104734954B (zh) 一种用于软件定义网络的路由确定方法和装置
CA2256223C (en) Traffic route finder in communications network
Jia et al. Competitive analysis for online scheduling in software-defined optical WAN
Yamashita et al. A new method to express functional permissibilities for LUT based FPGAs and its applications
CN109445752B (zh) 一种并行计算的系统
CN109905251A (zh) 网络管理方法、装置、电子设备和存储介质
US7317723B1 (en) Action based termination of multidimensional lookup
CN103957157B (zh) 一种网络接口可定义转发规则的路由方法
CN102315956B (zh) 一种流量监管方法和装置
CN104951494A (zh) 用于使用多个共享存储器可重配置并行查找的方法和系统
Wang et al. Bandwidth guaranteed virtual network function placement and scaling in datacenter networks
CN106033442B (zh) 一种基于共享内存体系结构的并行广度优先搜索方法
CN106612236A (zh) 众核网络处理器及其微引擎的报文调度方法、系统
CN107451091A (zh) 基于fpga‑cpu混合架构的高速信息交互系统
CN108512678A (zh) 一种基于overlay技术的实物设备接入虚拟网络的方法及系统
CN107465966A (zh) 一种用于光网络的拓扑重构控制方法
Zhang et al. Cost efficient and low-latency network service chain deployment across multiple domains for SDN
Leonardi On-line network routing
CN109067650A (zh) 基于srio交换网络的路由自动搜索及配置方法
CN107306230A (zh) 一种网络资源部署的方法、装置、控制器及核心网设备
CN109729025A (zh) 一种处理灵活以太网的数据的方法及相关设备
Yao et al. Joint optimization of VM placement and rule placement towards energy efficient software-defined data centers
CN104750659B (zh) 一种基于自动布线互连网络的粗粒度可重构阵列电路
CN107294746A (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
GR01 Patent grant
GR01 Patent grant