一种ACL表项管理的方法和装置与流程

文档序号:19105286发布日期:2019-11-12 22:36阅读:222来源:国知局
一种ACL表项管理的方法和装置与流程

本申请涉及网络通信技术领域,特别涉及一种ACL表项管理的方法和装置。



背景技术:

ACL(Access Control List,访问控制列表)是一种流量访问控制技术,其通过在网络设备内的报文转发路径中设置一系列指定报文匹配条件和报文处理动作的表项,以实现对特定报文进行特定控制的功能。

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表项即可,从而可以提高添加ACL表项时的效率。

附图说明

图1为本申请一示例性实施例示出的现有技术中,一种ACL表项在片区中的添加位置示意图;

图2为本申请一示例性实施例示出的现有技术中片区数量改变后,一种ACL表项在片区中的添加位置示意图;

图3为本申请一示例性实施例示出的一种ACL表项在片区中的添加位置示意图;

图4为本申请一示例性实施例示出的片区数量改变后,一种ACL表项在片区中的添加位置示意图;

图5为本申请一示例性实施例示出的一种ACL芯片中ACL表项管理的方法流程图;

图6为本申请一示例性实施例示出的一种片区模式配置的示意图;

图7为本申请一示例性实施例示出的一种子模式配置界面示意图;

图8为本申请一示例性实施例示出的另一种子模式配置界面示意图;

图9为本申请一示例性实施例示出的一种ACL配置界面示意图;

图10为本申请一种ACL表项管理的装置所在网络设备的一种硬件结构图;

图11为本申请一示例性实施例示出的一种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表项的优先级的高低,将优先级高的添加至优先级低的前面。

在现有技术中,如果分配给某一功能模块的片区数量为1片,该功能模块的ACL表项中包含两种不同用途的ACL表项,第一种用途的ACL表项的优先级比第二种用途的ACL表项的优先级高,那么该片区中的前一半的ACL表项分配给第一种用途的ACL表项使用,后一半的ACL表项分配给第二种用途的ACL表项使用。如果该功能模块的ACL表项中包含三种不同用途的ACL表项,那么按照优先级从高到底的顺序,各种不同用途的ACL表项占有三分之一的ACL表项数量,以此类推。

另外,在网络设备中,不同的功能模块并不会经常同时运行,且不同时间段内,各功能模块所需要的ACL表项的数量也不相等,因此用户通常会根据需要对ACL芯片中的片区的ACL表项的模式进行重新配置。

在现有技术中,当片区的ACL表项的模式进行重新配置后,原先已经下发的ACL表项就需要根据该ACL表项所属的模式,将该ACL表项中部分需要移动的ACL表项,整体移动至对应于该ACL表项的片区中。

请参见图1,图1为本申请一示例性实施例示出的现有技术中,一种ACL表项在片区中的添加位置示意图。

请参见图2,图2为本申请一示例性实施例示出的现有技术中片区数量改变后,一种ACL表项在片区中的添加位置示意图。

从图1和图2中可以看出,现有技术中,当改变某一功能模块对应的片区数量时,已经下发的ACL表项在片区中变化情况。

例如,当某一功能模块的ACL表项占有1个片区,且该功能模块的ACL表项中包括两种不同用途的ACL表项,第一种用途的ACL表项占有该片区中前一半ACL表项,第二种用途的ACL表项占有该片区中的后一半ACL表项。当该功能模块的ACL表项占有的片区从原先的1个片区变成2个片区,那么每种用途的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表项时的效率。

请参见图3,图3为本申请一示例性实施例示出的一种ACL表项在片区中的添加位置示意图。

请参见图4,图4为本申请一示例性实施例示出的片区数量改变后,一种ACL表项在片区中的添加位置示意图。

从图3和图4中可以看出,本申请提供的技术方案中,某一功能模式的片区数量改变后,ACL表项在片区中的改变情况。

采用本申请示出的技术方案,当某一功能模块的片区数量改变后,不需要移动以及下发的ACL表项,有时候该功能模块占有的片区中还可能存在空闲的片区,在这样的情况下,当另一功能模块需要更多的ACL表项资源时,可以直接将该空闲的片区重新配置,将该空闲的片区分配给需要更多ACL表项资源的功能模块,从而可以避免已经下发的ACL表项的移动。

