一种表项管理方法及设备与流程

文档序号:23724577发布日期:2021-01-26 14:57阅读:81来源:国知局
一种表项管理方法及设备与流程

[0001]
本申请涉及通信技术,具体地讲是一种表项管理方法及设备。


背景技术:

[0002]
tcam(triple content addressed memory,三态内容寻址存储器)可以在硬件/逻辑上可被划分为多个block(块),在每个block存储acl(access control list,访问控制列表)表项。通过掩码实现的模糊查找功能,在多个block之间并行查找各acl的匹配项是否匹配报文。当一个block可以存放一种或者多种acl应用时,在前面的规则优先生效。
[0003]
当不同应用所需查找的acl表项存储在同一block中,生效优先级高的acl表项存储位置在前。当不同应用所需查找的acl表项存放在不同的block时,每个block均可以有一个acl表项生效,多个block的生效的acl表项的动作项(action field)动作可叠加生效,其方式为动作优先级高的acl表项的动作优先生效;如果不同block表项的acl表项的动作项的动作优先级相同且无法叠加生效时,这些匹配项相同且动作优先级相同的acl表项因为无法叠加生效而互为冲突acl表项而无法存储在一个block。但是,tcma的block是有限的,当待动态配置的acl对应的应用没有可分配的block而导致block资源不足时,需要动态配置到交换芯片的acl表项则会发生配置失败。


技术实现要素:

