一种数据处理方法、智能网卡和电子设备技术

技术编号:37506452 阅读:15 留言:0更新日期:2023-05-07 09:43
本申请公开一种智能网卡,数据处理方法和电子设备,智能网卡包括:硬件层和软件层;硬件层包括报文解析模块、第一存储模块、第一流表查找模块、第一发送模块;报文解析模块解析报文;第一存储模块中的第一转发流表中包括流标识信息、与流标识信息对应的报文匹配域信息;第一流表查找模块查找与报文信息匹配的报文匹配域信息,以及与报文匹配域信息对应的流标识信息;第一发送模块将查找到的流标识信息和报文信息,发送到软件层的快路径模块;快路径模块中包括第二存储模块、第二流表查找模块和处理模块;处理模块用于根据查找到的目标流标识信息对应的执行动作信息,对接收的报文信息进行处理,保证实效性和提高处理性能,及保证灵活性。灵活性。灵活性。

【技术实现步骤摘要】
一种数据处理方法、智能网卡和电子设备


[0001]本申请涉及计算机
,具体涉及一种智能网卡,以及数据处理方法。本申请同时涉及一种计算机存储介质和电子设备。

技术介绍

[0002]传统数据中心基于冯诺依曼架构,所有的数据都需要送到CPU(central processing unit,中央处理器)进行处理。随着数据中心的高速发展,摩尔定律逐渐放缓以及失效,使得通用CPU性能增长的边际成本迅速上升,CPU的处理速率已经不能满足数据处理的要求。为应对网络带宽从主流10G朝着25G、40G、100G、200G甚至400G发展,计算架构从以CPU为中心的Onload(加载)模式,向以数据为中心的Offload(卸载)模式转变,而给CPU减负的重任就落在了网卡(网络适配器)上,这也推动了网卡的高速发展因素之一。随着技术的不断发展,网卡从基础功能网卡,发展到智能网卡(第一代智能网卡),以及智能网卡DPU(第二代智能网卡,DPU:Data Processing Unit是以数据为中心构造的专用处理器)。
[0003]不论是一代智能网卡还是二代的DPU智能网卡,不仅实现传统基础功能网卡的以太网络连接,还将网络传输的数据包处理工作从CPU上移除过来,即可以卸载CPU的网络处理工作负载和有关任务,如虚拟交换、安全隔离、QoS(Quality of Service:服务质量)等网络运行管理任务,以及一些高性能计算(HPC:High Performance Computing)和人工智能(AI:Artificial Intelligence)机器学习,从而可以释放CPU内核、节省CPU资源以用于应用业务任务的处理。
[0004]因此,智能网卡一方面能够降低CPU负载,提升数据中的整体性能;另一方面能够提高CPU对应用任务的处理速度。

技术实现思路

[0005]本申请提供一种数据处理方法,以解决现有技术中数据转发性能低且不灵活的问题。
[0006]本申请提供一种智能网卡,包括:硬件层和软件层;
[0007]所述硬件层包括报文解析模块、第一存储模块、第一流表查找模块、第一发送模块;其中,所述报文解析模块用于解析报文获得报文信息;所述第一存储模块中用于存储第一转发流表,所述第一转发流表中包括流标识信息、以及与所述流标识信息对应的报文匹配域信息,且所述第一转发流表中不包括与所述报文匹配域信息对应的执行动作信息;所述第一流表查找模块用于在所述第一转发流表中查找与所述报文信息匹配的所述报文匹配域信息,以及与所述报文匹配域信息对应的所述流标识信息;所述第一发送模块用于将所述第一流表查找模块查找到的所述流标识信息,以及所述报文信息,发送到所述软件层的快路径模块;
[0008]所述软件层包括快路径模块;所述快路径模块中包括第二存储模块、第二流表查找模块和处理模块;所述第二存储模块存储有第二转发流表,所述第二转发流表中包括流
标识信息、与所述流标识信息对应的报文匹配域信息、以及与所述报文匹配域信息对应的执行动作信息;所述第二流表查找模块用于在所述第二转发流表中查找与所述第一发送模块发送的所述流标识信息匹配的目标流标识信息;所述处理模块用于根据所述目标流标识信息对应的所述执行动作信息,对接收的所述报文信息进行处理。
[0009]在一些实施例中,所述软件层还包括慢路径模块;所述慢路径模块包括生成模块和第三发送模块;所述生成模块用于当所述第一转发流表中不存在所述报文信息匹配的报文匹配域信息时,和/或,所述报文为首包报文时,根据对所述报文信息和/或所述首包报文的处理生成第三转发流表项,所述第三转发流表项包括与所述报文信息和/或所述首包报文对应的报文匹配域信息、与所述报文匹配域信息对应的流标识信息、以及与所述报文匹配域信息对应的执行动作信息;所述第三发送模块用于将所述第三转发流表项中的所述流标识信息和所述报文匹配域信息发送到所述硬件层的第一存储模块;将所述第三转发流表项发送到所述快路径模块的第二存储模块。
[0010]在一些实施例中,所述硬件层还包括数据缓存区,所述数据缓存区包括多个数据缓存队列,用于缓存预设批次的完成所述第一转发流表查找后的报文信息,并将属于相同流标识信息的报文信息,缓存至同一数据缓存队列中;
[0011]所述硬件层的第一发送模块,用于将所述同一数据缓存队列中存储的同一组报文的所述报文信息和所述流标识信息,同时发送到所述软件层的快路径模块;
[0012]所述快路径模块中的处理模块,用于根据在所述第二转发流表中查找匹配的目标流标识信息,并根据所述目标流标识信息对应的目标执行动作信息,对所述同一数据缓存队列中的报文信息进行相同处理。
[0013]本申请还提供一种数据处理方法,应用于上述的智能网卡,该方法包括:
[0014]硬件层接收待处理报文,并对所述待处理报文进行解析获得报文信息,并在第一转发流表中查找是否存在与所述报文信息匹配的报文匹配域信息;
[0015]若是,则将所述报文匹配域信息对应的流标识信息以及所述报文信息,发送到软件层;
[0016]所述软件层的快路径模块根据所述流标识信息,在所述第二转发流表中查找到与所述流标识信息匹配的目标流标识信息,根据所述目标流标识信息,确定所述报文信息对应的目标执行动作信息;
[0017]所述快路径模块根据所述目标执行动作信息,对所述报文信息进行处理。
[0018]在一些实施例中,还包括:
[0019]当在所述第一转发流表的查找结果为不存在与所述报文信息匹配的报文匹配域信息时,和/或,所述待处理报文为首包报文时,所述硬件层将所述报文信息和/或所述首包报文发送到所述软件层的慢路径模块;
[0020]所述慢路径模块根据所述报文信息和/或所述首包报文的处理生成第三转发流表项,所述第三转发流表项中包括与所述报文信息和/或所述首包报文对应的报文匹配域信息、与所述报文匹配域信息对应的流标识信息、以及与所述报文匹配域信息对应的执行动作信息;将所述第三转发流表项发送到所述快路径模块的第二存储模块;将所述第三转发流表项中的所述流标识信息和所述报文匹配域信息发送到所述硬件层的第一存储模块;
[0021]所述快路径模块的第二存储模块根据接收的所述第三转发流表项,更新所述第二
转发流表,并根据更新后的所述第二转发流表中记录的所述报文信息对应的执行动作信息,对所述报文信息进行处理;
[0022]所述硬件层的第一存储模块根据接收的所述第三转发流表项中的所述流标识信息、所述报文匹配域信息,对所述第一转发流表进行更新。
[0023]在一些实施例中,还包括:
[0024]所述硬件层将预设批次完成所述第一转发流表查找后的报文信息,按照相同的所述流标识信息划分为同一组报文存储到所述硬件层的数据缓存队列中,其中,属于相同流标识信息的报文信息,缓存至同一数据缓存队列中;
[0025]将所述同一组报文中的所述流标识信息,以及所述同一组报文的报文信息,同时发送到所述快路径模块;...

【技术保护点】

【技术特征摘要】
1.一种智能网卡,其特征在于,包括:硬件层和软件层;所述硬件层包括报文解析模块、第一存储模块、第一流表查找模块、第一发送模块;其中,所述报文解析模块用于解析报文获得报文信息;所述第一存储模块中用于存储第一转发流表,所述第一转发流表中包括流标识信息、以及与所述流标识信息对应的报文匹配域信息,且所述第一转发流表中不包括与所述报文匹配域信息对应的执行动作信息;所述第一流表查找模块用于在所述第一转发流表中查找与所述报文信息匹配的所述报文匹配域信息,以及与所述报文匹配域信息对应的所述流标识信息;所述第一发送模块用于将所述第一流表查找模块查找到的所述流标识信息,以及所述报文信息,发送到所述软件层的快路径模块;所述软件层包括快路径模块;所述快路径模块中包括第二存储模块、第二流表查找模块和处理模块;所述第二存储模块存储有第二转发流表,所述第二转发流表中包括流标识信息、与所述流标识信息对应的报文匹配域信息、以及与所述报文匹配域信息对应的执行动作信息;所述第二流表查找模块用于在所述第二转发流表中查找与所述第一发送模块发送的所述流标识信息匹配的目标流标识信息;所述处理模块用于根据所述目标流标识信息对应的所述执行动作信息,对接收的所述报文信息进行处理。2.根据权利要求1所述的智能网卡,其特征在于,所述软件层还包括慢路径模块;所述慢路径模块包括生成模块和第三发送模块;所述生成模块用于当所述第一转发流表中不存在所述报文信息匹配的报文匹配域信息时,和/或,所述报文为首包报文时,根据对所述报文信息和/或所述首包报文的处理生成第三转发流表项,所述第三转发流表项包括与所述报文信息和/或所述首包报文对应的报文匹配域信息、与所述报文匹配域信息对应的流标识信息、以及与所述报文匹配域信息对应的执行动作信息;所述第三发送模块用于将所述第三转发流表项中的所述流标识信息和所述报文匹配域信息发送到所述硬件层的第一存储模块;将所述第三转发流表项发送到所述快路径模块的第二存储模块。3.根据权利要求1所述的智能网卡,其特征在于,所述硬件层还包括数据缓存区,所述数据缓存区包括多个数据缓存队列,用于缓存预设批次的完成所述第一转发流表查找后的报文信息,并将属于相同流标识信息的报文信息,缓存至同一数据缓存队列中;所述硬件层的第一发送模块,用于将所述同一数据缓存队列中存储的同一组报文的所述报文信息和所述流标识信息,同时发送到所述软件层的快路径模块;所述快路径模块中的处理模块,用于根据在所述第二转发流表中查找匹配的目标流标识信息,并根据所述目标流标识信息对应的目标执行动作信息,对所述同一数据缓存队列中的报文信息进行相同处理。4.一种数据处理方法,其特征在于,应用于权利要求1

3任一项所述的智能网卡,该方法包括:硬件层接收待处理报文,并对所述待处理报文进行解析获得报文信息,并在第一转发流表中查找是否存在与所述报文信息匹配的报文匹配域信息;若是,则将所述报文匹配域信息对应的流标识信息以及所述报文信息,发送到软件层;所述软件层的快路径模块根据所述流标识信息,在所述第二转发流表中查找到与所述流标识信息匹配的目标流标识信息,根据所述目标流标识信息,确定所述报文信息对应的目标执行动作信息;
所述快路径模块根据所述目标执行动作信息,对所述报文信息进行处理。5.根据权利要求4所述的数据处理方法,其特征在于,还包括:当在所述第一转发流表的查找结果为不存在与所述报文信息匹配的报文匹配域信息时,和/或,所述待处理报文为首包报文时,所述硬件层将所述报文信息和/或所述首包报文发送到所述软件层的慢路径模块;所述慢路径模块根据所述报文信息和/或所述首包报文的处理生成第三转发流表项,所述第三转发流表项中包括与所述报文信息和/或所述首包报文对应的报文匹配域信息、与所述报文匹配域信息对应的流标识信息、以及与所述报文匹配域信息对应的执行动作信息;将所述第三转发流表项发送到所述快路径模块的第二存储模块;将所述第三转发流表项中的所述流标识信息和所述报文匹配域信息发送到所述硬件层的第一存储模块;所述快路径模块的第二存储模块根据接收的所述第三转发流表项,更新所述第二转发流表,并根据更新后的所述第二转发流表中记录的所述报文信息对应的执行动作信息,对所述报文信息进行处理;所述硬件层的第一存储模块根据接收的所述第三转发流表项中的所述流标识信息、所述报文匹配域信息,对所述第一转发流表进行更新。6.根据权利要求5所述的数据处理方法,其特征在于,还包括:所述硬件层将预设批次完成所述第一转发流表查找后的报文信息,按照相同的所述流标识信息划分为同一组报文存储到所述硬件层的数据缓存队列中,其中,属于相同流标识信息的报文信息,缓存至同一数据缓存队列中;将所述同一组报文中的所述流标识信息,以及所述同一组报文的报文信息,同时发送到所述快路径模块;所述快路径模块根据所述流标识信息,在所述第二转发流表中查找到与所述流标识信息匹配的目标流标识信息,根据所述目标流标识信息确定的所述同一组报文的报文信息对应的目标执行动作信息,对所述同一组报文中的报文信息进行处理。7.根据权利要求6所述的数据处理方法,其特征在于,所述将所述同一组报文中的所述流标识信息,以及所述同一组报文的报文信息,发送到所述快路径模块,包括:将所述同一组报文的所述流标识信息,以向量的方式发送到所述快路径模块;其中,所述向量包括所述同一组报文的相同流标识信息;所述快路径模块根据所述流标识信息,在所述第二转发流表中查找到与所述流标识信息匹配的目标流标识信息,根据所述目标流标识信息确定的所述同一组报文的报文信息对应的目标执行动作信息,对所述同一组报文中的报文信息进行处理,包括:所述快路径模块根据所述相同流标识信息,在所述第二转发流表中查找到与所述相同流标识信息匹配的目标流标识信息,并根据所述目标流标识信息对应的所述目标执行动作信息,对所述同一组报文中的报文信息进行处理。8.一种智能网卡,其特征在于,包括:硬件层和软件层;所述硬件层包括报文解析模块、第一存储模块、第一流表查找模块、第一发送模块、第一处理模块;其中,所述报文解析模块用于解析报文获得报文信息;所述第一存储模块中存储第一转发流表,所述第一转发流表中包括流标识信息、与所述流标识信息对应的报文匹配域信息,以及与所述报文匹配域信息对应的执行动作信息;所述第一流表查找模块用于
在所述第一转发流表中查找与所...

【专利技术属性】
技术研发人员:吕怡龙陈子康
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1