请参见图5,图5为本申请一示例性实施例示出的一种ACL芯片中ACL表项管理的方法流程图。

步骤501:获取用户通过预设的模式配置界面为各片区预配置的ACL模式,以及通过预设的子模式配置界面为各片区预配置的ACL子模式;其中,同一个ACL模式下包括至少一个ACL子模式,ACL子模式中包括支持优先级的ACL子模式和不支持优先级的ACL子模式。

请参见图6,图6为本申请一示例性实施例示出的一种片区模式配置的示意图。

在本申请中,对同一功能模块的不同用途的ACL表项定义为子模式,一个模式中至少包括一个子模式。

在本申请示出的实施方式中,用户可以在网络设备上加载ACL表项配置的插件,然后启动该插件。该插件启动成功后,在用户界面中可以显示图6所示的片区模式配置界面,在该界面中包括片区序号,以及对应于各片区的模式配置选项和对应于各模式的子模式配置选项。用户可以在该配置界面中点击模式选项,然后在提供的模式中选择需要配置的模式。

当对片区的模式配置完成后,可以点击子模式选项,对该片区模式的子模式进行配置。

例如,将流定义功能模块对应的片区模式配置为流定义模式,然后将对应于流定义模式的子模式配置为流定义白名单子模式和入口流定义子模式。

在本申请中,存在两类功能模块,一类是模块内部自动下发ACL表项的功能模块,这一类功能模块由于无法确定所需要的ACL表项数量,因此对应于该功能模块的ACL表项无法调整。另一类是用户可以手动配置的功能模块,这一类功能模块可以根据用户需要灵活地调整内部的ACL表项。

对于模块内部自动下发ACL表项的功能模块,子模式是系统预配置的,用户不能对该子模式进行修改,只能查看以由子模式间的优先级关系,以及子模式内各ACL表项之间是否存在优先级的关系。对于用户可以手动配置的功能模块,对应于该功能模块的子模式可以手动配置,用户不仅可以修改子模式间的优先级,也可以增减子模式,另外还可以设置子模式内各ACL表项之间是否存在优先级的关系。

请参见图7,图7为本申请一示例性实施例示出的一种子模式配置界面示意图。

当用户点击子模式选项后,用户界面中可以显示如图7所示的子模式配置界面。

其中,图7所示的子模式配置界面中显示的子模式为预先配置的,所述子模式所属的功能模块为预配置的,用户无法对子模式进行修改,只能查看子模式的相关参数。

请参见图8,图8为本申请一示例性实施例示出的另一种子模式配置界面示意图。

其中,图8所示的子模式配置界面中显示的子模式可以手动配置。用户可以指定子模式的名称,可以通过拖拽子子模式来调整子模式之间的优先级,可以通过来创建新的子模式,可以通过来删除不需要的子模式,也可以通过选择或者来指定子模式中各ACL表项之间是否存在优先级的关系,其中表示未选中的状态,表示选中的状态。

当用户对各片区的模式配置完成,并对各模式中的子模式也配置完成后,用户就可以对ACL表项进行配置。

步骤502:获取用户通过预设的ACL配置界面配置的目标ACL表项,以及为该目标ACL表项配置的ACL模式和ACL子模式。

请参见图9,图9为本申请一示例性实施例示出的一种ACL配置界面示意图。

当用户对各片区的模式完成配置,并对各模式中的子模式也配置完成后,用户可以启动ACL配置软件,然后在用户界面中可以显示图9所示的ACL配置界面。

用户可以在ACL配置界面中进行目标ACL表项的配置。具体地,用户可以对目标ACL表项配置与该目标ACL表项对应的模式和子模式,如果该目标ACL表项所属的子模式中的各ACL表项之间存在优先级的关系,那么用户可以对该目标ACL表项指定优先级数值的大小;如果该目标ACL表项所属的子模式中的各ACL表项之间不存在优先级的关系,那么用户就不需要对该目标ACL表项指定优先级数值的大小。

在本申请示出的实施方式中,用户对目标ACL表项完成配置后,用户可以将该目标ACL表项下发。具体地,在用户可以点击在ACL配置界面中预设的下发按钮。点击该下发按钮后,网络设备的ACL配置软件可以触发一个下发指令。该下发指令可以是添加目标ACL表项,删除目标ACL表项,修改目标ACL表项,移动目标ACL表项等。在本实施例中主要描述添加目标ACL表项的情况。

