访问控制列表规则的更新方法和装置的制作方法

文档序号:7929138阅读:256来源:国知局
专利名称:访问控制列表规则的更新方法和装置的制作方法
技术领域
本发明涉及通信领域中的访问控制列表技术,具体涉及访问控制列表规 则的更新方法和访问控制列表规则的更新装置。
背景技术
随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配 成为网络管理的重要内容。通过对报文进行过滤,可以有效防止非法用户对 网络的访问,同时也可以控制流量,节约网络资源。
采用ACL (Access Control List,访问控制列表)规则过滤报文是较为 常用的报文过滤手段。当网络设备的端口接收到报文后,根据当前端口上应 用的ACL规则对报文的字段进行分析,在识别出特定的报文之后,根据预 先设定的策略对报文执行相应动作,从而实现报文过滤。在具体应用中,根 据实现功能的不同,ACL规则具有不同优先级。
目前主流的ACL规则存储方式是在三态内容可寻址存储器(TCAM, Ternary Content — Addressable Memory )。图1为现有技术中在TCAM存储 ACL规则的存储示意图。如图1所示,TCAM被划分为多个条目,每个条 目(entry )提供一个ACL硬件资源,且每个entry具有一个索引号(Index )。 在TCAM存储ACL规则时,每个ACL硬件资源可存储一个ACL规则。在 TCAM中,按照ACL规则优先级的高低来对ACL规则进行排序。图1中 entry左侧的数字表示entry的索引号,entry内部的数字表示ACL规则优先 级。索引号小的entry存储的ACL规则优先级高,索引号大的entry存储的 ACL规则优先级低。
当向TCAM插入新ACL规则时,根据TCAM中已有ACL规则的优先级,确定待插入ACL规则的插入位置,保证插入后各ACL规则的优先级从 高到底顺序排列。如果插入的ACL规则优先级比已有ACL规则的最低优先 级还低或者与之相等,那么如图2所示,可以把待插入的ACL规则直接插 入到第 一个空闲的entry中。如果待插入ACL规则的优先级介于已有ACL 规则的最高优先级和最低优先级之间,那么如图3所示,就需要把优先级低 于待插入ACL规则的所有已有ACL规则都分别向后移动一个entry,然后 再向腾出的空闲entry中插入ACL规则。如果待插入ACL规则的优先级比 所有已有ACL规则的优先级都高,那么就需要把所有已有ACL规则分别向 后移动一个entry,然后再把待插入ACL *见则插入到第 一个entry中。
当从TCAM删除已有ACL规则时,如果删除的ACL规则并非处于最 后一个entry,则会触发重新排序,使得排序后任意两个entry之间均没有空 闲entry 。
可见,采用现有的ACL规则更新方式,在绝大多数应用情况下,都会 * 2士 a m _M siil舌4fr逸 4rr莩isi — fi+ * +鲁曰/f+水fes a m
规则,就需要对这些ACL规则不断的进行重新排序。从以上对排序过程的 描述可以看出,排序是通过移动ACL规则的位置实现。由于移动一个ACL 规则需要对硬件资源进行操作,因此大量的移动操作必然会频繁地操作硬 件,耗费大量系统CPU资源,并且增加时间开销,导致设备整体性能的降 低。对于采用TCAM之外的存储介质存储ACL规则的情况,只要按照ACL 规则优先级存储,都会存在上述缺陷。

发明内容
有鉴于此,本发明提供了一种访问控制列表规则的更新方法,能够减少 重新排序的次数,从而降低排序带来的资源耗费。 该方法包括
将存储空间划分为多个区块,每个区块具有多个用于记录ACL规则的ACL 硬件资源;位置在前的区块所记录ACL规则的优先级大于或等于位置在后的区块所记录ACL规则的优先级;
每次插入ACL规则时,在各区块中查找与待插入ACL规则具有相同优 先级的ACL规则;如果查找到,则将待插入ACL规则插入与其具有相同优 先级的ACL规则所属区块中;如果没有查找到,则将优先级低于待插入ACL 规则的所有ACL规则从当前所在区块中移到相邻的后一个区块中,将待插 入ACL规则插入因移动变空的空区块中。
较佳地,不同区块具有的ACL硬件资源数目相同。
其中,所述将待插入ACL规则插入与其具有相同优先级的ACL规则所 属区块中,包括
块;
如果查找到的区块具有空闲ACL硬件资源,则将待插入ACL规则插入 该空闲ACL硬件资源中;
如果查找到的区块没有空闲ACL硬件资源,且与该查找到的区块相邻 的后一个区块被占用,则将所有区块中优先级低于待插入ACL规则的ACL 规则从当前所在区块移到相邻的后一个区块中,将待插入ACL规则插入因 移动变空的空区块。
其中,确定没有查找到所述与待插入ACL规则具有相同优先级的ACL 身见则之后,该方法进一步包括
判断所有区块内的ACL规则中,是否存在优先级低于待插入ACL规则 的ACL规则;
如果是,则执行所述将优先级低于待插入ACL规则的所有ACL规则从 当前所在区块移到相邻的后一个区块中,将待插入ACL规则插入因移动变 空的空区块中的操作;
如果否,则将待插入ACL规则插入与最后一个被占用区块相邻的空区块。
其中,向所述空区块插入ACL规则为将待插入ACL规则插入空区块的第 一个ACL硬件资源。
其中,向具有空闲ACL硬件资源的区块插入ACL规则为将待插入 ACL规则插入区块中第一个空闲ACL硬件资源。
较佳地,该方法进一 步包括从区块中删除ACL规则后,如果被删除 ACL规则所在区块变为空区块,则以区块为单位进行ACL规则排序,消除 任意两个被占用区块之间的空区块;
和/或,从区块删除ACL规则后,对被删除ACL规则所在区块内的所 有ACL规则进行排序,消除区块内任意两个被占用ACL硬件资源之间的空 闲ACL硬件资源。
较佳地,该方法进一步包括在所述插入ACL规则时,判断是否所有 区块均被占用;如果是,则取消区块的划分,以ACL规则为单位进行排序, 消除任意两个ACL规则之间的空闲ACL硬件资源,然后插入ACL规则; 否则,保持区块划分,执行所述在各区块中查找与待插入ACL规则具有相 同优先级的ACL规则的操作。
较佳地,所述移动操作之前,进一步包括判断是否所有区块均被占用; 如果是,则取消区块的划分,以ACL规则为单位进行排序,消除任意两个 ACL规则之间的空闲ACL硬件资源,然后插入ACL规则;否则,保持区块 划分,执行所述移动操作。
所述存储空间为三态内容可寻址存储器TCAM;所述每个区块具有多个 ACL硬件资源为不同区块包含相同数目的条目, 一个条目对应一个ACL 硬件资源。
本发明还提供了 一种访问控制列表规则的更新装置,能够减少重新排序 的次数,从而降低排序带来的资源耗费。
该装置包括存储单元、分区单元和插入处理单元; 所述存储单元,用于存储ACL规则;
所述分区单元,用于将所述存储单元中的存储空间划分为多个区块,每 个区块具有多个用于记录ACL规则的ACL硬件资源;位置在前的区块所记录ACL规则的优先级大于或等于位置在后的区块所记录ACL规则的优先 级;
所述插入处理单元包括判断模块、相同优先级处理模块和不同优先级处 理模块;
所述判断模块,用于每次插入ACL规则时,在各区块中查找与待插入 ACL规则具有相同优先级的ACL规则;如果查找到,则通知相同优先级处 理模块,否则通知不同优先级处理模块;
所述相同优先级处理模块,在接到通知后,将待插入ACL规则插入与 其具有相同优先级的ACL规则所属区块中;
所述不同优先级处理模块,在接到通知后,将优先级低于待插入ACL 规则的所有ACL规则从当前所在区块移到相邻的后一个区块中,将待插入 ACL规则插入因移动变空的空区块中。
其中,所述分区单元将三态内容可寻址存储器TCAM的存储空间划分 为多个连续的区块,不同区块具有的相同数目的条目, 一个条目对应一个 ACL石更件资源。
其中,所述相同优先级处理模块包括查找子模块、第一子模块和第二子
模块;
所述查找子模块,在接到通知后,查找与待插入ACL规则具有相同优 先级的ACL规则占用的最后一个区块,将查找到的区块信息发送给第一子 模块和第二子模块;
所述第一子模块,在查找到的区块具有空闲ACL硬件资源时,将待插 入ACL规则插入该空闲ACL硬件资源中;
所述第二子模块,在查找到的区块没有空闲ACL硬件资源,且与该查 找到的区块相邻的后 一个区块被占用时,将所有区块中优先级低于待插入 ACL规则的ACL规则从当前所在区块移到相邻的后一个区块中,将待插入 ACL规则插入因移动变空的空区块。
较佳地,所述不同优先级处理模块进一步用于,在接到通知后,判断所有区块内的ACL规则中,是否存在优先级低于待插入ACL规则的ACL规 则;如果是,则执行所述将优先级低于待插入ACL规则的所有ACL规则从 当前所在区块中移到相邻的后 一个区块中,将待插入ACL规则插入因移动 变空的空区块中的操作;如果否,则将待插入ACL规则插入与最后一个被 占用区块相邻的空区块中。
较佳地,该装置进一步包括删除处理单元,用于从区块删除ACL规则 后,对被删除ACL规则所在区块内的所有ACL规则进行排序,消除区块内 任意两个被占用ACL硬件资源之间的空闲ACL硬件资源;和/或,从区块 删除ACL规则后,如果被删除ACL规则所在区块变为空区块,则以区块为 单位进行ACL规则排序,消除任意两个被占用区块之间的空区块。
根据以上技术方案可见,本发明将存储空间划分为多个区块,相同优先 级的ACL规则插入相同区块,不同优先级的ACL规则插入不同区块。在插 入ACL规则时,如果与待插入ACL规则具有相同优先级的ACL规则所在 block还有空间,则无需触发排序过程,只有在所有block中均没有与待插 入ACL规则优先级相同的ACL规则时,才触发排序操作。极大的减少了重 新排序的次数,从而降低排序带来的系统资源耗费。


