过滤表项安装方法、装置及网络设备的制作方法

文档序号:7860835阅读:132来源:国知局
专利名称:过滤表项安装方法、装置及网络设备的制作方法
技术领域
本发明涉及通信技术,尤其涉及一种过滤表项安装方法、装置及网络设备。
背景技术
访问控制列表(Access Control List,简称为ACL)是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。ACL功能是通过硬件表中的过滤表项来实现的,过滤表项包括过滤规则信息和对应的控制行为,所有的过滤表项组成ACL。当报文到达网络设备的接口时,如果该接口上配置有ACL,网络设备会自动检查该报文是否与ACL中的某一条过滤表项匹配,如果匹配成功,则直接返回该过滤表项的控制策略,控制策略决定了报文的转发行为,例如可以是允许通过(Permit)或丢弃(Deny)。其中,过滤表项在硬件表中的顺序会直接影响报文的匹配结果。目前过滤表项的 安装顺序是由过滤表项的优先值决定的,过滤表项的优先值可以是管理员为其配置的或者是交换设备按照过滤表项的配置顺序为其分配的,通常在初始安装时任意两条过滤表项的优先值之间会留下一个差值,以便用户可以随意插入指定优先值的过滤表项。现有技术普遍采用的过滤表项安装方法是按照过滤表项的优先值,顺序紧凑的将过滤表项安装在硬件表中。采用这种安装方式,如果需要在硬件表中加入一条高优先值的过滤表项,就需要将比优先值其低的其他过滤表项全部向后移,该移动处理消耗的时间较长,导致过滤表项因安装时间较长而无法及时生效。

发明内容
本发明提供一种过滤表项安装方法、装置及网络设备,用以减少过滤表项的安装时间,提高过滤表项生效的及时性。本发明第一方面提供一种过滤表项安装方法,包括根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定所述待安装过滤表项在所述硬件表中的预期位置索引;根据所述待安装过滤表项的优先值、所述硬件表中各已安装过滤表项的优先值和所述各已安装过滤表项在所述硬件表中的位置索引,确定所述待安装过滤表项对应的位置索引范围;如果所述位置索引范围中存在未被使用的位置索引,根据所述预期位置索引与所述未被使用的位置索引的关系,确定所述待安装过滤表项在所述硬件表中的最终位置索弓I ;将所述待安装过滤表项安装在所述硬件表中所述最终位置索引对应的位置。本发明第二方面提供一种过滤表项安装装置,包括预期索引确定模块,用于根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定所述待安装过滤表项在所述硬件表中的预期位置索引;
索引范围确定模块,用于根据所述待安装过滤表项的优先值、所述硬件表中各已安装过滤表项的优先值和所述各已安装过滤表项在所述硬件表中的位置索引,确定所述待安装过滤表项对应的位置索引范围;最终索引确定模块,用于在所述位置索引范围中存在未被使用的位置索引时,根据所述预期位置索引与所述未被使用的位置索引的关系,确定所述待安装过滤表项在所述硬件表中的最终位置索引;安装模块,用于将所述待安装过滤表项安装在所述硬件表中所述最终位置索引对应的位置。本发明第三方面提供一种网络设备,包括本发明提供的任一过滤表项安装装置。本发明提供的过滤表项安装方法、装置及网络设备,预先设定硬件表中的安装间隔,首先确定出待安装过滤表项在硬件表中的预期位置索引,然后确定出待安装过滤表项·在硬件表中的位置索引范围,通过位置索引范围对预期位置索引进行校正,确定待安装过滤表项在硬件表中的最终位置索引,最后将待安装的过滤表项安装在硬件表中最终位置索引对应的位置,完成过滤表项的安装,由于不再是顺序紧凑的对过滤表项进行安装,而是按照预设的安装间隔进行安装,这样当后续硬件表发生变动时,可以不用移动或者减少移动已安装的过滤表项,减少了移动处理消耗的时间,减少了过滤表项的安装时间,有利于过滤表项及时生效。


图I为本发明一实施例提供的过滤表项安装方法的流程图;图2为步骤101的一种可选实施方式的流程图;图3为步骤101的另一种可选实施方式的流程图;图4为步骤102的一种优选实施方式的流程图;图5A为本发明另一实施例提供的过滤表项安装方法的流程图;图5B为本发明一实施例提供的通过平衡二叉树获取位置索引范围并校正预期位置索引过程的示意图;图5C为本发明一实施例提供的校正预期位置索引后得到的平衡二叉树的示意图;图6为本发明一实施例提供的过滤表项安装装置的结构示意图;图7为本发明一实施例提供的过滤表项安装装置的结构示意图。
具体实施例方式鉴于现有技术按照过滤表项的优先值,顺序紧凑的将过滤表项安装在硬件表中所存在的问题,本发明提供一种新的过滤表项安装方法。图I为本发明一实施例提供的过滤表项安装方法的流程图。如图I所示,本实施例的方法包括步骤101、根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定待安装过滤表项在硬件表中的预期位置索引。本实施例的执行主体可以是过滤表项安装装置,该装置可以是各种需要安装过滤表项的装置,例如交换机、路由器、防火墙设备等。
在本实施例中,每个过滤表项都有一个优先值。过滤表项的优先值可以由管理员为该过滤表项配置,如果管理员未明确给过滤表项配置优先值,可以由过滤表项安装装置按照过滤表项的配置顺序为其分配一个合适的优先值。两个过滤表项的优先值之间有一定间隔,这样做的目的是为了便于用户随意插入指定优先值的过滤表项或者灵活调整过滤表项的优先值。通常,初始安装时,两个相邻过滤表项的优先值之间的间隔是个固定数值,例如该固定数值为10。本实施例中将初始安装时两个相邻过滤表项的优先值之间的间隔称为优先值间隔。为了克服现有技术中顺序紧凑安装过滤表项存在的问题,本实施例中预先设定硬件表中的安装间隔,即各过滤表项并不是紧凑安装在硬件表中,而是间隔一定的位置。硬件表中的安装间隔的数值可以根据实际应用需求而定,例如,如果过滤表项的更新比较多,则安装间隔可以留大一些,如果过滤表项的更新比较较少,则安装间隔可以留小一些,主要目的是使顺序安装的过滤表项以固定的安装间隔均匀散列,以减少后续过滤表项的变动(例如更新优先值、插入新过滤表项等)造成的过滤表项的移动。本实施例对安装间隔的取值不做限定,举例说明,该安装间隔可以是2,即每隔2个位置安装一个过滤表项。
基于上述,当有待安装过滤表项时,本实施例的过滤表项安装装置根据待安装过滤表项的优先值、上述优先值间隔和预设的安装间隔,确定出该待安装过滤表项在硬件表中预期位置索引。其中,待安装过滤表项也会被分配优先值,其优先值通常是分配给上一个待安装过滤表项的优先值与优先值间隔之和。在本实施例中,硬件表中的每个安装位置(简称为位置)都有一个位置索引,用位置索引可以唯一标识硬件表中的一个位置。其中,上述过滤表项安装装置根据待安装过滤表项的优先值、上述优先值间隔和预设的安装间隔,确定出的预期位置索引主要是为了计算出待安装过滤表项以固定的安装间隔为空隙进行安装时在硬件表中的位置。凡是根据待安装过滤表项的优先值、上述优先值间隔和预设的安装间隔,可以确定出达到上述目的的预期位置索引的各种方式均适用于本实施例。本实施例提供一种步骤101的可选实施方式,但不限于此。如图2所示,该实施方式包括步骤1011、将待安装过滤表项的优先值与优先值间隔相除,获得待安装过滤表项的连续优先值。步骤1012、将上述连续优先值与安装间隔相乘,获得预期位置索引。具体的,过滤表项安装装置将待安装过滤表项的优先值除以优先值间隔,可以得到不存在间隔的连续优先值。例如,假设有3个过滤表项需要安装,则管理员为这3个过滤表项分别分配优先值10、20和30,优先值间隔为10,则经过本实施例的过滤表项安装装置的处理后,这3个过滤表项的连续优先值分别为1、2和3。在获取到待安装过滤表项的连续优先值后,为了实现以固定的安装间隔进行过滤表项的安装,过滤表项安装装置将待安装过滤表项的连续优先值乘以安装间隔,得到待安装过滤表项在硬件表中的预期位置索引。正常情况下,如果对每个待安装的过滤表项都采用上述方式进行处理,每个待安装的过滤表项的预期位置索引就会相差预设的安装间隔,从而达到按照预设安装间隔进行安装的目的。
可选的,如果待安装过滤表项的优先值较大,则根据待安装过滤表项的优先值计算出的预期位置索引可能会超出硬件表的容量(即硬件表的最大位置索引)。针对该问题,本实施例提供一种可选的解决方案,即在使用待安装过滤表项的优先值获得待安装过滤表项的连续优先值之前,先根据硬件表的容量对待安装过滤表项的优先值进行截取处理,截取待安装过滤表项的优先值对应的二进制序列的低N位,根据所截取的低N位计算出待安装过滤表项的截取优先值,然后,再使用待安装过滤表项的截取优先值来获得待安装过滤表项的连续优先值,从而保证最终确定出的预期位置索引不超过硬件表的容量(即不超过硬件表的最大位置索引)。基于上述,步骤101的另一种可选实施方式如图3所示,包括步骤101a、根据硬件表的容量截取待安装过滤表项的优先值对应的二进制序列的低N位,根据所截取的低N位计算出待安装过滤表项的截取优先值,其中,N为自然数。步骤101b、将待安装过滤表项的截取优先值与优先值间隔相除,获得待安装过滤表项的连续优先值。
步骤101c、将上述连续优先值与安装间隔相乘,获得预期位置索引。其中,过滤表项安装装置根据硬件表的容量截取待安装过滤表项的优先值对应的二进制序列的低N位的方式可以有多种,例如可以根据硬件表的容量预先设定截取的位数N,然后将待安装过滤表项的优先值用二进制形式表示后,直接从中截取指定的低N位。除上述方式之外,本实施例还提供了另一种实施方式,该实施方式包括将硬件表的容量与优先值间隔相乘,将相乘的结果与安装间隔相除,获得截取数值,然后,将截取数值进行右移直到结果为0,获得右移的次数,将右移的次数减去1,作为截取的待安装过滤表项的优先值对应的二进制序列的位数N,然后截取待安装过滤表项的优先值对应的二进制序列的低N位。这种方式不需要预先设定截取的位数N,可以根据硬件表的容量实时进行计算,灵活性和适应性较强。步骤102、根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在硬件表中的位置索引,确定待安装过滤表项对应的位置索引范围。步骤103、如果位置索引范围中存在未被使用的位置索引,根据预期位置索引与位置索引范围中存在的未被使用的位置索引的关系,确定待安装过滤表项在硬件表中的最终位置索引。通常,由步骤101确定出的预期位置索引有可能出现重叠,例如在配置时可能需要配置多个优先值连续的过滤表项,在这种情况下步骤101确定出的预期位置索引就会重叠。另外,采用图3所示实施方式计算出的预期位置索引虽然可以保证不超出硬件表的容量,但是由于只取了优先值对应的二进制序列的低N位,有可能无法保证计算出的预期位置索引的优先顺序及有效性等。上述问题有可能导致待安装过滤表项安装失败,为了保证能够成功安装待安装过滤表项,需要对预期位置索引进行校正。基于此,本实施例的过滤表项安装装置根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在硬件表中的位置索引,确定待安装过滤表项对应的位置索引范围,然后根据位置索引范围与预期位置索引的关系对预期位置索引进行校正,获得最终位置索引,该最终位置索引一定能够标识硬件表中的一个位置,且是空闲的位置,这样基于最终位置索引就可以成功将待安装过滤表项安装到硬件表中。
其中,步骤102的目的是确定待安装过滤表项在硬件表中的安装位置的范围,该范围对应的位置索引构成位置索引范围。在本实施例中,过滤表项的安装顺序在一定程度上仍是按照各过滤表项的优先值的大小进行的,所以过滤表项安装装置确定待安装过滤表项在硬件表中的安装位置的范围的过程实际上是确定硬件表中各已安装过滤表项中优先值与所述待安装过滤表项的优先值相邻且大于待安装过滤表项的优先值的已安装过滤表项以及优先值与所述待安装过滤表项的优先值相邻且小于所述待安装过滤表项的优先值的已安装过滤表项,然后根据确定出的已安装过滤表项的位置索引确定出待安装过滤表项在硬件表中的安装位置的范围的过程。也就是说,过滤表项安装装置根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在硬件表中的位置索弓丨,确定待安装过滤表项对应的位置索引范围的过程实际上是根据待安装过滤表项的优先值和硬件表中各已安装过滤表项的优先值,确定出各已安装过滤表项中优先值与待安装过滤表项的优先值相邻且大于和小于待安装过滤表项的优先值的两个已安装过滤表项,然后根据确定出的两个已安装过滤表项的位置索引确定出位置索引范围的过程。上述过程可以采用各种方式来实现,例如可以采用将待安装过滤表项的优先值与 硬件表中各已安装过滤表项的优先值逐个进行比较,从而确定优先值与待安装过滤表项的优先值相邻且大于和小于待安装过滤表项的优先值的两个已安装过滤表项,然后根据确定出的两个已安装过滤表项的位置索引确定出位置索引范围。除此之外,本实施例给出一种步骤102的优选实施方式,该实施方式如图4所示,包括步骤1021、根据待安装过滤表项的优先值和硬件表中各已安装过滤表项的优先值,使用平衡二叉树对待安装过滤表项和各已安装过滤表项进行排序。步骤1022、根据平衡二叉树确定待安装过滤表项的前一个过滤表项,并获取待安装过滤表项的前一个过滤表项的位置索引作为左位置索引。这里待安装过滤表项的前一个过滤表项是指优先值与待安装过滤表项的优先值相邻,且小于待安装过滤表项的优先值的一个过滤表项。如果待安装过滤表项不存在前一个过滤表项,意味着其前一个过滤表项为空,此时,待安装过滤表项的前一个过滤表项的位置索引为O。步骤1023、根据平衡二叉树确定待安装过滤表项的后一个过滤表项,并获取待安装过滤表项的后一个过滤表项的位置索引作为右位置索引。这里待安装过滤表项的后一个过滤表项是指优先值与待安装过滤表项的优先值相邻,且大于待安装过滤表项的优先值的一个过滤表项。如果待安装过滤表项不存在后一个过滤表项,意味着其后一个过滤表项为空,此时,待安装过滤表项的后一个过滤表项的位置索引为硬件表的容量(即硬件表中的最大位置索引)。步骤1024、由左位置索引和右位置索引确定出上述位置索引范围。在此说明,上述步骤1022和步骤1023的先后顺序不做限定。上述实施方式的核心思想是在安装一条过滤表项时,先把待安装过滤表项和已经安装过滤表项按优先值顺序挂到平衡二叉树上,通过查找待安装过滤表项的前一个过滤表项和后一个过滤表项,计算出待安装过滤表项在硬件表中的位置索引范围。该实施方式使用平衡二叉树来确定位置索引范围,具有效率较高、速度较快的优势。
在一可选实施方式中,步骤103的一种可选实施方式包括首先,判断位置索引范围中是否存在未被使用的位置索引。如果判断结果为位置索引范围中存在未被使用的位置索引,则判断未被使用的位置索引是否包括预期位置索引,即判断预期位置索引是否落在位置索引范围内,如果判断结果为是,即未被使用的位置索引包括预期位置索引,说明预期位置索引是有效位置索引,能够唯一指向硬件表中的一个空闲位置,故确定预期位置索引为最终位置索引;如果判断结果为否,即未被使用的位置索引不包括预期位置索引,说明预期位置索引可能存在问题,故需要对其进行校正,将未被使用的位置索引中与预期位置索引最近的一个位置索引作为最终位置索引,此时,最终位置索引可以唯一指向硬件表中的一个空闲位置。在此说明,上述仅为步骤103的一种可选实施方式,并不是唯一实施方式。例如,除了选择未被使用的位置索引中与预期位置索引最近的一个位置索引作为最终位置索引之外,还可以采用其他方式,例如随机选择方式选择其中一个位置索引作为最终位置索引,还可以选择距离预期位置索引最远的一个位置索引作为最终位置索引等。
步骤104、将待安装过滤表项安装在硬件表中最终位置索引对应的位置。在确定出最终位置索引后,过滤表项安装装置将待安装过滤表项安装在硬件表中最终位置索引对应的位置,从而完成了待安装过滤表项的安装。由上述可见,在本实施例中,预先设定硬件表中的安装间隔,在安装过滤表项时,首先确定出待安装过滤表项在硬件表中的预期位置索引,然后确定出待安装过滤表项在硬件表中的位置索引范围,通过位置索引范围对预期位置索引进行校正,确定待安装过滤表项在硬件表中的最终位置索引,最后将待安装的过滤表项安装在硬件表中最终位置索引对应的位置,完成过滤表项的安装,由于不再是顺序紧凑的对过滤表项进行安装,而是按照预设的安装间隔进行安装,这样当后续硬件表发生变动(例如在硬件表中插入新新过滤表项,或者更新过滤表项的优先值等)时,可以不用移动或者减少移动已安装的过滤表项,减少了移动处理消耗的时间,减少了过滤表项的安装时间,有利于过滤表项及时生效。图5A为本发明另一实施例提供的过滤表项安装方法的流程图。如图5A所示,本实施例的方法包括步骤501、根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定待安装过滤表项在硬件表中的预期位置索引。步骤502、根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在硬件表中的位置索引,确定待安装过滤表项对应的位置索引范围。步骤503、判断位置索引范围中是否存在未被使用的位置索引,如果判断结果为是,即存在未被使用的位置索引,则执行步骤504,如果判断结果为否,即不存在未被使用的位置索引,则执行步骤506。步骤504、根据预期位置索引与位置索引范围中存在的未被使用的位置索引的关系,确定待安装过滤表项在硬件表中的最终位置索引,然后执行步骤505。步骤505、将待安装过滤表项安装在硬件表中最终位置索引对应的位置。上述步骤501-步骤505可参见图I-图4所示实施例的描述,在此不再赘述。步骤506、对各已安装过滤表项中优先值大于或小于待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置,然后执行步骤507。
步骤507、将待安装过滤表项安装在硬件表中的第一空闲位置。在本实施例中,如果判断出位置索引范围中不存在未被使用的位置索引,说明该位置索引范围所标识的硬件表中的位置都已经安装了过滤表项,这同时意味着预期位置索引肯定没有落在该位置索引范围内。针对该情况,过滤表项安装装置通过对硬件表中各已安装过滤表项中优先值大于或小于待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置,然后将待安装过滤表项安装在硬件表中的第一空闲位置。其中,对硬件表中各已安装过滤表项中优先值大于或小于待安装过滤表项的优先值的已安装过滤表项进行移动的方式不做限定。例如,过滤表项安装装置可以对优先值大于待安装过滤表项的优先值的任意一个已安装过滤表项进行移动,将移动的已安装过滤表项原来的位置作为第一空闲位置。又例如,过滤表项安装装置也可以对优先值小于待安装过滤表项的优先值的任意一个已安装过滤表项进行移动,将移动的已安装过滤表项原来的位置作为第一空闲位置。再例如,如果需要移动的已安装过滤表项的上方和下方均有空闲位置,则过滤表项安装装置可以将需要移动的已安装过滤表项向上移动,也可以将需要移动的过滤表项向下移动。 在一可选实施方式中,本实施例给出一种步骤506的优选实施方式,包括过滤表项安装装置根据待安装过滤表项的优先值,确定各已安装过滤表项中优先值与待安装过滤表项的优先值相邻且大于和/或小于待安装过滤表项的优先值的两个已安装过滤表项,即确定硬件表中待安装过滤表项的前一个过滤表项和/或后一个过滤表项。然后,过滤表项安装装置根据优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项的位置索引,在空闲位置索引位图中查找,确定硬件表中距离优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项最近的第二空闲位置;在本实施方式中,使用空闲位置索引位图存储硬件表中空闲位置的索引,这样有利于提高查找效率。接着,过滤表项安装装置将优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项向第二空闲位置移动,获得第一空闲位置。其中,如果优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项与第二空闲位置之间还存在其他已安装过滤表项,则可以依次将这些已安装过滤表项向第二空闲位置移动,直到移动出优先值与待安装过滤表项相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项占用的空闲位置为止,将移动出的空闲位置作为第一空闲位置。在上述实施方式中,过滤表项安装装置可以对优先值与待安装过滤表项相邻且小于待安装过滤表项的优先值的已安装过滤表项进行移动,获取第一空闲位置;或者,过滤表项安装装置也可以对优先值与待安装过滤表项的优先值相邻且大于待安装过滤表项的优先值的已安装过滤表项进行移动,获取第一空闲位置。例如,如果硬件表中只存在优先值与待安装过滤表项的优先值相邻且小于待安装过滤表项的优先值的已安装过滤表项,则过滤表项安装装置对优先值与待安装过滤表项的优先值相邻且小于待安装过滤表项的优先值的已安装过滤表项进行移动,获取第一空闲位置。如果硬件表中只存在优先值与待安装过滤表项的优先值相邻且大于待安装过滤表项的优先值的已安装过滤表项,则过滤表项安装装置对优先值与待安装过滤表项的优先值相邻且大于待安装过滤表项的优先值的已安装过滤表项进行移动,获取第一空闲位置。如果硬件表中同时存在优先值与待安装过滤表项的优先值相邻且大于待安装过滤表项的优先值的已安装过滤表项,以及优先值与待安装过滤表项的优先值相邻且小于待安装过滤表项的优先值的已安装过滤表项,过滤表项安装装置可以随机选择使用对其中一个进行移动获得第一空闲位置,或者也可以选择距离第二空闲位置较近的一个进行移动来获得第一空闲位置。下面对本实施例中安装待安装过滤表项的过程进行举例说明。假设硬件表中已经存在过滤表项1、2、3和6,后续需要安装过滤表项4、5和7 ;其中,过滤表项1、2、3和6的优先值分别为10、20、30和40 ;过滤表项I、2、3和6在硬件表中的位置索引分别为O、2、4和6 ;过滤表项4、5和7的优先值分别为5、25和50,假设根据图3所示实施例的方法计算出过滤表项4、5和7的预期位置索引分别为0、2和8。其中,在根据图3所示方法计算预期位置索引时,如果硬件表项的容量、优先值间隔和安装间隔的取值不同计算出的结果会有所不同。图5B所示为通过平衡二叉树获取位置索引范围并校正预期位置索引过程的示意图。图5B中实线圈表示已经安装的过滤表项,虚线圈表示待安装的过滤表项。其中,使用平衡二叉树按照优先值以及各过滤表项的安装顺序对各过滤表项进行排序后,得到的平衡二叉树如图5B所示。
如图5B所示,从平衡二叉树上可以判断出过滤表项4的前一个过滤表项为空,后一个过滤表项为过滤表项1,其位置索引范围为O至过滤表项I的位置索引(即位置索引O)的开区间,该位置索引范围没有未被使用的位置索引,需要对硬件表中的过滤表项进行移动,则通过空闲位置索引位图找到最近的位置索引I对应的位置空闲(该位置即为第二空闲位置),将过滤表项4的后一个过滤表项(即过滤表项I)移动到位置索引I对应的位置,然后将过滤表项4安装到位置索引O对应的位置(该位置即为第一空闲位置)。如图5B所示,从平衡二叉树上可以判断出过滤表项5的前一个过滤表项为过滤表项2,后一个过滤表项为过滤表项3,其位置索引范围为过滤表项2的位置索引(即位置索引2)至过滤表项3的位置索引(即位置索引4)的开区间,该位置索引范围中存在未被使用的位置索引(只有一个,即位置索引3),但是预期位置索引2不属于未被使用的位置索引,所以选择未被使用的位置索引中最接近预期位置索引2的位置索引3作为过滤表项5的最终位置索引。如图5B所示,从平衡二叉树上可以判断出过滤表项7的前一个过滤表项为过滤表项6,后一个过滤表项为空,其位置索引范围为过滤表项6的位置索引(即位置索引6)至硬件表的容量(假设硬件表的容量为512X1024)的开区间,该位置索引范围中存在未被使用的位置索引,且预期位置索引8属于未被使用的位置索引,所以直接将预期位置索引8作为过滤表项7的最终位置索引。校正预期位置索引后得到的平衡二叉树如图5C所示。由上述可见,在本实施例中,在能够按照预设的安装间隔对待安装的过滤表项进行安装时,按照预设的安装间隔进行安装,这有利于后续硬件表发生变化时,不用移动或者减少移动已安装的过滤表项,减少了移动处理消耗的时间,减少了过滤表项的安装时间,有利于过滤表项及时生效;另外,在无法按照预设的安装间隔对待安装的过了表项进行安装时,可以对已安装的过滤表项进行移动,为待安装的过滤表项移动出空闲位置,从而完成待安装过滤表项的安装,该方式适用于在硬件表中插入新的过滤表项、更新过滤表项的优先值等硬件表的变动过程,并且由于已经安装的过滤表项也是按照预设的安装间隔安装的,所以在进行硬件表的变动时对过滤表项的移动较少,同样有利于提高过滤表项的安装效率,提高过滤表项生效的及时性。在此说明,本发明上述各实施例提供的过滤表项安装方法尤其适用于大容量硬件表中过滤表项的安装,在大容量硬件表的环境下,能大大减少对过滤表项的移动次数,能够更加明显的改善表项变动的性能问题。图6为本发明一实施例提供的过滤表项安装装置的结构示意图。如图6所示,本实施例的装置包括预期索引确定模块61、索引范围确定模块62、最终索引确定模块63和安装模块64。其中,预期索引确定模块61,用于根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定待安装过滤表项在硬件表中的预期位置索引。索引范围确定模块62,用于根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在所述硬件表中的位置索引,确定待安装过滤表项对 应的位置索引范围。最终索引确定模块63,与预期索引确定模块61和索引范围确定模块62连接,用于在索引范围确定模块62确定出的位置索引范围中存在未被使用的位置索引时,根据预期索引确定模块61确定出的预期位置索引与位置索引范围中未被使用的位置索引的关系,确定待安装过滤表项在硬件表中的最终位置索引。安装模块64,与最终索引确定模块63连接,用于将待安装过滤表项安装在硬件表中最终索引确定模块63确定出的最终位置索引对应的位置。在一可选实施方式中,如图7所示,本实施例的过滤表项安装装置还包括移动处理模块65。移动处理模块65,与最终索引确定模块63连接,用于在最终索引确定模块63确定出的位置索引范围中不存在未被使用的位置索引时,对硬件表中各已安装过滤表项中优先值大于或小于待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置。基于移动处理模块65,本实施例的安装模块64还与移动处理模块65连接,还用于将待安装过滤表项安装在硬件表中移动处理模块65获得的第一空闲位置。如图7所示,本实施例的预期索引确定模块61的一种可选实现结构包括优先值获取单元611和索引获取单元612。优先值获取单元611,用于将待安装过滤表项的优先值与优先值间隔相除,获得待安装过滤表项的连续优先值。索引获取单元612,与优先值获取单元611连接,用于将优先值获取单元611获得的连续优先值与安装间隔相乘,获得上述预期位置索引。可选的,索引获取单元612与最终索引确定模块63连接。进一步可选的,本实施例的预期索引确定模块61还可以包括优先值校正单元613。优先值校正单元613,用于根据硬件表的容量截取待安装过滤表项的优先值对应的二进制序列的低N位,根据所截取的低N位计算出待安装过滤表项的截取优先值。其中,N为自然数。基于此,优先值获取单元611还与优先值校正单元613连接,具体可用于将优先值校正单元613计算出的待安装过滤表项的截取优先值与优先值间隔相除,获得待安装过滤表项的连续优先值。可选的,优先值校正单元613具体可用于将硬件表的容量与优先值间隔相乘,将相乘的结果与安装间隔相除,获得截取数值,将截取数值进行右移直到结果为O,获得右移的次数,将右移的次数减去I作为截取的待安装过滤表项的优先值对应的二进制序列的位数N,然后截取待安装过滤表项的优先值对应的二进制序列的低N位。如图7所示,本实施例的索引范围确定模块62的一种可选实现结构包括排序单元621、位置索引获取单元622和索引范围确定单元623。排序单元621,用于根据待安装过滤表项的优先值和硬件表中各已安装过滤表项的优先值,使用平衡二叉树对待安装过滤表项和硬件表中各已安装过滤表项进行排序。位置索引获取单元622,与排序单元621连接,用于根据平衡二叉树确定待安装过滤表项的前一个过滤表项,并获取待安装过滤表项的前一个过滤表项的位置索引作为左位置索引,以及根据平衡二叉树确定待安装过滤表项的后一个过滤表项,并获取待安装过滤表项的后一个过滤表项的位置索引作为右位置索引。索引范围确定单元623,与位置索引获取单元622连接,用于由位置索 引获取单元622获取的左位置索引和位置索引获取单元622获取的右位置索引确定出上述位置索引范围。可选的,索引范围确定单元623与最终索引确定模块63连接。在一可选实施方式中,最终索引确定模块63具体用于在位置索引范围中的未被使用的位置索引包括预期位置索引时,确定预期位置索引为待安装过滤表项在硬件表中的最终位置索引,或者在位置索引范围中未被使用的位置索引不包括预期位置索引时,确定未被使用的位置索引中与预期位置索引最近的一个位置索引作为待安装过滤表项在硬件表中的最终位置索引。如图7所示,本实施例的移动处理模块65的一种可选实现结构包括表项确定单元651、位置确定单元652和移动获取单元653。其中,表项确定单元651,用于根据待安装过滤表项的优先值,确定各已安装过滤表项中优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值后的已安装过滤表项。可选的,表项确定单元651与最终索引确定模块63连接。位置确定单元652,与表项确定单元651连接,用于根据表项确定单元651确定出的优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项的位置索引,在空闲位置索引位图中查找,确定硬件表中距离优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项最近的第二空闲位置。移动获取单元653,与表项确定单元651和位置确定单元652连接,用于将表项确定单元651确定出的优先值与待安装过滤表项的优先值相邻且大于或小于待安装过滤表项的优先值的已安装过滤表项向位置确定单元652确定出的第二空闲位置移动,获得第一空闲位置。可选的,移动获取单元653与安装模块64连接,用于向安装模块64提供第一空闲位置。本实施例提供的过滤表项安装装置可以设置在各种需要安装过滤表项的设备中实现。或者,本实施例提供的过滤表项安装装置还可以直接作为各种需要安装过滤表项的设备实现。或者,本实施例提供的过滤表项安装装置还可以独立于各种需要安装过滤表项的设备实现,但与所述设备连接。这里所述需要安装过滤表项的设备可以是交换机、路由器、防火墙设备等。
本实施例提供的过滤表项安装装置的各功能模块或单元可用于执行上述方法实施例的流程,在此不再赘述,详见方法实施例的描述。本实施例提供的过滤表项安装装置,通过预先设定硬件表中的安装间隔,在安装过滤表项时,首先确定出待安装过滤表项在硬件表中的预期位置索引,然后确定出待安装过滤表项在硬件表中的位置索引范围,通过位置索引范围对预期位置索引进行校正,确定待安装过滤表项在硬件表中的最终位置索引,最后将待安装的过滤表项安装在硬件表中最终位置索引对应的位置,完成过滤表项的安装,由于不再是顺序紧凑的对过滤表项进行安装,而是按照预设的安装间隔进行安装,这样当后续硬件表发生变动(例如在硬件表中插入新新过滤表项,或者更新过滤表项的优先值等)时,可以不用移动或者减少移动已安装的过滤表项,减少了移动处理消耗的时间,减少了过滤表项的安装时间,有利于过滤表项及时生效。本发明一实施例提供一种网络设备,包括过滤表项安装装置。本实施例的过滤表项安装装置可以是本发明上述实施例提供的过滤表项安装装置,其实现结构和工作原理均可参见上述实施例的描述,在此不再赘述。 本实施例的网络设备包括过滤表项安装装置,可用于执行本发明上述实施例提供的过滤表现安装方法的流程,同样可以提高过滤表项的安装时间,有利于过滤表项及时生效。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种过滤表项安装方法,其特征在于,包括 根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定所述待安装过滤表项在所述硬件表中的预期位置索引; 根据所述待安装过滤表项的优先值、所述硬件表中各已安装过滤表项的优先值和所述各已安装过滤表项在所述硬件表中的位置索引,确定所述待安装过滤表项对应的位置索引范围; 如果所述位置索引范围中存在未被使用的位置索引,根据所述预期位置索引与所述未被使用的位置索引的关系,确定所述待安装过滤表项在所述硬件表中的最终位置索引; 将所述待安装过滤表项安装在所述硬件表中所述最终位置索引对应的位置。
2.根据权利要求I所述的过滤表项安装方法,其特征在于,还包括 如果所述位置索引范围中不存在未被使用的位置索引,对所述各已安装过滤表项中优先值大于或小于所述待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置,将所述待安装过滤表项安装在所述硬件表中的所述第一空闲位置。
3.根据权利要求I所述的过滤表项安装方法,其特征在于,所述根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定所述待安装过滤表项在所述硬件表中的预期位置索引包括 将所述待安装过滤表项的优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值; 将所述连续优先值与所述安装间隔相乘,获得所述预期位置索引。
4.根据权利要求3所述的过滤表项安装方法,其特征在于,所述将所述待安装过滤表项的优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值之前包括 根据所述硬件表的容量截取所述待安装过滤表项的优先值对应的二进制序列的低N位,根据所截取的低N位计算出所述待安装过滤表项的截取优先值,其中,N为自然数; 所述将所述待安装过滤表项的优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值包括 将所述待安装过滤表项的截取优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值。
5.根据权利要求4所述的过滤表项安装方法,其特征在于,所述根据所述硬件表的容量截取所述待安装过滤表项的优先值对应的二进制序列的低N位包括 将所述硬件表的容量与所述优先值间隔相乘,将相乘的结果与所述安装间隔相除,获得截取数值; 将所述截取数值进行右移直到结果为O,获得右移的次数; 将所述右移的次数减去1,作为截取的所述待安装过滤表项的优先值对应的二进制序列的位数N,然后截取所述待安装过滤表项的优先值对应的二进制序列的低N位。
6.根据权利要求1-5任一项所述的过滤表项安装方法,其特征在于,所述根据所述待安装过滤表项的优先值、所述硬件表中各已安装过滤表项的优先值和所述各已安装过滤表项在所述硬件表中的位置索引,确定所述待安装过滤表项对应的位置索引范围包括 根据所述待安装过滤表项的优先值和所述各已安装过滤表项的优先值,使用平衡二叉树对所述待安装过滤表项和所述各已安装过滤表项进行排序;根据所述平衡ニ叉树确定所述待安装过滤表项的前ー个过滤表项,并获取所述前ー个过滤表项的位置索引作为左位置索引; 根据所述平衡ニ叉树确定所述待安装过滤表项的后ー个过滤表项,并获取所述后ー个过滤表项的位置索引作为右位置索引; 由所述左位置索引和所述右位置索引确定所述位置索引范围。
7.根据权利要求1-5任一项所述的过滤表项安装方法,其特征在于,所述根据所述预期位置索引与所述未被使用的位置索引的关系,确定所述待安装过滤表项在所述硬件表中的最終位置索引包括 如果所述未被使用的位置索引包括所述预期位置索引,确定所述预期位置索引为所述待安装过滤表项在所述硬件表中的所述最终位置索引; 如果所述未被使用的位置索引不包括所述预期位置索引,确定所述未被使用的位置索 引中与所述预期位置索引最近的ー个位置索引作为所述待安装过滤表项在所述硬件表中的所述最终位置索引。
8.根据权利要求2所述的过滤表项安装方法,其特征在于,所述对所述各已安装过滤表项中优先值大于或小于所述待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置包括 根据所述待安装过滤表项的优先值,确定所述各已安装过滤表项中优先值与所述待安装过滤表项的优先值相邻且大于和/或小于所述待安装过滤表项的优先值的已安装过滤表项; 根据优先值与所述待安装过滤表项的优先值相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项的位置索引,在空闲位置索引位图中查找,确定所述硬件表中距离优先值与所述待安装过滤表项的优先值相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项最近的第二空闲位置; 将优先值与所述待安装过滤表项相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项向所述第二空闲位置移动,获得所述第一空闲位置。
9.一种过滤表项安装装置,其特征在于,包括 预期索引确定模块,用于根据待安装过滤表项的优先值、相邻过滤表项之间预设的优先值间隔和硬件表中预设的安装间隔,确定所述待安装过滤表项在所述硬件表中的预期位置索引; 索引范围确定模块,用于根据所述待安装过滤表项的优先值、所述硬件表中各已安装过滤表项的优先值和所述各已安装过滤表项在所述硬件表中的位置索引,确定所述待安装过滤表项对应的位置索引范围; 最終索引确定模块,用于在所述位置索引范围中存在未被使用的位置索引时,根据所述预期位置索引与所述未被使用的位置索引的关系,确定所述待安装过滤表项在所述硬件表中的最終位置索引; 安装模块,用于将所述待安装过滤表项安装在所述硬件表中所述最终位置索引对应的位置。
10.根据权利要求9所述的过滤表项安装装置,其特征在于,还包括 移动处理模块,用于在所述位置索引范围中不存在未被使用的位置索引吋,对所述各已安装过滤表项中优先值大于或小于所述待安装过滤表项的优先值的已安装过滤表项进行移动,获得第一空闲位置; 所述安装模块还用于将所述待安装过滤表项安装在所述硬件表中的所述第一空闲位置。
11.根据权利要求9所述的过滤表项安装装置,其特征在于,所述预期索引确定模块包括 优先值获取单元,用于将所述待安装过滤表项的优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值; 索引获取单元,用于将所述连续优先值与所述安装间隔相乘,获得所述预期位置索引。
12.根据权利要求11所述的过滤表项安装装置,其特征在于,所述预期索引确定模块还包括 优先值校正单元,用于根据所述硬件表的容量截取所述待安装过滤表项的优先值对应的二进制序列的低N位,根据所截取的低N位计算出所述待安装过滤表项的截取优先值,其中,N为自然数; 所述优先值获取单元具体用于将所述待安装过滤表项的截取优先值与所述优先值间隔相除,获得所述待安装过滤表项的连续优先值。
13.根据权利要求12所述的过滤表项安装装置,其特征在于,所述优先值校正单元具体用于将所述硬件表的容量与所述优先值间隔相乘,将相乘的结果与所述安装间隔相除,获得截取数值,将所述截取数值进行右移直到结果为O,获得右移的次数,将所述右移的次数减去I作为截取的所述待安装过滤表项的优先值对应的二进制序列的位数N,然后截取所述待安装过滤表项的优先值对应的二进制序列的低N位。
14.根据权利要求9-13任一项所述的过滤表项安装装置,其特征在于,所述索引范围确定模块包括 排序单元,用于根据所述待安装过滤表项的优先值和所述各已安装过滤表项的优先值,使用平衡二叉树对所述待安装过滤表项和所述各已安装过滤表项进行排序; 位置索引获取单元,用于根据所述平衡二叉树确定所述待安装过滤表项的前一个过滤表项,并获取所述前一个过滤表项的位置索引作为左位置索引,以及根据所述平衡二叉树确定所述待安装过滤表项的后一个过滤表项,并获取所述后一个过滤表项的位置索引作为右位置索引; 索引范围确定单元,用于由所述左位置索引和所述右位置索引确定出所述位置索引范围。
15.根据权利要求9-13任一项所述的过滤表项安装装置,其特征在于,所述最终索引确定模块具体用于在所述未被使用的位置索引包括所述预期位置索引时,确定所述预期位置索引为所述待安装过滤表项在所述硬件表中的所述最终位置索引,或者在所述未被使用的位置索引不包括所述预期位置索引时,确定所述未被使用的位置索引中与所述预期位置索引最近的一个位置索引作为所述待安装过滤表项在所述硬件表中的所述最终位置索引。
16.根据权利要求10所述的过滤表项安装装置,其特征在于,所述移动处理模块包括 表项确定单元,用于根据所述待安装过滤表项的优先值,确定所述各已安装过滤表项中优先值与所述待安装过滤表项的优先值相邻且大于和/或小于所述待安装过滤表项的优先值的已安装过滤表项; 位置确定单元,用于根据优先值与所述待安装过滤表项的优先值相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项的位置索引,在空闲位置索引位图中查找,确定所述硬件表中距离优先值与所述待安装过滤表项的优先值相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项最近的第二空闲位置; 移动获取単元,用于将优先值与所述待安装过滤表项的优先值相邻且大于或小于所述待安装过滤表项的优先值的已安装过滤表项向所述第二空闲位置移动,获得所述第一空闲位置。
17.—种网络设备,其特征在于,包括权利要求9-16任一项所述的过滤表项安装装置。
全文摘要
本发明提供一种过滤表项安装方法、装置及网络设备。方法包括根据待安装过滤表项的优先值、预设的优先值间隔和预设的安装间隔,确定待安装过滤表项在硬件表中的预期位置索引;根据待安装过滤表项的优先值、硬件表中各已安装过滤表项的优先值和各已安装过滤表项在硬件表中的位置索引,确定待安装过滤表项对应的位置索引范围;如果位置索引范围中存在未被使用的位置索引,根据预期位置索引与未被使用的位置索引的关系,确定待安装过滤表项在硬件表中的最终位置索引;将待安装过滤表项安装在硬件表中最终位置索引对应的位置。采用本发明技术方案安装过滤表项,可以减少过滤表项的安装时间,提高过滤表项生效的及时性。
文档编号H04L29/06GK102857513SQ20121035094
公开日2013年1月2日 申请日期2012年9月19日 优先权日2012年9月19日
发明者吴兰萍, 赖利根 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1