[0004]
本申请的目的提供一种表项管理方法及设备,避免三态内容寻址存储器中块存储资源不足导致的动态接入控制表项配置失败。
[0005]
为实现上述目的,本申请提供了一种表项管理方法,该方法还包括:获取待动态配置的第一接入控制表项;识别第一接入控制表项关联的第一应用;确定各块block已分配给其他应用;识别三态内容寻址存储器中多个存储有非冲突接入控制表项的block;将识别的多个block中低优先级的block存储的接入控制表项移动至识别的多个block中最高优先级的block,释放一个以上block;将最高优先级block分配给被移动至最高优先级block的接入控制表项关联的;将其中一个释放的block分配给第一应用;将第一接入控制表项存储在分配给第一应用的block。
[0006]
为实现上述目的,本申请还提供了一种表项管理设备,该设备包括处理器以及存储器;存储器用于存储处理器可执行指令;其中,处理器通过运行存储器中的处理器可执行指令用以执行以下操作:获取待动态配置的第一接入控制表项;识别第一接入控制表项关联的第一应用;确定各块block已分配给其他应用;识别三态内容寻址存储器中多个存储有非冲突接入控制表项的block;将识别的多个block中低优先级的block存储的接入控制表项移动至识别的多个block中最高优先级的block,释放一个以上block;将最高优先级block分配给被移动至最高优先级block的接入控制表项关联的应用;将其中一个释放的block分配给第一应用;将第一接入控制表项存储在分配给第一应用的block。
[0007]
本申请的有益效果在于,将不冲突的应用的acl表项合并在一个block中,节约了
block资源,将释放的block存储需要动态配置的acl表吸纳过,避免了block资源不足导致没有可以分配给新应用的block而产生配置失败。
附图说明
[0008]
图1为本申请提供的一种表项管理方法的流程图;
[0009]
图2为本申请提供的合并块存储资源第一实施例的示意图;
[0010]
图3为本申请提供的合并块存储资源第二实施例的示意图;
[0011]
图4为本申请提供的合并块存储资源第三实施例的示意图;
[0012]
图5为本申请提供的合并块存储资源第二实施例的示意图;
[0013]
图6为本申请提供的表项管理设备的示意图。
具体实施方式
[0014]
将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本申请的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。
[0015]
使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。
[0016]
步骤101,获取待动态配置的第一接入控制表项。
[0017]
步骤102,识别第一接入控制表项关联的第一应用。
[0018]
步骤103,确定各块block已分配给其他应用。
[0019]
步骤104,识别tcma中多个存储有非冲突接入控制表项的block。
[0020]
当多个接入控制表项的存储的是非叠加生效的acl表项时,不同block内存储的acl表项的匹配项的匹配字段不同,则识别这些block是存储了非冲突接入控制表项的block。当多个接入控制表项的存储的是叠加生效的acl表项时,不同block内存储的acl表项的匹配项的匹配字段相同但是动作项中动作字段对应的动作优先级不同,则识别这些block是存储了非冲突接入控制表项的block。
[0021]
步骤105,将识别的多个block中低优先级的block存储的接入控制表项移动至识别的多个block中最高优先级的block,释放一个以上block。
[0022]
步骤106,将最高优先级block分配给被移动至最高优先级block的接入控制表项关联的应用。
[0023]
步骤107,将其中一个释放的block分配给第一应用。
[0024]
步骤108,将第一接入控制表项存储在分配给第一应用的block。
[0025]
图1所示实施例的有益效果在于,将不冲突的应用的acl表项合并在一个block中,节约了block资源,将释放的block存储需要动态配置的acl表吸纳过,避免了block资源不足导致没有可以分配给新应用的block而产生配置失败。
[0026]
图2为本申请提供的合并块存储资源第一实施例的示意图。图2中,通信设备的tcam包括四个block,分别是block1和block4。block1存储了应用a的acl表项acl a1-an,block2存储了应用b的acl表项b1-bm;block3存储了应用c的acl表项c1-cx;block4存储了
应用d的acl表项d1-dy。
[0027]
当通信设备需要应用f的acl表项f1,确定所有block已经分配了应用,已经没有可分配给应用f的block资源。基于图1所示的方法,先识别相邻的block1和block2存储了冲突的acl表项(譬如,匹配项相同的不需要叠加生效的acl;或匹配项相同且动作项的动作优先级相同的叠加生效acl表项),则不将block1和block2的acl表项合并。
[0028]
本申请先识别相邻block是否有冲突acl,能否合并。本申请中,相邻block是指优先级相近的block。
[0029]
通信设备之后先识别block2和block3存储了冲突的acl表项,然后识别block1和block3存储了非冲突的acl表项(譬如,匹配项不同的不需要叠加生效的acl或匹配项相同但是动作项的动作优先级不同的叠加生效acl表项)且block1的优先级更高。通信设备将block 3的acl表项c1-cx存储到block1,将block 3存储的应用c的acl表项c1-cx删除,从而将block3已存储的应用c的acl表项移动到block1。
[0030]
之后,通信设备先识别了block2和block4存储了冲突的acl表项,然后识别block1和block4存储了非冲突的acl表项且block1的优先级更高,通信设备将block 4的acl表项d1-dy存储到block1,将block 4存储的应用d的acl表项d1-dy删除,从而将block4已存储的应用d的acl表项移动到block1。
[0031]
通信设备将block 3分配给应用f,将acl表项f1配置在block3中如图2所示。
[0032]
图3-图5是在图2所示实施例的基础上,在合并后的block1配置acl表型发生acl表项冲突时,解决acl表项冲突的实施例。
[0033]
图3中。当通信设备需要配置应用acl表项dy+1,识别acl表项d y+1关联的应用d;确定block1已分配应用d给。
[0034]
当通信设备将acl表项dy+1与block1已存储的acl表项比较,确定block1存储有acl表项dy+1的冲突acl表项(检查应用a和c的acl表项);将释放的block4分配给应用d,将acl表项dy+1存储在block4,将block1存储的应用d的acl表项d1-dy存储到block4,将block1存储的应用d的acl表项d1-dy删除,从而将block1已存储的应用d的acl表项d1-dy移动到block4。
[0035]
图4中,通信设备确定block1存储了acl表项的dy+1的冲突acl表项时,确定block3存储的acl表项f1与acl表项的dy+1不冲突,将block3分配给应用d,将acl表项的dy+1存储于block3,将block1存储的应用d的acl表项d1-dy存储到block4,将block1存储的应用d的acl表项d1-dy删除,从而将block1已存储的应用d的acl表项d1-dy移动到block3。
[0036]
图5中,通信设备确定block1存储了acl表项的dy+1的冲突acl表项时,确定block1的存储的应用a和应用c的acl表项与acl表项f1是非冲突表项,将block3分配给应用a和c,将block1存储的应用a和c的acl表项存储到block4,将block1存储的应用a和c的acl表项删除,从而将block1已存储的应用a和c的acl表项移动到block3。
[0037]
设备的tcam中静态acl表项布局是由软件版本决定的。在实现本申请的过程中,发明人还注意到不同用户会基于自身网络业务需求而需要不同布局的静态acl布局时,因而需要为用户的专门开发特别版本满足静态acl布局。用户需求越多,需要的通信设备的软件版本的定制开发就更多。
[0038]
本申请中,通信设备可根据输入的静态配置acl控制指令,执行响应的操作。譬如,
交换机通过远程网管或者本地的输入界面(键盘、触控屏)输入指示待配置block以及待修改优先级的块优先级配置命令;通信设备基于获取的块优先级配置命令修改待配置block的优先级。譬如;通信设备收到获取了静态表项配置命令;其中,静态表项配置命令指示了移动前block,移动前存储位置,移动后block以及移动后存储位置;基于静态表项配置命令,将移动前block的移动前存储位置存储的待移动静态接入控制表项移动到移动后block的移动后存储位置。
[0039]
这样,通信设备可以根据不同静态配置命令灵活地修改block的优先级、灵活地移动在不同block之间移动静态配置的acl表项。
[0040]
图6所示为申请提供的表项管理设备实施例示意图,该设备60包括,转发网络报文的交换芯片、处理器以及存储器;存储器用于存储处理器可执行指令。处理器通过运行存储器中的处理器可执行指令用以执行以下操作:获取待动态配置的第一接入控制表项;识别第一接入控制表项关联的第一应用;确定各块block已分配给其他应用;识别三态内容寻址存储器中多个存储有非冲突接入控制表项的block;将识别的多个block中低优先级的block存储的接入控制表项移动至识别的多个block中最高优先级的block,释放一个以上block;将最高优先级block分配给被移动至最高优先级block的接入控制表项关联的应用;将其中一个释放的block分配给第一应用;将第一接入控制表项存储在分配给第一应用的block。
[0041]
处理器通过运行存储器中的处理器可执行指令还执行以下操作:获取待配置的第二接入控制表项;识别第二接入控制表项关联的第二应用;确定最高优先级block已分配给第二应用;确定最高优先级block存储有第二接入控制表项的冲突接入控制表项;将释放的block的一个未分配的block分配给第二应用,将第二接入控制表项存储在分配给第二应用的block,将最高优先级block已存储的第二应用的接入控制表项移动到分配给第二应用的block。
[0042]
处理器通过运行存储器中的处理器可执行指令还执行以下操作:获取待配置的第二接入控制表项;识别第二接入控制表项关联的第二应用;确定第二应用已分配给最高优先级block;确定最高优先级block存储有第二接入控制表项的冲突接入控制表项;确定分配给第一应用的block存储了第二接入控制表项的冲突表项;将第二应用分配给第一应用的block且将第二接入控制表项存储于分配给第一应用的block,将最高优先级block已存储的第二应用的接入控制表项移动到分配给第一应用的block。
[0043]
处理器通过运行存储器中的处理器可执行指令还执行以下操作:获取待配置的第二接入控制表项;识别第二接入控制表项关联的第二应用;确定第二应用已分配给最高优先级block;确定最高优先级block存储的第二接入控制表项的冲突接入控制表项;确定最高优先级block存储的其他应用的接入控制表项是第一接入控制表项的非冲突表项,将第一应用的block分配给其他应用,将最高优先级block存储的其他应用的接入控制表项移动到第一应用的block。
[0044]
处理器通过运行存储器中的处理器可执行指令还执行以下操作:获取携带了指示待配置block以及待修改优先级的块优先级配置命令;基于块优先级配置命令修改待配置block的优先级;获取静态表项配置命令;其中,静态表项配置命令指示了移动前block,移动前存储位置,移动后block以及移动后存储位置;基于静态表项配置命令,将移动前block
的移动前存储位置存储的待移动静态接入控制表项移动到移动后block的移动后存储位置。
[0045]
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1