首页 > 专利 > 华为技术有限公司 > 一种ACL规则的加载方法及装置专利详情

一种ACL规则的加载方法及装置   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2014-08-13
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2016-04-20
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2018-10-02
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2034-08-13
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201410397626.0 申请日 2014-08-13
公开/公告号 CN105335307B 公开/公告日 2018-10-02
授权日 2018-10-02 预估到期日 2034-08-13
申请年 2014年 公开/公告年 2018年
缴费截止日
分类号 G06F13/16 主分类号 G06F13/16
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 5 被引证专利数量 0
非专利引证
引用专利 US8750144B1、CN101035062A、CN101039271A、CN103618711A、US7904642B1 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 华为技术有限公司 当前专利权人 华为技术有限公司
发明人 于兴兴 第一发明人 于兴兴
地址 广东省深圳市龙岗区坂田华为总部办公楼 邮编 518129
申请人数量 1 发明人数量 1
申请人所在省 广东省 申请人所在市 广东省深圳市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京同达信恒知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
冯艳莲
摘要
本发明公开了一种ACL规则的加载方法及装置,用以解决现有技术中存在的ACL规则加载过程由于大量冗余的搬迁操作,导致加载效率较低问题,该方法为:接收包括有待加载的ACL规则的数目的数据加载请求,在用于存储ACL规则的存储介质中确定可加载范围;当所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数目,将待加载的ACL规则依次加载至该存储介质中的可加载范围中。
  • 摘要附图
    一种ACL规则的加载方法及装置
  • 说明书附图:图1
    一种ACL规则的加载方法及装置
  • 说明书附图:图2
    一种ACL规则的加载方法及装置
  • 说明书附图:图3
    一种ACL规则的加载方法及装置
  • 说明书附图:图4
    一种ACL规则的加载方法及装置
  • 说明书附图:图5
    一种ACL规则的加载方法及装置
  • 说明书附图:图6
    一种ACL规则的加载方法及装置
  • 说明书附图:图7
    一种ACL规则的加载方法及装置
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-12-07 专利权的转移 登记生效日: 2021.11.24 专利权人由华为技术有限公司变更为苏州鱼得水电气科技有限公司 地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为215010 江苏省苏州市高新区长江路556号5幢704室
2 2018-10-02 授权
3 2016-04-20 实质审查的生效 IPC(主分类): G06F 13/16 专利申请号: 201410397626.0 申请日: 2014.08.13
4 2016-02-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种访问控制列表ACL规则的加载方法,其特征在于,包括:
接收数据加载请求,所述数据加载请求包括待加载的ACL规则的数目;
根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;
当所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数目;
将第一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;
依次将剩余每一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中距离所述首个基本存储单元最近的基本存储单元中。

2.如权利要求1所述的方法,其特征在于,所述存储介质为三态内容寻址存储器块TCAM Bank。

3.如权利要求2所述的方法,其特征在于,根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围,包括:
将所述数据加载请求指定的所述TCAM Bank中的基本存储单元作为可加载范围;或者根据所述数据加载请求,确定待加载的ACL的规则的优先级;根据所述待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将所述TCAM Bank中首个优先级不小于所述待加载的ACL规则的优先级的基本存储单元作为上界位置,将所述TCAM Bank中最后一个优先级不大于所述待加载的ACL规则的优先级的基本存储单元作为下界位置;将所述上界位置和所述下界位置之间的基本存储单元作为可加载范围。

4.如权利要求2或3所述的方法,其特征在于,搬迁所述存储介质中已经存储的ACL规则,包括:
将与所述可加载范围相邻的指定基本存储单元作为第一基本存储单元;
在所述TCAM Bank中筛选出除所述可加载范围之外距离所述第一基本存储单元最近的且处于空闲状态的第二基本存储单元;
搬迁筛选出的所述第二基本存储单元与所述第一基本存储单元之间的基本存储单元中已存储的ACL规则。

5.一种访问控制列表ACL规则的加载装置,其特征在于,包括:
接收单元,用于接收数据加载请求,所述数据加载请求包括待加载的ACL规则的数目;
确定单元,用于根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;
处理单元,用于当所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数目;以及
将第一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;
依次将剩余每一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中距离所述首个基本存储单元最近的基本存储单元中。

6.如权利要求5所述的装置,其特征在于,所述存储介质为三态内容寻址存储器块TCAM Bank。

7.如权利要求6所述的装置,其特征在于,所述确定单元,具体用于:
将所述数据加载请求指定的所述TCAM Bank中的基本存储单元作为可加载范围;或者根据所述数据加载请求,确定待加载的ACL的规则的优先级;根据所述待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将所述TCAM Bank中首个优先级不小于所述待加载的ACL规则的优先级的基本存储单元作为上界位置,将所述TCAM Bank中最后一个优先级不大于所述待加载的ACL规则的优先级的基本存储单元作为下界位置;将所述上界位置和所述下界位置之间的基本存储单元作为可加载范围。

8.如权利要求6或7所述的装置,其特征在于,所述处理单元搬迁所述存储介质中已经存储的ACL规则时,具体用于:
将与所述可加载范围相邻的指定基本存储单元作为第一基本存储单元;
在所述TCAM Bank中筛选出除所述可加载范围之外距离所述第一基本存储单元最近的且处于空闲状态的第二基本存储单元;
搬迁筛选出的所述第二基本存储单元与所述第一基本存储单元之间的基本存储单元中已存储的ACL规则。
说明书

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种ACL规则的加载方法及装置。

背景技术

[0002] 访问控制列表(英文:Access Control List,缩写:ACL)是路由器和交换机接口的指令列表,用来控制端口进出的数据包,其中,ACL是由若干个ACL规则组成的。由于ACL功能的强大与灵活,以及通过三态内容寻址存储器(英文:Ternary Content Addressable Memory,缩写:TCAM)存储ACL中的ACL规则可以保证查找ACL规则的高效性,因此,越来越多的业务开始使用ACL。在较典型的“策略路由类”应用中,如将特定互联网协议(英文:Internet Protocol,缩写:IP)的报文重定向到某一下一跳、将多链接透明互联(英文:
Transparent Interconnection of Lots of Links,缩写:TRILL)组播报文重定向到某一组播组等,这类ACL应用的特点为:ACL中的ACL规则的数目较大(一般有5K~10K条)、加载时同批次的ACL规则的优先级相同。
[0003] 存储ACL规则的TCAM是集成在专用集成电路(英文:Application Specific Integrated Circuit,缩写:ASIC)上的。而TCAM在逻辑上可以分为若干块,每一块称为TCAM Bank,其中每个TCAM Bank可以存放1K条宽度为160bit的ACL规则。由于每条ACL规则都具有相应的优先级,一般在将ACL规则存储至TCAM Bank时,将优先级高的ACL规则存放在TCAM Bank低地址处。
[0004] 参阅图1所示,每个TCAM Bank中均包含若干个基本存储单元用于存储不同的ACL规则,且一个基本存储单元可以存储一条ACL规则。ASIC通过Location(Bank_ID,Entry)唯一标识TCAM Bank中的一个基本存储单元,其中,Location为存储单元的位置,Bank_ID为TCAM Bank的标识,Entry为在该TCAM Bank中的基本存储单元的标识。
[0005] 由于在将ACL规则存储至TCAM Bank时,将优先级高的ACL规则存放在TCAM Bank低地址处,且ASIC通过Location唯一标识TCAM Bank中的一个基本存储单元,因此,采用TCAM Bank存储ACL规则的设备均设置有内部优先级链表,用于维护ACL规则的优先级和Location的映射关系。
[0006] 参阅图1,将待加载的ACL规则加载(英文:install)至TCAM Bank之前,首先要根据待加载的ACL规则的优先级以及内部优先级链表维护的ACL规则的优先级和Location的映射关系,确定可加载范围:根据待加载的ACL规则的优先级(P),从低优先级到高优先级遍历预设的内部优先级链表,将TCAM Bank中首个优先级不小于待加载的ACL规则的优先级(P-High)的基本存储单元作为位置1,将该TCAM Bank中最后一个优先级不大于待加载的ACL规则的优先级(P-Low)的基本存储单元作为位置2;位置1和位置2之间的基本存储单元作为可加载范围。其中,可加载范围中有三种情况,第一,可加载范围中没有基本存储单元;第二,可加载范围中只有一个处于空闲状态的基本存储单元;第三,可加载范围中有至少两个位置连续的处于空闲状态的基本存储单元。
[0007] 目前,参阅图2所示,ACL规则加载至TCAM Bank中的可加载范围的过程为:假设当前待加载的ACL规则为6条,首先,将待加载的ACL规则中的第一条ACL规则P1加载至可加载范围的中间位置,然后在第一条ACL规则与位置1之间的中间位置加载第二条ACL规则P2,再在第二条ACL规则P2与位置1之间的中间位置加载第三条ACL规则P3,确定加载后的ACL规则与位置1之间没有基本存储单元后,则查询一个距离位置1最近的且处于空闲状态的基本存储单元,并将位置1与该处于空闲状态的基本存储单元之间的ACL规则按照顺序逐个搬迁,使得搬迁后将与位置1相邻的基本存储单元空出后,将第四条ACL规则P4加载至该基本存储单元中,按照这种规则,继续加载后续的待加载的ACL规则,直至所有的待加载的ACL规则全部加载。
[0008] 当可加载范围中没有基本存储单元时,同样地,也需查询一个距离位置1最近的处于空闲状态的基本存储单元,将该处于空闲状态的基本存储单元与位置1之间的ACL规则逐个进行搬迁,以便将待加载的ACL规则全部加载。
[0009] 因此,在待加载的ACL规则中的非最后一条ACL规则加载时由于没有空闲的基本存储单元而需要进行搬迁操作的情况下,后续的每一条待加载的ACL规则加载时,均需要进行搬迁操作,显然,现有的ACL规则加载过程存在大量的冗余搬迁操作,降低了ACL规则的加载效率。