图1为现有技术中在TCAM存储ACL规则的存储示意图。 图2为现有技术中插入ACL规则后的效果图之一 。 图3为现有技术中插入ACL规则后的效果图之二 。 图4为本发明中区块划分示意图。
图5a为采用本发明方案插入ACL规则之前的存储示意图。
图5b为采用现有技术插入ACL规则之前的存储示意图。
图6a为采用本发明方案插入优先级为9的ACL规则后的效果图。
图6b为采用现有技术插入优先级为9的ACL规则后的效果图。
图7a为采用本发明方案插入优先级为8的ACL规则后的效果图。图7b为采用现有技术插入优先级为8的ACL规则后的效果图。 图8a为采用本发明方案插入优先级为3的ACL规则后的效果图。 图8b为采用现有技术插入优先级为3的ACL规则后的效果图。 图9a为采用本发明方案插入优先级为4的ACL规则后的效果图。 图9b为采用现有技术插入优先级为4的ACL规则后的效果图。 图10a为采用本发明方案两次插入4个ACL规则后的效果图。 图10b为采用现有技术两次插入4个ACL规则后的效果图。 图11 a为采用本发明方案三次插入4个ACL规则后的效果图。 图1 lb为采用现有技术三次插入4个ACL规则后的效果图。 图12为采用本发明方案在图11的基础上再插入优先级为8的ACL规 则后的效果图。
图13为本发明实施例中ACL规则的更新装置的结构示意图。
具体实施例方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明为一种ACL规则的更新方案,其基本思想为将存储空间划分 为多个区块,称为block,每个block包含若干个ACL硬件资源。位置在前 的block所记录ACL规则的优先级大于或等于位置在后的区块所记录ACL 规则的优先级。
本发明插入ACL规则的原则是相同优先级的ACL规则放入相同的 block,不同优先级的ACL失见则i文入不同的block。
每次插入ACL规则时,在各block中查找与待插入ACL规则优先级相 同的ACL规则,如果查找到,则直接将待插入ACL规则插入与其具有相同 优先级的ACL规则所属block中,无需进行重新排序和ACL规则的移动。 如果没有查找到,则将优先级低于待插入ACL规则的所有ACL规则从当前 所在block中移到相邻的后 一个block中,将待插入ACL规则插入因移动变 空的空block中。可见,采用本发明的更新方案,在插入ACL规则时,如果相应block 还有空间,则无需触发排序过程,只有在所有block中均没有与待插入ACL 规则优先级相同的ACL规则时,才触发排序操作,极大地减少了重新排序 的次数,从而降低排序带来的系统资源耗费。
在实际中,广泛采用TCAM作为ACL规则的存储介质。以下以TCAM 作为存储介质为例,对本发明的方案进行详细描述。
首先,按照上述block的划分方式对TCAM的存储空间进行划分,将 TCAM的存储空间划分为多个block,每个block包含若干个entry,每个entry 对应 一个ACL硬件资源。具体每个block的entry数量可以由用户根据实际 需要设定,设定时综合考虑设备性能和资源耗费。这里假定TCAM包括400 个ACL硬件资源,每个block包含4个entry,那么可以划分出100个block。 具体划分情况如图4所示。entry0的优先级最高,entry399的优先级最低。
在插入ACL规则时,首先确定待插入ACL规则的优先级;
行如下操作查找与待插入ACL规则具有相同优先级的ACL规则占用的最 后一个block;如果查找到的block具有空闲entry,则直接将待插入ACL #见 则插入到该block的空闲entry中;如果查找到的block已满且与该block相 邻的后一个block被其它优先级的ACL规则占用,则将所有block中优先级 低于待插入ACL规则的ACL规则,从当前所在block移到相邻的后一个 block中,然后将待插入ACL规则插入因移动空出的block中。在向空block 插入ACL规则时,插入到空block内的首个entry中。
括两种情况
情况1 、待插入ACL规则的优先级高于所有block中的ACL规则;或 者,待插入ACL规则的优先级介于所有block中各ACL规则的最高优先级 和最低优先级之间;
情况2、待插入ACL规则的优先级低于所有block中的ACL规则。为了区分这两种情况,在确定待插入ACL规则的优先级与已有ACL规 则的优先级没有重合后,进一步判断所有block内的ACL规则中,是否存 在优先级低于待插入ACL规则的ACL规则,如果是,则视为情况l,如果 否,则视为情况2。
针对情况1,将优先级低于待插入ACL规则的所有ACL规则从当前所 在block移到相邻的后一个block中,将待插入ACL规则插入因移动变空的 block。
更具体地进行如下操作当待插入ACL ^见则的优先级高于所有block 中的ACL规则时,如果第 一个block没有被占用,则将待插入ACL直接插 入到第一个block中;如果第一个block已经被占用,则将所有ACL规则从 当前所在block移到相邻的后一个block中,被移动的ACL规则在block中 的相对位置不变,然后将待插入ACL规则插入第一个block中。在插入时, 插入到第 一个block的空闲entry中,较佳地,插入第 一个block的首个entry 中。
当待插入ACL规则的优先级介于所有block中各ACL规则的最高优先 级和最低优先级之间时,将优先级低于待插入ACL规则的所有ACL规则从 当前所在block移到相邻的后一个block中,被移动的ACL规则在block中 的相对位置不变,然后将待插入的ACL规则插入移动后空出的空block中。 同样,在插入时,插入到空出的block的首个entry中。
针对情况2,将待插入ACL规则插入与最后一个被占用区块相邻的空 区块中。
更具体地进行如下才喿作从第一个block开始查找,找到一个空闲的 block,将待插入ACL规则插入查找到的空闲block中。同样,在插入时, 插入到第一个空闲block内的首个entry中。
以上是插入ACL规则的处理方法。在实际中,删除已有ACL规则也是 更新操作的一种形式。如果区块中的ACL规则被删除,则可能出现两种情 况,其一 从区块中删除ACL规则后,该删除没有导致被删除ACL规则所
消除区块内任意两个被占用entry之间的空闲entry,该空闲entry是因删除 ACL规则产生的。排序操作为将与被删除ACL规则处于同一 block且位 于被删除ACL规则之后的各ACL规则向前移动若干个entry,直到任意两 个#皮占用entry之间的空闲entry被_填满。
其二从区块中删除ACL规则后,导致被删除的ACL规则所在block 为空,且该空block后面还有被占用的block,以block为单位进行ACL规 则排序,消除任意两个被占用block之间的空block。该排序操作为将每 个空block之后的所有block内容向前移动若干个block,直到任意两个被占 用block之间的空闲block对皮^真入夫见则。
上述删除后的排序操作可以在下一次出现待插入ACL规则后,且在插 入之前执行。
当所有block均被占用后,如果需要对block进行后移操作,将导致最 后一个block中的ACL规则丢失,为了最大限度的容纳ACL规则,当所有 block均被占用且需要对任何一个block进行后移操作时,本发明实施例判 断是否所有block均被占用,如果是,则取消block的划分,以ACL规则为 单位进行排序,消除任意两个ACL规则之间的空闲entry,然后采用现有的 插入方式插入ACL规则;如果还有空block,则允许4丸行后移操作。
在实际中,还可以在下发待插入ACL规则时,判断是否所有block均 被占用,如果是,则取消block的划分,以ACL规则为单位进行排序,消 除任意两个ACL规则之间的空闲entry,然后采用现有的插入方式插入ACL 规则;如果还有空block,则执行根据待插入ACL规则的优先级判断是否有 相同优先级的ACL的操作及其后续流程。
本发明的技术效果。
假设,ACL硬件资源中已经存在优先级分别为10、 8、 7、 4的4条ACL规则。图5a示出的采用本发明实施例区块划分的当前存储效果。图5b示出 了采用现有技术的当前存储效果。
情况①插入优先级为9的ACL规则
采用本发明实施例的插入方式将优先级分别为8、7和4的这3个block 内容分别向后移动一个block,然后再把优先级为9的ACL规则插入到空出 的block2的第一个entry中。插入效果参见图6a。
采用现有的插入方式将优先级为8、 7和4的这3个entry分别向后移 动一个entry,然后再才巴优先级为9的ACL规则插入到空出的entry中。插 入效果参见图6b。
情况②接着,插入优先级为8的ACL规则
采用本发明实施例的插入方式由于block3的第一个entry的优先级为 8,且block3有空闲entry,所以可以将优先级为8的待插入ACL规则直接 插入到block3的第二个entry中。插入效果参见图7a。
采用现有的插入方式需要把优先级为7和4的这两个entry分别向后 移动一个entry,然后再将优先级为8的待插入ACL ^见则插入空出的entry 中。插入效果参见图7b。
情况③4妄着,插入优先级为3的ACL规则
采用本发明实施例的插入方式由于优先级为3低于已有的任何一个 ACL规则,因此,可以直接将待插入ACL规则插入到优先级为4的block5 后的空闲block中,即block6的第 一个entry中。插入效果参见图8a。
采用现有的插入方式将待插入ACL规则直接插入到优先级为4的 entry后的空闲entry中。插入效果参见图8b。
情况 接着,插入优先级为4的ACL规则
采用本发明实施例的插入方式由于block5中第 一个entry的优先级为 4,且block5有空闲entry,所以可以将待插入ACL规则直接插入到block5 的第二个entry中。插入效果参见图9a。
采用现有的插入方式需要将优先级为3的entry向后移动一个entry,然后再把待插入ACL规则插入到空出的entry中。插入效果参见图9b。
假设多次下发多个ACL规则,且每次下发的ACL规则包括优先级为9、
8、 3和4的ACL规则。如果在图5所示插入前初始状态的基础上,下发3
次这样的规则组,那么,通过上面列举的例子可以看出
第一次下发优先级分别为9、 8、 3和4的ACL规则时,采用本发明实
施例的插入方式只有在插入优先级为9的ACL规则时才需要进行重新排序;
而现有插入方式除了在插入优先级为3的ACL规则时无需重新排序,插入
优先级为9、 8和4的ACL规则都需要进行重新排序。
第二次下发优先级分别为9、 8、 3和4的ACL规则时,采用本发明实
施例的插入方式不需要进行重新排序,插入效果参见图10a;而现有插入方
式在插入优先级为9、 8和4的ACL规则时仍然需要进行重新排序,插入效
果参见图10b。
第三次下发优先级分别为9、 8、 3和4的ACL规则时,采用本发明实 施例的插入方式仍不需要进行重新排序,插入效果参见图lla;而现有插入 方式在插入优先级为9、 8和4的ACL规则时仍然需要进行重新排序,插入 效果参见图llb。
综上可以得到
采用本发明实施例的插入方式共需要进行重新排序的次数为1 (第一 次)十0 (第二次)+0 (第三次)=1次。
采用现有的插入方式共需要进行重新排序的次数为3 (第一次)+3 (第 二次)+3 (第三次)=9次。
在实际中,每插入一条ACL规则需要进行一次硬件资源操作,同时每 移动一条ACL规则也需要进行一次硬件资源操作,由此还可以得到
采用本发明实施例的插入方式共需要进行硬件操作的次数为7 (第一 次)+4 (第二次)+4 (第三次)=15次。
采用现有的插入方式共需要进行硬件操作的次数为10 (第一次)+16 (第二次)+22 (第三次)=48次。从以上的例子可以清楚地看出,采用本发明实施例的插入方式相比于现 有技术,极大地减少了重新排序次数和硬件操作次数,明显提升系统效率。
如果在图lla的基础上,再插入优先级为8的ACL规则,由于block3 已满,因此需要将block4至block6中的ACL规则分别向后移动一个block, 然后将待插入的优先级为8的ACLM^则插入空出的block4的第一个entry 中,插入效果参见图12。
在根据本发明实施例方案进行编程实现时,可以采用如下操作顺序实 现从第一个block开始搜索,搜索目标为与待插入ACL规则具有相同优 先级的ACL规则所在block,如果搜索到,则判定存在与待插入ACL规则 具有相同优先级的规则,执行相应操作。
在搜索过程中,在还没有搜索到相同优先级的ACL规则时,就已经发 现了优先级低于带插入ACL规则的ACL规则,此时,判定各block中没有 与待插入ACL规则具有相同优先级的ACL规则,且同时能够判定存在优先 级低于待插入ACL规则的ACL规则,执行相应操作。
在搜索过程中,在还没有搜索到相同优先级的ACL规则时,就已经发 现了空block,此时,判定各block中没有与待插入ACL规则具有相同优先 级的ACL规则,且同时能够判定待插入ACL规则的优先级最低,^L行相应 操作。
采用上述搜索方式无需多次搜索,只需一次搜索即可确定待插入ACL 规则的优先级在所有ACL规则优先级中的位置,并执行相应操作。
为了实现上述方法,本发明还提供了一种ACL规则的更新装置。图13 示出了本发明实施例中ACL规则的更新装置的结构示意图。如图13所示, 该装置包括存储单元10、分区单元20和插入处理单元30。
其中,存储单元10,提供存储空间,存储ACL规则;
分区单元20,用于将存储单元10中的存储空间划分为多个block,每个block具有多个ACL硬件资源;位置在前的区块所记录ACL规则的优先级大于或等 于位置在后的区块。当TCAM为存储介质时,该分区单元20将TCAM的存储 空间划分为多个连续的block,不同block具有的相同数目的entry, —个entry 对应 一个ACL -更件资源。
插入处理单元30,具体包括判断模块31、相同优先级处理模块32和不同 优先级处理模块33;其中
判断模块31 ,用于每次插入ACL规则时,在各block中查找与待插入ACL 规则具有相同优先级的ACL规则;如果查找到,则通知相同优先级处理模块 32,否则通知不同优先级处理模块33 。
相同优先级处理模块32,在接到通知后,将待插入ACL规则插入与其具 有相同优先级的ACL规则所属block中。
具体来说,相同优先级处理模块32包括查找子模块、第一子模块和第二子 模。图13中未示出相同优先级处理模块32的具体结构。
其中,查找子模块,在接到通知后,查找与待插入ACL规则具有相同优先 级的ACL规则占用的最后一个block,将查找到的block信息发送给第一子才莫 块和第二子模块。
第一子模块,在查找到的block具有空闲ACL硬件资源时,将待插入ACL 规则插入该空闲ACL硬件资源中。
第二子模块,在查找到的block没有空闲ACL硬件资源,且与该block相 邻的后一个区块被占用时,将所有block中优先级低于待插入ACL规则的ACL 规则从当前所在block移到相邻的后一个block中,将待插入ACL规则插入因 移动变空的空block。
不同优先级处理模块33,在接到通知后,将优先级低于待插入ACL规 则的所有ACL规则从当前所在block移到相邻的后一个block中,将待插入 ACL规则插入因移动变空的空block中。
具体来说,该不同优先级处理模块33在接到通知后,判断所有block 内的ACL规则中,是否存在优先级低于待插入ACL规则的ACL规则;如果是,则将优先级低于待插入ACL规则的所有ACL少见则从当前所在block 移到相邻的后一个block中,将待插入ACL规则插入因移动变空的空block 中;如果否,则将待插入ACL规则插入与最后一个被占用block相邻的空 block中。
较佳地,该装置进一步包括删除处理单元40,用于从block删除ACL 规则后,对被删除ACL规则所在block内的所有ACL规则进行排序,消除 区块内任意两个被占用ACL硬件资源之间的空闲entry;和Z或,从block删 除ACL规则后,如果被删除ACL规则所在block变空,则以block为单位 进行ACL规则排序,消除任意两个被占用block之间的空block。
较佳地,插入处理单元30中的各个模块在执行ACL规则的移动操作之 前,进一步判断是否所有block均^f皮占用;如果是,则^"又消block的划分, 以ACL规则为单位进行排序,消除任意两个ACL规则之间的空闲entry, 然后采用现有插入方式插入新ACL规则;否则,保持区块划分,执行所述 移动操作。
该判断是否所有block均被占用的操作也可以由插入处理单元30中的 判断模块31在插入ACL规则之前执行,如果所有block均被占用,则取消 block的划分,消除任意两个ACL规则之间的空闲entry;如果还有空block, 则保持区块划分,执行后续操作。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1、一种访问控制列表规则的更新方法,其特征在于,该方法包括将存储空间划分为多个区块,每个区块具有多个用于记录ACL规则的ACL硬件资源;位置在前的区块所记录ACL规则的优先级大于或等于位置在后的区块所记录ACL规则的优先级;每次插入ACL规则时,在各区块中查找与待插入ACL规则具有相同优先级的ACL规则;如果查找到,则将待插入ACL规则插入与其具有相同优先级的ACL规则所属区块中;如果没有查找到,则将优先级低于待插入ACL规则的所有ACL规则从当前所在区块中移到相邻的后一个区块中,将待插入ACL规则插入因移动变空的空区块中。
2、 如权利要求1所述的方法,其特征在于,不同区块具有的ACL硬件资 源数目相同。
3、 如权利要求1所述的方法,其特征在于,所述将待插入ACL兵见则插入 与其具有相同优先级的ACL规则所属区块中,包括如果查找到的区块具有空闲ACL硬件资源,则将待插入ACL规则插入该 空闲ACL硬件资源中;如果查找到的区块没有空闲ACL硬件资源,且与该查找到的区块相邻的后 一个区块被占用,则将所有区块中优先级低于待插入ACL规则的ACL规则从 当前所在区块移到相邻的后 一个区块中,将待插入ACL规则插入因移动变空的 空区块。
4、 如权利要求l所述的方法,其特征在于,确定没有查找到所述与待插入 ACL规则具有相同优先级的ACL规则之后,该方法进一步包括判断所有区块内的ACL规则中,是否存在优先级低于待插入ACL规则的 ACL规则;如果是,则执行所述将优先级低于待插入ACL规则的所有ACL规则从当前所在区块移到相邻的后 一个区块中,将待插入ACL规则插入因移动变空的空 区块中的操作;如果否,则将待插入ACL规则插入与最后一个被占用区块相邻的空区块。
5、 如权利要求3或4所述的方法,其特征在于,向所述空区块插入ACL 规则为将待插入ACL规则插入空区块的第 一个ACL硬件资源。
6、 如权利要求3所述的方法,其特征在于,向具有空闲ACL硬件资源的 区块插入ACL规则为将待插入ACL规则插入区块中第 一个空闲ACL硬件资 源。
7、 如权利要求l所述的方法,其特征在于,该方法进一步包括从区块中 删除ACL规则后,如果被删除ACL规则所在区块变为空区块,则以区块为单 位进行ACL规则排序,消除任意两个被占用区块之间的空区块;和/或,从区块删除ACL规则后,对被删除ACL规则所在区块内的所有 ACL规则进行排序,消除区块内任意两个被占用ACL硬件资源之间的空闲ACL 硬件资源。
8、 如权利要求l所述的方法,其特征在于,该方法进一步包括在所述插 入ACL规则时,判断是否所有区块均被占用;如果是,则取消区块的划分,以 ACL规则为单位进行排序,消除任意两个ACL规则之间的空闲ACL硬件资源, 然后插入ACL规则;否则,保持区块划分,执行所述在各区块中查找与待插入 ACL规则具有相同优先级的ACL规则的操作。
9、 如权利要求l、 3或4所述的方法,其特征在于,所述移动操作之前, 进一步包括判断是否所有区块均被占用;如果是,则取消区块的划分,以ACL 规则为单位进行排序,消除任意两个ACL规则之间的空闲ACL硬件资源,然 后插入ACL规则;否则,保持区块划分,执行所述移动操作。
10、 如权利要求1所述的方法,其特征在于,所述存储空间为三态内容可 寻址存储器TCAM;所述每个区块具有多个ACL硬件资源为不同区块包含 相同#:目的条目, 一个条目对应一个ACL ^5更件资源。
11、 一种访问控制列表规则的更新装置,其特征在于,该装置包括存储单元、分区单元和插入处理单元;所述存储单元,用于存储ACL规则;所述分区单元,用于将所述存储单元中的存储空间划分为多个区块,每个 区块具有多个用于记录ACL规则的ACL硬件资源;位置在前的区块所记录 ACL规则的优先级大于或等于位置在后的区块所记录ACL规则的优先级;所述插入处理单元包括判断模块、相同优先级处理模块和不同优先级处理 模块;所述判断模块,用于每次插入ACL规则时,在各区块中查找与待插入ACL 规则具有相同优先级的ACL规则;如果查找到,则通知相同优先级处理才莫块, 否则通知不同优先级处理模块;所述相同优先级处理模块,在接到通知后,将待插入ACL规则插入与其具 有相同优先级的ACL规则所属区块中;所述不同优先级处理模块,在接到通知后,将优先级低于待插入ACL规则 的所有ACL规则从当前所在区块移到相邻的后一个区块中,将待插入ACL规 则插入因移动变空的空区块中。
12、 如权利要求11所述的装置,其特征在于,所述分区单元将三态内容可 寻址存储器TCAM的存储空间划分为多个连续的区块,不同区块具有的相同数 目的条目, 一个条目对应一个ACL硬件资源。
13、 如权利要求11所述的装置,其特征在于,所述相同优先级处理模块包 括查找子模块、第一子模块和第二子模块;所述查找子模块,在接到通知后,查找与待插入ACL规则具有相同优先级 的ACL规则占用的最后一个区块,将查找到的区块信息发送给第一子模块和第 二子模块;所述第一子模块,在查找到的区块具有空闲ACL硬件资源时,将待插入 ACL规则插入该空闲ACL硬件资源中;所述第二子模块,在查找到的区块没有空闲ACL硬件资源,且与该查找到 的区块相邻的后一个区块被占用时,将所有区块中优先级低于待插入ACL规则的ACL规则从当前所在区块移到相邻的后一个区块中,将待插入ACL规则插 入因移动变空的空区块。
14、 如权利要求11所述的装置,其特征在于,所述不同优先级处理模块进 一步用于,在接到通知后,判断所有区块内的ACL规则中,是否存在优先级低 于待插入ACL规则的ACL规则;如果是,则执行所述将优先级低于待插入ACL 规则的所有ACL规则从当前所在区块中移到相邻的后一个区块中,将待插入 ACL规则插入因移动变空的空区块中的操作;如果否,则将待插入ACL规则 插入与最后 一个被占用区块相邻的空区块中。
15、 如权利要求11所述的装置,其特征在于,该装置进一步包括删除处理 单元,用于从区块删除ACL规则后,对被删除ACL规则所在区块内的所有ACL 规则进行排序,消除区块内任意两个被占用ACL硬件资源之间的空闲ACL硬 件资源;和/或,从区块删除ACL规则后,如果被删除ACL规则所在区块变为 空区块,则以区块为单位进行ACL规则排序,消除任意两个被占用区块之间的 空区块。
全文摘要
本发明公开了一种访问控制列表规则的更新方法和装置。本发明将存储空间划分为多个区块,每个区块具有多个用于记录ACL规则的ACL硬件资源;位置在前的区块所记录ACL规则的优先级大于或等于位置在后的区块所记录ACL规则的优先级;每次插入ACL规则时,在各区块中查找与待插入ACL规则具有相同优先级的ACL规则;如果查找到,则将待插入ACL规则插入查找到的区块中,无需触发排序过程;如果没有查找到,则将优先级低于待插入ACL规则的所有ACL规则从当前所在区块中移到相邻的后一个区块中,将待插入ACL规则插入因移动变空的空区块中。使用本发明能够极大地减少重新排序的次数,从而降低排序带来的系统资源耗费。
文档编号H04L12/56GK101447940SQ20081024072
公开日2009年6月3日 申请日期2008年12月23日 优先权日2008年12月23日
发明者戟 何, 朱严峰, 胡元章 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1