步骤503:响应于针对该目标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表项中。

例如,请参见表1,表1为本申请一示例性实施例示出的一种ACL芯片中ACL表项分布位置的示意表。

表1

假设,该目标ACL表项所属的模式为IPv4,所属的子模式为子模式2,且子模式2中各ACL表项之间不存在优先级的关系,该目标ACL表项的名称为b8。现在将该目标ACL表项添加至ACL芯片中。

请参见表2,表2为本申请一示例性实施例示出的一种添加ACL表项的示意表。

表2为将该目标ACL表项添加在表1所示的ACL中之后,ACL芯片中各ACL表项的分布情况。

表2

由于该目标ACL表项所属的子模式中各ACL表项之间不存在优先级关系,位置编号为3的地方刚好是空闲的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表项之后产生空闲表项。

本实施例中,所述第一方向为子模式优先级高的方向,所述第二方向为子模式优先级低的方向。

例如,请参见表3,表3为本申请一示例性实施例示出的另一种ACL芯片中ACL表项分布位置的示意表。

表3

假设目标ACL表项所属的模式仍然为IPv4,所属的子模式为子模式2,且子模式2中各ACL表项之间不存在优先级的关系,该目标ACL表项的名称为b8。现在将该目标ACL表项添加至表3所示的ACL芯片中。

子模式2的区域中不存在空闲表项,位置编号为5的ACL表项为第一个ACL表项。网络设备可以启动计数器,从该ACL表项开始,向第一方向开始遍历ACL表项,统计第一移动次数,从表3中可以统计出,第一移动次数为3。然后网络设备可以向第二方向开始遍历ACL表项,由于子模式2为不支持优先级的子模式,子模式3也为不支持优先级的子模式,因此,从表3中可以统计出,第二移动的次数为1。

请参见表4,表4为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

表4

由于第二移动次数小于第一移动次数,因此,网络设备可以向第二方向移动ACL表项。具体地,网络设备可以将ACL表项名称为c1的ACL表项移动到位置编号为16的空闲ACL表项中。然后位置编号为12的ACL表项变成空闲的ACL表项,网络设备就可以将目标ACL表项添加至该空闲的ACL表项中。

例如,请参见表5,表5为本申请一示例性实施例示出的另一种ACL芯片中ACL表项的分布位置的示意表。

表5

假设目标ACL表项所属的模式仍然为IPv4,所属的子模式为子模式2,且子模式2中各ACL表项之间不存在优先级的关系,该目标ACL表项的名称为b8。现在将该目标ACL表项添加至表5所示的ACL芯片中。

子模式2的区域中不存在空闲表项,位置编号为5的ACL表项为第一个ACL表项。网络设备可以启动计数器,从该ACL表项开始,向第一方向开始遍历ACL表项,统计第一移动次数,由于子模式1为不支持优先级的子模式,因此,从表5中可以统计出,第一移动次数为1。然后网络设备可以向第二方向开始遍历ACL表项,由于子模式2为不支持优先级的子模式,子模式3为支持优先级的子模式,因此,从表5中可以统计出,第二移动的次数为4。

请参见表6,表6为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

由于第一移动次数小于第二移动次数,因此,网络设备可以向第一方向移动ACL表项。具体地,网络设备可以将ACL表项名称为a3的ACL表项移动到位置编号为1的空闲ACL表项中。然后位置编号为4的ACL表项变成空闲的ACL表项,网络设备就可以将目标ACL表项添加至该空闲的ACL表项中。

在本申请的实施例中,如果网络设备没有查找到与该目标ACL表项所属的子模式对应的ACL表项区域,那么网络设备可以在比目标ACL表项所属的子模式的优先级更高的所有子模式对应的区域之后,查找空闲表项,然后将该目标ACL表项添加至该空闲的ACL表项中。

例如,请参见表7,表7为本申请一示例性实施例示出的另一种ACL芯片中ACL表项的分布位置的示意图。

表7

假设目标ACL表项所属的模式为IPv4,所属的子模式为子模式4,子模式4的优先级小于子模式3,且子模式4中各ACL表项之间不存在优先级的关系,该目标ACL表项的名称为d1。现在将该目标ACL表项添加至表7所示的ACL芯片中。

请参见表8,表8为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

表8

由于目标ACL表项所属的子模式的优先级小于子模式3的优先级,且位置编号为16的ACL表项为空闲表项。因此,网络设备可以将该目标ACL表项添加至该空闲表项中。

以上为目标ACL表项所属的子模式为不支持优先级的子模式,对于目标ACL表项所属的子模式为支持优先级的子模式,添加至ACL芯片中的情况请看以下描述的内容。

在本申请示出的实施例中,如果该目标ACL表项所属的子模式为支持优先级的子模式,那么网络设备可以根据该目标ACL表项的优先级,在与该目标ACL表项所属的ACL子模式对应的ACL表项区域中查找该ACL表项的添加位置;如果所述添加位置为空闲表项,那么网络设备可以将该目标ACL表项添加至该空闲表项。

例如,请参见表9,表9为本申请一示例性实施例示出的另一种ACL芯片中ACL表项的分布位置的示意表。

表9

假设目标ACL表项所属的模式为IPv4,所属的子模式为子模式1,且子模式1中各ACL表项之间存在优先级的关系,该目标ACL表项的名称为a4,优先级数值为4。现在将该目标ACL表项添加至表9所示的ACL芯片中。

请参见表10,表10为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

表10

由于目标ACL表项的优先级为4,根据优先级,在子模式1对应的ACL表项区域中可以找到添加位置为位置编号为4的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表项之后产生空闲表项。

例如,请参见表11,表11为本申请一示例性实施例示出的另一种ACL芯片中ACL表项的分布位置的示意表。

表11

假设目标ACL表项所属的模式为IPv4,所属的子模式为子模式2,且子模式2中各ACL表项之间存在优先级的关系,该目标ACL表项的名称为b8,优先级数值为8。现在将该目标ACL表项添加至表11所示的ACL芯片中。

根据目标ACL表项的优先级,该目标ACL表项的添加位置为位置编号为12的位置。由于子模式2为支持优先级的子模式,向第一方向移动ACL表项时,第一移动次数为7。由于子模式3为不支持优先级的子模式,向第二方向移动ACL表项时,第二移动次数为1。

请参见表12,表12为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

表12

由于第二移动次数小于第一移动次数,移动方向为第二方向,因此网络设备可以将子模式为子模式3,ACL表项名称为c1的ACL表项移动至位置编号为16的位置,位置编号为12的位置就变成空闲的ACL表项,然后网络设备就可以将目标ACL表项添加至该空闲表项。

请参见表13,表13为本申请一示例性实施例示出的另一种ACL芯片中ACL表项的分布位置的示意表。

表13

假设目标ACL表项所属的模式为IPv4,所属的子模式为子模式2,且子模式2中各ACL表项之间存在优先级的关系,该目标ACL表项的名称为b8,优先级数值为2。现在将该目标ACL表项添加至表13所示的ACL芯片中。

根据目标ACL表项的优先级,该目标ACL表项的添加位置为位置编号为5的位置。由于子模式2为支持优先级的子模式,子模式1为不支持优先级的子模式,向第一方向移动ACL表项时,第一移动次数为2。由于子模式3为不支持优先级的子模式,向第二方向移动ACL表项时,第二移动次数为7。

请参见表14,表14为本申请一示例性实施例示出的另一种ACL芯片中添加ACL表项的示意表。

表14

由于第一移动次数小于第二移动次数,移动方向为第一方向,因此网络设备可以将位置编号为5的ACL表项向第一方向移动,由于子模式2下的第一条ACL表项之前没有空闲表项,所以需要将子模式1下的最后一条ACL表项(即表项名称为a3的ACL表项)作为待移动表项,由于子模式1为不支持优先级的子模式,因此网络设备可以将表项名称为a3的ACL表项移动至子模式1下的第一条ACL表项(即表项名称为a1的ACL表项)之前,位置编号为4的表项就变成了空闲的表项。然后网络设备可以将表项名称为b1的ACL表项移动至位置编号为4的空闲表项,位置编号为5的表项就变成了空闲的表项。然后网络设备可以将目标ACL表项添加至位置编号为5的空闲表项。

由以上本申请提供的技术方案可以看出,通过获取用户通过预设的模式配置界面为各片区预配置的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表项管理的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图10所示,为本申请一种ACL表项管理的装置所在网络设备的一种硬件结构图,除了图10所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该ACL表项管理的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图11,图11为本申请一示例性实施例示出的一种ACL表项管理的装置,应用于网络设备,所述装置包括:第一获取单元1110,第二获取单元1120,响应单元1130。

其中,所述第一获取单元1110,用于获取用户通过预设的模式配置界面为各片区预配置的ACL模式,以及通过预设的子模式配置界面为各片区预配置的ACL子模式;其中,同一个ACL模式下包括至少一个ACL子模式,ACL子模式中包括支持优先级的ACL子模式和不支持优先级的ACL子模式;

所述第二获取单元1120,用于获取用户通过预设的ACL配置界面配置的目标ACL表项,以及为该目标ACL表项配置的ACL模式和ACL子模式;

所述响应单元1130,用于响应于针对该目标ACL表项的下发指令,判断该目标ACL表项的子模式是否为不支持优先级的ACL子模式;如果是,将该目标ACL表项添加至与该ACL表项所属的ACL子模式对应的添加位置中的空闲表项。

在本申请的实施例中,所述响应单元1130具体用于:

检查待移动的ACL表项所属子模式是否支持优先级;

如果是,将该子模式下的所有ACL表项逐条进行移动;

如果否,当移动方向为第一方向时,将该待移动的ACL表项移动至该子模式下的第一条ACL表项之前;或者,在该子模式下的第一条ACL表项之前不存在空闲表项时,将优先级高于该子模式的其它子模式下的最后一条ACL表项作为待移动的ACL表项进行移动,直到在该子模式下的第一条ACL表项之前产生空闲表项;

当移动方向为第二方向时,将该待移动的ACL表项移动至该子模式下的最后一条ACL表项之后;或者,在该子模式下的最后一条ACL表项之后不存在空闲表项时,将优先级低于该子模式的其它子模式下的第一条ACL表项作为待移动的ACL表项进行移动,直到在该子模式下的最后一条ACL表项之后产生空闲表项。

同时,所述响应单元1130也具体用于:

启动用于统计移动次数的计数器;

从该目标ACL表项对应的添加位置开始,遍历查找所述第一方向以及第二方向上的ACL表项;如果查找到的ACL表项所属的子模式支持优先级,则将该计数器加一;如果查找到的ACL表项所属的子模式不支持优先级,则在该子模式下的ACL表项遍历完成后,将该计数器加一。

所述响应单元1130进一步用于:

如果与该目标ACL表项所属的ACL子模式对应的添加位置中不存在空闲表项,从该添加位置中的第一个ACL表项开始,统计向所述第一方向移动ACL表项以在该添加位置中产生空闲表项的第一移动次数;以及,向所述第二方向移动ACL表项以在该添加位置中产生空闲表项的第二移动次数;

比较所述第一移动次数和所述第二移动次数;

如果所述第一移动次数大于所述第二移动次数,向所述第一方向移动ACL表项直到该添加位置中产生空闲表项,并将该目标ACL表项下发至该空闲表项;

如果所述第一移动次数小于所述第二移动次数,向所述第二方向移动ACL表项直到该添加位置中产生空闲表项,并将该目标ACL表项下发至该空闲表项。

所述响应单元1130进一步用于:

如果该目标ACL表项所属的ACL子模式为支持优先级的ACL子模式,根据该ACL表项的优先级,在与该目标ACL表项所属的ACL子模式对应的ACL表项区域中查找该ACL表项的添加位置;

如果所述添加位置为空闲表项,将该ACL表项添加至该空闲表项。

所述响应单元1130进一步用于:

如果所述添加位置不是空闲表项,从所述添加位置开始,统计向所述第一方向移动ACL表项以在该添加位置中产生空闲表项的第一移动次数;以及,向所述第二方向移动ACL表项以在该添加位置中产生空闲表项的第二移动次数;

比较所述第一移动次数和所述第二移动次数;

如果所述第一移动次数大于所述第二移动次数,向所述第一方向移动ACL表项直到该添加位置中产生空闲表项,并将该目标ACL表项下发至该空闲表项;

如果所述第一移动次数小于所述第二移动次数,向所述第二方向移动ACL表项直到该添加位置中产生空闲表项,并将该目标ACL表项下发至该空闲表项。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1