CN116016387A - 访问控制列表生效控制方法、装置、设备和存储介质 - Google Patents
访问控制列表生效控制方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116016387A CN116016387A CN202310227985.0A CN202310227985A CN116016387A CN 116016387 A CN116016387 A CN 116016387A CN 202310227985 A CN202310227985 A CN 202310227985A CN 116016387 A CN116016387 A CN 116016387A
- Authority
- CN
- China
- Prior art keywords
- access control
- control list
- list
- item
- sorting
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000009471 action Effects 0.000 claims abstract description 255
- 238000010200 validation analysis Methods 0.000 claims abstract description 53
- 230000000694 effects Effects 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 45
- 239000004744 fabric Substances 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种访问控制列表生效控制方法、装置、设备和存储介质。所述方法包括:为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集;为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置。采用本方法能够根据所述目标访问控制列表条目的优先级顺序结合冲突集判定所述目标访问控制列表条目是否使能生效,并更新其他访问控制列表条目的生效状态。
Description
技术领域
本申请涉及交换机技术领域,特别是涉及一种访问控制列表生效控制方法、装置、计算机设备和存储介质。
背景技术
访问控制列表(Access Control List,以下简称ACL)是交换机常用的一种功能。它可以控制报文的各种行为,在交换芯片的报文处理流水线上有很重要的地位。从芯片角度看,ACL资源被分成了几块(通常为8块),每块(以下用chip table代替)包含很多个表项(通常为1024,以下用chip entry代替)。用户所下发的ACL table和ACL entry和芯片中的chip table和chip entry是可以一一对应的。
具有相同ACL key的ACL entry,它们的ACL action之间可能会存在冲突,这个时候ACL entry的优先级高的应该生效。但是对于芯片来说,首先要判断的是chip table的优先级。也即如果两个ACL entry所对应的chip entry在不同的chip table内,且动作发生冲突,那么所在chip table优先级高的生效;反之,在一个chip table内优先级高的ACLentry才会生效。
在现有的技术方案中,用户下发的ACL table和ACL entry会按照一定的规则被分配到chip table和chip entry之上,高优先级的ACL entry首次被下到一个高优先级的chip table上,低优先级的ACL entry首次被下到了低优先级的chip table上,一切正常,但是删除高优先级的ACL entry之后再次下刷,这次低优先级的ACL entry被分配到高优先级chip table上面了,反而优先生效。
发明内容
基于此,提供一种访问控制列表生效控制方法、装置、计算机设备和存储介质,用于解决优先级低的ACL entry被下发到高优先级chip table上反而优先生效的技术问题。
一方面,提供一种访问控制列表生效控制方法,所述方法包括:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在其中一个实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
在其中一个实施例中,所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
在其中一个实施例中,所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
在其中一个实施例中,在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高且使能的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
在其中一个实施例中,所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
在其中一个实施例中,所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
在其中一个实施例中,所述为每个访问控制列表条目创建结构体步骤,包括:
为每个访问控制列表条目创建结构体;
在所述结构体中填充访问控制列表条目的优先级。
在其中一个实施例中,所述为每个访问控制列表条目创建结构体步骤,还包括:
在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
在所述结构体中填充访问控制列表动作的值;
在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
在所述结构体中设置指向其他访问控制列表条目的指针;
在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
在其中一个实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
在其中一个实施例中,所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
对每一类访问控制列表条目创建一个分类排序链表;
在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
在其中一个实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
在其中一个实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
在其中一个实施例中,所述方法还包括:
响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;
判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在其中一个实施例中,所述判定所述分类排序链表中的访问控制列表条目是否使能生效步骤,包括:
获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
在其中一个实施例中,在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,还包括:
获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
另一方面,提供了一种访问控制列表生效控制装置,所述装置包括:
冲突集管理模块,用于为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
结构体管理模块,用于为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
汇总链表管理模块,用于创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
分类排序链表管理模块,用于创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
新增访问控制列表使能管理模块,用于响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在其中一个实施例中,所述访问控制列表生效控制装置还包括:
删除访问控制列表使能管理模块,用于响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
上述访问控制列表生效控制方法、装置、计算机设备和存储介质,通过在芯片接收到交换机传输的目标访问控制列表条目时,首先获取与所述目标访问控制列表条目的访问控制列表键内容相同的所有访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合由访问控制列表条目之间存在执行顺序限制的访问控制列表动作构成的冲突集中判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态,通过软件配置确保高优先级的访问控制列表会先使能生效,避免出现因为硬件原因导致的低优先级访问控制列表条目反而比高优先级的访问控制列表条目更优先生效的情况。而且进一步更新所述分类排序链表中其他访问控制列表条目的生效状态,对于分类排序链表中优先级比新成员高的旧成员,如果这些旧成员和新成员冲突,新成员不生效;否则新成员使能,那么分类链表中优先级比它低的成员,就要受到新成员的制约,递推确定使能状态,避免了使能状态混乱情况。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中访问控制列表生效控制方法的应用环境图;
图2为一个实施例中访问控制列表生效控制方法的流程示意图;
图3为一个实施例中为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作的流程示意图;
图4为一个实施例中获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤的流程示意图;
图5为一个实施例中为每个访问控制列表条目创建结构体步骤的流程示意图;
图6为一个实施例中创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤的流程示意图;
图7为一个实施例中判定所述分类排序链表中的访问控制列表条目是否使能生效步骤的流程示意图;
图8为一个实施例中访问控制列表生效控制装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例1
本发明实施例1中创造性的提出了一种访问控制列表生效控制方法,主要是解决优先级低的ACL entry被下发到高优先级chip table上反而优先生效的问题。
其中,ACL entry(访问控制列表条目),指ACL指定下发的基本单位,用户可以通过配置ACL entry来匹配用户想匹配的报文字段并指定匹配到之后所要执行的动作。ACLentry可以配置优先级,ACL entry之间如果存在冲突,那么优先级高的生效。ACL entry主要包含两部分内容,ACL key和ACL action。
ACL table,指相同类型ACL entry的集合。ACL table的类型和它所包含的类型是一致的。
ACL key(访问控制列表键),指ACL规则所要匹配的报文的特征,比如用户下发一条匹配源ip为1.1.1.1的ACL,那么对应的ACL key的类型即为源ip(或source ip,简称sip),值即为1.1.1.1。
ACL action(访问控制列表动作),指ACL规则匹配到报文之后所要执行的动作,包括,取消访问控制列表丢包,限速,镜像,丢弃,复制到cpu,重定向到其他端口,修改报文内容等。
具体的,所述访问控制列表生效控制方法的具体实现步骤如下:
首先需要确定有哪些互相冲突的ACL action。互相冲突的ACL action有很多对,比如丢包和取消丢包是冲突的,丢包和重定向到其他端口也是冲突的,所以可以为每个ACLaction创建一个冲突集,冲突集中包含了所有与该ACL action冲突的其他ACL action。然后找到ACL key相同(即ACL key的类型和值都相同)的所有ACL entry。依据冲突集和优先级决定这些ACL entry是否使能。这样可以忽略chip table的影响。
为了达到这样的效果,需要创建对应的数据结构:
首先为每一个ACL action创建冲突集位图,每一位代表了与该ACL action冲突的其他ACL action。
然后为每个ACL entry创建结构体,这个结构体包含的信息有:该ACL entry所包含的ACL key的类型和值,优先级,ACL action的值,对应的chip entry和chip table的id,指向其他ACL entry的指针,以及两个指向具有相同ACL key的ACL entry的指针等,分别指向优先级比当前ACL entry高的和优先级比当前ACL entry低的。
这样需要为每一个ACL entry维护两个链表,一个是包含所有ACL entry的链表(以下简称g-link),另一个是拥有相同ACL key的ACL链表(以下简称k-link),记录ACLentry配置信息的结构体如下文所示:
记录ACL action冲突集的数据结构如下文所示:
记录g-link头的链表如下文所示:
具体的建立过程如下,首先初始化ACL action的冲突集。用户所创建的每一条ACL entry都会创建一个如上所示的结构体实例与之对应,每次用户新下发ACL entry的时候,需要创建一个新的结构体实例,填充ACL key,ACL action等信息,然后需要把新的结构体实例插入到g-link的末尾。
然后根据ACL key的内容,遍历k-link链表,找到一个具有相同ACL key的ACLentry,如果找到了,就把新的ACL entry插入到k-link中,插入的位置是由优先级决定的,使得总体上从链表的一边到另一边,链表的优先级是单调递增的。
用户的ACL的操作,归根结底可以划分为两种,创建新的ACL entry和删除旧的ACL entry。所以需要为这两种基本的情况做相应的处理:
一、创建ACL entry:
创建ACL entry的公共流程是需要创建上述结构体的实例,下发到芯片,然后填入对应的芯片ACL的chip_entry_id, chip_table_id,以及acl_entry_id, priority,acl_key_type,acl_key_value,acl_action等。
然后处理这个ACL entry和两个链表的相互作用关系,对于g-link,如果之前没有创建过ACL entry,那么这个新的ACL entry就是g-link的头;否则将其插入g-link的末尾。
对于k-link,首先要遍历g-link,找到g-link中同key的成员,找不到的话这个新ACL entry就是k-link的头,如果找到了,就遍历k-link,把新的ACL entry按优先级高低插入到链表的合适位置中,
然后遍历所有优先级比当前ACL entry高,且状态为使能的成员,判断新ACLentry的ACL action是否在这些成员的冲突集里面,
是的话就不使能这个ACL entry,否则使能这个ACL entry,第一个不存在冲突
如果使能,需要再去遍历优先级比这个ACL entry低的k-link成员,对这些k-link成员需要判断它们的action,是否对于所有k-link优先级比它高且使能的其他成员,ACLaction都不冲突,冲突就不使能,否则使能。优先级高的生效,冲突的不生效。
所有的使能和更改ACL entry的操作最后都要下发到芯片中以生效。
二、删除ACL entry:
删除ACL entry,首先需要根据用户下发的acl_entry_id在g-link中找到对应的ACL entry,如果这个ACL entry没有使能,则直接删除,否则为每个优先级比要删除的ACLentry低的ACL entry做循环判断,比较k-link中使能且优先级比它高的所有ACL entry(不包括要删除的那个),如果冲突,则不使能,否则使能。最后删除要删除的ACL。相应的所有的操作最后都要下发到芯片生效。
本发明实际应用到交换机的代码中,根据之前所描述的问题设置多个场景进行验证。
验证场景一:
第一步,在交换机上配置ACL key相同,但动作冲突且优先级不同的两个ACLentry,并使高优先级的ACL entry落到低优先级的chip table上,低优先级的ACL entry落到高优先级的chip table上;
第二步,经过验证,高优先级的生效了,而低优先级的ACL entry并没有生效。
验证场景二:
第一步,在第一步的基础上,删除高优先级的ACL entry。
第二步,这个时候,低优先级的ACL entry可以生效,证明本方案的完备性。
可理解的是,也可以把高优先级ACL entry下到高优先级的chip table上。资源满了之后进行entry的置换操作,使得高优先级的chip table上的所有ACL entry的优先级都比低优先级的chip table上的高。
实施例2
基于相同的发明构思,在实施例2中包含了实施例1的全部技术特征。在本申请实施例2中提供的访问控制列表生效控制方法,可以应用于如图1所示的应用环境中。其中,交换机10通过网络与芯片20通过网络进行通信。芯片20可以处理交换机10传输的访问控制列表(Access Control List,以下简称ACL)。
在一个实施例中,如图2所示,提供了一种访问控制列表生效控制方法,以该方法应用于图1中的芯片20为例进行说明,包括以下步骤:
步骤S1,为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
步骤S2,为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
步骤S3,创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
步骤S4,创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
步骤S5,响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在本实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
在本实施例中,所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
在本实施例中,所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
在本实施例中,在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高且使能的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
如图3所示,在本实施例中,所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
步骤S11,获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
步骤S12,为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
如图4所示,在本实施例中,所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
步骤S111,获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
步骤S112,根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
步骤S113,若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
步骤S114,若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
如图5所示,在本实施例中,所述为每个访问控制列表条目创建结构体步骤,包括:
步骤S21,为每个访问控制列表条目创建结构体;
步骤S22,在所述结构体中填充访问控制列表条目的优先级。
在本实施例中,所述为每个访问控制列表条目创建结构体步骤,还包括:
步骤S23,在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
步骤S24,在所述结构体中填充访问控制列表动作的值;
步骤S25,在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
步骤S26,在所述结构体中设置指向其他访问控制列表条目的指针;
步骤S27,在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
在本实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
如图6所示,在本实施例中,所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
步骤S41,将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
步骤S42,对每一类访问控制列表条目创建一个分类排序链表;
步骤S43,在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
在本实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
在本实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
如图2所示,在本实施例中,所述方法还包括:
步骤S6,响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
如图7所示,在本实施例中,所述判定所述分类排序链表中的访问控制列表条目是否使能生效步骤,包括:
步骤S61,获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
步骤S62,获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
如图2所示,在本实施例中,在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,还包括:
步骤S7,获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
上述访问控制列表生效控制方法中,通过在芯片接收到交换机传输的目标访问控制列表条目时,首先获取与所述目标访问控制列表条目的访问控制列表键内容相同的所有访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合由访问控制列表条目之间存在执行顺序限制的访问控制列表动作构成的冲突集中判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态,通过软件配置确保高优先级的访问控制列表会先使能生效,避免出现因为硬件原因导致的低优先级访问控制列表条目反而比高优先级的访问控制列表条目更优先生效的情况。而且进一步更新所述分类排序链表中其他访问控制列表条目的生效状态,对于分类排序链表中优先级比新成员高的旧成员,如果这些旧成员和新成员冲突,新成员不生效;否则新成员使能,那么分类链表中优先级比它低的成员,就要受到新成员的制约,递推确定使能状态,避免了使能状态混乱情况。
应该理解的是,虽然图2-图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种访问控制列表生效控制装置10,包括:冲突集管理模块1、结构体管理模块2、汇总链表管理模块3、分类排序链表管理模块4、新增访问控制列表使能管理模块5和删除访问控制列表使能管理模块6。
所述冲突集管理模块1用于为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作。
所述结构体管理模块2用于为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级。
所述汇总链表管理模块3用于创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体。
所述分类排序链表管理模块4用于创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置。
所述新增访问控制列表使能管理模块5用于响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
所述删除访问控制列表使能管理模块6用于响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在本实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
在本实施例中,所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
在本实施例中,所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
在本实施例中,在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高且使能的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
在本实施例中,所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
在本实施例中,所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
在本实施例中,所述为每个访问控制列表条目创建结构体步骤,包括:
为每个访问控制列表条目创建结构体;
在所述结构体中填充访问控制列表条目的优先级。
在本实施例中,所述为每个访问控制列表条目创建结构体步骤,还包括:
在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
在所述结构体中填充访问控制列表动作的值;
在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
在所述结构体中设置指向其他访问控制列表条目的指针;
在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
在本实施例中,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
在本实施例中,所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
对每一类访问控制列表条目创建一个分类排序链表;
在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
在本实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
在本实施例中,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
在本实施例中,所述删除访问控制列表使能管理模块在用于判定所述分类排序链表中的访问控制列表条目是否使能生效步骤中,包括:
获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
如图8所示,提供的所述访问控制列表生效控制装置10还包括:控制命令下发执行模块7。
在本实施例中,在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,所述控制命令下发执行模块7用于:获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
上述访问控制列表生效控制装置中,通过在芯片接收到交换机传输的目标访问控制列表条目时,首先获取与所述目标访问控制列表条目的访问控制列表键内容相同的所有访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合由访问控制列表条目之间存在执行顺序限制的访问控制列表动作构成的冲突集中判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态,通过软件配置确保高优先级的访问控制列表会先使能生效,避免出现因为硬件原因导致的低优先级访问控制列表条目反而比高优先级的访问控制列表条目更优先生效的情况。而且进一步更新所述分类排序链表中其他访问控制列表条目的生效状态,对于分类排序链表中优先级比新成员高的旧成员,如果这些旧成员和新成员冲突,新成员不生效;否则新成员使能,那么分类链表中优先级比它低的成员,就要受到新成员的制约,递推确定使能状态,避免了使能状态混乱情况。
关于访问控制列表生效控制装置的具体限定可以参见上文中对于访问控制列表生效控制方法的限定,在此不再赘述。上述访问控制列表生效控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储芯片ACL优先级生效行为的控制数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种访问控制列表生效控制方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高且使能的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述为每个访问控制列表条目创建结构体步骤,包括:
为每个访问控制列表条目创建结构体;
在所述结构体中填充访问控制列表条目的优先级。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述为每个访问控制列表条目创建结构体步骤,还包括:
在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
在所述结构体中填充访问控制列表动作的值;
在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
在所述结构体中设置指向其他访问控制列表条目的指针;
在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
对每一类访问控制列表条目创建一个分类排序链表;
在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述方法还包括:
响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;
判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述判定所述分类排序链表中的访问控制列表条目是否使能生效步骤,包括:
获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,还包括:
获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
关于处理器执行计算机程序时实现步骤的具体限定可以参见上文中对于访问控制列表生效控制方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高且使能的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述为每个访问控制列表条目创建结构体步骤,包括:
为每个访问控制列表条目创建结构体;
在所述结构体中填充访问控制列表条目的优先级。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述为每个访问控制列表条目创建结构体步骤,还包括:
在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
在所述结构体中填充访问控制列表动作的值;
在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
在所述结构体中设置指向其他访问控制列表条目的指针;
在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
对每一类访问控制列表条目创建一个分类排序链表;
在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述方法还包括:
响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;
判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述判定所述分类排序链表中的访问控制列表条目是否使能生效步骤,包括:
获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,还包括:
获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
关于计算机程序被处理器执行时实现步骤的具体限定可以参见上文中对于访问控制列表生效控制方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种访问控制列表生效控制方法,其特征在于,包括:
为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
2.根据权利要求1所述的访问控制列表生效控制方法,其特征在于,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
根据所述目标访问控制列表条目是否在所述汇总链表中判定所述目标访问控制列表条目是否使能生效;
若所述目标访问控制列表条目不在所述汇总链表中,则判定所述目标访问控制列表条目使能生效,并执行下一步;
若所述目标访问控制列表条目在所述汇总链表中,则执行下一步。
3.根据权利要求2所述的访问控制列表生效控制方法,其特征在于,所述根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤,包括:
若所述汇总链表为空,则将所述目标访问控制列表条目作为所述汇总链表的头节点;否则将所述目标访问控制列表条目插入至所述汇总链表的末尾;
遍历所述汇总链表,查找所述汇总链表中是否存在与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,若不存在则将所述目标访问控制列表条目作为所述分类排序链表的头节点;否则将所述目标访问控制列表条目按照优先级顺序插入至所述分类排序链表中。
4.根据权利要求3所述的访问控制列表生效控制方法,其特征在于,所述遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效步骤,包括:
遍历所述分类排序链表获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目;
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级高的访问控制列表条目形成高优先条目集;
判断所述目标访问控制列表条目的访问控制列表动作是否在所述高优先条目集的访问控制列表条目的访问控制列表动作对应的冲突集中;
若是,则判定所述目标访问控制列表条目不使能生效;
若否,则判定所述目标访问控制列表条目使能生效。
5.根据权利要求4所述的访问控制列表生效控制方法,其特征在于,在所述判定所述目标访问控制列表条目使能生效步骤之后,还包括:
在所述汇总链表中所有的访问控制列表条目中选取所有比所述目标访问控制列表条目的优先级低的访问控制列表条目形成低优先条目集;
判断所述低优先条目集的访问控制列表条目的访问控制列表动作,相对于所有优先级比其高的其他访问控制列表条目的访问控制列表动作是否存在冲突;
若存在冲突,则判定所述低优先条目集对应的访问控制列表条目不使能生效;
若不存在冲突,则判定所述低优先条目集对应的访问控制列表条目使能生效。
6.根据权利要求1所述的访问控制列表生效控制方法,其特征在于,所述为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作;
为每一个访问控制列表动作创建冲突集位图,每一位代表了与该访问控制列表动作相冲突的其他访问控制列表动作。
7.根据权利要求6所述的访问控制列表生效控制方法,其特征在于,所述获取交换机发出的访问控制列表条目对应的目标访问控制列表动作,识别与所述目标访问控制列表动作相冲突的所有访问控制列表动作步骤,包括:
获取所述目标访问控制列表动作与其他访问控制列表动作的种类,访问控制列表动作的种类为取消访问控制列表丢包、限速、镜像、丢弃、复制到CPU、重定向到其他端口或修改报文内容中的任一种;
根据所述目标访问控制列表动作与其他访问控制列表动作的种类内容,判定两者之间是否存在执行顺序限制;
若存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作相冲突;
若不存在执行顺序限制,则判定所述目标访问控制列表动作与其他访问控制列表动作不冲突。
8.根据权利要求1所述的访问控制列表生效控制方法,其特征在于,所述为每个访问控制列表条目创建结构体步骤,包括:
为每个访问控制列表条目创建结构体;
在所述结构体中填充访问控制列表条目的优先级。
9.根据权利要求8所述的访问控制列表生效控制方法,其特征在于,所述为每个访问控制列表条目创建结构体步骤,还包括:
在所述结构体中填充所述访问控制列表条目所包含的访问控制列表键的类型和值;
在所述结构体中填充访问控制列表动作的值;
在所述结构体中填充与所述访问控制列表条目及访问控制列表条目集合对应的ID信息;
在所述结构体中设置指向其他访问控制列表条目的指针;
在所述结构体中设置两个指向具有相同访问控制列表键的访问控制列表条目的指针,分别指向优先级比当前访问控制列表条目高的访问控制列表条目和优先级比当前访问控制列表条目低的访问控制列表条目。
10.根据权利要求9所述的访问控制列表生效控制方法,其特征在于,响应于获取到新增目标访问控制列表条目操作指令时,在根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表步骤之前,还包括:
初始化所述冲突集;
为所述目标访问控制列表条目创建结构体;
将所述目标访问控制列表条目及对应的结构体下发到芯片,在所述结构体中填充对应芯片的访问控制列表条目及访问控制列表条目集合对应的ID信息。
11.根据权利要求1所述的访问控制列表生效控制方法,其特征在于,所述创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置步骤,包括:
将访问控制列表键的类型和值都相同访问控制列表条目归为一类,划分为多类访问控制列表条目;
对每一类访问控制列表条目创建一个分类排序链表;
在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置。
12.根据权利要求11所述的访问控制列表生效控制方法,其特征在于,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递增的顺序设置访问控制列表条目的位置。
13.根据权利要求11所述的访问控制列表生效控制方法,其特征在于,所述在所述分类排序链表中按访问控制列表条目的优先级顺序设置访问控制列表条目的位置步骤,包括:
在所述分类排序链表中按访问控制列表条目的优先级是单调递减的顺序设置访问控制列表条目的位置。
14.根据权利要求1所述的访问控制列表生效控制方法,其特征在于,所述方法还包括:
响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;
判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
15.根据权利要求14所述的访问控制列表生效控制方法,其特征在于,所述判定所述分类排序链表中的访问控制列表条目是否使能生效步骤,包括:
获取所述分类排序链表中优先级比所述目标访问控制列表条目低的所有访问控制列表条目,并对获取的每一访问控制列表条目是否使能生效进行判断;
获取所述分类排序链表中优先级比所述目标访问控制列表条目高的所有访问控制列表条目,并在所述冲突集中判断获取的每一访问控制列表条目的访问控制列表动作与所述目标访问控制列表条目的访问控制列表动作是否存在冲突;若存在冲突,则判定所述访问控制列表条目不使能生效;若不存在冲突,则判定所述访问控制列表条目使能生效。
16.根据权利要求14所述的访问控制列表生效控制方法,其特征在于,在响应于获取到新增或删除目标访问控制列表条目操作指令,判定完成所述目标访问控制列表条目及其他访问控制列表条目是否使能生效之后,还包括:
获取所有判定为使能生效的访问控制列表条目以及更改访问控制列表条目的控制命令,并下发到芯片中以生效。
17.一种访问控制列表生效控制装置,其特征在于,所述装置包括:
冲突集管理模块,用于为每个访问控制列表条目对应的访问控制列表动作创建一个冲突集,在所述冲突集中记录与该访问控制列表动作相冲突的所有访问控制列表动作;
结构体管理模块,用于为每个访问控制列表条目创建结构体,所述结构体包含访问控制列表条目的优先级;
汇总链表管理模块,用于创建并维护汇总链表,所述汇总链表包含所有的访问控制列表条目,并在所述汇总链表的末尾插入所述结构体;
分类排序链表管理模块,用于创建并维护多个分类排序链表,每一分类排序链表中包含相同访问控制列表键的访问控制列表条目,并按访问控制列表条目的优先级顺序进行排序设置;
新增访问控制列表使能管理模块,用于响应于获取到新增目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目更新所述汇总链表及所述分类排序链表,遍历所述分类排序链表查找获取与所述目标访问控制列表条目的访问控制列表键内容相同的访问控制列表条目,并根据所述目标访问控制列表条目的优先级顺序结合所述冲突集判定所述目标访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
18.根据权利要求17所述的访问控制列表生效控制装置,其特征在于,所述装置还包括:
删除访问控制列表使能管理模块,用于响应于获取到删除目标访问控制列表条目操作指令时,根据所述目标访问控制列表条目的ID信息在所述汇总链表中对应的目标访问控制列表条目;判断所述目标访问控制列表条目的状态是否为没有使能,若是则将所述目标访问控制列表条目直接删除,否则将所述目标访问控制列表条目删除后进一步判定所述分类排序链表中的访问控制列表条目是否使能生效,以及更新所述分类排序链表中其他访问控制列表条目的生效状态。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至16中任一项所述方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至16中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310227985.0A CN116016387B (zh) | 2023-03-10 | 2023-03-10 | 访问控制列表生效控制方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310227985.0A CN116016387B (zh) | 2023-03-10 | 2023-03-10 | 访问控制列表生效控制方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116016387A true CN116016387A (zh) | 2023-04-25 |
CN116016387B CN116016387B (zh) | 2023-06-13 |
Family
ID=86032001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310227985.0A Active CN116016387B (zh) | 2023-03-10 | 2023-03-10 | 访问控制列表生效控制方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016387B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955168A (zh) * | 2023-07-11 | 2023-10-27 | 广州汽车集团股份有限公司 | 车载软件产品运行方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473229A (zh) * | 2009-08-28 | 2012-05-23 | 国际商业机器公司 | 访问控制列表的修改 |
US20140082168A1 (en) * | 2012-09-14 | 2014-03-20 | International Business Machines Corporation | Priority resolution for access control list policies in a networking device |
CN103701704A (zh) * | 2013-12-18 | 2014-04-02 | 武汉烽火网络有限责任公司 | 基于优先级的插入删除访问控制列表的方法 |
CN115589389A (zh) * | 2022-09-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种处理acl的方法、系统、设备和存储介质 |
-
2023
- 2023-03-10 CN CN202310227985.0A patent/CN116016387B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473229A (zh) * | 2009-08-28 | 2012-05-23 | 国际商业机器公司 | 访问控制列表的修改 |
US20140082168A1 (en) * | 2012-09-14 | 2014-03-20 | International Business Machines Corporation | Priority resolution for access control list policies in a networking device |
CN103701704A (zh) * | 2013-12-18 | 2014-04-02 | 武汉烽火网络有限责任公司 | 基于优先级的插入删除访问控制列表的方法 |
CN115589389A (zh) * | 2022-09-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种处理acl的方法、系统、设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955168A (zh) * | 2023-07-11 | 2023-10-27 | 广州汽车集团股份有限公司 | 车载软件产品运行方法、装置、电子设备及存储介质 |
CN116955168B (zh) * | 2023-07-11 | 2024-04-26 | 广州汽车集团股份有限公司 | 车载软件产品运行方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116016387B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7349382B2 (en) | Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base | |
CN116016387B (zh) | 访问控制列表生效控制方法、装置、设备和存储介质 | |
CN108322394B (zh) | 路由表建立、查找、删除及状态变更方法和装置 | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
CN102932415A (zh) | 一种镜像文件存储方法及装置 | |
CN109032533B (zh) | 一种数据存储方法、装置和设备 | |
JP6951846B2 (ja) | 計算機システム及びタスクの割当方法 | |
US10846338B2 (en) | Data processing device, data processing method, and non-transitory computer readable medium | |
US20170083537A1 (en) | Mapping logical identifiers using multiple identifier spaces | |
CN110109712A (zh) | 业务组件加载方法、装置、计算机设备和存储介质 | |
US6614709B2 (en) | Method and apparatus for processing commands in a queue coupled to a system or memory | |
CN109325022B (zh) | 一种数据处理方法和装置 | |
CN106254245A (zh) | 一种管理表项的方法及装置 | |
CN105763468A (zh) | 一种bgp更新报文的传输方法和装置 | |
US10241927B2 (en) | Linked-list-based method and device for application caching management | |
CN110780944B (zh) | 一种应用权限的启动方法、设备及机器可读存储介质 | |
KR101826778B1 (ko) | 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법 | |
CN116578239A (zh) | 用于对内存进行分区的方法、电子设备及存储介质 | |
CN107870925B (zh) | 一种字符串过滤方法和相关装置 | |
US8909875B1 (en) | Methods and apparatus for storing a new version of an object on a content addressable storage system | |
CN113992580A (zh) | 一种修改策略路由的方法及设备 | |
US11050627B2 (en) | Method and network device for enabling in-place policy updates | |
CN113254273A (zh) | 一种实时恢复主元数据的方法、系统、设备及介质 | |
CN111158701B (zh) | 库模块发布方法、装置、设备及存储介质 | |
CN112149070A (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 |