一种基于多核异构平台的CAM表的操作方法技术

技术编号:28120874 阅读:32 留言:0更新日期:2021-04-19 11:27
本发明专利技术公开了一种基于多核异构平台的CAM表的操作方法,通过将CAM表与会话表的构建进行结合,使得基于会话表的报文对CAM表的新建操作集中在CAM表主维护核CPUS中,大幅降低了对CAM表的锁竞争,从而保证了多核并发时报文转发的性能能够随着CPU个数的增加而线性增长。长。长。

【技术实现步骤摘要】
一种基于多核异构平台的CAM表的操作方法


[0001]本专利技术属于计算机网络
,具体涉及一种基于多核异构平台的CAM表的操作方法。

技术介绍

[0002]二层交换机的地址(CAM)表是由物理地址(Media Access Control,Mac)、Vlan、二层设备组成的地址表。CAM表是全局表,在数据转发系统中,数据转发方每收到或者发送一个报文时都需要对CAM表进行查询和/或更新操作,对CAM表的更新包括增加CAM表项、删除CAM表项、更新CAM表项操作。
[0003]现有的基于多核异构平台的报文转发系统中对CAM表的操作如图1所示,从图中可以看到,用户态下不同的转发核、内核态下的线程或软中断在进行报文转发的过程中都需要对CAM表进行查询和/或更新操作,其中,内核态的线程作为配置模块,该配置模块用于配置静态CAM表,例如增加CAM表项、删除CAM表项等;内核态的软中断为慢速转发核,该慢速转发核用于新建或刷新会话表时需要查询CAM表获取当前报文的二层出口设备;用户态的进程为快速转发核,该快速转发核在收到报文时需要新建CAM表项、更新CAM表项。此外,由于CAM表具有超时机制,所以每个CPU都需要维护CAM表的超时功能。
[0004]在报文转发过程中,对CAM表进行操作最多的应该是基于会话转发报文对CAM表的操作,这些报文并发时吞吐甚至可以达到每秒10G,而且,由于CAM表为全局表,因此在多核报文转发系统中会存在多核竞争同一CAM表的问题。综上所述,在多核报文转发系统报文转发量较大时,对CAM表项的更新操作必然会导致多核并发性能的大幅下降,从而影响整个异构平台报文转发系统的吞吐量。

技术实现思路

[0005]有鉴于此,本专利技术提供了一种基于多核异构平台的CAM表的操作方法,能够解决基于多核异构平台的报文转发系统的吞吐量问题。
[0006]本专利技术提供的一种基于多核异构平台的CAM表的操作方法,包括以下步骤:
[0007]内核态进程从用户态进程转发的报文中选出需要新建CAM表项的报文作为待新建CAM表项报文,所述内核态进程将所述待新建CAM表项报文转发至CAM表主维护核,所述CAM表主维护核运行在用户态;所述CAM表主维护核查询是否存在与所述待新建CAM表项报文对应的CAM表项,如果存在,则所述CAM表主维护核将所述待新建CAM表项报文转发给用户态进程新建会话;否则,所述CAM表主维护核为所述待新建CAM表项报文新建会话及新建CAM表项。
[0008]进一步地,所述用户态进程转发的报文的生成过程,包括以下步骤:
[0009]所述用户态进程判断是否需要为收到的新报文新建会话,如果需要则查询所述新报文是否存在对应的CAM表项,如果所述新报文存在对应的CAM表项,但所述新报的右方向报文不存在对应的CAM表项,那么将所述新报文转发至所述内核态进程;如果所述新报文存
在对应的CAM表项且所述新报文的右方向报文也存在对应的CAM表项,则当所述CAM表项满足更新条件时,更新CAM表,否则,结束流程;如果所述新报文不存在对应的CAM表项,则将增加标签后的所述新报文转发至所述内核态进程;
[0010]如果不需要新建会话,则结束流程。
[0011]进一步地,所述CAM表的更新过程为无锁操作。
[0012]进一步地,所述内核态进程从用户态进程转发的报文中选出需要新建CAM表项的报文作为待新建CAM表项报文的过程包括:
[0013]所述内核态进程将带有标签的报文作为所述待新建CAM表项报文;
[0014]所述内核态进程接收的报文为不带标签的报文时,判断接收的报文的右方向报文是否需要新建CAM表项,如果需要新建CAM表项,则将接收的报文作为所述待新建CAM表项报文;如果不需要新建CAM表项,则将接收的报文转发至所述用户态进程。
[0015]进一步地,所述CAM表主维护核为所述待新建CAM表项报文新建会话及新建CAM表项,所述方法还包括:所述CAM表主维护核将当前时间赋值到新建的CAM表项的time项中。
[0016]进一步地,所述方法还包括将会话表项的两个方向报文的五元组使用filter set机制设置到网卡上。
[0017]有益效果:
[0018]1、本专利技术通过将CAM表与会话表的构建进行结合,使得基于会话表的报文对CAM表的新建操作集中在CAM表主维护核CPUS中,大幅降低了对CAM表的锁竞争,从而保证了多核并发时报文转发的性能能够随着CPU个数的增加而线性增长。
[0019]2.本专利技术通过仅在会话表新建或删除时更新CAM表项,大幅降低了CAM表项的更新次数,同时,其它模块基于会话表对CAM表操作的报文则采用无锁查找和更新等操作方式,有效提升了并发性能。
[0020]3.本专利技术通过采用filter set功能将会话的五元组配置到网卡,使得会话的报文可以直接被网卡发送到对应的CPU中处理,避免报文在快速模块中基于会话的处理逻辑中进行报文倒核,从而有效提升了整体的转发性能。
附图说明
[0021]图1为现有的多核异构平台下报文转发系统中对CAM表的操作示意图。
[0022]图2为本专利技术提供的一种基于多核异构平台的CAM表的操作方法的流程图。
[0023]图3为本专利技术提供的一种基于多核异构平台的CAM表的操作方法的操作示意图。
具体实施方式
[0024]下面结合附图并举实施例,对本专利技术进行详细描述。
[0025]本专利技术提供的一种基于多核异构平台的CAM表的操作方法,其核心思想是:根据当报文需要新建会话时则该报文的CAM表项也不存在的原理,将新建CAM表项与新建会话进行结合,从而实现了由会话触发的CAM表操作。
[0026]本专利技术提供的一种基于多核异构平台的CAM表的操作方法,流程如图2所示,具体包括以下步骤:
[0027]步骤1、用户态进程收到报文后,其中,用户态进程为快速转发核,记为CPUX,用户
态进程查询是否需要为当前报文新建会话,如果不需要新建会话则不对CAM表进行操作,结束本流程;否则,执行步骤2。
[0028]当用户态进程判断当前报文的会话不存在时,可能存在以下两种情况:一是,当前报文的会话确实不存在;二是,当前报文所在会话的右方向报文需要在收到各端口返回的报文后才能确定当前报文是否存在对应的CAM表项。因此,基于上述分析,本专利技术将CAM表的操作与会话的判断相结合,能够对上述两种情况进行判断,在慢速转发核处理报文的过程中,即可获知当前报文是否存在与之对应的CAM表项,待当前报文从慢速转发核发往快速转发核时,即可将该报文直接转发至用于配置CAM表的主CPU中,该主CPU为CAM表主维护核CPUS,由CPUS完成CAM表的写操作,从而有效减少了多CPU核系统对CAM表项的写操作。其中,CPUS为运行于用户态的快速转发核。
[0029]步骤2、快速转发核CPUX查询CAM表,判断当前报文是否存在对应的CAM表项。如果当前报本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多核异构平台的CAM表的操作方法,其特征在于,包括以下步骤:内核态进程从用户态进程转发的报文中选出需要新建CAM表项的报文作为待新建CAM表项报文,所述内核态进程将所述待新建CAM表项报文转发至CAM表主维护核,所述CAM表主维护核运行在用户态;所述CAM表主维护核查询是否存在与所述待新建CAM表项报文对应的CAM表项,如果存在,则所述CAM表主维护核将所述待新建CAM表项报文转发给用户态进程新建会话;否则,所述CAM表主维护核为所述待新建CAM表项报文新建会话及新建CAM表项。2.根据权利要求1所述的方法,其特征在于,所述用户态进程转发的报文的生成过程,包括以下步骤:所述用户态进程判断是否需要为收到的新报文新建会话,如果需要则查询所述新报文是否存在对应的CAM表项,如果所述新报文存在对应的CAM表项,但所述新报的右方向报文不存在对应的CAM表项,那么将所述新报文转发至所述内核态进程;如果所述新报文存在对应的CAM表项且所述新报文的右方向报文也存在对应的CAM表项,则当所述CAM表项满足更新条件时,更新CAM表,否则,结束流程;如果...

【专利技术属性】
技术研发人员:邢潇谷杰铭张翀卓子寒吕欣润张奕欣张程鹏刘健男
申请(专利权)人:国家计算机网络与信息安全管理中心
类型:发明
国别省市:

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

1