发明内容

[0010] 本发明提供一种ACL规则的加载方法及装置,用以解决现有技术中存在的ACL规则加载过程存在大量冗余搬迁操作,降低了ACL规则的加载效率的问题。
[0011] 本发明提供的具体技术方案如下:
[0012] 第一方面,一种访问控制列表ACL规则的加载方法,包括:接收数据加载请求,所述数据加载请求包括待加载的ACL规则的数目;根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;当确定所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数;将所述数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元。
[0013] 结合第一方面,在第一种可能的实现方式中,所述存储介质为三态内容寻址存储器块TCAM Bank。
[0014] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围,包括将所述数据加载请求指定的所述TCAM Bank中的基本存储单元作为可加载范围;或者根据所述数据加载请求,确定待加载的ACL的规则的优先级;根据所述待加载的ACL规则的优先级,按照从低优先级到高优先级的熟悉遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将所述TCAM Bank中首个优先级不小于所述待加载的ACL规则的优先级的基本存储单元作为上界位置,将所述TCAM Bank中最后一个优先级不大于所述待加载的ACL规则的优先级的基本存储单元作为下界位置;将所述上界位置和所述下界位置之间的基本存储单元作为可加载范围。
[0015] 结合第一方面的第一种或第二种可能的实现方式,在第三种可能的是实现方式中,搬迁所述存储介质中已经存储的ACL规则,包括将与所述可加载范围相邻的指定基本存储单元作为第一基本存储单元;在所述TCAM Bank中筛选出除所述可加载范围之外距离所述第一基本存储单元最近的且处于空闲状态的第二基本存储单元;搬迁筛选出的所述第二基本存储单元与所述第一基本存储单元之间的基本存储单元中已存储的ACL规则。
[0016] 结合第一方面或以上任意一种可能的实现方式,在第四种可能的实现方式中,将所述数据加载请求指示的待加载的ACL规则依次加载至所述添加了扩展的基本存储单元的可加载范围中的基本存储单元,包括将第一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;依次将剩余每一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中距离所述首个基本存储单元最近的基本存储单元中。
[0017] 第二方面,一种访问控制列表ACL规则的加载装置,包括接收单元,用于接收数据加载请求,所述数据加载请求包括待加载的ACL规则的数目;确定单元,用于根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;处理单元,用于当确定所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数目;将所述数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元。
[0018] 结合第二方面,在第一种可能的实现方式中,所述存储介质为三态内容寻址存储器块TCAM Bank。
[0019] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定单元,具体用于将所述数据加载请求指定的所述TCAM Bank中的基本存储单元作为可加载范围;或者根据所述数据加载请求,确定待加载的ACL的规则的优先级;根据所述待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将所述TCAM Bank中首个优先级不小于所述待加载的ACL规则的优先级的基本存储单元作为上界位置,将所述TCAM Bank中最后一个优先级不大于所述待加载的ACL规则的优先级的基本存储单元作为下界位置;将所述上界位置和所述下界位置之间的基本存储单元作为可加载范围。
[0020] 结合第二方面的第一种或第二种可能的实现方式,在第三种可能的是实现方式中,所述处理单元搬迁所述存储介质中已经存储的ACL规则时,具体用于将与所述可加载范围相邻的指定基本存储单元作为第一基本存储单元;在所述TCAM Bank中筛选出除所述可加载范围之外距离所述第一基本存储单元最近的且处于空闲状态的第二基本存储单元;搬迁筛选出的所述第二基本存储单元与所述第一基本存储单元之间的基本存储单元中已存储的ACL规则。
[0021] 结合第二方面或以上任意一种可能的实现方式,在第四种可能的实现方式中,所述处理单元在将所述数据加载请求指示的待加载的ACL规则依次加载至所述添加了扩展的基本存储单元的可加载范围中的基本存储单元时,包括:将第一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;依次将剩余每一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中距离所述首个基本存储单元最近的基本存储单元中。
[0022] 采用本发明技术方案,通过接收包括待加载的ACL规则的数目的数据加载请求,确定可加载范围,在确定可加载范围中的基本存储单元的数目小于待加载的ACL规则的数目时,搬迁存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目,再将数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元,本发明在同一批次的ACL规则加载前统一判断,并对存储介质中已经存储的ACL规则进行批量搬移处理,保证了在待加载的ACL规则存储到基本存储单元的过程中有足够的空间进行存储,不会在加载每条ACL规则时均需要判断是否需要对已经存储的ACL规则进行搬迁,提高了ACL规则加载的效率,使业务生效的时间间隔变短,提高了ACL加载模式的性能,并避免了因加载ACL规则长时间占用CPU,进而提高了CPU的利用率。

实施方案

[0030] 采用本发明实施例技术方案,能够有效地避免现有技术中存在的ACL规则加载过程存在大量冗余搬迁操作,导致降低ACL规则的加载效率的问题。
[0031] 本发明实施例提供了一种ACL规则的加载方法,适用于路由器、交换机等各种应用ACL功能的设备,下面结合附图对本发明优选的实施方式进行详细说明。
[0032] 参阅图3所示,本发明实施例提供的一种ACL规则的加载方法的具体处理流程包括:
[0033] 步骤301:接收数据加载请求,该数据加载请求包括待加载的ACL规则的数目。
[0034] 具体的,数据加载请求可以为与应用ACL功能的设备相连的其它设备发送的,或者来自用户对应用ACL功能的设备的设置指令等,其中,优选的,该数据加载请求不仅包括待加载的ACL规则的数目,还包括待加载的ACL规则的优先级或指定的基本存储单元地址等,以及加载方式标记Flag。
[0035] 数据加载请求还可以进一步指示待加载的ACL规则,具体地,数据加载请求可以通过以下方式指示待加载的ACL规则:数据加载请求中携带了待加载的ACL规则,或者,携带了待加载的ACL规则的标识,或者,携带了用于确定存储于指定的存储区域或指定文件内的待加载ACL规则的信息,或者指定某一优先级的待加载ACL规则,等等。
[0036] 较佳地,在本发明实施例中,用整形变量最高比特位表示加载方式标记时,该比特位置1指示当前批次的待加载的ACL规则为无序加载,即数据加载请求所指示的待加载的ACL规则为相同优先级的。
[0037] 步骤302:根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围。
[0038] 其中,所述可加载范围是指用于存储ACL规则的存储介质中可以用来加载ACL规则的空间,所述用于存储ACL规则的存储介质可以但不局限于包括TCAM Bank。在本实施例中,根据数据加载请求在TCAM Bank中确定可加载范围时,可以但不限于包括以下两种方式:
[0039] 第一种:将数据加载请求中指定的TCAM Bank中的基本存储单元作为可加载范围;
[0040] 第二种:根据数据加载请求,确定待加载的ACL的规则的优先级;根据该待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将TCAM Bank中首个优先级不小于该待加载的ACL规则的优先级的基本存储单元作为上界位置,将TCAM Bank中最后一个优先级不大于该待加载的ACL规则的优先级的基本存储单元作为下界位置;将上界位置和下界位置之间的基本存储单元作为可加载范围,具体参阅图4所示。
[0041] 优先级链表包括ACL规则优先级和TCAM Bank中的基本存储单元位置的映射关系,即根据ACL规则的优先级以及所述优先级链表,即可确定归属于该优先级的所有ACL规则的Location(Bank_ID,Entry)。由于TCAM Bank存储ACL规则时,是按照优先级的高低顺序存储的,且由于确定的可加载范围是位于上界位置和下界位置之间的基本存储单元,因此,确定的可加载范围中有三种情况,第一,可加载范围中没有基本存储单元;第二,可加载范围中只有一个处于空闲状态的基本存储单元;第三,可加载范围中有至少两个位置连续的处于空闲状态的基本存储单元。
[0042] 优先级链表包括ACL规则优先级和TCAM Bank中的基本存储单元位置的映射关系,且TCAM Bank存储ACL规则时,是按照优先级的高低顺序存储的,例如,Bank_ID=00的TCAM Bank中有10个基本存储单元,第1个是地址最低(地址为0)的基本存储单元,第10个是地址最高(地址为9)的基本存储单元,其中地址为9、8、7的三个基本存储单元存储优先级为1的三个ACL规则,而地址为3、2、1、0的四个基本存储单元存储优先级为3的四个ACL规则,剩余的为空闲的基本存储单元,则对应的优先级链表为:{……ACL规则优先级为1的基本存储单元位置=[Location(00,9)、Location(00,8)、Location(00,7)],ACL规则优先级为3的基本存储单元位置=[Location(00,3)、Location(00,2)、Location(00,1)、Location(00,0)]……}。
[0043] 例如,参阅图4所示,当前待加载的ACL规则的优先级为P,由于优先级高的ACL规则存储在TCAM Bank低地址处(即TCAM Bank上部),因此,在查找可加载范围时,按照优先级从低到高(或TCAM Bank地址从高到低)的顺序遍历预设的优先级链表,可以在TCAM Bank中找到两个位置——上界位置和下界位置,其中,上界位置为第一个优先级不小于P的ACL规则所占用的基本存储单元,下界位置为最后一个优先级不大于P的ACL规则所占用的基本存储单元,上界位置和下界位置之间的基本存储单元组成可加载范围。
[0044] 步骤303:当所述可加载范围中包含的基本存储单元的数目小于待加载的ACL规则的数目时,搬迁存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目;将数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元。
[0045] 在本实施例的另一个实施方式中,当可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目时,直接将数据加载请求指示的待加载的ACL规则依次下发至该可加载范围中的基本存储单元。
[0046] 具体的,搬迁存储介质中已经存储的ACL规则,可以包括:将与可加载范围相邻的指定基本存储单元作为第一基本存储单元;在TCAM Bank中筛选出除该可加载范围之外距离该第一基本存储单元最近的且处于空闲状态的第二基本存储单元;搬迁该第二基本存储单元与该第一基本存储单元之间的基本存储单元中已存储的ACL规则。其中,所述第一基本存储单元可以为与确定的可加载范围相邻的上界位置或下界位置,在本实施例中,将上界位置作为所述第一基本存储单元。
[0047] 优选的,在搬迁过程中,可以不改变已经存储的ACL规则的前后存储顺序。
[0048] 参阅图5中搬迁处理的图示,确定本批次的待加载的ACL规则的数目为6,且待加载的ACL规则的优先级为P,并且在步骤302后,确定的可加载范围中基本存储单元的数目小于待加载的ACL规则的数目,即无可加载范围或可加载范围中空间不足,这样,首先确定优先级为P-High且地址最高的基本存储单元(即箭头所指示的上界位置)作为第一基本存储单元,在TCAM Bank中筛选出除该可加载范围之外距离该第一基本存储单元最近的且处于空闲状态的第二基本存储单元;然后搬迁筛选出的该第二基本存储单元与该第一基本存储单元之间的基本存储单元中已存储的ACL规则,将搬迁处理后得到的空闲基本存储单元作为扩展的基本存储单元添加至可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目时再停止搬迁,在图5中,将优先级为P-Low的ACL规则搬迁4次后,将该优先级为P-Low的ACL规则迁移至TCAM Bank中倒数第二个基本存储单元后,当前扩展后的可加载范围中基本存储单元数目为6,将有足够的空间进行本批次的ACL规则加载。
[0049] 优选的,将数据加载请求指示的待加载的ACL规则直接依次加载至添加了扩展的基本存储单元的可加载范围,可以包括:将第一条待加载的ACL规则加载至添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;然后依次将剩余每一条待加载的ACL规则加载至添加了扩展的基本存储单元的可加载范围中距离首个基本存储单元最近的基本存储单元中。
[0050] 其中,在实际场景中,可以将可加载范围中地址最低的基本存储单元作为首个基本存储单元,或者将地址最高的基本存储单元作为首个基本存储单元,仍以图5为例,在本实施例中,将地址最低的基本存储单元作为首个基本存储单元,然后按照地址从低到高依次将每一条待加载的ACL规则加载至基本存储单元,这样,保证了在待加载的ACL规则存储到基本存储单元的过程中有足够的空间进行存储,不需要在ACL规则加载过程中搬迁ACL规则。
[0051] 基于上述实施例,参阅图6所示,本发明实施例还提供了一种ACL规则的加载装置,该装置包括:接收单元601,确定单元602、处理单元603,其中,
[0052] 接收单元601,用于接收数据加载请求,该数据加载请求包括待加载的ACL规则的数目;
[0053] 确定单元602,用于根据该数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;
[0054] 处理单元603,用于当该可加载范围中包含的基本存储单元的数目小于待加载的ACL规则的数目时,搬迁存储介质中已经存储的ACL规则,将搬迁处理后得到的空闲基本存储单元作为扩展的基本存储单元添加至可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目;
[0055] 将数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元。
[0056] 较佳地,存储介质为TCAM Bank。
[0057] 确定单元602,具体用于:
[0058] 将数据加载请求指定的TCAM Bank中的基本存储单元作为可加载范围;或者[0059] 根据数据加载请求,确定待加载的ACL的规则的优先级;根据待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将TCAM Bank中首个优先级不小于待加载的ACL规则的优先级的基本存储单元作为上界位置,将TCAM Bank中最后一个优先级不大于待加载的ACL规则的优先级的基本存储单元作为下界位置;将上界位置和下界位置之间的基本存储单元作为可加载范围。
[0060] 处理单元603搬迁存储介质中已经存储的ACL规则时,具体用于:
[0061] 将与可加载范围相邻的指定基本存储单元作为第一基本存储单元;
[0062] 在TCAM Bank中筛选出除可加载范围之外距离第一基本存储单元最近的且处于空闲状态的第二基本存储单元;
[0063] 搬迁筛选出的第二基本存储单元与第一基本存储单元之间的基本存储单元中已存储的ACL规则。
[0064] 处理单元603在将数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元时,包括:
[0065] 将第一条待加载的ACL规则加载至添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;
[0066] 依次将剩余每一条待加载的ACL规则加载至添加了扩展的基本存储单元的可加载范围中距离首个基本存储单元最近的基本存储单元中。
[0067] 基于上述实施例,参阅图7所示,本发明实施例还提供了一种ACL规则的加载装置,该装置包括:收发器701和处理器702,其中,
[0068] 收发器701,用于接收数据加载请求,所述数据加载请求包括待加载的ACL规则的数目;
[0069] 处理器702,用于根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围;当所述可加载范围中包含的基本存储单元的数目小于所述待加载的ACL规则的数目时,搬迁所述存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至所述可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于所述待加载的ACL规则的数目;将所述数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围中的基本存储单元。
[0070] 较佳地,所述存储介质为三态内容寻址存储器块TCAM Bank。
[0071] 处理器702在根据所述数据加载请求在用于存储ACL规则的存储介质中确定可加载范围时,具体用于:
[0072] 将所述数据加载请求指定的所述TCAM Bank中的基本存储单元作为可加载范围;或者
[0073] 根据所述数据加载请求,确定待加载的ACL的规则的优先级;根据所述待加载的ACL规则的优先级,按照从低优先级到高优先级的顺序遍历包括ACL规则的优先级和基本存储单元位置信息的映射关系的优先级链表,将所述TCAM Bank中首个优先级不小于所述待加载的ACL规则的优先级的基本存储单元作为上界位置,将所述TCAM Bank中最后一个优先级不大于所述待加载的ACL规则的优先级的基本存储单元作为下界位置;将所述上界位置和所述下界位置之间的基本存储单元作为可加载范围。
[0074] 处理器702在搬迁所述存储介质中已经存储的ACL规则时,具体用于:
[0075] 将与所述可加载范围相邻的指定基本存储单元作为第一基本存储单元;
[0076] 在所述TCAM Bank中筛选出除所述可加载范围之外距离所述第一基本存储单元最近的且处于空闲状态的第二基本存储单元;
[0077] 搬迁筛选出的所述第二基本存储单元与所述第一基本存储单元之间的基本存储单元中已存储的ACL规则。
[0078] 处理器702在将所述数据加载请求指示的待加载的ACL规则依次加载至所述添加了扩展的基本存储单元的可加载范围中的基本存储单元时,具体用于:
[0079] 将第一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中的指定位置的首个基本存储单元;
[0080] 依次将剩余每一条待加载的ACL规则加载至所述添加了扩展的基本存储单元的可加载范围中距离所述首个基本存储单元最近的基本存储单元中。
[0081] 综上所述,通过本发明实施例中提供的一种ACL规则的加载方法及装置,该方法通过接收包括有待加载的ACL规则的数目的数据加载请求,确定可加载范围,可加载范围中的基本存储单元的数目小于待加载的ACL规则的数目时,搬迁存储介质中已经存储的ACL规则,将搬迁后得到的空闲基本存储单元作为扩展的基本存储单元添加至可加载范围,直至添加了扩展的基本存储单元的可加载范围中包含的基本存储单元的数目大于或等于待加载的ACL规则的数目,将数据加载请求指示的待加载的ACL规则依次加载至添加了扩展的基本存储单元的可加载范围,这样,保证了在待加载的ACL规则存储到基本存储单元的过程中有足够的空间进行存储,不会在加载每一条ACL规则的过程中进行已经存储的ACL规则的迁移,提高了同一批次ACL规则的加载效率,降低了业务生效的时间间隔,提高了ACL加载模式的性能,并避免了因加载ACL规则长时间占用CPU,进而提高了CPU的利用率。
[0082] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0083] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

附图说明

[0023] 图1为现有技术提供的TCAM Bank存储ACL规则的方式示意图;
[0024] 图2为现有技术提供的ACL规则加载至TCAM Bank中的可加载范围的过程示意图;
[0025] 图3为本发明实施例提供的一种ACL规则的加载方法的具体流程图;
[0026] 图4为本发明实施例提供的在TCAM Bank中确定可加载范围的示意图;
[0027] 图5为本发明实施例提供的一种ACL规则的加载实施例示意图;
[0028] 图6为本发明实施例提供的一种ACL规则的加载装置的结构示意图;
[0029] 图7为本发明实施例提供的另一种ACL规则的加载装置的实体结构图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号