[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] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。