报文修改方法、装置、计算机设备、介质制造方法及图纸

技术编号:32706757 阅读:14 留言:0更新日期:2022-03-20 08:01
本公开提供了一种报文修改方法、装置、计算机设备及介质,所述方法包括:将与报文封装信息相关的待修改字段划分为M个容器;对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;根据所述N组源操作数分别修改匹配的N个容器。在可编程技术的基础上,N组初始指令间为互不交叉的直接寻址,实现对连续的待修改字段进行并行修改,完成对报文封装信息的修改。使得一个周期可以执行一个超长指令集,采用并行修改,相较于串行修改能够明显降低指令操作延时。明显降低指令操作延时。明显降低指令操作延时。

【技术实现步骤摘要】
报文修改方法、装置、计算机设备、介质


[0001]本公开涉及以太网转发和传输通讯领域,具体涉及一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质。

技术介绍

[0002]通信网络的实质是数据交换,SDN(Network Defined Software,软件定义网络)提出三层架构,即应用层、控制层和转发层,SDN具有可编程性。openflow(使用类似于应用程序接口进程配置网络交换机的协议)协议运行在控制层和转发层之间。在Openflow架构的以太网转发交换系统中,报文的转发下一跳路径由SDN控制器和流表决策,并通过微引擎的指令进行报文的封装信息更新,实现不同网络设备之间的报文交换。
[0003]Openflow架构的微引擎设计通常采用VLIW(超长指令集,Very Long Instruction Word),实现单条指令集索引触发多个指令单元的执行。VLIW是一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。报文的封装信息更新时,指令一般采用串行执行,指令的串行执行周期会随着超长指令集中总指令个数的增多而加速增加。这里的串行执行是指一条微码指令只能对与报文封装信息相关的字段的某一段连续的内容进行修改,对不同位置字段的修改需要多条微码指令。微码指令指的是用软件技术来实现硬件设计的一种技术,它一般驻留在高速存储器中并将机器指令翻译成详细的电路操作序列。
[0004]如何对与报文封装信息相关的字段进行修改是本领域亟待解决的技术问题。

技术实现思路

[0005]本公开针对现有技术中存在的上述不足,提供一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质。
[0006]第一方面,本公开实施例提供一种报文修改方法,包括:
[0007]将与报文封装信息相关的待修改字段划分为M个容器;
[0008]对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;
[0009]对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;
[0010]根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;
[0011]根据所述N组源操作数分别修改匹配的N个容器。
[0012]在一些实施例中,将与报文封装信息相关的待修改字段划分为M个容器,包括:
[0013]将所述待修改字段划分为M个字段,并将每个字段配置成一个容器。
[0014]在一些实施例中,所述初始指令包括算数逻辑运算单元ALU指令,对执行修改命令的超长指令集进行指令提取,得到N组初始指令,包括:
[0015]根据所述超长指令集的索引查询ALU bitmap ram,得到多组N位宽ALU bitmap信息;
[0016]对所述多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果;
[0017]根据所述第一拼接结果,确定相应的指令索引;
[0018]根据所述指令索引和动态配置ram指令表,得到N组ALU指令。
[0019]在一些实施例中,所述待修改字段包括报文字段,对初始指令进行处理,包括:
[0020]对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
[0021]根据所述配置信息和动态配置ram指令表提取出所述源操作数。
[0022]在一些实施例中,所述待修改字段包括元框架描述符Meta-Frame字段,对初始指令进行处理,还包括:
[0023]对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
[0024]对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据;
[0025]根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数。
[0026]在一些实施例中,对所述初始指令进行解析,得到配置信息,包括:
[0027]根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
[0028]在一些实施例中,根据所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
[0029]查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
[0030]对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
[0031]根据所述指令类型配置参数对所述action源操作数和N组立即数源操作数进行处理,提取出所述源操作数。
[0032]在一些实施例中,根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
[0033]查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
[0034]对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述压缩后Meta-Frame配置数据和所述Meta-Frame源操作数配置信息进行计算提取出Meta-Frame源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
[0035]根据所述指令类型配置参数对所述action源操作数、Meta-Frame源操作数和立即数源操作数进行处理,提取出所述源操作数。
[0036]在一些实施例中,对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据,包括:
[0037]通过间接寄存器获取空分交换网络Banyan的N组配置信息;
[0038]获取Meta-Frame字段划分的N个字段;
[0039]将所述Banyan的N组配置信息和所述N个字段进行拼接,得到第二拼接结果;
[0040]将所述第二拼接结果发送到所述Banyan;
[0041]通过所述Banyan获取压缩后Meta-Frame配置数据。
[0042]在一些实施例中,通过所述Banyan获取压缩后Meta-Frame配置数据,包括:
[0043]按照从低位到高位的顺序取出所述Banyan返回的部分数据;
[0044]将所述部分数据进行拼接得到所述压缩后Meta-Frame配置数据。
[0045]在一些实施例中,根据所述N组源操作数分别修改匹配的N个容器,包括:
[0046]根据所述修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容;
[0047]根据所述N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改,每一组源操作数位数均小于匹配的容器支本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文修改方法,包括:将与报文封装信息相关的待修改字段划分为M个容器;对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;根据所述N组源操作数分别修改匹配的N个容器。2.如权利要求1所述的方法,其中,将与报文封装信息相关的待修改字段划分为M个容器,包括:将所述待修改字段划分为M个字段,并将每个字段配置成一个容器。3.如权利要求1所述的方法,其中,所述初始指令包括算数逻辑运算单元ALU指令,对执行修改命令的超长指令集进行指令提取,得到N组初始指令,包括:根据所述超长指令集的索引查询ALU位图bitmap随机存储器ram,得到多组N位宽ALU bitmap信息;对所述多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果;根据所述第一拼接结果,确定相应的指令索引;根据所述指令索引和动态配置ram指令表,得到N组ALU指令。4.根据权利要求1所述的方法,其中,所述待修改字段包括报文字段,对初始指令进行处理,包括:对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;根据所述配置信息和动态配置ram指令表提取出所述源操作数。5.根据权利要求1所述的方法,其中,所述待修改字段包括元框架描述符Meta-Frame字段,对初始指令进行处理,还包括:对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据;根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数。6.如权利要求4或5所述的方法,其中,对所述初始指令进行解析,得到配置信息,包括:根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。7.如权利要求6所述的方法,其中,根据所述配置信息和动态配置ram指令表提取出所述源操作数,包括:查询所述动态配置ram指令表中的action配置数据和立即数配置数据;对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;根据所述指令类型配置参数对所述action源操作数和N组立即数源操作数进行处理,提取出所述源操作数。8.如权利要求6所述的方法,其中,根据所述压缩后Meta-Fr...

【专利技术属性】
技术研发人员:谭铜磊周峰徐金林刘衡祁
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:

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

1