本发明涉及网络通讯,尤其涉及基于dpu的报文发送方法、装置及计算机存储介质。
背景技术:
1、近年来,随着网络流量的急剧增长,cpu算力的增长已难以适配网络传输流量的速度,且随着open flow、open vswitch(ovs)等新虚拟交换技术的引入,使服务器的网络传输复杂性进一步增加;为适配新虚拟交换技术对服务器处理能力的需求,通常会在服务器侧引入智能网卡,从而将网络、存储和操作系统中不适合cpu处理的高性能数据处理功能,转移至dpu硬件中执行,以提升数据处理能力和释放cpu算力。
2、在基于dpu的智能网卡架构中,表项匹配为dpu支持的重要能力之一;目前,表项匹配的实现主要是依赖于转发芯片与tcam(ternary content addressable memory,三态内容可寻址存储器)芯片之间的配合,即转发芯片在接收到报文后,基于与tcam的连接通道,将报文中提取的特征值发送给tcam芯片;tcam芯片接收到特征值后,查找芯片存储空间内的表项匹配条目,将匹配结果通过连接通道返回给转发芯片;转发芯片根据匹配结果,对报文进行相应处理。然而,现有的tcam芯片存在成本高、功耗大等缺点,且芯片的内嵌内存相对其他存储器较小,使得表项匹配条目的存储数量受限,于面对大容量的表项场景(如分离器)时,往往会出现使用受限和无法拓展等问题,进而导致报文处理功能的可拓展性较差。
技术实现思路
1、鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于dpu的报文发送方法、装置及计算机存储介质,可以解决现有的基于tcam芯片的报文发送方法因受tcam芯片内存大小的限制,而导致功能的可拓展性较差等问题。
2、为实现上述目的及其他相关目的,本发明于第一方面提供一种基于dpu的报文发送方法,适用于dpu,所述dpu分别连接cpu和存储器;所述基于dpu的报文发送方法,包括:
3、对输入的数据报文进行特征提取,获得所述数据报文中包含的标识特征;
4、基于第一表项地址,读取所述存储器内与所述第一表项地址对应的特征匹配表项,并于所述特征匹配表项中,确定与所述标识特征对应的表项内容;
5、基于第二表项地址,读取所述存储器内与所述第二表项地址对应的规则表项;根据所述表项内容,于所述规则表项中获取与所述表项内容对应的处理规则,以基于所述处理规则对所述数据报文进行处理,并将处理后的报文转发至外部;
6、其中,所述第一表项地址为特征匹配表项于所述存储器中的存储地址信息;所述特征匹配表项为属于同一业务类型的各表项内容的集合;
7、所述第二表项地址为规则表项于所述存储器中的存储地址信息;所述规则表项为各所述表项内容与各处理规则之间的映射关系。
8、于本发明第一方面的实施例中,所述对输入的数据报文进行特征提取,包括:
9、对所述数据报文执行包括l2、l3和l4层的特征解析和特征提取,以获得源mac、目的mac、源ip和目的ip等标识特征。
10、于本发明第一方面的实施例中,所述特征匹配表项中还包括表项标签,与所述表项内容为一一对应:则所述基于dpu的报文发送方法,还包括:
11、获取与所述表项内容对应的表项标签;以及,根据所述表项标签,于所述规则表项中获取与所述表项标签对应的处理规则;其中,所述处理规则与所述表项标签为预先构建的第三映射关系,且存储于所述特征匹配表项中。
12、于本发明第一方面的实施例中,所述基于dpu的报文发送方法,还包括:
13、获取所述cpu发送的表项匹配消息,所述表项匹配消息包括表项匹配信息和所述表项匹配信息对应的待存储地址;基于该待存储地址,将所述表项匹配信息存储至所述存储器的相应存储空间内,以及,根据所述待存储地址,更新所述第一表项地址和/或第二表项地址;其中,所述表项匹配信息包括所述表项内容与所述标识特征之间新的对应关系,和/或所述表项内容与所述处理规则之间新的对应关系。
14、于本发明第一方面的实施例中,所述cpu连接所述存储器,用于获取空闲的存储地址;所述表项匹配消息的获取方式,包括:
15、所述cpu于接收到表项匹配规则后,将该表项匹配规则转换为对应的表项匹配信息;并且,所述cpu获取所述存储器内空闲的存储地址,作为待存储地址;所述cpu采用data/mask的数据处理方式,将所述表项匹配信息与所述待存储地址组成所述表项匹配消息
16、于本发明第一方面的实施例中,所述表项匹配信息包括所述表项内容与所述标识特征之间的对应关系,和所述表项内容与所述处理规则之间的对应关系。
17、本发明于第二方面提供一种基于dpu的报文发送装置,包括:cpu、dpu和存储器;所述cpu中设有表项配置模块和表项下发模块;所述dpu中设有表项管理模块、特征提取模块、分类模块、匹配模块和转发模块;所述存储器中存储有特征匹配表项和规则表项;其中,
18、所述特征提取模块连接所述分类模块,用于对数据报文进行特征提取,以获得所述数据报文中包含的标识特征,并将所述标识特征传输至所述分类模块;
19、所述分类模块连接所述匹配模块和存储器,用于根据第一表项地址,读取所述存储器内与所述第一表项地址对应的特征匹配表项,并于所述特征匹配表项中,确定与所述标识特征对应的表项内容;
20、所述匹配模块连接所述存储器和所述转发模块,用于根据第二表项地址,读取所述存储器内与所述第二表项地址对应的规则表项;根据所述表项内容,于所述规则表项中获取与所述表项内容对应的处理规则,以基于所述处理规则对所述数据报文进行处理,并将处理后的数据报文发送至所述转发模块中;
21、所述匹配控制模块连接所述表项管理模块和所述存储器,用于获取表项匹配规则,将该表项匹配规则转换为对应的表项匹配信息,以及,获取所述存储器内空闲的存储地址,将该空闲存储地址作为待存储地址与所述表项匹配信息组合成表项匹配消息,并将所述表项匹配消息传输至所述表项管理模块;
22、以及,所述表项管理模块连接所述存储器,用于解析所述表项匹配消息,获取其中的所述表项匹配信息和所述待存储地址;基于所述待存储地址,将所述表项匹配信息存储至所述存储器中。
23、于本发明第二方面的实施例中,所述匹配控制模块包括表项配置子模块和表项下发子模块;所述表项配置子模块用于获取表项匹配规则,将该表项匹配规则转换为对应的表项匹配信息;所述表项下发模块连接所述表项配置模块和所述存储器,用于获取所述存储器内空闲的存储地址,将该空闲的存储地址设为待存储该表项匹配信息的待存储地址,并所述待存储地址与所述表项匹配信息组合成所述表项匹配消息;其中,所述第一表项地址为特征匹配表项于所述存储器中的存储地址信息;所述特征匹配表项为属于同一业务类型的各表项内容的集合;所述第二表项地址为规则表项于所述存储器中的存储地址信息;所述规则表项为各所述表项内容与各处理规则之间的映射关系。
24、于本发明第二方面的实施例中,所述特征匹配表项中还包括表项标签,与所述表项内容为一一对应;所述分类模块还包括用于获取与所述表项内容对应的表项标签;以及,所述匹配模块用于根据所述表项标签,于所述规则表项中获取与所述表项标签对应的处理规则,以基于所述处理规则对所述数据报文进行处理。
25、本发明于第三方面还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意所述的基于dpu的报文发送方法。
26、如上所述,本发明提供的所述基于dpu的报文发送方法、装置及计算机存储介质,通过将dpu分别连接cpu和存储器,和于dpu中存储第一表项地址和第二表项地址,以基于第一表项地址读取所述存储器内相应位置处的特征匹配表项,以确定与标识特征对应的表项内容;和基于第二表项地址,读取所述存储器内相应位置处的规则表项,以根据所述表项内容,获取对应的处理规则,和基于所述处理规则实现所述数据报文的处理和发送,从而无需基于tcam芯片即可实现报文的规则匹配,且通过将特征匹配表项和规则表项均存储于所述存储器中,可大大提高表项匹配信息的存储能力,从而可以提高表项匹配的灵活性和可拓展性,进而提升了报文处理和发送功能的灵活性和可拓展性。
1.一种基于dpu的报文发送方法,其特征在于,适用于dpu,所述dpu分别连接cpu和存储器;所述基于dpu的报文发送方法,包括:
2.根据权利要求1所述的基于dpu的报文发送方法,其特征在于,所述对输入的数据报文进行特征提取,包括:
3.根据权利要求1所述的基于dpu的报文发送方法,其特征在于,所述特征匹配表项中还包括表项标签,与所述表项内容为一一对应:则所述基于dpu的报文发送方法,还包括:
4.根据权利要求1所述的基于dpu的报文发送方法,其特征在于,还包括:
5.根据权利要求4所述的基于dpu的报文发送方法,其特征在于,所述cpu连接所述存储器,用于获取空闲的存储地址;所述表项匹配消息的获取方式,包括:
6.根据权利要求5所述的基于dpu的报文发送方法,其特征在于,所述表项匹配信息包括所述表项内容与所述标识特征之间的对应关系,和所述表项内容与所述处理规则之间的对应关系。
7.一种基于dpu的报文发送装置,其特征在于,包括:cpu、dpu和存储器;所述cpu中设有表项配置模块和表项下发模块;所述dpu中设有表项管理模块、特征提取模块、分类模块、匹配模块和转发模块;所述存储器中存储有特征匹配表项和规则表项;其中,
8.根据权利要求7所述的基于dpu的报文发送装置,其特征在于,所述匹配控制模块包括表项配置子模块和表项下发子模块;其中,
9.根据权利要求7所述的基于dpu的报文发送装置,其特征在于,所述特征匹配表项中还包括表项标签,与所述表项内容为一一对应;
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的基于dpu的报文发送方法。