CN109150686B - Acl表项下发方法、装置及网络设备 - Google Patents
Acl表项下发方法、装置及网络设备 Download PDFInfo
- Publication number
- CN109150686B CN109150686B CN201811049927.9A CN201811049927A CN109150686B CN 109150686 B CN109150686 B CN 109150686B CN 201811049927 A CN201811049927 A CN 201811049927A CN 109150686 B CN109150686 B CN 109150686B
- Authority
- CN
- China
- Prior art keywords
- acl
- value
- issued
- logic unit
- index value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种ACL表项下发方法、装置及网络设备,在下发当前ACL时,基于当前待下发ACL表项优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息,然后再至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内,减少ACL表项批量下发时对芯片逻辑单元内表项的搬移数量,从而减少了表项下发的操作时间,使得ACL表项能够及时生效,不影响其它业务的正常运行。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种ACL表项下发方法、装置及网络设备。
背景技术
用户通过在网络设备的端口、VLAN(Virtual Local Area Network,虚拟局域网)等对象上绑定一定数量的ACL(Access Control List,访问控制列表)表项,来实现对相应对象上报文的过滤。在低端网络设备上,一般可以支持上百条ACL表项;而在高端网络设备上,可以支持上万条ACL表项。
ACL表项下发后保存在网络设备硬件芯片的芯片逻辑单元(slice)中。每条ACL表项都有自己的优先级,ACL表项的优先级越高,其在slice中的位置越靠上,硬件索引值越小,越先生效。换句话说,ACL表项的优先级决定了其在slice的存储位置。
当下发ACL表项时,会存在表项搬移的情况。例如,ACL3、ACL4在slice中的索引分别3、4,若待下发的ACL表项优先级介于ACL3、ACL4之间,就需要将ACL3上移(向slice硬件索引值小的方向移动)或者将ACL4下移(向slice硬件索引值大的方向移动),来为待下发ACL表项留出存储空间。
为了提高处理效率,ACL表项的批量下发在网络设备中是十分常见的一种操作。在传统的方案中,当slice内已存在的表项较多,分布比较随机时,若进行批量下发ACL表项操作,下发每条ACL表项都会存在一定数量的表项搬移。如此,整个批量操作就会存在大量的表项搬移,从而导致批量操作的耗时长,下发的ACL表项不能及时生效,甚至可能因为批量操作导致CPU占用率高,影响其它业务正常运行。
发明内容
有鉴于此,本发明实施例的目的在于提供一种ACL表项下发方法、装置及网络设备,以减少ACL表项批量下发时对slice内表项的搬移数量。
第一方面,本发明实施例提供了一种ACL表项下发方法,所述方法包括:基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息;至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内。
第二方面,本发明实施例提供了一种ACL表项批量下发装置,所述装置包括:获取模块,用于基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息;下发模块,用于至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内。
第三方面,本发明实施例提供了一种网络设备,包括相互耦合的存储器、硬件芯片以及处理器;所述硬件芯片包括至少一个芯片逻辑单元,所述存储器内存储计算机程序,所述计算机程序被所述处理器读取并运行时,执行第一方面任一实施方式所述的ACL表项下发方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面任一实施方式所述的ACL表项下发方法。
与现有技术相比,本发明各实施例提出的ACL表项下发方法、装置及网络设备,在进行ACL表项下发前,先基于当前待下发ACL表项优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息,然后再至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内,减少ACL表项批量下发时对芯片逻辑单元内表项的搬移数量,从而减少了表项下发的操作时间,使得ACL表项能够及时生效,不影响其它业务的正常运行。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本发明实施例提供的一种网络设备的结构示意图;
图2为本发明第一实施例提供的ACL表项下发方法的流程图之一;
图3为本发明第一实施例提供的ACL表项下发方法的流程图之二;
图4为本发明第一实施例提供的ACL表项在芯片逻辑单元内的情况之一;
图5为本发明第一实施例提供的ACL表项下发方法的流程图之三;
图6为本发明第一实施例提供的ACL表项在芯片逻辑单元内的情况之二;
图7为本发明第一实施例提供的ACL表项在芯片逻辑单元内的情况之三;
图8为本发明第一实施例提供的ACL表项下发方法的流程图之四;
图9为本发明第一实施例提供的ACL表项在芯片逻辑单元内的情况之四;
图10为本发明第二实施例提供的一种ACL表项批量下发装置的结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先,对本发明所涉及到的术语进行简要介绍:
ACL:访问控制列表(Access Control List),指网络设备中,可以识别某些报文特征,并可以对此类报文采取特定动作的规则表。
slice:为了方便管理和使用,存储ACL表项的硬件芯片会被划分成若干个芯片逻辑单元,这里所说的芯片逻辑单元即为slice。
VLAN:虚拟局域网(Virtual Local Area Network)是一种将同一局域网中的设备进行逻辑划分的技术,划分在同一VLAN内的设备可以进行二层通信,不同VLAN内的设备相互二层隔离。
在向网络设备下发ACL表项的过程中,会存在表项搬移的情况。为了提高处理效率,ACL表项的批量下发在网络设备中是十分常见的一种操作。
在传统的方案中,当slice内已存在的表项较多,分布比较随机时,若进行批量下发ACL表项操作,下发每条ACL表项都会存在一定数量的表项搬移。如此,整个批量操作就会存在大量的表项搬移,从而导致批量操作的耗时长,下发的ACL表项不能及时生效,甚至可能因为批量操作导致CPU占用率高,影响其它业务正常运行。
基于上述问题,在经过实践并仔细研究后,申请人得出了本发明实施例的技术方案,以降低ACL表项批量下发时引起的表项搬移的数量。
下面将对本发明实施例中的方案进行介绍:
请参看图1,本发明实施例提供的一种网络设备100,包括:存储器110、处理器120、硬件芯片130以及ACL表项下发装置。本发明实施例中所涉及的ACL表项下发方法以及装置均可以运行于网络设备100上。
所述存储器110、所述硬件芯片130、所述处理器120之间电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
所述ACL表项下发装置包括至少一个可以应用程序或固件(firmware)的形式存储于所述存储器110中或固化在所述网络设备100的操作系统(operating system,OS)中的应用程序功能模块。所述控制器120用于执行存储的可执行模块,例如ACL表项下发装置所包括的应用程序功能模块及计算机程序等。
请参照图2,图2是本发明第一实施例提供的一种ACL表项下发方法的流程图,所述方法包括:
步骤S110:基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息。
其中,所述待下发的批量ACL表项可以预先按照优先级从高到低排序或按照优先级从低到高进行排序。例如,第一次待下发的批量ACL表项为ACL1599-ACL1500、ACL1099-ACL1000,一共200条ACL表项;第二次待下发的批量ACL表项为ACL1299-ACL1200,一共100条ACL表项,两次待下发的批量ACL表项均按照优先级从高到低进行排序,当然,第一次批量下发的ACL表项的优先级与第二次批量下发的ACL表项的优先级之间没有必然的关系,例如,在上述举例中,第二次批量下发的ACL表项的优先级位于第一次批量下发的ACL表项优先级之间。
可选的,所述优先级变化趋势信息可以包括:增加趋势值以及降低趋势值。增加趋势值以及降低趋势值在初始状态的值默认为零,其在后续的变动过程中,都是基于当前待下发ACL表项的优先级在与已下发的上一条ACL表项的优先级进行比较之后而言的,其变动过程可以如下:
每次下发当前待下发ACL表项时,比较当前待下发ACL表项的优先级与已下发的上一条ACL表项优先级。若优先级增加,则检查降低趋势值,若不为零,则把降低趋势值、增加趋势值均清零;若为零,则把增加趋势值加一。若优先级相等或者降低,则检查增加趋势值,若不为零,则把降低趋势值、增加趋势值均清零;若为零,则把降低趋势值加一。
值得指出的是,ACL表项的优先级是由软件制定的,所以可能存在两条ACL表项优先级相等的情况,需要说明的是,本发明实施例中认定优先级相同的两条ACL表项,先下发的优先级高,后下发的优先级低。
步骤S120:至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内。
可选的,请参看图3,步骤S120可以包括:
步骤S121:在所述芯片逻辑单元内确定出一个已下发的目标ACL表项,将所述目标ACL表项的当前位置对应的索引值确定为目标索引值。
值得指出的是,芯片逻辑单元内的所有ACL表项均按照优先级减小的方式进行保存。
作为一种可选的实施方式,可以将当前待下发ACL表项与已存在芯片逻辑单元内的ACL表项按照优先级从高到低的顺序依次进行比较,然后从芯片逻辑单元内找到优先级小于当前待下发ACL表项的优先级的第一条ACL表项ACL1,并将ACL1确定为目标ACL表项。
芯片逻辑单元内用于保存ACL表项的每个区域都有相应的索引值,若保存在芯片逻辑单元内的ACL表项的优先级从高到低减小,那么ACL表项对应的索引值从小到大增加,即与ACL表项对应的索引值越小,其优先级越高。
在这种机制下,还可以将ACL1在芯片逻辑单元内的当前位置对应的索引值确定为目标索引值ACL1_index。
值得指出的是,若在后续操作过程中,ACL1在芯片逻辑单元内的位置发生了搬移,导致同一个ACL1在芯片逻辑单元内的位置发生变动时,ACL1_index也跟随变动。
作为另一种可选的实施方式,若通过上述方法不能在芯片逻辑单元内找到一个目标ACL1,此时,可以将芯片逻辑单元内的最大索引值加一后的值确定为ACL1_index。
步骤S122:判断所述增加趋势值是否小于所述降低趋势值。
步骤S123:在不小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值为所述目标索引值减一对应的处于空闲状态的相邻区域。
即在增加趋势值大于或等于降低趋势值,当前待下发ACL表项的下发趋势是优先级增加时,将所述当前待下发ACL表项存下发到芯片逻辑单元内索引值为ACL1_index-1的区域,当然,该区域肯定与ACL1相邻且需要处于空闲状态,没有被预先下发其它ACL表项。
步骤S124:在小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值小于所述目标索引值且距离所述目标索引值最远的处于空闲状态的最远区域,所述最远区域与所述目标ACL表项之间不存在其它ACL表项。
即在增加趋势值小于降低趋势值,当前待下发ACL表项的下发趋势是优先级降低时,则待下发ACL表项存储到ACL1_index-X(X≥1)。
当然,上述在执行步骤S123或者步骤S124时,是默认了存在处于空闲状态的相邻区域,即如图4所示的情况。
当增加趋势值或者降低趋势值一直增加时,若直接按照步骤S123或者步骤S124执行,可能会导致没有处于空闲状态的最远区域或者没有处于空闲状态的相邻区域供当前待下发ACL表项下发,此时,为了制造处于空闲状态的最远区域或者制造处于空闲状态的相邻区域,需要搬移的表项数量会增加,为了缓解这个问题,作为一种可选的实施方式,请参看图5,在步骤S122之前,所述方法还可以包括:
步骤S1211:在确定所述增加趋势值或者所述降低趋势值等于预设的压缩阈值时,将所述芯片逻辑单元内的索引值小于所述目标索引值的已下发的第一部分ACL表项依次压缩在所述芯片逻辑单元的一侧。
步骤S1212:将所述芯片逻辑单元内的索引值大于或等于所述目标索引值的已下发的第二部分ACL表项依次压缩在所述芯片逻辑单元的另一侧。
即在增加趋势值或者所述降低趋势值等于预设的压缩阈值时,将芯片逻辑单元内的ACL表项进行自动压缩,其中,压缩阈值可以根据实际情况设置,若设置的值过小,会频繁触发自动压缩操作;选取的值过大,则触发自动压缩前下发的ACL表项会搬移较多的ACL表项。本发明实施例中推荐的压缩阈值可以为10。自动压缩的示意图请参看图6。
可选的,所述优先级变化趋势信息还可以包括所述当前待下发ACL表项的趋势保护状态值,默认初始值为0,当进行了自动压缩之后,趋势保护状态值需要置0。值得指出的是,在计算增加趋势值以及所述降低趋势值,且判断所述当前待下发ACL表项的优先级是否大于所述已下发的上一条ACL表项的优先级时,若大于且所述降低趋势值不为零,在将所述增加趋势值、所述降低趋势值置零后,还要将趋势保护状态值置零;若不大于且所述增加趋势值不为零,在将所述增加趋势值、所述降低趋势值置零后,还要将趋势保护状态值置零。
上述在执行步骤S123或者步骤S124时,是默认了存在处于空闲状态的相邻区域。请参看图7,当不存在处于空闲状态的相邻区域时,可能需要搬移芯片逻辑单元内的ACL表项,或者执行其它操作来创造出处于空闲状态的相邻区域。因此,作为一种可选的实施方式,请参看图8,在步骤S122之前,所述方法还可以包括:
步骤S1213:确定在所述相邻区域存在已下发的ACL表项。
步骤S1214:计算使得所述相邻区域处于空闲状态时,需要搬移的ACL表项的最少数量。
可选的,在使得所述相邻区域处于空闲状态时进行ACL的表项搬移可以采用下述两种方式:
将所述芯片逻辑单元内的索引值大于所述目标索引值且距离所述目标索引值最近的第一最近空闲区域对应的索引值,确定为第一空闲索引值;将所述目标ACL表项与所述目标索引值到所述第一空闲索引值之间对应的已下发ACL表项依次向索引值增大的方向平移一个表项区域。
将所述芯片逻辑单元内的索引值小于所述目标索引值且距离所述目标索引值最近的第二最近空闲区域对应的索引值,确定为第二空闲索引值;将所述芯片逻辑单元内的所述目标索引值到所述第二空闲索引值之间对应的ACL表项依次向索引值减小的方向平移一个表项区域。
分别计算上述两种方式需要搬移的ACL表项数量,并确定出一个最少数量。
步骤S1215:判断所述最少数量是否小于预设的分散重排阈值。
步骤S1216:在判断所述最少数量小于预设的分散重排阈值时,按照所述最少数量对应的方式对所述芯片逻辑单元内的ACL表项进行搬移,使得所述相邻区域处于空闲状态。
步骤S1217:否则,在确定所述趋势保护状态值为零时,将已下发到所述芯片逻辑单元内的所述第一部分ACL表项和所述第二部分ACL表项进行分散排布,并将所述趋势保护状态值置一,将所述增加趋势值以及所述降低趋势值均置零,使得所述第一部分ACL表项和所述第二部分ACL均匀地分布到所述芯片逻辑单元内。
当最少数量大于或等于分散重排阈值时,表明当前芯片逻辑单元内的ACL表项分布不合理,因此,将芯片逻辑单元内的所有ACL表项(即第一部分ACL表项和所述第二部分ACL表项)进行分散重排。
可选的,请参看图9,分散排布的操作可以是:
基于已下发到芯片逻辑单元内的所有ACL表项的总数以及所述芯片逻辑单元内所能容纳的ACL表项总数,例如可以采用已下发到芯片逻辑单元内的所有ACL表项的总数除以芯片逻辑单元内所能容纳的ACL表项总数计算得到索引间隔。然后根据所述索引间隔计算出已下发到芯片逻辑单元内的每一个ACL表项的新的索引,并按照新的索引搬移每一个ACL表项。值得指出的是,在计算得到的新的索引为小数的情况下,将小数点后面的值舍去,同时,进行分散重排后的ACL表项之间空闲区域个数可能不同。
下面,提供一种ACL批量下发场景,以此说明本发明实施所述方法的运行原理及效果。
在本场景中,使用“ACL+数字”来代表一条ACL表项,数字即为该ACL表项的优先级。假设slice空间可以存储2000条ACL表项,ACL表项按照优先级从高到低排序后批量下发。压缩阈值为10,分散重排阈值为已下发ACL表项的八分之一。在进行第一条ACL表项下发前,slice内为空。
第一次批量下发ACL1599-ACL1500、ACL1099-ACL1000一共200条ACL表项;第二次批量下发ACL1299-ACL1200一共100条ACL表项。
第一次批量操作:
针对第1条ACL,在其之前,降低趋势值、增加趋势值、上一条ACL表项的优先级均默认为0。优先级0作为一个特殊值,在本发明中认为其为最大优先级值,只允许在初始化的时候出现,不允许用户下发优先级为0的ACL表项,当然前述行为是可选的。因此,针对第1条ACL,认定为优先级低于空slice,此时需要检查增加趋势值,由于为0,因此,把降低趋势值累加至1。此时,由于增加趋势值小于降低趋势值,所以将第1条ACL下发到芯片逻辑单元内索引值小于ACL1_index且距离ACL1_index最远的处于空闲状态的最远区域。又由于未能在空slice内找到对应于第1条ACL的ACL1,因此,将slice内的最大索引值加一后的值2001确定为ACL1_index。
因此,第1条ACL表项ACL1599在slice中的索引为0,降低趋势值累加至1。
第2条ACL表项ACL1598在slice中的索引为1,降低趋势值累加至2。
同理,一直下发到第10条ACL1590,此时,降低趋势值累加到10,等于压缩阈值,触发自动压缩操作。但压缩前后,ACL表项在slice内的排布一致,不会发生表项搬移。后续的190条ACL表项在slice内的索引依次为10-199。降低趋势值累加至200。第一次批量操作没有发生表项搬移。
第二次批量操作:
第1条ACL表项ACL1299。在预测时,由于ACL表项优先级较上一条ACL表项高,因此降低趋势值、增加趋势值、趋势保护状态均清零。通过查找,发现需要将ACL1000-ACL1099下移一位,为ACL1299留出空间。需要搬移的表项数量为100,大于已有表项的八分之一,而且此时趋势保护状态为0。因此,搬移操作不会进行,分散重排被触发。分散重排完成后,已有表项之间间隔为2000÷200=10,趋势保护状态置一。此时,再次查找,查找结果为ACL1299放在索引为991的空间(ACL1099索引为1000,ACL1500索引为990),且不需要搬移表项。因此,下发ACL1299总共搬移了199条表项(ACL1599分散排布前后,一直放在索引0)。
第2条ACL表项ACL1298在slice中的索引为992,降低趋势值累加至1。
第3条到第9条ACL表项ACL1297-ACL1291的索引为993-999,降低趋势值累加至8。
第10条ACL表项ACL1290需要将索引为1000的ACL1099移到索引为1001的slice空间,ACL1290放到索引1000。此时降低趋势值累加至9,搬移已有ACL表项数量为1.
第11条ACL表项ACL1289下发时,降低趋势值累加到10,触发自动压缩。压缩完成后,ACL1599-ACL1500、ACL1299-ACL1290依次放到索引0-109;ACL1099-ACL1000依次放到索引1900-1999。通过查找,ACL1289放到索引110,且不需要搬移表项。因此,下发ACL1289总共搬移了209条表项(ACL1599分散排布前后,一直放在索引0)。
第12条到第100条ACL表项ACL1288-ACL1200在slice内的索引依次为111-199,且不会发生表项搬移。
第二次批量操作搬移表项数量为199+1+209=409条。
此外,请参照图10,本发明第二实施例提供了一种ACL表项批量下发装置400。下面将对图10所示的结构框图进行阐述,所示装置包括:
获取模块410,用于基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息;
下发模块420,用于至少基于所述优先级变化趋势信息,下发所述当前待下发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表项批量下发装置400的各功能模块实现各自功能的过程,请参见上述图1至图9所示实施例中描述的内容,此处不再赘述。
此外,对应于第一实施例中的ACL表项下发方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器读取并运行时,使得处理器执行第一实施例中任一实施方式所述的ACL表项下发方法。
此外,对应于第一实施例中的ACL表项下发方法,本申请实施例还提供了一种网络设备,包括相互耦合的存储器、硬件芯片以及处理器;所述存储器内存储计算机程序,所述硬件芯片包括至少一个芯片逻辑单元,所述计算机程序被所述处理器读取并运行时,执行第一方面任一实施方式所述的ACL表项下发方法。
综上所述,本发明实施例提出的ACL表项下发方法、装置及网络设备,在进行ACL表项下发前,先基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息,然后再至少基于所述优先级变化趋势信息,下发所述当前待下发ACL表项到芯片逻辑单元内,减少ACL表项批量下发时对芯片逻辑单元内表项的搬移数量,从而减少了表项下发的操作时间,使得ACL表项能够及时生效,不影响其它业务的正常运行。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种ACL表项下发方法,其特征在于,所述方法包括:
基于当前待下发ACL表项的优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息;所述优先级变化趋势信息包括增加趋势值以及降低趋势值;
在芯片逻辑单元内确定出一个已下发的目标ACL表项,将所述目标ACL表项的当前位置对应的索引值确定为目标索引值;
判断所述增加趋势值是否小于所述降低趋势值;
在不小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值为所述目标索引值减一对应的处于空闲状态的相邻区域;
在小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值小于所述目标索引值且距离所述目标索引值最远的处于空闲状态的最远区域,所述最远区域与所述目标ACL表项之间不存在其它ACL表项。
2.根据权利要求1所述的方法,其特征在于,在判断所述增加趋势值是否小于所述降低趋势值之前,所述方法还包括:
在确定所述增加趋势值或者所述降低趋势值等于预设的压缩阈值时,将所述芯片逻辑单元内的索引值小于所述目标索引值的已下发的第一部分ACL表项依次压缩在所述芯片逻辑单元的一侧;
将所述芯片逻辑单元内的索引值大于或等于所述目标索引值的已下发的第二部分ACL表项依次压缩在所述芯片逻辑单元的另一侧。
3.根据权利要求1所述的方法,其特征在于,所述在芯片逻辑单元内确定出一个目标ACL表项,包括:
将所述芯片逻辑单元内的ACL表项中优先级小于所述当前待下发ACL表项的优先级的第一条ACL表项确定为目标ACL表项。
4.根据权利要求2所述的方法,其特征在于,所述优先级变化趋势信息还包括所述当前待下发ACL表项的趋势保护状态值,所述趋势保护状态值初始为零,且在确定所述增加趋势值或者所述降低趋势值等于所述压缩阈值时后,所述趋势保护状态值置零;在判断所述增加趋势值是否小于所述降低趋势值之前,所述方法还包括:
确定在所述相邻区域存在已下发的ACL表项;
计算使得所述相邻区域处于所述空闲状态时,需要搬移的ACL表项的最少数量;
在判断所述最少数量小于预设的分散重排阈值时,按照所述最少数量对应的方式对所述芯片逻辑单元内的ACL表项进行搬移,使得所述相邻区域处于空闲状态;
否则,在确定所述趋势保护状态值为零时,将已下发到所述芯片逻辑单元内的所述第一部分ACL表项和所述第二部分ACL表项进行分散排布,并将所述趋势保护状态值置一,将所述增加趋势值以及所述降低趋势值均置零,使得所述第一部分ACL表项和所述第二部分ACL均匀地分布到所述芯片逻辑单元内。
5.根据权利要求4所述的方法,其特征在于,所述按照所述最少数量对应的方式对所述芯片逻辑单元内的ACL表项进行搬移,包括:
将所述芯片逻辑单元内的索引值大于所述目标索引值且距离所述目标索引值最近的第一最近空闲区域对应的索引值,确定为第一空闲索引值;
将所述目标ACL表项与所述目标索引值到所述第一空闲索引值之间对应的已下发ACL表项依次向索引值增大的方向平移一个表项区域;或者,
将所述芯片逻辑单元内的索引值小于所述目标索引值且距离所述目标索引值最近的第二最近空闲区域对应的索引值,确定为第二空闲索引值;
将所述芯片逻辑单元内的所述目标索引值到所述第二空闲索引值之间对应的ACL表项依次向索引值减小的方向平移一个表项区域。
6.根据权利要求4所述的方法,其特征在于,所述将已下发到所述芯片逻辑单元内的所述第一部分ACL表项和所述第二部分ACL表项进行分散排布,包括:
基于已下发到所述芯片逻辑单元内的所述第一部分ACL表项和所述第二部分ACL表项的总数以及所述芯片逻辑单元内所能容纳的ACL表项总数,计算得到索引间隔;
基于所述索引间隔,重新计算所述第一部分ACL表项和所述第二部分ACL表项中每个ACL表项的新的索引,并按照新的索引搬移所述第一部分ACL表项和所述第二部分ACL表项。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述增加趋势值以及所述降低趋势值的初始状态为零,所述增加趋势值以及所述降低趋势值的计算方法为:
判断所述当前待下发ACL表项的优先级是否大于所述已下发的上一条ACL表项的优先级;
在大于时,若所述降低趋势值不为零,则将所述增加趋势值、所述降低趋势值置零;否则将所述增加趋势值加一;
在不大于时,若所述增加趋势值不为零,则将所述增加趋势值、所述降低趋势值置零;否则将所述降低趋势值加一。
8.一种ACL表项下发装置,其特征在于,所述装置包括:
获取模块,用于基于当前待下发ACL表项优先级与已下发的上一条ACL表项的优先级,得到所述当前待下发ACL表项与所述上一条ACL表项之间的优先级变化趋势信息;所述优先级变化趋势信息包括增加趋势值以及降低趋势值;
下发模块,用于在芯片逻辑单元内确定出一个已下发的目标ACL表项,将所述目标ACL表项的当前位置对应的索引值确定为目标索引值;判断所述增加趋势值是否小于所述降低趋势值;在不小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值为所述目标索引值减一对应的处于空闲状态的相邻区域;在小于时,将所述当前待下发ACL表项下发到所述芯片逻辑单元内索引值小于所述目标索引值且距离所述目标索引值最远的处于空闲状态的最远区域,所述最远区域与所述目标ACL表项之间不存在其它ACL表项。
9.一种网络设备,其特征在于,包括相互耦合的存储器、硬件芯片以及处理器;所述硬件芯片包括至少一个芯片逻辑单元,所述存储器内存储计算机程序,所述计算机程序被所述处理器读取并运行时,执行如权利要求1-7中任意一项所述的ACL表项下发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811049927.9A CN109150686B (zh) | 2018-09-07 | 2018-09-07 | Acl表项下发方法、装置及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811049927.9A CN109150686B (zh) | 2018-09-07 | 2018-09-07 | Acl表项下发方法、装置及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150686A CN109150686A (zh) | 2019-01-04 |
CN109150686B true CN109150686B (zh) | 2020-12-22 |
Family
ID=64824013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811049927.9A Active CN109150686B (zh) | 2018-09-07 | 2018-09-07 | Acl表项下发方法、装置及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150686B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336748B (zh) * | 2019-07-10 | 2021-08-17 | 迈普通信技术股份有限公司 | 表项下发方法、装置、数据转发设备及可读存储介质 |
CN113901274B (zh) * | 2021-09-10 | 2023-03-21 | 锐捷网络股份有限公司 | 一种移动tcam表项的方法、装置、设备及介质 |
CN115865839B (zh) * | 2023-01-20 | 2023-05-23 | 苏州浪潮智能科技有限公司 | Acl管理方法、装置、通信设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857510A (zh) * | 2012-09-18 | 2013-01-02 | 杭州华三通信技术有限公司 | 访问控制列表acl表项下发方法和装置 |
CN103701704A (zh) * | 2013-12-18 | 2014-04-02 | 武汉烽火网络有限责任公司 | 基于优先级的插入删除访问控制列表的方法 |
US9305115B1 (en) * | 2010-10-04 | 2016-04-05 | Broadcom Corporation | Method and apparatus for reducing power consumption during rule searches in a content search system |
WO2016150057A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 访问控制列表acl的发送方法及装置 |
CN106487769A (zh) * | 2015-09-01 | 2017-03-08 | 深圳市中兴微电子技术有限公司 | 一种访问控制列表acl的实现方法及装置 |
CN106603302A (zh) * | 2016-12-29 | 2017-04-26 | 杭州迪普科技股份有限公司 | 一种acl表项管理的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2547932B (en) * | 2016-03-03 | 2019-08-14 | Arm Ip Ltd | Time-limited access to configuration settings |
-
2018
- 2018-09-07 CN CN201811049927.9A patent/CN109150686B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305115B1 (en) * | 2010-10-04 | 2016-04-05 | Broadcom Corporation | Method and apparatus for reducing power consumption during rule searches in a content search system |
CN102857510A (zh) * | 2012-09-18 | 2013-01-02 | 杭州华三通信技术有限公司 | 访问控制列表acl表项下发方法和装置 |
CN103701704A (zh) * | 2013-12-18 | 2014-04-02 | 武汉烽火网络有限责任公司 | 基于优先级的插入删除访问控制列表的方法 |
WO2016150057A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 访问控制列表acl的发送方法及装置 |
CN106487769A (zh) * | 2015-09-01 | 2017-03-08 | 深圳市中兴微电子技术有限公司 | 一种访问控制列表acl的实现方法及装置 |
CN106603302A (zh) * | 2016-12-29 | 2017-04-26 | 杭州迪普科技股份有限公司 | 一种acl表项管理的方法和装置 |
Non-Patent Citations (1)
Title |
---|
交换机ACL的研究与应用;谢声时等;《华南金融电脑》;20091210;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109150686A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109150686B (zh) | Acl表项下发方法、装置及网络设备 | |
CN107817947B (zh) | 一种数据存储方法、装置及系统 | |
US9280370B2 (en) | System structure management device, system structure management method, and program | |
CN107819797B (zh) | 访问请求处理方法和装置 | |
CN110244901B (zh) | 任务分配方法及装置、分布式存储系统 | |
CN110659151A (zh) | 数据校验方法及装置,存储介质 | |
CN111045808A (zh) | 一种分布式网络任务调度方法及装置 | |
CN111737027A (zh) | 分布式存储系统的Lookup处理方法、系统、终端及存储介质 | |
CN110290228B (zh) | 一种互联网协议ip地址分配方法及装置 | |
CN111708629A (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
US8527565B2 (en) | Selecting and reassigning a blade for a logical partition for service scheduling of a blade server | |
US10223189B1 (en) | Root cause detection and monitoring for storage systems | |
CN116360994A (zh) | 分布式异构资源池的调度方法、装置、服务器及存储介质 | |
CN116339989A (zh) | 一种混部服务器、混部服务器的资源管理方法及装置 | |
CN115941604A (zh) | 一种流量分配方法、装置、设备、存储介质和程序产品 | |
CN106537321A (zh) | 存取文件的方法、装置和存储系统 | |
CN112667392B (zh) | 云计算资源分配方法、装置、计算机设备和存储介质 | |
CN110716814B (zh) | 一种进程间大数据量通讯的性能优化方法和装置 | |
CN112328404A (zh) | 负载均衡方法及装置、电子设备、计算机可读介质 | |
CN114077493A (zh) | 一种资源分配方法及相关设备 | |
CN115115466B (zh) | 一种事件请求的响应方法、存储介质及电子设备 | |
CN114615314B (zh) | 会话建立方法、装置、电子设备及存储介质 | |
CN116846848B (zh) | Acl模板配置方法、装置、存储介质及电子设备 | |
CN112769640B (zh) | 进程通信方法、系统、服务器及存储介质 | |
CN117640520A (zh) | 分布式流量控制方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |