流表管理方法及装置制造方法及图纸

技术编号:39302883 阅读:11 留言:0更新日期:2023-11-12 15:53
本申请实施例提供一种流表管理方法及装置。本申请实施例在转发流表中不存在与当前待处理的报文匹配的第一流表项时,依据本地已记录的RCU宽限期计数和链表数量,确定出作为申请链表的第一链表,并从第一链表中获取第二流表项,并设置该流表项内容后将该流表项作为第一流表项记录至转发流表中,使得转发线程能够在转发流表中查找到并使用该第一流表项;在需要释放该第一流表项时,则依据本地已记录的RCU宽限期计数和链表数量,确定出作为待释放链表的第二链表,将第一流表项添加至第二链表中,通过将第一流表项从转发流表中清除并记录至第二链表中,使得转发线程无法从转发流表中查找到该第一流表项,实现了转发线程对转发流表的管理。表的管理。表的管理。

【技术实现步骤摘要】
流表管理方法及装置


[0001]本申请涉及网络通信
,特别涉及流表管理方法及装置。

技术介绍

[0002]随着网络设备的CPU核心数的不断增加,以及基于DPDK(Data Plane Development Kit,数据平面开发套件)的用户态转发的广泛应用,网络设备内部署的转发线程的数量也逐渐增加。转发线程在进行报文处理时会依赖于流表(也称哈希表),然而,面对着逐渐增加的转发线程,目前并没有相关技术公开如何管理转发线程所依赖的流表。

技术实现思路

[0003]有鉴于此,本申请提供一种流表管理方法及装置,以解决相关技术中无法管理转发线程所依赖的流表的问题。
[0004]本申请提供的技术方案如下:根据本申请第一方面的实施例,提出了一种流表管理方法,该方法应用于网络设备中的转发线程;所述网络设备被部署了N个转发线程,N大于1,所述N个转发线程共享同一转发流表;每一转发线程具有对应的链表数组,每一链表数组包括M个链表,M大于或等于4;该方法包括:针对当前待处理的报文,若发现所述转发流表中不存在所述报文匹配的第一流表项,则依据本地已记录的读

复制更新RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为申请链表的第一链表;从所述第一链表中获取第二流表项,将本转发线程对所述报文进行处理后得到的处理结果记录至该第二流表项中,并将该第二流表项作为所述报文匹配的第一流表项记录至所述转发流表中;在需要释放所述转发流表中的所述第一流表项时,则依据本地记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为待释放链表的第二链表,将所述第一流表项添加至所述第二链表中,以使得所述第二链表作为申请链表时所述第一流表项被更新以记录至所述转发流表中。
[0005]可选的,所述报文为当前被分配的第一报文处理任务中的其中一个报文;该方法进一步包括:在第一报文处理任务完成后,检查所述本地记录的RCU宽限期计数与已记录的全局宽限期代际计数是否一致,若不一致,则更新所述本地记录的RCU宽限期计数为全局宽限期代际计数;依据更新后的本地记录的RCU宽限期计数和所述M,确定作为申请链表的第三链表,将所述第一链表中的流表项转存至所述第三链表。
[0006]可选的,所述全局宽限期代际计数用于反映所有转发线程完成被分配的报文处理任务的情况,其中,当所有转发线程均完成对应的报文处理任务后,所述全局宽限期代际计
数被增加第一设定值。
[0007]可选的,所述M个链表被设置对应的链表标识;依据本地已记录的读

复制更新RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为申请链表的第一链表包括:将本地已记录的当前RCU宽限期计数增加第二设定值,得到第一计算结果;将所述第一计算结果和所述M进行指定运算,得到第二计算结果;依据所述第二计算结果,从所述M个链表中确定链表标识与所述第二计算结果匹配的链表,将确定出的链表确定为所述第一链表。
[0008]可选的,所述M个链表被设置对应的链表标识;依据本地已记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为待释放链表的第二链表包括:将本地已记录的RCU宽限期计数和所述M进行指定运算,得到第三计算结果;依据所述第三计算结果,从所述M个链表中确定链表标识与所述第三计算结果匹配的链表,将确定出的链表确定为所述第二链表。
[0009]可选的,在第一报文处理任务完成之后,该方法进一步包括:接收第二报文处理任务;针对第二报文处理任务中待处理的报文,若发现所述转发流表中不存在所述报文匹配的第三流表项,则依据本地已记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出当前申请链表;若所述当前申请链表为所述第二链表,则从所述第二链表中获取流表项,该获取的流表项为所述第一流表项或者不为所述第一流表项,将本转发线程对所述报文进行处理后得到的处理结果记录至该获取的流表项中,并将该流表项作为所述报文匹配的第三流表项记录至所述转发流表中。
[0010]根据本申请第二方面的实施例,提出了一种流表管理装置,该装置被部署了N个转发线程,N大于1,所述N个转发线程共享同一转发流表;每一转发线程具有对应的链表数组,每一链表数组包括M个链表,M大于或等于4;该装置包括:申请单元,用于针对当前待处理的报文,若发现所述转发流表中不存在所述报文匹配的第一流表项,则依据本地已记录的读

复制更新RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为申请链表的第一链表;记录单元,用于从所述第一链表中获取第二流表项,将本转发线程对所述报文进行处理后得到的处理结果记录至该第二流表项中,并将该第二流表项作为所述报文匹配的第一流表项记录至所述转发流表中;释放单元,用于在需要释放所述转发流表中的所述第一流表项时,则依据本地记录的RCU宽限期计数和所述M,从本转发线程对应的链表中确定出作为待释放链表的第二链表,将所述第一流表项添加至所述第二链表中,以使得所述第二链表作为申请链表时所述第一流表项被更新以记录至所述转发流表中。
[0011]可选的,所述报文为当前被分配的第一报文处理任务中的其中一个报文;该装置还包括:更新单元,用于在对第一报文处理任务完成后,检查所述本地记录的RCU宽限期计
数与已记录的全局宽限期代际计数是否一致,若不一致,则更新所述本地记录的RCU宽限期计数为全局宽限期代际计数;依据更新后的本地记录的RCU宽限期计数和所述M,确定作为申请链表的第三链表,将所述第一链表中的流表项转存至所述第三链表;和/或,所述全局宽限期代际计数用于反映所有转发线程完成被分配的报文处理任务的情况,其中,当所有转发线程均完成对应的报文处理任务后,所述全局宽限期代际计数被增加第一设定值。
[0012]可选的,所述M个链表被设置对应的链表标识;所述申请单元具体用于:将本地已记录的当前RCU宽限期计数增加第二设定值,得到第一计算结果;将所述第一计算结果和所述M进行指定运算,得到第二计算结果;依据所述第二计算结果,从所述M个链表中确定链表标识与所述第二计算结果匹配的链表,将确定出的链表确定为所述第一链表;和/或,所述M个链表被设置对应的链表标识;所述释放单元具体用于:将本地已记录的RCU宽限期计数和所述M进行指定运算,得到第三计算结果;依据所述第三计算结果,从所述M个链表中确定链表标识与所述第三计算结果匹配的链表,将确定出的链表确定为所述第二链表。
[0013]可选的,在第一报文处理任务完成后,所述记录单元还用于:接收第二报文处理任务;针对第二报文处理任务中待处理的报文,若发现所述转发流表中不存在所述报文匹配的第三流表项,则依据本地已记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出当前申请链表;若所述当前申请链表为所述第二链表,则从所述第二链表中获取流表项,该获取的流表项为所述第一流表项或者不为所述第一流表项,将本转发线程对所述报文进行处理后得到的处理结果记录至该获取的流表项中,并将该本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流表管理方法,其特征在于,该方法应用于网络设备中的转发线程;所述网络设备被部署了N个转发线程,N大于1,所述N个转发线程共享同一转发流表;每一转发线程具有对应的链表数组,每一链表数组包括M个链表,M大于或等于4;该方法包括:针对当前待处理的报文,若发现所述转发流表中不存在所述报文匹配的第一流表项,则依据本地已记录的读

复制更新RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为申请链表的第一链表;从所述第一链表中获取第二流表项,将本转发线程对所述报文进行处理后得到的处理结果记录至该第二流表项中,并将该第二流表项作为所述报文匹配的第一流表项记录至所述转发流表中;在需要释放所述转发流表中的所述第一流表项时,则依据本地记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为待释放链表的第二链表,将所述第一流表项添加至所述第二链表中,以使得所述第二链表作为申请链表时所述第一流表项被更新以记录至所述转发流表中。2.根据权利要求1所述的方法,其特征在于,所述报文为当前被分配的第一报文处理任务中的其中一个报文;该方法进一步包括:在第一报文处理任务完成后,检查所述本地记录的RCU宽限期计数与已记录的全局宽限期代际计数是否一致,若不一致,则更新所述本地记录的RCU宽限期计数为全局宽限期代际计数;依据更新后的本地记录的RCU宽限期计数和所述M,确定作为申请链表的第三链表,将所述第一链表中的流表项转存至所述第三链表。3.根据权利要求2所述的方法,其特征在于,所述全局宽限期代际计数用于反映所有转发线程完成被分配的报文处理任务的情况,其中,当所有转发线程均完成对应的报文处理任务后,所述全局宽限期代际计数被增加第一设定值。4.根据权利要求1所述的方法,其特征在于,所述M个链表被设置对应的链表标识;依据本地已记录的读

复制更新RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为申请链表的第一链表包括:将本地已记录的当前RCU宽限期计数增加第二设定值,得到第一计算结果;将所述第一计算结果和所述M进行指定运算,得到第二计算结果;依据所述第二计算结果,从所述M个链表中确定链表标识与所述第二计算结果匹配的链表,将确定出的链表确定为所述第一链表。5.根据权利要求1所述的方法,其特征在于,所述M个链表被设置对应的链表标识;依据本地已记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出作为待释放链表的第二链表包括:将本地已记录的RCU宽限期计数和所述M进行指定运算,得到第三计算结果;依据所述第三计算结果,从所述M个链表中确定链表标识与所述第三计算结果匹配的链表,将确定出的链表确定为所述第二链表。6.根据权利要求2所述的方法,其特征在于,在第一报文处理任务完成之后,该方法进一步包括:接收第二报文处理任务;
针对第二报文处理任务中待处理的报文,若发现所述转发流表中不存在所述报文匹配的第三流表项,则依据本地已记录的RCU宽限期计数和所述M,从本转发线程对应的链表数组中确定出当前申请链表;若所述当前申请链表为所述第二链表,则从所述第二链表中获取流表项,该获取的流表项为所述第一流表项或者不为所述第一流表项,将本转发...

【专利技术属性】
技术研发人员:肖尧
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1