CN107911264A - 可编程路由交换设备在线调试装置及方法 - Google Patents
可编程路由交换设备在线调试装置及方法 Download PDFInfo
- Publication number
- CN107911264A CN107911264A CN201711287758.8A CN201711287758A CN107911264A CN 107911264 A CN107911264 A CN 107911264A CN 201711287758 A CN201711287758 A CN 201711287758A CN 107911264 A CN107911264 A CN 107911264A
- Authority
- CN
- China
- Prior art keywords
- debugging
- manager
- programmable
- test point
- test points
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及互联网技术领域,公开了一种可编程路由交换设备在线调试装置,调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;调试接口管理器负责接收来上层调试应用的指令;检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,还公开了一种调试方法。本发明可以使程序员通过详细的内部状态快速地定位P4程序中存在的漏洞。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种可编程路由交换设备在线调试装置及方法。
背景技术
协议无关的数据包处理器(Protocol-independent Packet Processor,P4)语言是一种专门用于编写可编程路由交换设备程序的领域特定语言,使程序员能够灵活地定义可编程网络设备的数据包处理行为,并根据策略需求在高性能硬件转发设备快速地实现指定的功能。目前,学术界和工业界的实践已证明,多种网络功能,包括负载均衡、网络地址转换,网络攻击检测防御等,都可以用P4语言在高性能可编程设备上实现。而在传统网络中,这些网络功能往往是由专用硬件平台或软件平台所实现。而利用P4在可编程网络设备上实现这些网络功能,一方面提供了较高的灵活性和可编程性,使程序员能够像软件平台一样定制满足特定场景需求的网络功能;另一方面,可编程网络设备拥有能与专用网络功能设备相媲美的性能优势。因此,利用可编程路由交换设备实现网络功能兼顾了灵活性和性能,已经成为了一种重要发展趋势,具备不可忽视的社会经济效益。
P4语言为程序员提供了多种可编程元素:
(1)数据包解析器(Parser)使程序员能够定制任意的数据包的协议格式和解析逻辑;
(2)匹配动作表(Match-action Table,MAT)使程序员可以灵活地设置匹配动作表的匹配域和每个匹配域对应的匹配类型,以及利用P4语言提供的动作原语构造复合动作;
(3)可编程控制流(Control Flow)使编程者通过简单的控制逻辑在可编程网络设备的流水线(Pipeline)中定义各个匹配动作表执行关系。除此之外,P4语言也提供了寄存器(Register),计数器(Counter)等元素实现更复杂的数据包处理逻辑。通过P4语言提供的上述可编程元素,程序员可以根据网络的特定需求灵活地定制可编程网络设备的数据包处理行为,提升网络的安全性和整体性能。
随着由P4所实现的网络功能越来复杂,P4程序不可避免地存在漏洞。但是由于可编程路由交换设备的封闭性,很多内部状态对程序员是不可见的,造成了运行在可编程路由交换设备的P4程序难以调试的问题;其次相比于C/C++等通用编程语言,领域特定语言P4抽象层次较高,不能给程序员提供有效的调试手段和工具,进一步增加了P4程序的调试难度;并且随着越来越多的网络功能由P4语言实现,P4程序的规模和复杂性逐渐增长,这进一步增加了P4程序在实际网络环境的调试难度。目前尚未有可应用于P4语言以及可编程网络设备的完善的调试工具,程序员只能手工寻找P4程序中存在的漏洞,但这需要程序员投入大量的精力和时间。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何方便地调试P4程序。
(二)技术方案
为解决上述技术问题,本发明提供了一种可编程路由交换设备在线调试装置,包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;
调试接口管理器负责接收来上层调试应用的指令;
检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;
可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;
调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,所述数据平面检测点用于将可编程元素运行时的状态作为所述调试消息上传。
其中,所述数据平面检测点包括:
Watch检测点,用于上传MAT的数据表项和该检测点的标识符;
Break检测点,用于在指定流程触发时,向调试平台展示数据平面的状态;
Predication检测点,用于展示在预测表达式中引用的可编程元件,若原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只将流程传递给匹配步骤;
Match检测点,用于展示匹配步骤中指定流的匹配字段和值;
Action检测点,用于展示在执行步骤中已采取的动作和参数。
还公开了一种利用上述可编程路由交换设备在线调试装置的调试方法,包括步骤:
S1:所述检测点管理器将P4程序源代码加载到可编程路由交换设备上进行调试,并返回调试实例;
S2:所述检测点管理器在调试实例中利用watch原语向异常流量路径插入watch检测点,以显示指定流的在整个网络级视图中的转发路径;
S3:所述检测点管理器根据指定流中数据包在网络级视图中的转发路径找到异常转发设备;
S4:所述检测点管理器在所述异常转发设备中利用watch检测点找到异常行为的匹配动作表MAT;
S5:所述检测点管理器利用Break检测点对该MAT进行细粒度观察,以定位错误的可编程元素。
其中,所述步骤S5中细粒度观察包括:在所述匹配动作表MAT插入Predication检测点、Match检测点以及Action检测点,并利用Next原语分步观察MAT的Predication步骤,Match步骤以及Action步骤直到定位错误的可编程元素。
其中,所述步骤S1中,通过Bind原语以P4程序ID和设备ID为参数在可编程路由交换设备上加载P4程序源代码。
其中,所述步骤S2中,所述watch原语以调试实例ID和指定流的流定义为参数,根据流定义在指定调试实例内部插入Watch检测点。
(三)有益效果
本发明的装置和方法中通过数据平面检测点实时地为程序员提供各种可编程元素的运行状态,程序员可以通过详细的内部状态快速地定位P4程序中存在的漏洞。
附图说明
图1为本发明的可编程路由交换设备在线调试装置整体架构图;
图2为匹配动作表分解示意图;
图3为利用本发明方法调试的一种调试实施图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明提出数据平面检测点来实时获取P4程序可编程元素的运行时状态。此外,本发明使用指令检测点的不同组合来实现用户友好的调试原语,程序员使用高级调试原语将数据平面检测点嵌入到P4程序中,并在运行时调试P4程序。
本发明的整体架构图1所示,提供面向P4的高级调试接口,程序员可以基于该接口开发自动化调试工具以及交互式调试工具等调试应用。同时,在控制平面中,本发明在集中式控制器的基础上实现P4Debugger调试平台。P4Debugger调试平台对上提供高级调试原语,对下提供处理来自检测点消息的能力。最后,在数据平面,P4Debugger提供了匹配动作表分解技术,实现了更细粒度的数据包处理行为监控,并且提供了数据平面检测点来实时收集可编程路由交换设备的状态。具体地,P4Debugger调试平台包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器,调试接口管理器负责接收来上层调试应用的指令(上层调试应用由网络管理员实现)。检测点管理器则负责监听来自调试接口管理器的命令,如果有检测点的相关指令(例如:插入和删除检测点),则执行相关的指令。可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,负责管理被调试的网络设备,例如:设置可编程设备的转发策略。调试消息管理器则是接受来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用。
所述数据平面检测点包括:
Watch检测点,用于上传MAT的数据表项和该检测点的标识符;
Break检测点,用于在指定流程触发时,向调试平台展示数据平面的状态;
Predication检测点,用于展示在预测表达式中引用的可编程元件,若原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只将流程传递给匹配步骤;
Match检测点,用于展示匹配步骤中指定流的匹配字段和值;
Action检测点,用于展示在执行步骤中已采取的动作和参数。
如图2所示,一个可重配置匹配动作表可分解为三个部分:Predication,Match和Action。Predication步骤在功能上等同于在控制流中与MAT对应的if-else语句;Match步骤仅执行MAT的匹配逻辑,并获取对应的表项,不执行任何动作;Action步骤只会执行表项包含的动作逻辑。基于匹配动作表分解技术,P4Debugger可以在每个相应的分解步骤之后分别插入Predication检测点,Match检测点和Action检测点,之后从这些检测点中收集细粒度的运行状态,帮助程序员更深入地查找P4程序中的漏洞。
基于上述架构本实施例的方法具体包括:
步骤S1,将P4程序源代码加载到可编程路由交换设备上进行调试,并返回调试实例。
步骤S2,在调试实例中利用Watch原语向异常流量路径插入watch检测点,以显示指定流的在整个网络级视图中的转发路径。
步骤S3,根据指定流中数据包在网络级视图中的转发路径找到异常转发设备。异常转发是指可编程路由交换设备不按照指定的网络转发策略转发网络数据包,网络转发策略由网络管理员人为指定。
步骤S4,在所述异常转发设备中利用watch检测点找到异常行为的匹配动作表MAT。
步骤S5,所述检测点管理器利用Break检测点对该MAT进行细粒度观察,以定位错误的可编程元素。
步骤S1中,通过Bind原语以P4程序ID和设备ID为参数在可编程路由交换设备上加载P4程序源代码。
本实施例中,一共提供了七种高级原语,如下表1所示:
表1面向可编程路由交换设备的高级调试原语描述
P4Debugger调试平台提供一套直观易用的高级调试原语,帮助程序员高效地开发各种P4程序的调试应用。高级调试原语通过调试代码检测点的各种组合来实现,现在共有七种基本原语。这些高级调试原语相互配合,能够为程序员提供调试除数据包解析器之外的任何可编程元素的能力。下面将分别介绍本发明所提供面向可编程路由交换设备的高级调试原语。
Bind和Release原语可以在某些特定设备上动态地将调试器附到P4程序上。当调试员添加Bind原语时,P4Debugger将加载并分析P4程序的源代码,检查硬件设备上的运行的P4程序,准备调试环境。
Watch原语为程序员提供了两种层次的可见性:一个是网络级的可见性,它将显示指定流(例如:指定一组某些协议头域相同的网络报文,协议头域可以是目的地址等)的在整个网络中的转发路径;另一个是设备级的可见性,它将显示指定流的在单个设备中在MAT之间的转发路径。P4Debugger在交换机内部中插入多个监视检测点,回收测试报告,并跟踪显示指定流量的路径。
Break和Next原语使程序员单步调试MAT。当调试员触发Break原语时,P4Debugger将分解MAT并插入Break检测点。一旦Break检测点被指定的流程触发,程序员可使用Next原语,让P4Debugger动态地将Predication检测点安装到已分解的MAT中并观测流量经过Predication步骤之后的状态。之后,程序员触发两个Next原语将分别安装Match检测点和Action检测点,并显示Match步骤和Action步骤的状态。
Remove和Show原语和现有的计算高级程序语言的调试功能相似,相对比较简单,不再深入介绍。
步骤S2中,所述watch原语以调试实例ID和指定流的流定义为参数,根据流定义在指定调试实例内部插入Watch检测点。
本实施例中,数据平面检测点由一个或多个MAT组成,可以将可编程元素运行时的状态报告给P4Debugger调试平台。数据平面检测点的匹配规则由P4Debugger根据调试原语中的参数生成。根据数据平面检测点的类型,不同的检测点针对不同的可编程元件进行分析和报告。检测点部署于数据平面后,它将匹配对应的流,生成实时报告并将报告发送至P4Debugger调试平台。目前本发明提供五种类型的检测点。
Watch检测点:Watch检测点由一个MAT实现。匹配规则由Watch原语中的参数生成。Watch检测点中的动作包括对于两种信息的传递:数据表项,调试平台可以通过该表项来区分不同的指定流;检测点的标识符,通过该标识符,调试平台可以识别Watch检测点的位置。下面表2中的P4代码就是Watch监测点实现示例,主要是用于监听IPv4目的地址,gen_watch动作用于生成Watch监测点的上报消息。
表2 P4代码就是Watch监测点实现示例
Break检测点:Break检测点使调试员能够以更细的精度调试MAT。当程序员调用一个MAT的break原语时,P4Debugger将分解MAT并安装Break检测点。Break检测点由一个MAT实现,并在指定流程触发时向调试平台展示数据平面的状态。下面表3中的P4代码就是Break检测点实现示例,主要是用于监听IPv4目的地址,gen_break动作用于生成Break检测点的上报消息。
表3 P4代码就是Break监测点实现示例
Predication检测点:在预测步骤和匹配步骤之间的Predication检测点由一个MAT实现,它被用来展示在预测表达式中引用的可编程元件。如果原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只能将流程传递给匹配步骤。特定的控制流将首先在预测步骤中进行匹配,然后传递给Predication检测点,而正常的控制流将不会传递给Predication检测点。在命令行接口(Command Line Interface,CLI)中,P4Debugger能显示预测表达式以及引用变量的值。因此,调试员符以检查预测中的布尔表达式是否正确。下面表4中的P4代码就是Predication检测点实现示例,主要是用于监听IPv4目的地址,gen_predication动作用于生成Predication检测点的上报消息。
表4 P4代码就是Predication检测点实现示例
Match检测点:由一个MAT实现的Match检测点用于展示匹配步骤中指定流的匹配字段和值。通过Match检测点,调试员可以通过指定的流来确定匹配的表项,并验证匹配规则的正确性。Match检测点只负责处理调试流。下面表5中的P4代码就是Match检测点实现示例,主要是用于监听IPv4目的地址,gen_match动作用于生成Match检测点的上报消息。
表5 P4代码就是Match检测点实现示例
Action检测点:由一个MAT实现,可以将报头,动作和动作参数传达给调试平台。通过Action检测点,调试员可以验证指定的流是否按预期正确执行。执行步骤会在处理完流后将流传递给Action检测点,指定的流程将触发Action检测点来展示在执行步骤中已采取的动作和参数。当P4Debugger安装Action检测点时,Action检测点中的匹配规则和操作将被实例化。下面表6中的P4代码就是Action检测点实现示例,主要是用于监听对应的复合动作ID,gen_action动作用于生成Action检测点的上报消息。
表6 P4代码就是Action检测点实现示例
步骤S5中,细粒度观察具体包括:在所述匹配动作表MAT插入Predication检测点、Match检测点以及Action检测点,并利用Next原语分步观察MAT的Predication步骤,Match步骤以及Action步骤直到定位错误的可编程元素。Break检测点用于检测进入指定MAT之前数据包的状态,相当于细粒度观察的前缀动作,用于提供进入细粒度观察步骤之前的数据平面状态。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种可编程路由交换设备在线调试装置,其特征在于,包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;
调试接口管理器负责接收来上层调试应用的指令;
检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;
可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;
调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,所述数据平面检测点用于将可编程元素运行时的状态作为所述调试消息上传。
2.根据权利要求1所述的可编程路由交换设备在线调试装置,其特征在于,所述数据平面检测点包括:
Watch检测点,用于上传MAT的数据表项和该检测点的标识符;
Break检测点,用于在指定流程触发时,向调试平台展示数据平面的状态;
Predication检测点,用于展示在预测表达式中引用的可编程元件,若原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只将流程传递给匹配步骤;
Match检测点,用于展示匹配步骤中指定流的匹配字段和值;
Action检测点,用于展示在执行步骤中已采取的动作和参数。
3.一种利用权利要求2所述的可编程路由交换设备在线调试装置的调试方法,其特征在于,包括步骤:
S1:所述检测点管理器将P4程序源代码加载到可编程路由交换设备上进行调试,并返回调试实例;
S2:所述检测点管理器在调试实例中利用Watch原语向异常流量路径插入Watch检测点,以显示指定流的在整个网络级视图中的转发路径;
S3:所述检测点管理器根据指定流中数据包在网络级视图中的转发路径找到异常转发设备;
S4:所述检测点管理器在所述异常转发设备中利用Watch检测点找到异常行为的MAT;
S5:所述检测点管理器利用Break检测点对该MAT进行细粒度观察,以定位错误的可编程元素。
4.根据权利要求3所述的调试方法,其特征在于,所述步骤S5中细粒度观察包括:在所述匹配动作表MAT插入Predication检测点、Match检测点以及Action检测点,并利用Next原语分步观察MAT的Predication步骤,Match步骤以及Action步骤直到定位错误的可编程元素。
5.根据权利要求3所述的调试方法,其特征在于,所述步骤S1中,通过Bind原语以P4程序ID和设备ID为参数在可编程路由交换设备上加载P4程序源代码。
6.根据权利要求3所述的调试方法,其特征在于,所述步骤S2中,所述Watch原语以调试实例ID和指定流的流定义为参数,根据流定义在指定调试实例内部插入Watch检测点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711287758.8A CN107911264A (zh) | 2017-12-07 | 2017-12-07 | 可编程路由交换设备在线调试装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711287758.8A CN107911264A (zh) | 2017-12-07 | 2017-12-07 | 可编程路由交换设备在线调试装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107911264A true CN107911264A (zh) | 2018-04-13 |
Family
ID=61853840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711287758.8A Pending CN107911264A (zh) | 2017-12-07 | 2017-12-07 | 可编程路由交换设备在线调试装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911264A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021044191A1 (en) * | 2019-09-04 | 2021-03-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for debugging the parser in programmable routers |
CN112667514A (zh) * | 2020-12-31 | 2021-04-16 | 海光信息技术股份有限公司 | 一种微程序的调试方法及其调试装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681280A (zh) * | 2007-05-25 | 2010-03-24 | 微软公司 | 使用外部调试基础结构的进程内调试 |
CN103473431A (zh) * | 2013-09-25 | 2013-12-25 | 北京大学 | 一种轻量级的在线调试php程序的方法 |
-
2017
- 2017-12-07 CN CN201711287758.8A patent/CN107911264A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681280A (zh) * | 2007-05-25 | 2010-03-24 | 微软公司 | 使用外部调试基础结构的进程内调试 |
CN103473431A (zh) * | 2013-09-25 | 2013-12-25 | 北京大学 | 一种轻量级的在线调试php程序的方法 |
Non-Patent Citations (1)
Title |
---|
CHENG ZHANG等: ""P4DB: On-the-fly debugging of the programmable data plane"", 《2017 IEEE 25TH INTERNATIONAL CONFERENCE ON NETWORK PROTOCOLS (ICNP)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021044191A1 (en) * | 2019-09-04 | 2021-03-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for debugging the parser in programmable routers |
CN112667514A (zh) * | 2020-12-31 | 2021-04-16 | 海光信息技术股份有限公司 | 一种微程序的调试方法及其调试装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akkaya et al. | Systems engineering for industrial cyber–physical systems using aspects | |
Li et al. | A survey on network verification and testing with formal methods: Approaches and challenges | |
Iyer et al. | Performance contracts for software network functions | |
US20170104653A1 (en) | Packet loss debug system and method | |
Neves et al. | Verification of p4 programs in feasible time using assertions | |
DE69510801D1 (de) | Verfahren und vorrichtung zur modellierung von rechnerprozessbetriebsmitteln | |
CN109388537A (zh) | 运行信息跟踪方法、装置及计算机可读存储介质 | |
US7380168B2 (en) | System development tool | |
CN107911264A (zh) | 可编程路由交换设备在线调试装置及方法 | |
Croft et al. | Systematically exploring the behavior of control programs | |
Zhang et al. | P4DB: On-the-fly debugging of the programmable data plane | |
Birnfeld et al. | P4 switch code data flow analysis: Towards stronger verification of forwarding plane software | |
CN102968372A (zh) | 具有程序分析功能的程序调试系统 | |
US7363209B2 (en) | System and method for controlling jobs of a production device | |
Chen et al. | Test generation for embedded executables via concolic execution in a real environment | |
CN102214141B (zh) | 基于实时堆栈的程序切片方法 | |
De Pauw et al. | Visual debugging for stream processing applications | |
Bombieri et al. | Functional qualification of TLM verification | |
Zhou et al. | P4DB: On-the-fly debugging for programmable data planes | |
Kim et al. | Execution of natural language requirements using State Machines synthesised from Behavior Trees | |
Fitzgerald et al. | Validation support for distributed real-time embedded systems in vdm++ | |
Saeed et al. | Cost and effectiveness of search-based techniques for model-based testing: an empirical analysis | |
Lee et al. | A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems | |
Martinez et al. | Safety and security interference analysis in the design stage | |
CN116584085A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180413 |
|
RJ01 | Rejection of invention patent application after publication |