CN114205415B - 报文修改方法、装置、计算机设备、介质 - Google Patents

报文修改方法、装置、计算机设备、介质 Download PDF

Info

Publication number
CN114205415B
CN114205415B CN202010980734.6A CN202010980734A CN114205415B CN 114205415 B CN114205415 B CN 114205415B CN 202010980734 A CN202010980734 A CN 202010980734A CN 114205415 B CN114205415 B CN 114205415B
Authority
CN
China
Prior art keywords
configuration information
groups
instruction
modification
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010980734.6A
Other languages
English (en)
Other versions
CN114205415A (zh
Inventor
谭铜磊
周峰
徐金林
刘衡祁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN202010980734.6A priority Critical patent/CN114205415B/zh
Priority to PCT/CN2021/119015 priority patent/WO2022057887A1/zh
Priority to US18/026,864 priority patent/US20230336643A1/en
Publication of CN114205415A publication Critical patent/CN114205415A/zh
Application granted granted Critical
Publication of CN114205415B publication Critical patent/CN114205415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

报文修改方法、装置、计算机设备、介质
技术领域
本公开涉及以太网转发和传输通讯领域,具体涉及一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质。
背景技术
通信网络的实质是数据交换,SDN(Network Defined Software,软件定义网络)提出三层架构,即应用层、控制层和转发层,SDN具有可编程性。openflow(使用类似于应用程序接口进程配置网络交换机的协议)协议运行在控制层和转发层之间。在Openflow架构的以太网转发交换系统中,报文的转发下一跳路径由SDN控制器和流表决策,并通过微引擎的指令进行报文的封装信息更新,实现不同网络设备之间的报文交换。
Openflow架构的微引擎设计通常采用VLIW(超长指令集,Very Long InstructionWord),实现单条指令集索引触发多个指令单元的执行。VLIW是一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。报文的封装信息更新时,指令一般采用串行执行,指令的串行执行周期会随着超长指令集中总指令个数的增多而加速增加。这里的串行执行是指一条微码指令只能对与报文封装信息相关的字段的某一段连续的内容进行修改,对不同位置字段的修改需要多条微码指令。微码指令指的是用软件技术来实现硬件设计的一种技术,它一般驻留在高速存储器中并将机器指令翻译成详细的电路操作序列。
如何对与报文封装信息相关的字段进行修改是本领域亟待解决的技术问题。
发明内容
本公开针对现有技术中存在的上述不足,提供一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质。
第一方面,本公开实施例提供一种报文修改方法,包括:
将与报文封装信息相关的待修改字段划分为M个容器;
对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;
对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;
根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;
根据所述N组源操作数分别修改匹配的N个容器。
在一些实施例中,将与报文封装信息相关的待修改字段划分为M个容器,包括:
将所述待修改字段划分为M个字段,并将每个字段配置成一个容器。
在一些实施例中,所述初始指令包括算数逻辑运算单元ALU指令,对执行修改命令的超长指令集进行指令提取,得到N组初始指令,包括:
根据所述超长指令集的索引查询ALU bitmap ram,得到多组N位宽ALU bitmap信息;
对所述多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果;
根据所述第一拼接结果,确定相应的指令索引;
根据所述指令索引和动态配置ram指令表,得到N组ALU指令。
在一些实施例中,所述待修改字段包括报文字段,对初始指令进行处理,包括:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
根据所述配置信息和动态配置ram指令表提取出所述源操作数。
在一些实施例中,所述待修改字段包括元框架描述符Meta-Frame字段,对初始指令进行处理,还包括:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据;
根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数。
在一些实施例中,对所述初始指令进行解析,得到配置信息,包括:
根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
在一些实施例中,根据所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
根据所述指令类型配置参数对所述action源操作数和N组立即数源操作数进行处理,提取出所述源操作数。
在一些实施例中,根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述压缩后Meta-Frame配置数据和所述Meta-Frame源操作数配置信息进行计算提取出Meta-Frame源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
根据所述指令类型配置参数对所述action源操作数、Meta-Frame源操作数和立即数源操作数进行处理,提取出所述源操作数。
在一些实施例中,对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据,包括:
通过间接寄存器获取空分交换网络Banyan的N组配置信息;
获取Meta-Frame字段划分的N个字段;
将所述Banyan的N组配置信息和所述N个字段进行拼接,得到第二拼接结果;
将所述第二拼接结果发送到所述Banyan;
通过所述Banyan获取压缩后Meta-Frame配置数据。
在一些实施例中,通过所述Banyan获取压缩后Meta-Frame配置数据,包括:
按照从低位到高位的顺序取出所述Banyan返回的部分数据;
将所述部分数据进行拼接得到所述压缩后Meta-Frame配置数据。
在一些实施例中,根据所述N组源操作数分别修改匹配的N个容器,包括:
根据所述修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容;
根据所述N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改,每一组源操作数位数均小于匹配的容器支持最大修改的比特位数。
第二方面,本公开实施例提供一种报文修改装置,包括:
划分模块,用于将与报文封装信息相关的待修改字段划分为M个容器;
提取模块,用于对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;
处理模块,用于对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;
确定模块,用于根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;
修改模块,用于根据所述N组源操作数分别修改匹配的N个容器。
第三方面,本公开实施例提供一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述的报文修改方法。
第四方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如上述的报文修改方法。
本公开实施例中,将与报文封装信息相关的待修改字段划分为M个容器。对执行修改命令的超长指令集进行提取,得到N组初始指令(2≤N≤M)。并对N组初始指令进行处理,得到N组源操作数和N组修改字段配置信息,根据N组修改字段配置信息分别确定N组源操作数匹配的N个容器,每一组源操作数都要对一个匹配的容器进行修改。在可编程技术的基础上,N组初始指令间为互不交叉的直接寻址,通过对N组初始指令处理获得的N组源操作数,对连续的待修改字段划分出的N个容器进行并行修改,完成对报文封装信息的修改。使得一个周期可以执行一个超长指令集,采用并行修改,相较于串行修改能够明显降低指令操作延时。
附图说明
图1是本公开实施例提供的一种报文修改方法的流程图;
图2是本公开实施例提供的一种报文修改方法的另一流程图;
图3是本公开实施例提供的一种报文修改方法的另一流程图;
图4是本公开实施例提供的一种报文修改方法的另一流程图;
图5是本公开实施例提供的一种报文修改方法的另一流程图;
图6是本公开实施例提供的一种报文修改方法的另一流程图;
图7是本公开实施例提供的一种报文修改装置的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
目前常用于修改与报文封装信息相关的字段的场景为硬转发固定报文内容修改。在硬转发芯片的报文修改设计中,基于转发芯片的业务流向,先进行报文解析,再进行二层MAC(Medium/Media Access Control,用来标识互联网上每一个站点的标识符)业务处理或MPLS(Multi-Protocol Label Switching,多协议标签交换)标签业务处理或IP(InternetProtocol,网络之间互连的协议)路由业务处理,最后进行报文封装。在业务处理过程中随路完成了对与报文封装信息相关的字段的修改,在所有模块的业务处理完之后,完成一次对与报文封装信息相关的字段的完整修改。
在可编程指令修改技术中,可编程的架构又区分为并行RTC(Run To Completion,运行至终结)和串行流表结构。串行流表结构采用超长指令集的指令方式。在采用超长指令集的可编程架构前提下,与报文封装信息相关的字段的修改功能可由软件指定一条超长指令集的多个指令单元进行。每一个指令单元执行一条指令,在执行指令时可以对与报文封装信息相关的字段中某一连续字段进行修改。按照每个执行指令的周期为1个周期计算,一条超长指令集串行执行完毕需要多个周期完成。
为了解决以上问题,本公开提出一种报文修改方法、一种报文修改装置、一种计算机设备及一种计算机可读介质。
图1示出本公开实施例提供的报文修改方法的流程图。该报文修改方法可应用于报文修改装置。如图1所示,本实施例提供的报文修改方法包括以下步骤。
在步骤S101中,将与报文封装信息相关的待修改字段划分为M个容器。
在该步骤中,报文修改装置将与报文封装信息相关的待修改字段划分为M个容器,各个容器按顺序排列,每个容器都有对应的容器号,即第M号容器。
其中,所述待修改字段为连续字段,用于对报文下一跳的报文封装信息进行修改。
需要说明的是,所述容器支持最大修改的比特位数包括以下任意一种:8位、16位、32位。划分出的各个容器分别为4byte容器、2byte容器和1byte容器,依次支持最大修改的比特位数为32位、16位和8位。
在步骤S102,对执行修改命令的超长指令集进行指令提取,得到N组初始指令。
在该步骤中,报文修改装置对执行修改命令的超长指令集进行指令提取,即对超长指令集进行分析计算得出新的提取出的指令集,包括N组初始指令。其中,2≤N≤M。N小于等于容器的个数,保证所有的指令都用于修改待修改字段划分出的各个容器。现有技术中需要多个周期执行所述超长指令集,在本公开实施例中,一个周期执行完上述N组初始指令。
现有技术中对待修改字段进行修改的超长指令集的各指令间为相互交叉的间接寻址,即操作数有效地址存放在寄存器中,从寄存器中获取的值操作数的地址,指令中包括寄存器的地址。而本公开中,所述N组初始指令为互不交叉的直接寻址的指令,即操作数存储在寄存器中,从寄存器中直接获取操作数,N组初始指令中包括操作数的有效地址。
在步骤S103中,对N组初始指令进行处理,得到N组源操作数和N组修改字段配置信息。
在该步骤中,报文修改装置对提取出的N组初始指令进行处理,N组初始指令中包括的操作数的有效地址,根据该操作数的有效地址可以直接获取操作数。报文修改装置对N组初始指令进行处理,得到N组源操作数和N组修改字段配置信息。所述修改字段配置信息中包括每个初始指令对应修改的容器号。每一组初始指令对应一组源操作数,对应一组修改字段配置信息,对应一个容器号。操作数为运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量。源操作数,指要处理的操作数。
在步骤S104中,根据N组修改字段配置信息分别确定N组源操作数匹配的N个容器。
在该步骤中,所述修改字段配置信息中包括每个初始指令对应修改的容器号,N组初始指令中的每一组初始指令对应一组源操作数,所以根据修改字段配置信息可以确定每一组源操作数匹配的容器。
在步骤S105中,根据N组源操作数分别修改匹配的N个容器。
在该步骤中,报文修改装置根据N组源操作数中的每一组源操作对于该源操作数匹配的容器进行修改,即用源操作数替换容器中的待修改字段内容,完成报文回写,完成对报文封装信息的修改。在对N个容器进行修改之后,可以将N个容器按照容器划分规则进行重新组合,组成报文下一跳信息的报文封装信息。
需要说明的是,在对容器进行修改时,可以修改容器的全部位数的数据,也可以修改几位的数据。
本公开实施例中,将与报文封装信息相关的待修改字段划分为M个容器。对执行修改命令的超长指令集进行提取,得到N组初始指令(2≤N≤M)。并对N组初始指令进行处理,得到N组源操作数和N组修改字段配置信息,根据N组修改字段配置信息分别确定N组源操作数匹配的N个容器,每一组源操作数都要对一个匹配的容器进行修改。在可编程技术的基础上,N组初始指令间为互不交叉的直接寻址,实现对连续的待修改字段划分出的N个容器进行并行修改,完成对报文封装信息的修改。使得一个周期可以执行一个超长指令集,采用并行修改,相较于串行修改能够明显降低指令操作延时。
进一步的,将与报文封装信息相关的待修改字段划分为M个容器(即步骤101),包括:将待修改字段划分为M个字段,并将每个字段配置成一个容器。
在该步骤中,执行修改命令的超长指令集用于修改所述待修改字段,划分规则由超长指令集对应的微码指令决定。将待修改字段按照划分规则划分为M个字段,每个字段即是一个容器,一共划分出M个容器。
本公开实施例中,采用报文分段处理技术,是实现超长指令集对待修改字段并行修改的前提和基础。
图2示出本公开实施例提供的报文修改方法的另一流程图。进一步的,如图2所示,所述初始指令包括算数逻辑运算单元ALU指令,对执行修改命令的超长指令集进行指令提取,N组初始指令(即步骤102),包括:
步骤201,根据超长指令集的索引查询ALU bitmap ram,得到多组N位宽ALUbitmap信息。
其中,bitmap中的每个元素在内存占2-32位,bitmap信息在内存中的标识可以为一列由1和0组成的二进制数。例如,若bitmap中的每个元素在内存占8位,可以对应表示8个十进制数,bitmap[0],可表示0-7;bitmap[1],可表示8-15;bitmap[2],可表示16-23。bitmap[0]中,00000010表示1,01000000表示6。
在该步骤中,ALU bitmap ram中的每个元素都有对应的索引,报文修改装置根据多组超长指令集的索引查询ALU bitmap ram,得到多组N位宽ALU bitmap信息,2≤N≤32。例如,得到多组8位bitmap中的二进制数。
步骤202,对多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果。
在该步骤中,报文修改装置对多组N位宽ALU bitmap信息进行同位数拼接,即处于一位上的数字串行连接,得到N组同位数的第一拼接结果。例如,多组N位宽ALU bitmap信息均为8位bitmap中的二进制数,将每一位上的多个数字串行拼接,得到8组同位数的第一拼接结果。多组N位宽ALU bitmap信息为bitmap[0]下的00000010、01000000、10000000、00010000,则8组4位的第一拼接结果为0010、0100、0000、0001、0000、0000、0100、0000。第一拼接结果的位数应小于32位。
在步骤S203中,根据第一拼接结果,确定相应的指令索引。
在该步骤中,ALU bitmap ram中的每个元素都有对应的索引,第一拼接结果也可以在bitmap中找到,根据第一拼接结果查找对应的指令索引。
在步骤S204中,根据指令索引和动态配置ram指令表,得到N组ALU指令,确定为提取出的指令集。
在该步骤中,报文修改装置根据N组指令索引逐条查找ram指令表,得到N组ALU指令,即为提取出的指令集。
在本公开实施例中,所述待修改字段包括报文字段或Meta-Frame字段。报文字段主要是报文头。Meta-Frame字段是指与元框架相关联的一组数据或数据结构,即元框架描述符字段,Meta-Frame字段是对多个属性运用相同存取逻辑的字段。在转发芯片中,会对报文字段或Meta-Frame字段都进行修改,报文字段和Meta-Frame字段都用于对报文的下一跳信息的报文封装信息进行修改。
图3示出本公开实施例提供的报文修改方法的另一流程图。进一步的,如图3所示,所述待修改字段包括报文字段,对初始指令进行处理(即步骤103),包括:
在步骤S301中,对初始指令进行解析,得到配置信息。
在步骤S302中,根据配置信息和动态配置ram指令表提取出源操作数。
在步骤301-步骤302中,当所述待修改字段包括报文字段时,先对初始指令进行解析,得到配置信息,再结合配置信息和动态配置ram指令表提取出对应的一组源操作数。所述配置信息中包括修改字段配置信息。
图4示出本公开实施例提供的报文修改方法的另一流程图。进一步的,如图4所示,所述待修改字段包括元框架描述符Meta-Frame字段,对初始指令进行处理(即步骤S103),还包括:
在步骤S401中,对初始指令进行解析,得到配置信息。
在步骤S402中,对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据。
在步骤S403中,根据压缩后Meta-Frame配置数据、配置信息和动态配置ram指令表提取出源操作数。
在步骤S401-步骤S403中,当所述待修改字段包括Meta-Frame字段时,先对初始指令进行解析,得到配置信息,再对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据,最后结合配置信息、压缩后Meta-Frame配置数据和动态配置ram指令表提取出对应的一组源操作数。所述配置信息中包括修改字段配置信息。
进一步的,对所述初始指令进行解析,得到配置信息(即步骤301或步骤401),包括:
根据微码配置规则对初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
在该步骤中,报文修改装置根据微码配置规则对提取出的N组初始指令进行解析,即进行解码、相应字段截取,截取出N组配置信息。N组配置信息中包括N组回调函数action源操作数配置信息、N组立即数源操作数配置信息、N组Meta-Frame源操作数配置信息、N组指令类型配置信息和N组修改字段配置信息。
进一步的,根据所述配置信息和动态配置ram指令表提取出所述源操作数(即步骤302),包括:查询动态配置ram指令表中的action配置数据和立即数配置数据。对action配置数据和action源操作数配置信息进行计算提取出action源操作数,并对立即数配置数据和立即数源操作数配置信息进行计算提取出立即数源操作数。根据指令类型配置参数对action源操作数和N组立即数源操作数进行处理,提取出源操作数。
在该步骤中,报文修改装置依据配置信息中的N组action源操作数配置信息、N组立即数源操作数配置信息结合动态配置ram指令表中的action配置数据以及立即数配置数据进行计算,并行提取出两类N组源操作数。
进一步的,根据压缩后Meta-Frame配置数据、配置信息和动态配置ram指令表提取出源操作数(即步骤S403),包括:查询动态配置ram指令表中的action配置数据和立即数配置数据;对action配置数据和action源操作数配置信息进行计算提取出action源操作数,并对压缩后Meta-Frame配置数据和Meta-Frame源操作数配置信息进行计算提取出Meta-Frame源操作数,并对立即数配置数据和立即数源操作数配置信息进行计算提取出立即数源操作数;根据指令类型配置参数对action源操作数、Meta-Frame源操作数和立即数源操作数进行处理,提取出源操作数。
在该步骤中,报文修改装置依据N组配置信息中的N组回调函数action源操作数配置信息、N组Meta-Frame源操作数配置信息、N组立即数源操作数配置信息结合动态配置ram指令表中的action配置数据、压缩后Meta-Frame配置数据以及立即数配置数据进行计算,并行提取出三类N组源操作数。
至此,针对两种待修改字段的N组初始指令,都能获得每一组初始指令解析出的一组源操作数,每一组源操作数可以用于修改对应的一组初始指令匹配的容器。每一组源操作数的位数小于修改的容器支持最大修改的位数,才能对容器进行修改。因为2≤N≤32,所以本公开中最多只能对32个容器进行修改。
本公开实施例中,采用可编程技术,可支持指令种类多,配置灵活。可基于多个条目对指令进行动态配置,实现可编程修改相应字段;且能够支持多种不同指令类型。
图5示出本公开实施例提供的报文修改方法的另一流程图。进一步的,如图5所示,对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据,(即步骤S402),包括:
在步骤S501中,通过间接寄存器获取Banyan的N组配置信息。
在步骤S502中,获取Meta-Frame字段划分的N个字段。
在步骤S503中,将Banyan的N组配置信息和N个字段进行拼接,得到第二拼接结果。
在步骤S504,将第二拼接结果发送到Banyan。
在步骤S501-步骤S504中,对Banyan的入口作静态配置。通过间接寄存器获取Banyan的N组配置信息和Meta-Frame字段划分的N个字段拼接后,得到第二拼接结果。将第二拼接结果作为入口数据接到Banyan的入口处。
步骤S505,通过Banyan获取压缩后Meta-Frame配置数据。
在该步骤中,Banyan网络具有唯一路径特性,唯一路径特性指任何一条入线和任何一条出线之间存在一条通路。通过Banyan获取压缩后Meta-Frame配置数据。
进一步的,通过Banyan获取压缩后Meta-Frame配置数据(即步骤S505),包括:
按照从低位到高位的顺序取出Banyan返回的部分数据;将部分数据进行拼接得到压缩后Meta-Frame配置数据。报文修改装置按照从低位到高位的顺序取出Banyan出口的部分数据,并对部分数据进行拼接,得到压缩后Meta-Frame配置数据,完成对Meta-Frame的压缩。
本公开实施例中,采用压缩后Meta-Frame配置数据作为源操作数提取源,相较于使用原Meta-Frame极大地降低取源操作数的复杂度和资源使用量。
图6示出本公开实施例提供的报文修改方法的另一流程图。进一步的,如图6所示,根据所述N组源操作数分别修改匹配的N个容器(即步骤S105),包括:
在步骤S601中,根据修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容。
在该步骤中,待修改字段划分出的容器支持最大修改的比特位数包括以下任意一种:8位、16位、32位,可以对容器的全部位数进行修改,也可以对容器的部分位数进行修改。根据修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容,待修改字段内容可以是容器的全部位数,也可以是容器的部分位数。
在步骤S602中,根据N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改。
在该步骤中,每一组源操作数位数均小于匹配的容器支持最大修改的比特位数,才能对相应的容器进行修改。根据N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改,完成对N个容器的并行修改。
图7示出本公开实施例提供的报文修改装置的结构示意图。基于与图1对应的实施例相同的技术构思,如图7所示,本公开实施例提供的报文修改装置,包括如下模块。
划分模块11,用于将与报文封装信息相关的待修改字段划分为M个容器。
提取模块12,用于对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M。
处理模块13,用于对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息。
确定模块14,用于根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器。
修改模块15,用于根据所述N组源操作数分别修改匹配的N个容器。
在一些实施例中,将划分模块11,具体用于:
将所述待修改字段划分为M个字段,并将每个字段配置成一个容器。
在一些实施例中,所述初始指令包括算数逻辑运算单元ALU指令,所述提取模块12,具体用于:
根据所述超长指令集的索引查询ALU bitmap ram,得到多组N位宽ALU bitmap信息。
对所述多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果。
根据所述第一拼接结果,确定相应的指令索引。
根据所述指令索引和动态配置ram指令表,得到N组ALU指令,确定为提取出的指令集。
在一些实施例中,所述待修改字段包括报文字段,所述处理模块13,具体用于:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息。
根据所述配置信息和动态配置ram指令表提取出所述源操作数。
在一些实施例中,所述待修改字段包括元框架描述符Meta-Frame字段,所述处理模块13,具体用于:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息。
对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据。
根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数。
在一些实施例中,所述处理模块13,具体用于:
根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
在一些实施例中,所述处理模块13,具体用于:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据。
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数。
根据所述指令类型配置参数对所述action源操作数和N组立即数源操作数进行处理,提取出所述源操作数。
在一些实施例中,所述处理模块13,具体用于:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据。
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述压缩后Meta-Frame配置数据和所述Meta-Frame源操作数配置信息进行计算提取出Meta-Frame源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数。
根据所述指令类型配置参数对所述action源操作数、Meta-Frame源操作数和立即数源操作数进行处理,提取出所述源操作数。
在一些实施例中,所述处理模块13,具体用于:
通过间接寄存器获取空分交换网络Banyan的N组配置信息。
获取Meta-Frame字段划分的N个字段。
将所述Banyan的N组配置信息和所述N个字段进行拼接,得到第二拼接结果。
将所述第二拼接结果发送到所述Banyan。
通过所述Banyan获取压缩后Meta-Frame配置数据。
在一些实施例中,所述处理模块13,具体用于:
按照从低位到高位的顺序取出所述Banyan返回的部分数据。
将所述部分数据进行拼接得到所述压缩后Meta-Frame配置数据。
在一些实施例中,所述修改模块14,具体用于:
根据所述修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容。
根据所述N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改,每一组源操作数位数均小于匹配的容器支持最大修改的比特位数。
本公开实施例还提供了一种计算机设备,该计算机设备包括:一个或多个处理器以及存储装置;其中,存储装置上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如前述各实施例所提供的报文修改方法。
本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被执行时实现如前述各实施例所提供的报文修改方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本发明的范围的情况下,可进行各种形式和细节上的改变。

Claims (15)

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位宽ALUbitmap信息;
对所述多组N位宽ALU bitmap信息进行同位数拼接,得到N组同位数的第一拼接结果;
根据所述第一拼接结果,确定相应的指令索引;
根据所述指令索引和动态配置ram指令表,得到N组ALU指令。
4.如权利要求1所述的方法,其中,所述待修改字段包括报文字段,对初始指令进行处理,包括:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
根据所述配置信息和动态配置ram指令表提取出所述源操作数。
5.如权利要求1所述的方法,其中,所述待修改字段包括元框架描述符Meta-Frame字段,对初始指令进行处理,还包括:
对所述初始指令进行解析,得到配置信息,所述配置信息中包括修改字段配置信息;
对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据;
根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数。
6.如权利要求4所述的方法,其中,对所述初始指令进行解析,得到配置信息,包括:
根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
7.如权利要求5所述的方法,其中,对所述初始指令进行解析,得到配置信息,包括:
根据微码配置规则对所述初始指令进行解析,得到回调函数action源操作数配置信息、立即数源操作数配置信息、Meta-Frame源操作数配置信息、指令类型配置信息和修改字段配置信息。
8.如权利要求6所述的方法,其中,根据所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
根据指令类型配置参数对所述action源操作数和N组立即数源操作数进行处理,提取出所述源操作数。
9.如权利要求7所述的方法,其中,根据所述压缩后Meta-Frame配置数据、所述配置信息和动态配置ram指令表提取出所述源操作数,包括:
查询所述动态配置ram指令表中的action配置数据和立即数配置数据;
对所述action配置数据和所述action源操作数配置信息进行计算提取出action源操作数,并对所述压缩后Meta-Frame配置数据和所述Meta-Frame源操作数配置信息进行计算提取出Meta-Frame源操作数,并对所述立即数配置数据和所述立即数源操作数配置信息进行计算提取出立即数源操作数;
根据指令类型配置参数对所述action源操作数、Meta-Frame源操作数和立即数源操作数进行处理,提取出所述源操作数。
10.如权利要求5所述的方法,其中,对Meta-Frame字段进行压缩,得到压缩后Meta-Frame配置数据,包括:
通过间接寄存器获取空分交换网络Banyan的N组配置信息;
获取Meta-Frame字段划分的N个字段;
将所述Banyan的N组配置信息和所述N个字段进行拼接,得到第二拼接结果;
将所述第二拼接结果发送到所述Banyan;
通过所述Banyan获取压缩后Meta-Frame配置数据。
11.如权利要求10所述的方法,其中,通过所述Banyan获取压缩后Meta-Frame配置数据,包括:
按照从低位到高位的顺序取出所述Banyan返回的部分数据;
将所述部分数据进行拼接得到所述压缩后Meta-Frame配置数据。
12.如权利要求1所述的方法,其中,根据所述N组源操作数分别修改匹配的N个容器,包括:
根据所述修改字段配置信息中的修改位置和修改字段长度信息确定匹配的容器中的待修改字段内容;
根据所述N组源操作数中的每一组源操作数分别对匹配的容器中的待修改字段内容进行修改,每一组源操作数位数均小于匹配的容器支持最大修改的比特位数。
13.一种报文修改装置,包括:
划分模块,用于将与报文封装信息相关的待修改字段划分为M个容器;
提取模块,用于对执行修改命令的超长指令集进行指令提取,得出N组初始指令,其中,2≤N≤M;
处理模块,用于对N组所述初始指令进行处理,得到N组源操作数和N组修改字段配置信息;
确定模块,用于根据所述N组修改字段配置信息分别确定N组源操作数匹配的N个容器;
修改模块,用于根据所述N组源操作数分别修改匹配的N个容器。
14.一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-12任一项所述的报文修改方法。
15.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如权利要求1-12任一项所述的报文修改方法。
CN202010980734.6A 2020-09-17 2020-09-17 报文修改方法、装置、计算机设备、介质 Active CN114205415B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010980734.6A CN114205415B (zh) 2020-09-17 2020-09-17 报文修改方法、装置、计算机设备、介质
PCT/CN2021/119015 WO2022057887A1 (zh) 2020-09-17 2021-09-17 报文修改方法、装置、计算机设备以及存储介质
US18/026,864 US20230336643A1 (en) 2020-09-17 2021-09-17 Packet modification method and apparatus, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010980734.6A CN114205415B (zh) 2020-09-17 2020-09-17 报文修改方法、装置、计算机设备、介质

Publications (2)

Publication Number Publication Date
CN114205415A CN114205415A (zh) 2022-03-18
CN114205415B true CN114205415B (zh) 2024-08-23

Family

ID=80644731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010980734.6A Active CN114205415B (zh) 2020-09-17 2020-09-17 报文修改方法、装置、计算机设备、介质

Country Status (3)

Country Link
US (1) US20230336643A1 (zh)
CN (1) CN114205415B (zh)
WO (1) WO2022057887A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018015792A1 (en) * 2016-07-22 2018-01-25 Telefonaktiebolaget Lm Ericsson (Publ) User data isolation in software defined networking (sdn) controller
CN107832083A (zh) * 2011-04-07 2018-03-23 威盛电子股份有限公司 具有条件指令的微处理器及其处理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103181129B (zh) * 2011-10-25 2015-09-30 华为技术有限公司 数据报文处理方法和系统、报文转发设备
US9379963B2 (en) * 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US10282204B2 (en) * 2016-07-02 2019-05-07 Intel Corporation Systems, apparatuses, and methods for strided load
CN107463355B (zh) * 2017-07-28 2020-03-31 珠海市杰理科技股份有限公司 立即数压缩编码方法和系统
US20190102181A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Apparatus and method for shifting and extracting packed data elements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832083A (zh) * 2011-04-07 2018-03-23 威盛电子股份有限公司 具有条件指令的微处理器及其处理方法
WO2018015792A1 (en) * 2016-07-22 2018-01-25 Telefonaktiebolaget Lm Ericsson (Publ) User data isolation in software defined networking (sdn) controller

Also Published As

Publication number Publication date
WO2022057887A1 (zh) 2022-03-24
US20230336643A1 (en) 2023-10-19
CN114205415A (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
US11677664B2 (en) Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
EP3476087B1 (en) System and method for providing a programmable packet classification framework for use in a network device
US8638793B1 (en) Enhanced parsing and classification in a packet processor
US20120195208A1 (en) Programmable multifield parser packet
US11218574B2 (en) Directed graph traversal using content-addressable memory
US9667440B2 (en) Method and system for identifying an incoming interface using openflow protocol
US10944696B2 (en) Variable-length packet header vectors
US10958770B2 (en) Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
WO2015125801A1 (ja) ネットワーク制御方法、ネットワークシステムと装置及びプログラム
US20120287782A1 (en) Programmable and high performance switch for data center networks
US20160316045A1 (en) Method for Coding Packet Classification Key Composition Rules Using Variable Length Commands
US20200228448A1 (en) Packet processing method and apparatus
US7773595B2 (en) System and method for parsing frames
CN114205415B (zh) 报文修改方法、装置、计算机设备、介质
CN107395479B (zh) 无损环网交换机、无损自愈环网及其数据通讯方法
CN110933001B (zh) 一种可扩展的可重构交换机包解析器基本处理单元结构
US11323372B2 (en) Flexible steering
CN114143195A (zh) 一种数据包处理装置及方法
EP4099644A1 (en) Packet processing method and related apparatus
CN116471344B (zh) 一种数据报文的关键字提取方法、装置及介质
US20230370346A1 (en) Packet flow monitoring with attribute-to-identifier mapping
Chen et al. A large capacity programmable packet forwarding device
CN113364676A (zh) 一种数据流处理的方法及装置
CN117478458A (zh) 一种报文处理方法、装置及网络设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 2nd Floor, 2nd Floor, ZTE Industrial Park, No. 2 Xili Chuangyan Road, Xili Community, Xili Street, Nanshan District, Shenzhen City, Guangdong Province 518055

Applicant after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SANECHIPS TECHNOLOGY Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 518055, 2nd Floor, ZTE Industrial Park, No. 2 Chuangyan Road, Xili Community, Xili Street, Nanshan District, Shenzhen City, Guangdong Province, China

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 2nd Floor, 2nd Floor, ZTE Industrial Park, No. 2 Xili Chuangyan Road, Xili Community, Xili Street, Nanshan District, Shenzhen City, Guangdong Province 518055

Patentee before: SANECHIPS TECHNOLOGY Co.,Ltd.

Country or region before: China