CN1866918A - 静态多接口范围匹配表的管理维护方法 - Google Patents
静态多接口范围匹配表的管理维护方法 Download PDFInfo
- Publication number
- CN1866918A CN1866918A CNA2005101240855A CN200510124085A CN1866918A CN 1866918 A CN1866918 A CN 1866918A CN A2005101240855 A CNA2005101240855 A CN A2005101240855A CN 200510124085 A CN200510124085 A CN 200510124085A CN 1866918 A CN1866918 A CN 1866918A
- Authority
- CN
- China
- Prior art keywords
- management
- interface
- rule
- list item
- static multi
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种静态多接口范围匹配表的管理维护方法,本发明主要包括:首先,为静态多接口范围匹配表中各接口组分别建立相互独立的一组关联的管理维护结构,所述各接口组对应的若干组管理维护结构间相互独立并交织存储于共用存储空间中,所述的一组管理维护结构中包含各管理维护结构之间按优先级关联,且每个管理维护结构单元对应一个接口组下的一条规则;之后,再利用所述的若干组管理维护结构对保存的所述静态多接口范围匹配表中各接口组下的规则进行分优先级的管理维护。本发明的实现可以使得静态多接口范围匹配表可以有效利用TCAM或类似TCAM的存储器的优点进行存储管理,从而可以提高查找及维护静态接口范围匹配表的效率。
Description
技术领域
本发明涉及存储器管理技术领域,尤其涉及一种静态多接口范围匹配表的管理维护方法。
背景技术
静态多接口范围匹配表是具有对范围匹配接口分组的需求的静态多接口范围匹配表。GroupID(群组标识)组指的是可供复用的接口组,每个接口组中包含多个范围匹配规则。各个GroupID组之间是相互独立的,且共同存在于同一个范围匹配表中。GroupID组间不存在任何逻辑关系,所以没有优先级先后顺序之分。
目前,推出了一种TCAM(Ternary Content Addressable Memory,三态内容可寻址存储器),其与普通存储器不同的是:普通存储器的寻址方式为输入地址,输出内容;而所述的内容可寻址存储器可以根据输入的内容得到地址,也就是说,当输入一个内容(通常叫做比较数)时,TCAM会将比较数和TCAM中的数据进行比较,如果有命中,则输出命中表项的地址,TCAM的每个存储单元除了“0”、“1”外,还有一种“don’t care”状态,即既可以为“0”又可以为“1”。
由于TCAM具有三态存储的功能,因此,在输入一个比较数时,可以有多个TCAM地址中的内容和比较数命中,TCAM中存放的表项具有优先级特征,较低物理地址的表项具有较高的优先级,在出现多命中的情况下,输出优先级最高的表项对应的查找结果。
使用TCAM进行范围表示的方法如下:TCAM的三态存储方式为带掩码的数据提供了非常方便的存储方式,带掩码的数据实际上是一种特殊的范围,比如说从2n~2n+1-1的范围;对于一般的范围,可以拆分成若干个这样的特殊范围的并集,可以证明数据位宽为n的数据段的任意范围最多可以拆分成2(n-1)个可以直接存放在TCAM中的特殊的数据/掩码形式的范围。一条范围匹配表按照TCAM表的范围表示规则拆分为一个或多个范围区间后,可以作为一条或多条TCAM表项存入TCAM。
TCAM具有优先级存储的特点,其低地址位置表项总是具有高优先级。因此,表项的添加和删除维护操作必须依照下发表项的优先级进行排序添加和删除,以保证TCAM表项存储顺序符合下发的查找优先级要求。由于各接口组对应的静态多接口范围匹配表之间不存在优先级的逻辑关系,并且需要共享同一范围内的TCAM空间,因此,进行表项维护操作的困难大大增加。
目前,还没有一种很好的静态多接口范围匹配表的管理维护方法可以使得多接口的静态多接口范围匹配表的存储能够有效利用TCAM存储器的优点。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种静态多接口范围匹配表的管理维护方法,从而可以使得静态多接口范围匹配表可以利用TCAM的优点进行存储管理。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种静态多接口范围匹配表的管理维护方法,包括:
A、为静态多接口范围匹配表中各接口组分别建立相互独立的一组关联的管理维护结构,所述各接口组对应的若干组管理维护结构间相互独立并交织存储于共用存储空间中,所述的一组管理维护结构中包含各管理维护结构之间按优先级关联,且每个管理维护结构对应一个接口组下的一条规则;
B、利用所述的若干组管理维护结构对保存的所述静态多接口范围匹配表中各接口组下的规则进行分优先级的管理维护。
所述的步骤A包括:
采用数据结构对各接口组对应的若干组管理维护结构进行管理,在数据结构中需要为一个接口组下的一组管理维护结构提供对应接口组索引。
所述的步骤A包括:
所述的一组管理维护结构中的每个管理维护结构对应一个规则节点,所述规则节点对应范围匹配表中的范围匹配规则,将静态范围匹配列表包含的各规则节点采用二叉树结构、数组结构或链表结构进行管理。
所述的步骤A包括:
采用平衡二叉树结构对所述静态多接口范围匹配表中各接口组对应一组管理维护结构中包含的各个管理维护结构之间进行按优先级关联。
所述的管理维护结构管理的信息包括:
规则节点平衡因子、规则所属的接口组信息,规则在所属接口组中的优先级、规则分解表项数目、前面优先级节点、后面优先级节点、规则分解首表项和/或规则分解尾表项,且当采用平衡二叉树结构关联所述管理维护结构时,所述的管理维护结构管理的信息还可选地包括左孩子规则节点指针和右孩子规则节点指针。
所述的静态多接口范围匹配表保存于三态内容可寻址存储器TCAM中,或者与TCAM的保存和查找特征相同的存储器中。
本发明中,当向静态多接口范围匹配表中增加静态多接口范围匹配规则时,所述的步骤B包括:
B1、根据所述规则所属的接口组信息确定相应的一组管理维护结构;
B2、查找一组管理维护结构确定所述静态多接口范围匹配规则增加于TCAM中的位置,并将所述的静态多接口范围匹配规则添加到TCAM中的相应位置。
所述的步骤B2包括:
B21、将所述的静态多接口范围匹配规则拆分为相应的TCAM表项,判断相应的插入位置的空闲表项是否足够,如果是,则执行步骤B22,否则,执行步骤B23;
B22、将拆分后的TCAM表项按照表项所属优先级按相应优先级对应空间比例添加到TCAM中;
B23、在确定的插入位置处向低地址和向高地址搜索空闲表项,在搜索获得足够的空闲表项后,对这些搜索到的空闲表项进行挪移,将空闲表项挪移到插入位置后,执行步骤B22。
所述的步骤B23包括:
B231、在确定的插入位置沿向低地址和向高地址两个方向按照优先级块搜索空闲位置,在搜索过程中记录空闲数量,并记录搜索到的空闲位置包含距离要添加表项位置最远的优先级块;
B232、当找到的空闲位置的数量足够时,从找到的距离要添加表项最远的优先级块开始将优先级块在TCAM中的位置向与新添加表项位置相反的方向移动。
所述的步骤B232包括:
从本优先级块中距离新添加表项的位置最近的表项开始,将表项移动到与本优先级块相邻的空闲块中距离新添加表项最远的位置。
本发明中,当删除静态多接口范围匹配规则时,所述的步骤B包括:
B3、查找各规则对应管理维护结构确定所述静态多接口范围匹配规则对应的管理维护结构;
B4、根据所述的管理维护结构信息删除TCAM中保存的该匹配规则对应的所有表项,并修改相应的管理维护结构。
所述的方法还包括:
当需要在两个连续优先级的规则之间插入一条新的规则时,则需要调整各个规则对应的优先级绝对数值,各规则之间的相对优先级关系不变。
由上述本发明提供的技术方案可以看出,本发明的实现可以使得静态多接口范围匹配表可以有效利用TCAM或类似TCAM的存储器的优点进行存储管理。利用本发明可以使得表项的搜索由硬件完成,而范围匹配表项的插入、删除、老化、更新等维护操作则由软件完成,从而可以提高查找及维护静态接口范围匹配表的效率。
附图说明
图1为本发明提供的规则节点结构示意图;
图2为本发明中TCAM入口维护结构示意图;
图3为本发明中增加表项的处理过程示意图;
图4为本发明提供的表项挪移过程示意图;
图5为本发明提供的删除表项处理过程示意图;
图6为本发明提供的删除接口组的处理过程示意图。
具体实施方式
本发明的核心是在实际的范围匹配表中,将不同GroupID(接口组标识)的各接口组下的规则在TCAM中的存储在物理位置上相互交织,即对于各个接口组来说,各接口组间不存在优先级先后顺序,因而表内所有的接口组的规则共用同一块存储空间。在同一块存储空间中通过算法保证同一GroupID组中的不同范围匹配规则对应的表项在存储器(如TCAM芯片)中的优先级顺序。本发明还适用于与TCAM的保存和查找特征相同的其他任何存储器中。
因此,本发明提出了一种有效的静态多接口范围匹配表维护方法,有效改善了当前的静态多接口范围匹配表维护困难的现状。同时,本发明还解决了在维护存储于通用TCAM中范围匹配表项时,表项内容本身不具备优先级标识的情况下,对静态多接口范围匹配表的维护管理困难的问题。
在后续的描述中,将以采用TCAM存储静态ACL表为例进行对本发明提供的技术方案进行阐述说明,后续描述部分的ACL表凡未经特殊说明均指静态ACL表。
为对本发明有进一步了解,下面将对本发明所述方法进行详细地说明。
由于不同的ACL规则对应不同的优先级,TCAM中数据的组织按照优先级块划分,优先级高的规则对应的存储块放在较低物理地址(即上方),优先级低的规则对应的存储块放在较高物理地址(即下方)。
因此,本发明提供的范围匹配算法的特点为:
1、每条ACL规则可以对应TCAM中的多个表项;
2、最大可以支持的优先级数目较多,对ACL来讲,有多少ACL规则,范围匹配算法就需要有多少个优先级;
3、由于需要用户指定新添加的一条表项的优先级,当用户需要在具有连续优先级的两个规则之间插入一条新的规则时,需要调整一些规则的优先级的绝对数值,而优先级相对关系不变。
本发明所述的方法可以由浅入深从GroupID接口组级,范围匹配规则级和规则对应TCAM表项级三个层次来看。其中:
(1)最顶层是对所有GroupID的维护结构,具体采用数组或链表等数据结构可以实现该维护结构,用来对接口组的若干组管理维护结构进行管理和索引,例如,当采用数组作为接口组的维护结构,则相应的数组元素对应一个接口组的一组管理维护结构,具体可以采用数组元素偏移地址作为对应接口组的接口组索引;
(2)第二层是对每一个接口组的所有规则的维护结构,即一个接口组对应的一组管理维护结构,所述的一组管理维护结构包含的各管理维护结构之间可以采用数组、链表或二叉树的管理维护结构,同一接口组内包含的各个管理维护结构对应的多条规则可以连续或离散存储于相应的存储空间中,即不要求同一接口组内的各规则连续存储于存储空间中;
(3)最底层是对每一个范围匹配规则的所有对应TCAM表项的维护和管理结构,同一条规则将被拆分存储于多个TCAM表项中,这一层便实现对一个管理维护结构对应的一条规则包含的各TCAM表项的管理。
基于上述三层结构,下面将对本发明的具体实现方式进行说明。
本发明中,对于每一个新添加的范围匹配规则,首先根据规则隶属的接口组,将其分到对应GroupID维护结构中。然后,将规则拆分为TCAM表项添加后进行维护管理。
本发明中是通过建立相应的静态多接口范围匹配规则的管理维护结构对相应的静态多接口范围匹配表中的各个规则进行管理维护的,所述的管理维护结构包括,但不局限于如下内容和形式:
(1)规则节点平衡因子,用于记录规则对应的管理维护结构位于平衡二叉树中的位置平衡因子信息;
(2)规则所属接口组信息,用于标识该规则所属的接口组标识信息;
(3)规则在所属接口组中的优先级,用于记录该规则在该接口组中的优先级信息;
(4)规则分解表项数目,用于记录所述的规则被分解后的TCAM表项数目;
(5)左孩子规则节点指针,用于记录该规则在二叉树中的节点对应的左孩子节点指针;
(6)右孩子规则节点指针,用于记录该规则在二叉树中的节点对应的右孩子节点指针;
(7)前向优先级节点指针,用于记录该规则在TCAM中的高优先级方向的前一个节点指针;
(8)后向优先级节点指针,用于记录该规则在TCAM中的低优先级方向的后一个节点指针;
(9)规则分解首表项指针,用于记录节点规则被分解后存储于TCAM中的规则表项子集的头节点,对应第一条分解规则;
(10)规则分解尾表项指针,用于记录节点规则被分解后存储于TCAM中的规则表项子集的尾节点,对应最后一条分解规则。
本发明中,优选平衡二叉树对所述的静态多接口范围匹配表进行管理维护,当然,也可以采用其他二叉树或数组、链表等方式对所述静态多接口范围匹配表进行管理。
以采用平衡二叉树对静态多接口范围匹配表进行管理为例,所述的静态多接口范围匹配表中各接口组分别对应一个平衡二叉树,用于对该接口组包含的各个规则进行管理,如图1所示,所述的平衡二叉树中各个节点分别对应一条具体的规则,通过对应的管理维护结构可以对该规则进行管理维护。
在所有规则对应的平衡二叉树维护结构中,被维护的范围匹配表中同一个接口组的每一条范围匹配规则均对应隶属于同一个平衡二叉树结构中,每个节点的优先级低于其左子树上的所有节点的优先级,且高于其右子树上的所有节点的优先级。而且,在进行TCAM表项维护时,由树的根节点位置开始通过比较优先级确定节点插入位置,或被删除节点位置,以及被更新节点位置。
在TCAM表中,也可以反向维护各节点的优先级,同时,相应的管理过程也需要进行相应的调整,具体的实现方式显而易见,故不再详述。
下面以ACL规则为例对TCAM表项维护操作实现方法作以概述,具体以ACL规则为例对TCAM表项维护操作实现方法作以概述。
对于多个GroupID的情况,需要针对每一个GroupID分别建一个维护结构—规则节点平衡二叉树。每个GroupID对应的维护结构(即相应的一组管理维护结构)之间是相互独立的,且交织存储于同一个ACL表中。也就是说,所述的GroupID对应的维护结构间不存在任何逻辑关系,所以没有优先级先后顺序之分。且不同GroupID的规则在TCAM中的存储在物理位置上是相互交织的。
为保证同一GroupID中的不同ACL规则对应的表项在TCAM芯片中的优先级顺序。则需要建立相应的GroupID维护数组(或其他形式的维护结构),数组元素的属性包括GroupID索引、GroupID有效状态、GroupID组所有规则维护结构的指针等。当该GroupID未被使用时,其有效位被置为无效状态。
本发明的一种具体实现方式是通过对每个G roupID均使用一个平衡二叉树结构的方式维护所属的上层下发的范围匹配规则,每个规则对应平衡二叉树上面的一个节点,一个节点又对应由该规则分解而来的所有TCAM表项。树中节点按照一定规则组织在一起,在添加/删除/更新表项时通过该结构快速定位节点在该GroupID中的逻辑位置范围。对应节点结构中的两个指针结构为左孩子节点(Pointer of Left Child Node of this Node)及右孩子节点(Pointer of Right Child Node of this Node)。
同时,在内存中维护一个对所有ACL的TCAM entry(TCAM入口)的索引结构,如图2所示,该结构以每一个entry(入口)的当前状态属性为元素。通过对该索引表的查询可以获得每个entry当前使用状况的信息(即是否空闲状态)。且对于每一个已使用的entry其对应索引中的每个状态属性节点均通过双向链表穿起来。该数组结构用于在插入时精确定位新规则的TCAM表项插入位置使用。
对每个GroupID使用一个平衡二叉树中的节点采用双向链表的结构形成对应于实际TCAM芯片中该GroupID中所有规则的以优先级顺序为唯一逻辑关系的维护链表(对应节点结构中的两个指针结构为Preceding Node ofthis Node in this GroupID及Behind Node of this Node in thisGroupID),在进行具体表项的插入/删除/更新时及时找到节点在树中的逻辑位置,以便于对范围匹配规则的维护。
此外,在所有GroupID的每一个下发规则节点均对本节点所使用的entry信息,供插入和挪移时使用。
如图1和图2所示,图1所示的节点结构图中的链表上面的每一个entry对应图2所示的TCAM entry维护结构中的每一Entry属性节点。
设置了上述各层维护结构后,本发明便可以利用相应的维护结构对保存于TCAM表中的静态多接口范围匹配表的维护管理,具体包括表项的增加、删除等管理。
下面首选,将结合附图对本发明中进行表项添加操作的处理过程进行说明。需要说明的是,本发明中提及的所有节点和优先级均指与新添加规则处于同一接口组GroupID组中的节点和优先级。
如图3所示,本发明中当需要向TCAM中增加表项,即在静态多接口范围匹配表中增加ACL规则时,相应的处理过程包括:
步骤31:将ACL规则转换为能够存放在TCAM中的若干TCAM表项。
步骤32:判断TCAM空闲容量是否足够插入分解后获得的表项数目;
若分解所得的表项数目大于范围匹配表中的空闲表项数目,即TCAM中所剩余的空表不够新规则的插入时,则过程结束,并返回插入新规则失败;
若所剩余表项数目足够新规则表项的插入时,继续执行步骤33。
步骤33:判断合法插入位置内的空闲表项是否足够新表项插入使用,如果是,则执行步骤34,否则,执行步骤36;
该步骤具体为:在本接口组对应优先级平衡二叉树中根据下发规则的优先级索引将新规则节点,并由二叉树根节点开始比较其与树中节点优先级,确定节点插入位置,根据新节点在同一GroupID组中前后相邻优先级节点信息确定新插入规则在TCAM中的位置范围:假设新插入表项的优先级为X,在表中已有的与X前后相邻的块的优先级索引分别为M和N,则有M<X<N,其对应表项的优先级顺序由高至低为M、X、N。
再假设:M与N优先级块间的空闲表项数目为InterSpaceMtoN,插入优先级为X的新ACL规则所需要的表项空间为XneedSpace,则判断是否满足InterSpaceMtoN>=XneedSpace,如果满足这一条件,则执行步骤34,否则,执行步骤36,即采用相应的挪移算法进行空间调整,以获得足够的插入新表项的空间;
步骤34:在合法插入位置内搜索空闲表项;
步骤35:判断搜索到的空闲表项是否足够,如果是,则执行步骤39,否则,继续执行步骤34。
步骤36:当新规则在同一GroupID相邻两优先级块之间的空闲表项不够新规则对应表项的插入时,则在TCAM entry属性索引数组中,新规则两相邻优先级块之间的范围之外的位置从上下两个方向轮番搜索空闲表项空间;
步骤37:判断搜索到的空闲表项是否足够,当搜索到的表项空间数目达到可以容纳新添加规则所要存入的表项数目的时候则停止搜索,并执行步骤38,否则,继续执行步骤36;
步骤38:开始进行表项挪移,具体为将搜索到的空闲表项挪移到合法优先级位置上,即TCAM表项挪移完毕后,在合法的优先级位置上调整得到插入TCAM表项所需要的表项空间,并执行步骤39;
步骤39:进行新表项的添加操作,具体为:将需要增加的ACL规则对应的表项插入到确定的TCAM中相应的位置处,并将相应的信息插入到平衡二叉树中,同时还需要对树进行调整维护,使之保持平衡状态;另外,还需要将该节点插入规则节点双向链表;
至此,便实现了将相应的规则增加到TCAM中。
需要说明的是,对于每一次挪移,若保证空表项与其下一个靠近新规则插入位置的相邻优先级块的最靠近插入位置的那条表项进行交换,这样可以将挪移次数抑制到最少。
下面再对根据本发明在TCAM中删除ACL规则(即删除相应表项)的操作处理过程进行说明,如图5所示,具体如下:
根据需要删除规则的GroupID和在该GroupID下的优先级(索引),查找到平衡二叉树规则节点对应的TCAM表项位置,并删除表项。根据平衡二叉树节点删除算法表项将该节点规则和平衡二叉树,调整二叉树至新的平衡状态,并将被删除规则节点剪除出二叉树规则节点的双向位置链表。然后,修改该规则在TCAM entry属性索引数组中对应各entry状态节点的值,将状态标志置为无效。
本发明中,还可以根据需要删除TCAM中保存的GroupDID组的ACL规则,如图6所示,具体的实现方法如下:
将需要删除所有规则的GroupID传递下来,即获得需要删除的规则的接口组的接口组ID,并根据该接口组ID遍历该接口组平衡二叉树中的每一个规则节点,删除其对应的所有TCAM表项值。最后,根据平衡二叉树节点的双向位置链表逐一删除释放节点空间。同时,修改该规则在TCAM entry属性索引数组中对应各entry状态节点的值,将entry状态标志置为无效。最后,置GroupID维护数组中的相应GroupID有效位置为无效。
综上所述,本发明的实现可以使得静态多接口范围匹配表可以有效利用TCAM或类似TCAM的存储器的优点进行存储管理。在实现本发明过程中,可以使得针对表项的搜索由硬件完成,而针对范围匹配表项的插入、删除、老化、更新等维护操作则由软件完成,从而可以提高查找及维护静态接口范围匹配表的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1、一种静态多接口范围匹配表的管理维护方法,其特征在于,包括:
A、为静态多接口范围匹配表中各接口组分别建立相互独立的一组关联的管理维护结构,所述各接口组对应的若干组管理维护结构间相互独立并交织存储于共用存储空间中,所述的一组管理维护结构中包含各管理维护结构之间按优先级关联,且每个管理维护结构对应一个接口组下的一条规则;
B、利用所述的若干组管理维护结构对保存的所述静态多接口范围匹配表中各接口组下的规则进行分优先级的管理维护。
2、根据权利要求1所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤A包括:
采用数据结构对各接口组对应的若干组管理维护结构进行管理,在数据结构中需要为一个接口组下的一组管理维护结构提供对应接口组索引。
3、根据权利要求1所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤A包括:
所述的一组管理维护结构中的每个管理维护结构对应一个规则节点,所述规则节点对应范围匹配表中的范围匹配规则,将静态范围匹配列表包含的各规则节点采用二叉树结构、数组结构或链表结构进行管理。
4、根据权利要求3所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤A包括:
采用平衡二叉树结构对所述静态多接口范围匹配表中各接口组对应一组管理维护结构中包含的各个管理维护结构之间进行按优先级关联。
5、根据权利要求1、2、3或4所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的管理维护结构管理的信息包括:
规则节点平衡因子、规则所属的接口组信息,规则在所属接口组中的优先级、规则分解表项数目、前面优先级节点、后面优先级节点、规则分解首表项和/或规则分解尾表项,且当采用平衡二叉树结构关联所述管理维护结构时,所述的管理维护结构管理的信息还可选地包括左孩子规则节点指针和右孩子规则节点指针。
6、根据权利要求1所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的静态多接口范围匹配表保存于三态内容可寻址存储器TCAM中,或者与TCAM的保存和查找特征相同的存储器中。
7、根据权利要求1、2、3、4或6所述的静态多接口范围匹配表的管理维护方法,其特征在于,当向静态多接口范围匹配表中增加静态多接口范围匹配规则时,所述的步骤B包括:
B1、根据所述规则所属的接口组信息确定相应的一组管理维护结构;
B2、查找一组管理维护结构确定所述静态多接口范围匹配规则增加于TCAM中的位置,并将所述的静态多接口范围匹配规则添加到TCAM中的相应位置。
8、根据权利要求7所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤B2包括:
B21、将所述的静态多接口范围匹配规则拆分为相应的TCAM表项,判断相应的插入位置的空闲表项是否足够,如果是,则执行步骤B22,否则,执行步骤B23;
B22、将拆分后的TCAM表项按照表项所属优先级按相应优先级对应空间比例添加到TCAM中;
B23、在确定的插入位置处向低地址和向高地址搜索空闲表项,在搜索获得足够的空闲表项后,对这些搜索到的空闲表项进行挪移,将空闲表项挪移到插入位置后,执行步骤B22。
9、根据权利要求8所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤B23包括:
B231、在确定的插入位置沿向低地址和向高地址两个方向按照优先级块搜索空闲位置,在搜索过程中记录空闲数量,并记录搜索到的空闲位置包含距离要添加表项位置最远的优先级块;
B232、当找到的空闲位置的数量足够时,从找到的距离要添加表项最远的优先级块开始将优先级块在TCAM中的位置向与新添加表项位置相反的方向移动。
10、根据权利要求9所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的步骤B232包括:
从本优先级块中距离新添加表项的位置最近的表项开始,将表项移动到与本优先级块相邻的空闲块中距离新添加表项最远的位置。
11、根据权利要求1、2、3、4或6所述的静态多接口范围匹配表的管理维护方法,其特征在于,当删除静态多接口范围匹配规则时,所述的步骤B包括:
B3、查找各规则对应管理维护结构确定所述静态多接口范围匹配规则对应的管理维护结构;
B4、根据所述的管理维护结构信息删除TCAM中保存的该匹配规则对应的所有表项,并修改相应的管理维护结构。
12、根据权利要求1、2、3、4或6所述的静态多接口范围匹配表的管理维护方法,其特征在于,所述的方法还包括:
当需要在两个连续优先级的规则之间插入一条新的规则时,则需要调整各个规则对应的优先级绝对数值,各规则之间的相对优先级关系不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101240855A CN100479436C (zh) | 2005-11-28 | 2005-11-28 | 静态多接口范围匹配表的管理维护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101240855A CN100479436C (zh) | 2005-11-28 | 2005-11-28 | 静态多接口范围匹配表的管理维护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1866918A true CN1866918A (zh) | 2006-11-22 |
CN100479436C CN100479436C (zh) | 2009-04-15 |
Family
ID=37425807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101240855A Expired - Fee Related CN100479436C (zh) | 2005-11-28 | 2005-11-28 | 静态多接口范围匹配表的管理维护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100479436C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508813A (zh) * | 2011-10-11 | 2012-06-20 | 盛科网络(苏州)有限公司 | 单接口芯片及应用该芯片实现芯片与多tcam之间数据传输的方法 |
US8527694B2 (en) | 2010-06-11 | 2013-09-03 | Beijing Star-Net Ruijie Networks Co., Ltd. | Method and apparatus for updating table entries of a ternary content addressable memory |
CN105099918A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 一种数据查找匹配的方法和装置 |
CN110377654A (zh) * | 2019-07-19 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 数据请求的处理方法、装置、电子设备及计算机可读存储介质 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
CN113656329A (zh) * | 2021-08-09 | 2021-11-16 | 国家计算机网络与信息安全管理中心 | 一种基于tcam的掩码规则插入方法、电子设备和存储介质 |
US11474988B2 (en) * | 2018-10-02 | 2022-10-18 | Barcelona Supercomputing Center—Centro Nacional de Supercomputación | Distributed indexes |
CN115865839A (zh) * | 2023-01-20 | 2023-03-28 | 苏州浪潮智能科技有限公司 | Acl管理方法、装置、通信设备及存储介质 |
-
2005
- 2005-11-28 CN CNB2005101240855A patent/CN100479436C/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527694B2 (en) | 2010-06-11 | 2013-09-03 | Beijing Star-Net Ruijie Networks Co., Ltd. | Method and apparatus for updating table entries of a ternary content addressable memory |
CN102508813A (zh) * | 2011-10-11 | 2012-06-20 | 盛科网络(苏州)有限公司 | 单接口芯片及应用该芯片实现芯片与多tcam之间数据传输的方法 |
CN102508813B (zh) * | 2011-10-11 | 2013-07-31 | 盛科网络(苏州)有限公司 | 单接口芯片及应用该芯片实现芯片与多tcam之间数据传输的方法 |
CN105099918A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 一种数据查找匹配的方法和装置 |
CN105099918B (zh) * | 2014-05-13 | 2019-01-29 | 华为技术有限公司 | 一种数据查找匹配的方法和装置 |
US11474988B2 (en) * | 2018-10-02 | 2022-10-18 | Barcelona Supercomputing Center—Centro Nacional de Supercomputación | Distributed indexes |
CN110377654B (zh) * | 2019-07-19 | 2022-05-17 | 北京字节跳动网络技术有限公司 | 数据请求的处理方法、装置、电子设备及计算机可读存储介质 |
CN110377654A (zh) * | 2019-07-19 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 数据请求的处理方法、装置、电子设备及计算机可读存储介质 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
CN113656329A (zh) * | 2021-08-09 | 2021-11-16 | 国家计算机网络与信息安全管理中心 | 一种基于tcam的掩码规则插入方法、电子设备和存储介质 |
CN113656329B (zh) * | 2021-08-09 | 2024-02-02 | 国家计算机网络与信息安全管理中心 | 一种基于tcam的掩码规则插入方法、电子设备和存储介质 |
CN115865839A (zh) * | 2023-01-20 | 2023-03-28 | 苏州浪潮智能科技有限公司 | Acl管理方法、装置、通信设备及存储介质 |
CN115865839B (zh) * | 2023-01-20 | 2023-05-23 | 苏州浪潮智能科技有限公司 | Acl管理方法、装置、通信设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100479436C (zh) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1866918A (zh) | 静态多接口范围匹配表的管理维护方法 | |
US8356021B2 (en) | Method and apparatus for indexing in a reduced-redundancy storage system | |
CN109299113B (zh) | 具有存储感知的混合索引的范围查询方法 | |
CN1637721A (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN102333036B (zh) | 一种实现高速路由查找的方法和系统 | |
CN1664790A (zh) | 增加数据存储容量的方法和装置 | |
CN1955958A (zh) | 一种基于目录树的分类数据存储及分类目录查询方法 | |
CN1279729C (zh) | 基于tcam的分布式并行ip路由查找方法 | |
CN102484610A (zh) | 路由表建立方法和装置及路由表查找方法和装置 | |
CN110347685B (zh) | 基于字典树的索引结构、数据查询优化方法、主存管理器 | |
WO2008135412A1 (en) | System and method of managing indexation of flash memory | |
US9672239B1 (en) | Efficient content addressable memory (CAM) architecture | |
CN101055589A (zh) | 嵌入式数据库的存储管理方法 | |
CN1863169A (zh) | 基于网络处理器的路由查找结果缓存方法 | |
CN101035062A (zh) | 一种三重内容可寻址存储器报文分类的规则更新方法 | |
Huang et al. | TCAM-based IP address lookup using longest suffix split | |
CN108134739B (zh) | 一种基于索引特里树的路由查找方法及装置 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN1845093A (zh) | 一种属性可扩展的对象文件系统 | |
CN101068178A (zh) | 使用、管理mac地址表的方法、系统、及搜索引擎 | |
CN100338607C (zh) | 一种组织和访问分布式文件系统目录的方法 | |
CN1492361A (zh) | 嵌入式数据库查询的处理方法 | |
CN101055574A (zh) | 一种域名类信息的存储及查询方法以及系统 | |
CN1862534A (zh) | 静态范围匹配表的管理维护方法 | |
Luo et al. | Towards TCAM-based scalable virtual routers |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090415 Termination date: 20161128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |