可编程报文编辑加速引擎、报文编辑方法及系统技术方案

技术编号:37852440 阅读:9 留言:0更新日期:2023-06-14 22:43
本发明专利技术的可编程报文编辑加速引擎、报文编辑方法及系统,通过引擎输入端口依次接收携带有脚本代码的报文数据包中的多个分片报文,再通过所述脚本解析器对所述报文数据包的脚本代码进行解析并生成操作码,并由所述流水线处理电路通过多级流水处理级基于所述操作码对各分片报文按照对应的发送顺序依次进行处理,以按顺序依次输出处理后的各分片修改报文,最终由所述引擎输出端口将由各分片修改报文进行重组以及数据处理后的数据块向外发送。本发明专利技术通过可编程硬件加速的方式在芯片出口对报文进行编辑处理,不仅解决了系统资源占用的问题,同时也具有较高的灵活性,提高了网络报文处理的效率。处理的效率。处理的效率。

【技术实现步骤摘要】
可编程报文编辑加速引擎、报文编辑方法及系统


[0001]本专利技术涉及网络报文数据处理领域,特别是涉及一种可编程报文编辑加速引擎、报文编辑方法及系统。

技术介绍

[0002]随着信息技术的迅速发展,网络技术应用越来越普遍,涉及网络的半导体芯片广泛应用到社会的各个领域。传统的网络报文处理一般通过软件编辑的方式,完全通过软件的方式对报文进行修改虽然处理灵活度比较高,但是也具有高延迟,系统资源占用较多的缺点。具体的,可编程报文编辑加速引擎通常主要涉及处理存储在存储器中的报文。通常处理器想要对报文进行编辑,需要处理器通过正在执行软件或固件指令访问内存中的数据包,从内存中读取包的一部分或全部包,进行分析,然后以修改的形式写回内存。还有一些涉及在数据包中插入部分信息的编辑;在这种情况下,可以从存储器中读出数据包的第二部分,然后写回数据包的第二部分和数据包的第一部分之间的存储器空间。然后将要插入的位写入存储器中存储第一部分和第二部分之间的存储位置。其他修改包括更换包的部分,或数据包某些字段中值的递增或递减等等。为了进行这样的修改,处理器需要从代码存储器中获取指令,对指令进行解码,然后执行指令。通过指令的执行从内存中获取报文,修改后写回到内存中。这种软件的处理方式在低吞吐量和延迟可忽略的情况下没有问题。但是由于网络数据的处理规模越来越大以及网络应用越来越复杂,许多应用场景对芯片数据包吞吐量和低延迟的要求越来越高,对报文的编辑的效率要求越来越高,通过软件对报文进行编辑也越来越难以满足需求。

技术实现思路

