CN109561105A - 一种基于报文零拷贝方式的高性能报文捕获发送平台 - Google Patents
一种基于报文零拷贝方式的高性能报文捕获发送平台 Download PDFInfo
- Publication number
- CN109561105A CN109561105A CN201811635089.3A CN201811635089A CN109561105A CN 109561105 A CN109561105 A CN 109561105A CN 201811635089 A CN201811635089 A CN 201811635089A CN 109561105 A CN109561105 A CN 109561105A
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- user space
- skbuf
- interface
- 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.)
- Withdrawn
Links
Classifications
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- 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/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于报文零拷贝方式的高性能报文捕获发送平台,它包括网卡驱动模块,内核报文处理栈模块与用户态接口动态库模块,网卡驱动模块使得指定网卡的数据流程指向内核报文处理栈;内核报文处理栈,采用队列的方式在内核态、用户态之间传递网络数据报文;用户态的接口动态库,使用统一接口实现报文的捕获、发送。本发明能运行在多种软、硬件平台上、多种硬件平台、多种linux发行版本、多种型号网卡,兼容性好。本发明能在不同流量、无出错丢包要求下,提供报文给上层应用进行分析处理,稳定性好。本发明能使报文数据到达网卡驱动的缓冲后,后续的数据报文流程不再需要拷贝,效率高,适用于网络安全领域对网络流量进行应用识别、协议分析。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于报文零拷贝方式的高性能报文捕获发送平台。
背景技术
在网络安全领域,需要在实时或事后的方式下,对网络流量进行应用识别、协议分析。流量分析的前提,是需要一个稳定、高性能、兼容多种软硬件的报文捕获发送平台。传统的报文捕获是利用libpcap开发出捕报文发送平台,但libpcap的报文捕获方式是:当报文到达网卡时,网卡通过DMA方式将其传送到网卡驱动的缓冲环中,并在完成DMA传送时产生一个硬件中断。中断处理程序将接收到的报文封装成sk_buff结构,然后由netif_rx传递给网络协议栈进行进一步处理。在内核网络协议栈和Socket层处理后,用户进程通过***调用read或recvfrom从内核空间读取报文。由于内核缓冲了绝大多数I/O操作,内核空缓冲区在一定程度上分割了用户空间和物理设备,有利于应用层程序的设计实现。但是,内核缓冲区的使用却增加了数据拷贝、中断和CPU参与等***开销,从而影响报文捕获的性能。
发明内容
本发明的目的是针对现有的报文捕获发送中内核缓冲区增加***开销,影响报文捕获性能的问题,发明一种基于报文零拷贝方式的高性能报文捕获发送平台。
一种基于报文零拷贝方式的高性能报文捕获发送平台,包括
用户态接口动态库模块,包含
报文捕获接口、报文释放接口、申请skbuf接口、报文发送接口、初始化/注销接口、日志调试统计接口;
内核报文处理栈模块,包含
发送线程,负责取出带有发送网卡信息的报文,并将报文发送至网卡;
填充线程,负责监控skbuf队列,如队列中可用skbuf小于50%,就申请skbuf并将其投入到skbuf队列中,skbuf队列给用户态进程使用,用于拼接IP分片报文,或用户态进程模拟大流量发送报文时填充报文数据;
释放线程,负责从释放队列里取报文 skbuf,释放归还到skbuf缓存中;
检测线程,负责检测每个进程的捕包队列,如果队列上无操作超过一定时间则认为进程异常,关闭该队列;
捕获队列,由用户态进程初始化平台控制结构实例时创建,用于接收网卡驱动中断;发送队列用于接收用户态进程将要发生的报文,报文指针在接口内部被转为物理地址,发送线程从发送队列取报文,转成线性地址后,发送到指定发送网卡;
skbuf队列,用于存放填充线程填充的skbuf,skbuf地址均为物理地址,用户态进程通过接口从skbuf队列中取skbuf使用,接口内部转为用户态地址;
释放队列,用于接收用户态进程将处理后需要释放的报文,接口内部将报文地址转为物理地址,释放线程从释放队列中取报文释放到skbuf缓存;
skbuf缓存,用于网卡收报文中断后,拷贝存储报文,也用于用户态进程发送报文时填充构造的报文;
平台控制结构实例,由用户态进程调用初始化接口时创建,存放内核态和用户态都要访问的全局变量,用于控制模块功能,用户态的接口使用控制结构实例中的信息,和内核报文处理栈交互报文数据、控制信息;
统计信息,由用户态进程调用初始化接口时创建,在用户态进程和内核报文处理栈之间传递统计信息;
网卡驱动模块,用于控制指定网卡数据流向。
在本发明的优选中,所述用户态接口动态库模块中所有的接口都内部实现了用户态和内核态的地址转换,包含数据报文物理地址转换、平台控制实例中队列地址转换和统计信息的物理地址转换。
在本发明的优选中,所述网卡驱动模块在加载网卡设备init处理中,设置网卡工作在PROMISC模式,向内核报文处理栈模块注册网卡设备信息,当报文到达时,申请skbuf并拷贝报文,使用__pa( *pPacketSkbuf )将报文指针由线性地址转为物理地址,然后将报文地址投递到捕获队列中,应用进程通过接口获取到报文指针,接口内部将线性地址转为用户态空间的地址,用户态进程就可进行后续的报文分析处理。
本发明通过/proc/iomem文件获取到当前物理地址的最大值,并将当前进程空间使用的内存大小设置为无限制,同时根据获取到的最大物理地址使用mmap将整个物理内存映射到用户进程空间。映射的起始地址为start,则用户态代码可通过公式:物理地址+start=虚拟地址,用户态进程可通过访问该虚拟地址访问所有对象。
本发明中用户态进程设置好初始化参数,参数包括:流量、捕报文网卡、发送报文网卡等信息。初始化接口在 /proc 下建立用户态进程对应项目录,并在目录下创建参数信息。内核报文处理栈读到用户态进程参数后,分配平台控制结构实例,内核报文处理栈将平台控制结构实例的地址写到对应用户态进程在/proc的项目录下,用户态进程通过读其在/proc的项目录下的控制结构实例指针,将其转为用户态的虚拟地址,后续调用平台各种接口时,将该控制结构指针作为参数传入,就能实现捕获、发送、统计等各种操作。
用户态进程得到控制结构实例的指针后,用户态进程使用控制结构实例指针作为参数调用平台的捕获、发送接口,就可从内核报文处理栈接收报文将报文发送到内核处理栈。控制结构中的队列用上述内存共享的方式,一端在内核态,另一端在用户态,任意一端只执行入队列或者出队列,同时在内核态使用自旋锁进行并发同步,在用户态使用互斥量进行并发同步。
本发明的有益效果在于:
本发明可应用于多种硬件平台,包括HP DL系列的2U架式服务器;IBM M4、M5、X5、X6系列的架式服务器;IBM Blade-HS22*系列的刀片服务器;ATCA标准的刀片服务器。
本发明可在多种类型的网卡上进行报文捕获、报文发送:Intel GE网卡、Intel10GE网卡、Broadcom GE网卡、Broadcom 10GE网卡。
本发明支持多种网卡的使用模式:1个10GE网卡报文捕获和 4个GE网卡报文发送;1个10GE网卡报文捕获和1个10GE网卡报文发送;1-8个GE网卡报文捕获和1-8个GE网卡报文发送。
本平台可以运行在多种linux发行版本中:SUSE Linux Enterprise 12、Centos-7x86_64和Red Hat Enterprise Linux 6。
本发明提供向导式的安装卸载工具,将平台安装在服务器上,可以在该服务器上实现大流量的报文捕获、报文发送。
本发明能在不同流量、无出错丢包要求下,提供报文给上层应用进行分析处理,支持流量范围达1Gbps-10Gbps,特别适用于流量恶意行为识别领域。
附图说明
图1为本发明的结构框图;
图2为本发明的模块设计图;
图3为本发明的报文捕获流程示意图;
图4为本发明的报文发送过程示意图;
图5为本发明的报文转发过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1所示,一种基于报文零拷贝方式的高性能报文捕获发送平台,其由用户态的接口动态库,内核报文处理栈和网卡驱动组成。
如图2所示,在进行模块化设计时,本发明可划分为以下模块:
用户态接口动态库模块,包含报文捕获接口、报文释放接口、申请skbuf接口、报文发送接口、初始化/注销接口、日志调试统计接口。需要说明的是,用户态接口动态库模块中所有的接口都内部实现了用户态和内核态的地址转换,包含数据报文物理地址转换、平台控制实例中队列地址转换和统计信息的物理地址转换。
内核报文处理栈模块,包含
发送线程、填充线程、释放线程、检测线程、捕获队列、发送队列、skbuf队列、释放队列、skbuf缓存、平台控制结构实例、统计信息;
其中,发送线程负责取出带有发送网卡信息的报文,将报文发送到发送网卡去;填充线程,负责监控skbuf队列,如队列中可用skbuf小于50%,就申请skbuf并将其投入到skbuf队列中,skbuf队列给用户态进程使用,用于拼接IP分片报文,或用户态进程模拟大流量发送报文时填充报文数据;释放线程,负责从释放队列里取报文 skbuf,释放归还到skbuf缓存中;检测线程,负责检测每个进程的捕包队列,如果队列上无操作超过一定时间则认为进程异常,关闭该队列;捕获队列由用户态进程初始化平台控制结构实例时创建,用于接收网卡驱动中断;发送队列用于接收用户态进程将要发生的报文,报文指针在接口内部被转为物理地址,发送线程从发送队列取报文,转成线性地址后,发送到指定发送网卡;skbuf队列用于存放填充线程填充的skbuf,skbuf地址均为物理地址,用户态进程通过接口从skbuf队列中取skbuf使用,接口内部转为用户态地址;释放队列用于接收用户态进程将处理后需要释放的报文,接口内部将报文地址转为物理地址,释放线程从释放队列中取报文释放到skbuf缓存;skbuf缓存用于网卡收报文中断后,拷贝存储报文,也用于用户态进程发送报文时填充构造的报文;平台控制结构实例由用户态进程调用初始化接口时创建,存放内核态和用户态都要访问的全局变量,用于控制模块功能,用户态的接口使用控制结构实例中的信息,和内核报文处理栈交互报文数据、控制信息;统计信息由用户态进程调用初始化接口时创建,在用户态进程和内核报文处理栈之间传递统计信息;
网卡驱动模块,用于控制指定网卡数据流向;网卡驱动模块在加载网卡设备init处理中,设置网卡工作在PROMISC模式,向内核报文处理栈模块注册网卡设备信息,当报文到达时,申请skbuf并拷贝报文,使用__pa( *pPacketSkbuf )将报文指针由线性地址转为物理地址,然后将报文地址投递到捕获队列中,应用进程通过接口获取到报文指针,接口内部将线性地址转为用户态空间的地址,用户态进程就可进行后续的报文分析处理。
如图3所示,本发明在进行报文捕获时,网卡首先初始化,为网卡中断服务的接收环分配skbuf,中断处理程序取得网卡已接收的报文并将报文放进进程捕获队列;进程从捕获队列取得报文,在处理完毕后,进程释放报文缓冲到释放队列,释放线程从释放队列取出归还的报文缓冲,释放线程将归还的缓冲释放进***skbuf空间,最后中断处理程序为网卡分配用于接收下一个报文的缓存。
如图4所示,本发明在进行报文发送时,填充线程从***skbuf空间分配缓存,将缓存补充进缓存队;应用进程从缓存队列取出缓存并将写入数据的skbuf报文放进发送队列;发送线程从发送队列取出待发送报文,然后将待发送报文递交给网卡,网卡发送报文完毕后将报文缓存归还***skbuf空间。
如图5所示,本发明在进行报文转发时,网卡初始化过程为网卡接收环分配缓存,中断处理程序取得网卡已接收的报文,然后将报文放入进程捕获队列,进程从捕获队列中取得报文并判断报文状态,如果无需转发则将其放到归还队列;归还线程从归还队列取出归还报文缓冲,归还线程将归还的缓冲放进***skbuf空间;之后中断处理程序为网卡分配用于接收下一个报文的缓存,此时进程对于接收的报文进行判断,如果报文需要转发则将其放到发送队列,否则丢弃。发送线程从发送队列取出待发送报文递交给网卡,网卡发送报文完毕后将报文缓存归还***skbuf空间。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于报文零拷贝方式的高性能报文捕获发送平台,其特征是,包括用户态接口动态库模块,包含报文捕获接口、报文释放接口、申请skbuf接口、报文发送接口、初始化/注销接口、日志调试统计接口;
内核报文处理栈模块,包含发送线程,负责取出带有发送网卡信息的报文,并将报文发送至网卡;
填充线程,负责监控skbuf队列,如队列中可用skbuf小于50%,就申请skbuf并将其投入到skbuf队列中,skbuf队列给用户态进程使用,用于拼接IP分片报文,或用户态进程模拟大流量发送报文时填充报文数据;
释放线程,负责从释放队列里取报文 skbuf,释放归还到skbuf缓存中;
检测线程,负责检测每个进程的捕包队列,如果队列上无操作超过一定时间则认为进程异常,关闭该队列;
捕获队列,由用户态进程初始化平台控制结构实例时创建,用于接收网卡驱动中断;发送队列用于接收用户态进程将要发生的报文,报文指针在接口内部被转为物理地址,发送线程从发送队列取报文,转成线性地址后,发送到指定发送网卡;
skbuf队列,用于存放填充线程填充的skbuf,skbuf地址均为物理地址,用户态进程通过接口从skbuf队列中取skbuf使用,接口内部转为用户态地址;
释放队列,用于接收用户态进程将处理后需要释放的报文,接口内部将报文地址转为物理地址,释放线程从释放队列中取报文释放到skbuf缓存;
skbuf缓存,用于网卡收报文中断后,拷贝存储报文,也用于用户态进程发送报文时填充构造的报文;
平台控制结构实例,由用户态进程调用初始化接口时创建,存放内核态和用户态都要访问的全局变量,用于控制模块功能,用户态的接口使用控制结构实例中的信息,和内核报文处理栈交互报文数据、控制信息;
统计信息,由用户态进程调用初始化接口时创建,在用户态进程和内核报文处理栈之间传递统计信息;
网卡驱动模块,用于控制指定网卡数据流向。
2.根据权利要求1所述的一种基于报文零拷贝方式的高性能报文捕获发送平台,其特征在于,所述用户态接口动态库模块中所有的接口都内部实现了用户态和内核态的地址转换,包含数据报文物理地址转换、平台控制实例中队列地址转换和统计信息的物理地址转换。
3.根据权利要求1所述的一种基于报文零拷贝方式的高性能报文捕获发送平台,其特征在于,所述网卡驱动模块在加载网卡设备init处理中,设置网卡工作在PROMISC模式,向内核报文处理栈模块注册网卡设备信息,当报文到达时,申请skbuf并拷贝报文,使用__pa( *pPacketSkbuf )将报文指针由线性地址转为物理地址,然后将报文地址投递到捕获队列中,应用进程通过接口获取到报文指针,接口内部将线性地址转为用户态空间的地址,用户态进程就可进行后续的报文分析处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635089.3A CN109561105A (zh) | 2018-12-29 | 2018-12-29 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635089.3A CN109561105A (zh) | 2018-12-29 | 2018-12-29 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109561105A true CN109561105A (zh) | 2019-04-02 |
Family
ID=65871917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811635089.3A Withdrawn CN109561105A (zh) | 2018-12-29 | 2018-12-29 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109561105A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277509A (zh) * | 2020-01-13 | 2020-06-12 | 奇安信科技集团股份有限公司 | 针对ips引擎的流量引导方法及装置 |
CN112131019A (zh) * | 2020-09-17 | 2020-12-25 | 国网宁夏电力有限公司营销服务中心(国网宁夏电力有限公司计量中心) | 微内核操作***进程间快速通信方法 |
CN112532585A (zh) * | 2020-11-02 | 2021-03-19 | 杭州迪普科技股份有限公司 | 一种进程间报文传输的方法、设备及介质 |
CN113596171A (zh) * | 2021-08-04 | 2021-11-02 | 杭州朗和科技有限公司 | 云计算数据交互方法、***、电子设备及存储介质 |
CN114070805A (zh) * | 2020-07-27 | 2022-02-18 | 武汉神州数码云科网络技术有限公司 | 一种交换机管理网口报文收发实现方法 |
CN114124680A (zh) * | 2021-09-24 | 2022-03-01 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
CN115033407A (zh) * | 2022-08-09 | 2022-09-09 | 微栈科技(浙江)有限公司 | 一种适用于云计算的采集识别流量的***和方法 |
CN115225430A (zh) * | 2022-07-18 | 2022-10-21 | 中安云科科技发展(山东)有限公司 | 一种高性能IPsec VPN CPU负载均衡方法 |
-
2018
- 2018-12-29 CN CN201811635089.3A patent/CN109561105A/zh not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277509A (zh) * | 2020-01-13 | 2020-06-12 | 奇安信科技集团股份有限公司 | 针对ips引擎的流量引导方法及装置 |
CN111277509B (zh) * | 2020-01-13 | 2023-12-05 | 奇安信科技集团股份有限公司 | 针对ips引擎的流量引导方法及装置 |
CN114070805A (zh) * | 2020-07-27 | 2022-02-18 | 武汉神州数码云科网络技术有限公司 | 一种交换机管理网口报文收发实现方法 |
CN112131019A (zh) * | 2020-09-17 | 2020-12-25 | 国网宁夏电力有限公司营销服务中心(国网宁夏电力有限公司计量中心) | 微内核操作***进程间快速通信方法 |
CN112532585A (zh) * | 2020-11-02 | 2021-03-19 | 杭州迪普科技股份有限公司 | 一种进程间报文传输的方法、设备及介质 |
CN113596171A (zh) * | 2021-08-04 | 2021-11-02 | 杭州朗和科技有限公司 | 云计算数据交互方法、***、电子设备及存储介质 |
CN113596171B (zh) * | 2021-08-04 | 2024-02-20 | 杭州网易数之帆科技有限公司 | 云计算数据交互方法、***、电子设备及存储介质 |
CN114124680A (zh) * | 2021-09-24 | 2022-03-01 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
CN114124680B (zh) * | 2021-09-24 | 2023-11-17 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
CN115225430A (zh) * | 2022-07-18 | 2022-10-21 | 中安云科科技发展(山东)有限公司 | 一种高性能IPsec VPN CPU负载均衡方法 |
CN115033407A (zh) * | 2022-08-09 | 2022-09-09 | 微栈科技(浙江)有限公司 | 一种适用于云计算的采集识别流量的***和方法 |
CN115033407B (zh) * | 2022-08-09 | 2022-11-04 | 微栈科技(浙江)有限公司 | 一种适用于云计算的采集识别流量的***和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561105A (zh) | 一种基于报文零拷贝方式的高性能报文捕获发送平台 | |
Li et al. | Socksdirect: Datacenter sockets can be fast and compatible | |
US8543729B2 (en) | Virtualised receive side scaling | |
CN102402487B (zh) | 一种零拷贝接收报文的方法和*** | |
US8537832B2 (en) | Exception detection and thread rescheduling in a multi-core, multi-thread network processor | |
EP1891787B1 (en) | Data processing system | |
KR101502808B1 (ko) | 단일 모뎀 보드 상의 개선된 멀티-셀 지원을 위한 방법 및 시스템 | |
US8505013B2 (en) | Reducing data read latency in a network communications processor architecture | |
EP2506147B1 (en) | Epoll optimisations | |
KR101636308B1 (ko) | 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층 | |
CN104506379A (zh) | 网络数据捕获方法和*** | |
Garzarella et al. | Virtual device passthrough for high speed VM networking | |
CA2432386A1 (en) | Method and apparatus for transferring interrupts from a peripheral device to a host computer system | |
CN101150488A (zh) | 一种零拷贝网络报文接收方法 | |
US11875198B2 (en) | Synchronization object issue detection using object type queues and associated monitor threads in a storage system | |
GB2349717A (en) | Low latency network | |
US20070198720A1 (en) | Method and apparatus for a interfacing device drivers to a single multi-function adapter | |
Zhang et al. | Workload adaptive shared memory management for high performance network i/o in virtualized cloud | |
US9304706B2 (en) | Efficient complex network traffic management in a non-uniform memory system | |
US7853713B2 (en) | Communication interface device and communication method | |
GB2436627A (en) | Message handling using a wrapper | |
Jung et al. | Gpu-ether: Gpu-native packet i/o for gpu applications on commodity ethernet | |
Inoue et al. | Low-latency and high bandwidth TCP/IP protocol processing through an integrated HW/SW approach | |
US20070230347A1 (en) | Communication interface device and communication method | |
de Bruijn et al. | sendmsg copy avoidance with MSG_ZEROCOPY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 210012 Jiangsu Province Yuhuatai District Software Avenue 168, 3 buildings, 5 floors Applicant after: Bozhi Safety Technology Co.,Ltd. Address before: 210012 Jiangsu Province Yuhuatai District Software Avenue 168, 3 buildings, 5 floors Applicant before: JIANGSU BOZHI SOFTWARE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190402 |
|
WW01 | Invention patent application withdrawn after publication |