访问控制列表的管理方法及装置制造方法及图纸

技术编号:26045221 阅读:52 留言:0更新日期:2020-10-23 21:25
本申请提供了一种访问控制列表的管理方法及装置,涉及数据处理技术领域,该方法包括:获取压缩节点层的数量N,压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且压缩节点层包括至少一个压缩节点,N为大于或等于1的整数;将N个压缩节点层存储在M块SRAM中,M为大于0且小于N的整数,M块SRAM中的每块SRAM中存储有N个压缩节点层中的至少一个压缩节点层。也即,本申请实施例中,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。

【技术实现步骤摘要】
【国外来华专利技术】访问控制列表的管理方法及装置
本申请涉及数据处理
,特别涉及一种访问控制列表(AccessControlList,ACL)的管理方法及装置。
技术介绍
ACL是配置在路由器或交换机等转发设备中的指令列表。其中,ACL中包括多条规则,当转发设备接收到报文时,可以从报文中提取关键字,并从ACL包括的多条规则中查找与提取的关键字相匹配的规则,进而根据查找结果对接收到的报文进行处理。由于ACL包括的规则的数量极其巨大,因此,为了方便查找,通常,转发设备可以根据ACL创建对应的搜索树,进而按照该搜索树包括的层来对ACL进行存储。具体地,转发设备可以根据ACL包括的多条规则的特点,选择规则中的多个特定比特位来对多条规则进行分割,从而将该多条规则划分到多个桶中。其中,该多个桶中的每个桶的最大容量均是相同的。转发设备可以根据划分该多条规则的过程创建搜索树,该搜索树的每个叶子节点最终都指向一个桶。例如,假设桶的最大容量为3,如图1所示,ACL中包括12条规则。转发设备可以首先根据第6比特位将12条规则划分为2组,其中,第6比特位的值为0的规则为第一组,值为1的规则为第二组,值为指定字符的规则需要同时放入到两个组中。当划分得到第一组和第二组之后,由于第一组和第二组中规则的数量均大于3,也即均大于桶的最大容量,因此,可以继续对第一组和第二组进行划分。其中,对于第一组,根据第3比特位对其划分,得到第三组和第四组,对于第二组,根据第1比特位对其划分,得到第五组和第六组。其中,第四组、第五组和第六组包括的规则的数量均小于3,因此,可以将第四组、第五组和第六组的规则分别存储在不同的桶中,而由于第三组包括的规则的数量仍然大于3,因此,可以继续根据第13比特位对第三组进行划分,得到第七组和第八组。由于第七组和第八组包括的规则的数量均小于3,因此,可以将第七组和第八组包括的规则分别存储在不同的桶中。由此可见,通过上述过程,可以将12条规则划分到5个桶中,而根据划分的过程,则可以创建得到如图2所示的搜索树。该搜索树的每个叶子节点上都存储有对应的桶的存储地址,而除叶子节点之外的其他节点上则存储有相应节点所对应的用于指示对规则进行划分的特定比特位以及具体划分方式的分割信息。在创建搜索树之后,由于ACL中的规则的数量极其庞大,因此,创建的搜索树往往包括很多层,在这种情况下,转发设备可以从搜索树的第一层开始,将每相邻的预设数量的层作为一个压缩节点层,将该压缩节点层内的多个节点存储在至少一个压缩节点中,之后,在每块静态随机存取存储器(StaticRandom-AccessMemory,SRAM)中存储一个压缩节点层包括的至少一个压缩节点。当采用上述方法来存储ACL时,由于搜索树的每一层的节点数量不同,因此,每一个压缩节点层内的节点数量也不同,这样,每块SRAM中被占用的容量的多少也不同,对于某些节点数量较少的压缩节点层所对应的SRAM,会存在存储空间浪费的问题。
技术实现思路
本申请提供了一种访问控制列表的管理方法、装置及计算机存储介质,可以用于解决相关技术中每块SRAM存放一个压缩节点层所导致的存储空间浪费的问题。该技术方案如下:第一方面,提供了一种访问控制列表的管理方法,该方法包括:获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;将所述N个压缩节点层存储在M块SRAM中,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。在本申请实施例中,转发设备可以将N个压缩节点层存储在少于N块的SRAM中,也即,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。可选地,所述将所述N个压缩节点层存储在所述M块SRAM中,包括:按照所述N个压缩节点层的先后顺序,从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;当存储到第M块SRAM时,重新从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完所述N个压缩节点层为止。可选地,所述方法还包括:当接收到报文时,从所述报文中提取关键字;基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则。可选地,所述基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则,包括:令i=1,k=1,判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;若所述第i块SRAM中存储有第k个压缩节点层,则基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点;若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则。可选地,所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层包括的至少一个压缩节点之后,还包括:若所述第i块SRAM中未存储有第k个压缩节点层,则令所述i=i+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。可选地,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:若未查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则令所述i=i+1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。可选地,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。可选地,所述若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则,包括:若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;基于所述桶的地址,查找与所述关键字相匹配的规则。第二方面,提供了一种访问控制列表的管理装置,所述访问控制列表的管理装置具有实现上述第一方面中的访问控制列表的管理方法行为的功能。所述访问控制列表的管理装置包括至少一个模块,该至少一个模块用于本文档来自技高网
...

【技术保护点】
一种访问控制列表的管理方法,其特征在于,所述方法包括:/n获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;/n将所述N个压缩节点层存储在M块SRAM中,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。/n

【技术特征摘要】
【国外来华专利技术】一种访问控制列表的管理方法,其特征在于,所述方法包括:
获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;
将所述N个压缩节点层存储在M块SRAM中,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。


如权利要求1所述的方法,其特征在于,所述将所述N个压缩节点层存储在所述M块SRAM中,包括:
按照所述N个压缩节点层的先后顺序,从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;
当存储到第M块SRAM时,重新从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完所述N个压缩节点层为止。


如权利要求1或2所述的方法,其特征在于,所述方法还包括:
当接收到报文时,从所述报文中提取关键字;
基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则。


如权利要求3所述的方法,其特征在于,所述基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则,包括:
令i=1,k=1,判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;
若所述第i块SRAM中存储有第k个压缩节点层,则基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点;
若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则。


如权利要求4所述的方法,其特征在于,所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层包括的至少一个压缩节点之后,还包括:
若所述第i块SRAM中未存储有第k个压缩节点层,则令所述i=i+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。


如权利要求4或5所述的方法,其特征在于,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则令所述i=i+1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。


如权利要求5或6所述的方法,其特征在于,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。


如权利要求4-7任一所述的方法,其特征在于,所述若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则,包括:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递...

【专利技术属性】
技术研发人员:杨升董细金高峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1