[0003]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种可编程报文编辑加速引擎、报文编辑方法及系统,用于解决用于解决现有技术中以上技术问题。
[0004]为实现上述目的及其他相关目的,本专利技术提供一种可编程报文编辑加速引擎,所述引擎包括:引擎输入端口,用于依次接收携带有脚本代码的报文数据包中按照顺序发送的多个分片报文;脚本解析器,连接所述引擎输入端口,用于对所述报文数据包的脚本代码进行解析并生成对应一或多个执行编辑操作的操作码;流水线处理电路,连接所述脚本解析器,包括:分别执行不同编辑操作且串接的多级流水处理级;所述流水线处理电路用于通过多级流水处理级基于所述操作码对各分片报文按照对应的发送顺序依次进行处理,以按顺序依次输出处理后的各分片修改报文;引擎输出端口,用于将由各分片修改报文进行重组以及数据处理后的数据块向外发送。
[0005]于本专利技术的一实施例中,所述流水线处理电路包括:第一流水处理级,用于按顺序依次输入各分片报文,并基于所述操作码对其可执行的分片报文依次执行编辑操作,并依次输出第一处理级编辑后的分片报文以及第二、三、四流水处理级需要的具有有效位标识的操作码;第二流水处理级,连接所述第一流水处理级,用于按顺序依次输入由所述第一流
水处理级输出的各分片报文和操作码,并基于具有有效位标识的作码对其可执行的分片报文进行对应的编辑操作,并依次输出第二处理级编辑后的分片报文以及第三、四流水处理级需要的具有有效位标识的操作码;第三流水处理级,连接所述第二流水处理级,用于按顺序依次输入由所述第二流水处理级输出的各分片报文和操作码,并基于具有有效位标识的作码对其可执行的分片报文进行对应的编辑操作,并依次输出第三处理级编辑后的分片报文以及第四流水处理级需要的具有有效位标识的操作码;第四流水处理级,连接所述第三流水处理级,用于按顺序依次输入由所述第三流水处理级输出的各分片报文和操作码,并基于具有有效位标识的操作码对其可执行的分片报文进行对应的编辑操作,并依次输出第四处理级编辑后的分片报文。
[0006]于本专利技术的一实施例中,所述对所述报文数据包的脚本代码进行解析并生成对应一或多个编辑操作的操作码包括:根据携带在报文数据包头部的脚本代码判断是直接脚本还是间接脚本;若为直接脚本,直接从所述脚本代码解析出操作码;若为间接脚本,根据所述脚本代码分别从指令存储器中索引一组指令以及从参数存储器中索引一组参数,并根据所述脚本代码对应偏移量、检索的一组指令与指令对应的修改字节数和一组参数生成对应的操作码。
[0007]于本专利技术的一实施例中,所述编辑操作的类型包括:删除修改操作、插入修改操作、替换修改操作、增量修改操作、减量修改操作、掩码替换操作、填充修改操作。
[0008]于本专利技术的一实施例中,所述可编程报文编辑加速引擎还包括:报文组装电路,连接所述流水线处理电路以及引擎输出端口,用于对由流水线处理电路处理后的各分片修改报文按照后级MAC处理模块的数据格式重组成数据块,并发送至引擎输出端口。
[0009]于本专利技术的一实施例中,所述引擎输入端口还用于对接收的各分片报文处理成流水线处理电路输入所需的数据格式。
[0010]于本专利技术的一实施例中,所述替换修改操作的类型包括:用另一个以太网源地址替换该数据包的以太网源地址以及用另一个以太网目的地址替换该数据包的以太网目的地址。
[0011]于本专利技术的一实施例中,所述插入修改操作的类型包括:将多位的数据插入到所述数据包的一部分中以及将MPLS标签插入到所述数据包的一部分中。
[0012]为实现上述目的及其他相关目的,本专利技术提供一种报文编辑方法,应用于可编程报文编辑加速引擎,包括:引擎输入端口、脚本解析器、流水线处理电路以及引擎输出端口,所述方法包括:由所述引擎输入端口依次接收携带有脚本代码的报文数据包中按照顺序发送的多个分片报文;通过所述脚本解析器对所述报文数据包的脚本代码进行解析并生成对应一或多个执行编辑操作的操作码;由所述流水线处理电路通过其包括分别执行不同编辑操作且串接的多级流水处理级基于所述操作码对各分片报文按照对应的发送顺序依次进行处理,以按顺序依次输出处理后的各分片修改报文;由所述引擎输出端口将由各分片修改报文进行重组以及数据处理后的数据块向外发送。
[0013]为实现上述目的及其他相关目的,本专利技术提供一种报文编辑系统,所述系统包括:前级流量管理模块、可编程报文编辑加速引擎、指令存储器、参数存储器以及后级MAC处理模块;其中,所述前级流量管理模块,用于按顺序发送携带有脚本代码的报文数据包中的多个分片报文;所述可编程报文编辑加速引擎,连接所述前级流量管理模块、指令存储器、参
数存储器、后级MAC处理模块,包括:引擎输入端口,用于依次接收各分片报文;脚本解析器,连接所述引擎输入端口,用于对所述报文数据包的脚本代码进行解析并生成对应一或多个执行编辑操作的操作码;流水线处理电路,连接所述脚本解析器,包括:分别执行不同编辑操作且串接的多级流水处理级;所述流水线处理电路用于通过多级流水处理级基于所述操作码对各分片报文按照对应的发送顺序依次进行处理,以按顺序依次输出处理后的各分片修改报文;引擎输出端口,用于将由各分片修改报文进行重组以及数据处理后的数据块发送给所述后级MAC处理模块。
[0014]如上所述,本专利技术是一种可编程报文编辑加速引擎、报文编辑方法及系统,具有以下有益效果:本专利技术通过引擎输入端口依次接收携带有脚本代码的报文数据包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可编程报文编辑加速引擎,其特征在于,所述引擎包括:引擎输入端口,用于依次接收携带有脚本代码的报文数据包中按照顺序发送的多个分片报文;脚本解析器,连接所述引擎输入端口,用于对所述报文数据包的脚本代码进行解析并生成对应一或多个执行编辑操作的操作码;流水线处理电路,连接所述脚本解析器,包括:分别执行不同编辑操作且串接的多级流水处理级;所述流水线处理电路用于通过多级流水处理级基于所述操作码对各分片报文按照对应的发送顺序依次进行处理,以按顺序依次输出处理后的各分片修改报文;引擎输出端口,用于将由各分片修改报文进行重组以及数据处理后的数据块向外发送。2.根据权利要求1中所述的可编程报文编辑加速引擎,其特征在于,所述流水线处理电路包括:第一流水处理级,用于按顺序依次输入各分片报文,并基于所述操作码对其可执行的分片报文依次执行编辑操作,并依次输出第一处理级编辑后的分片报文以及第二、三、四流水处理级需要的具有有效位标识的操作码;第二流水处理级,连接所述第一流水处理级,用于按顺序依次输入由所述第一流水处理级输出的各分片报文和操作码,并基于具有有效位标识的作码对其可执行的分片报文进行对应的编辑操作,并依次输出第二处理级编辑后的分片报文以及第三、四流水处理级需要的具有有效位标识的操作码;第三流水处理级,连接所述第二流水处理级,用于按顺序依次输入由所述第二流水处理级输出的各分片报文和操作码,并基于具有有效位标识的作码对其可执行的分片报文进行对应的编辑操作,并依次输出第三处理级编辑后的分片报文以及第四流水处理级需要的具有有效位标识的操作码;第四流水处理级,连接所述第三流水处理级,用于按顺序依次输入由所述第三流水处理级输出的各分片报文和操作码,并基于具有有效位标识的操作码对其可执行的分片报文进行对应的编辑操作,并依次输出第四处理级编辑后的分片报文。3.根据权利要求1中所述的可编程报文编辑加速引擎,其特征在于,所述对所述报文数据包的脚本代码进行解析并生成对应一或多个编辑操作的操作码包括:根据携带在报文数据包头部的脚本代码判断是直接脚本还是间接脚本;若为直接脚本,直接从所述脚本代码解析出操作码;若为间接脚本,根据所述脚本代码分别从指令存储器中索引一组指令以及从参数存储器中索引一组参数,并根据所述脚本代码对应偏移量、检索的一组指令与指令对应的修改字节数和一组参数生成对应的操作码。4.根据权利要求1中所述的可编程报文编辑加速引擎,其特征在于,所述编辑操作的类型包括:删除修改操作、插入修改操作、替换修改操作、增量修改操作、减量修改操作、掩码替换操作、填充修改...

【专利技术属性】
技术研发人员:王飞周峰安康卢笙陈盈安
申请(专利权)人:芯启源南京半导体科技有限公司
类型:发明
国别省市:

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

1