CN109257300A - 一种网络数据包的存储方法及装置 - Google Patents
一种网络数据包的存储方法及装置 Download PDFInfo
- Publication number
- CN109257300A CN109257300A CN201811052722.6A CN201811052722A CN109257300A CN 109257300 A CN109257300 A CN 109257300A CN 201811052722 A CN201811052722 A CN 201811052722A CN 109257300 A CN109257300 A CN 109257300A
- Authority
- CN
- China
- Prior art keywords
- data packet
- packet
- former
- storage
- memory
- 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
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种网络数据包的存储方法,包括以下步骤:在主存中设置一个数据包存储区并初始化数据包存储队列,建立所述数据包存储区与上层应用程序的映射关系;网卡驱动程序接收数据包;在所述数据包存储区的存储队列中,在每个数据包的开头预留第一存储空间并在末尾预留第二存储空间;上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;网卡驱动程序发送所述修改后的数据包。本发明还提供一种数据包存储装置,包括映射模块、接收模块、存储模块、修改模块、发送模块。本发明直接在数据包的原始地址处修改数据包的结构和内容,避免了数据包在内存中的拷贝,提高数据包的转发效率。本发明涉及网络数据领域。
Description
技术领域
本发明专利涉及网络数据领域,尤其涉及一种的网络数据包存储方法及装置。
背景技术
随着社会信息化的迅猛发展,网络设备常常需要对数据包进行存储、修改并转发。网络设备存储、修改、转发的效率直接影响到网络数据包的传输,提高网络设备的转发效率,有益于降低网络数据包的延迟。传统的网络数据包修改并转发方法是在数据包修改后,重新开辟一块内存,先对数据包进行内存拷贝,并将原来包的内容和修改的内容全部写到新的内存地址上,这种方法保存的数据包体积较大,写入的过程比较耗时,网络数据包的转发效率不高,特别当数据包的内容比较大时,拷贝的过程更费时。
因此,如果能够采用好的数据包存储方法减少这种内存拷贝,就能的提高数据包的修改速率,从而提高系统的整体转发效率。
发明内容
本发明提出了一种网络数据包的存储方法及装置,解决网络数据包转发效率低的问题。
本发明实施例的第一方面,提出了一种网络数据包存储方法,包括如下技术方案:
S1、在主存储器中设置一个数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
S2、网卡驱动程序接收数据包;
S3、将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
S4、上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
S5、将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
在上述技术方案中,步骤S3中所述第一存储空间、所述原数据包的存储空间和所述第二存储空间为连续空间。
在上述技术方案中,步骤S4中所述在所述数据包存储区的存储地址处修改所述原数据包之前还包括:
根据数据指针判断上层应用程序需要修改的数据包的具体修改位置。
在上述技术方案中,步骤S4中所述在所述数据包存储区的存储地址处修改所述原数据包的过程包括:
若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间;
在上述技术方案中,
所述将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动还包括:
保持所述数据包内数据的原存储顺序不变,挪动距离根据新增数据的大小决定。
本发明实施例的第二方面,提供了一种网络数据包存储装置,该装置包括如下内容:
映射模块:在主存储器中设置一个数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
接收模块:网卡驱动程序接收数据包;
存储模块:将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
修改模块:上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
发送模块:将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
在上述装置中,所述修改模块具体包括:
开头新增单元:若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
包头插入单元:若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
末尾新增单元:若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间;
本发明通过建立数据包和上层应用程序的映射关系,以及采用新的数据包存储方式,使得上层应用程序处理数据包时可直接在数据包的原始地址处进行,避免的传统数据包处理时的内存拷贝。在数据包存储区为每个数据包额外预留了一定长度的头部空间和尾部空间,上层应用程序修改数据包时直接在数据包存储区的原始地址处修改数据包的结构和内容,将新增内容向预留的头部空间或尾部空间写入,或将原数据包包头中的部分数据段向预留的头部空间挪动,以便插入新增内容,避免了在收发数据包时在内存中的拷贝,从而提高了数据包的转发效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提出的网络数据包存储方法示意图;
图2为本发明实施例提出的网络数据包存储结构示意图;
图3为本发明实施例提供的网络数据包存储装置示意图。
具体实施方式
本发明实施例提供了一种网络数据包存储方法及装置,用于网络数据包的收发过程中,提高网络数据包转发效率。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路、以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提出了一种网络数据包的存储方法,该方法包括以下步骤:
S1、在主存储器中申请数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
通过建立数据包存储区与用户空间上层应用程序的映射关系,上层应用程序可以直接与数据包存储区的数据包交互,即上层应用程序可以在数据包的原存储地址对数据包做分析、修改等处理,避免在数据包的收发过程中使用操作系统的IP栈对数据包进行操作系统内核空间与用户空间的来回拷贝,能提高网络设备转发效率。
S2、网卡驱动程序接收数据包;
数据包从外面的网络进入物理网卡,如果目的地址不是该网卡,且该网卡没有开启混杂模式,该包会被网卡丢弃。当网卡成功接收到数据包后,产生硬件中断,调动网卡软件中断服务程序并通知网卡驱动程序接收数据包,
S3、将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
所述第一存储空间和第二存储空间是为数据包额外留存的留白区,其长度均可以根据实际情况来配置,常用配置是设置为128个字节。
S4、上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
可选的,步骤S4中所述在所述数据包存储区的存储地址处修改所述数据包之前还包括:根据数据指针判断上层应用程序需要修改的数据包具体修改位置。
可选的,步骤S4中所述在所述数据包存储区的存储地址处修改所述原数据包的过程包括:
若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间;
可选的,所述将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动还包括:保持所述数据包内数据的原存储顺序不变,挪动距离根据新增数据的大小决定。
S5、将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
图2为本发明提出的一种网络数据包存储结构示意图,该存储结构由网络数据包存储区210和其中的数据包存储队列211组成,其中在数据包存储队列中,每个数据包又由原数据包本身以及第一存储空间HeadRoom、第二存储空间TailRoom组成。
请参见图3,本发明提出了一种网络数据包存储装置,具体包括:
映射模块310:在主存储器中设置一个数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
接收模块320:网卡驱动程序接收数据包;
存储模块330:将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
修改模块340:上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
发送模块350:将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
可选的,所述修改模块340具体包括:
开头新增单元:若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
包头插入单元:若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
末尾新增单元:若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间;
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,没有详述或记载的部分,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种网络数据包的存储方法,其特征在于,包括如下步骤:
S1、在主存储器中设置一个数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
S2、网卡驱动程序接收数据包;
S3、将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
S4、上层应用程序修改数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
S5、将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
2.根据权利要求1所述的一种网络数据包的存储方法,其特征在于,步骤S3中所述第一存储空间、所述原数据包的存储空间和所述第二存储空间为连续空间。
3.根据权利要求1所述的一种网络数据包的存储方法,其特征在于,步骤S4中所述在所述数据包存储区的存储地址处修改所述原数据包之前还包括:
根据数据指针判断上层应用程序需要修改的数据包的具体修改位置。
4.根据权利要求3所述的一种网络数据包的存储方法,其特征在于,步骤S4中所述在所述数据包存储区的存储地址处修改所述原数据包的过程包括:
若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间。
5.根据权利要求4所述的一种网络数据包的存储方法,其特征在于,所述将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动还包括:
保持所述数据包内数据的原存储顺序不变,挪动距离根据新增数据的大小决定。
6.一种网络数据包的存储装置,其特征在于,包括如下内容:
映射模块:在主存储器中设置一个数据包存储区并初始化存储队列,建立所述数据包存储区与上层应用程序的映射关系;
接收模块:网卡驱动程序接收数据包;
存储模块:将接收到的原数据包加入所述数据包存储区的存储队列时,在每个数据包的开头预留第一存储空间,同时在每个数据包的末尾预留第二存储空间;
修改模块:上层应用程序修改原数据包时,在所述数据包存储区的存储地址处修改所述原数据包并保存;
发送模块:将修改后的数据包的起始地址发送给网卡驱动程序,网卡驱动程序发送所述修改后的数据包。
7.根据权利要求6所述一种网络数据包的存储装置,其特征在于,所述修改模块具体包括以下内容:
开头新增单元:若需要在所述原数据包的开头额外增加新的内容,直接将新增数据写入所述第一存储空间;
包头插入单元:若需要在所述原数据包的包头部分插入新的内容,将所述原数据包中所述修改位置之前的数据段向所述第一存储空间挪动,将新增数据写入挪动后留出的空白区域;
末尾新增单元:若需要在所述原数据包的末尾额外增加新的内容,将新增数据写入所述第二存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811052722.6A CN109257300A (zh) | 2018-09-10 | 2018-09-10 | 一种网络数据包的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811052722.6A CN109257300A (zh) | 2018-09-10 | 2018-09-10 | 一种网络数据包的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109257300A true CN109257300A (zh) | 2019-01-22 |
Family
ID=65047344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811052722.6A Pending CN109257300A (zh) | 2018-09-10 | 2018-09-10 | 一种网络数据包的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109257300A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181736A (zh) * | 2019-12-31 | 2020-05-19 | 奇安信科技集团股份有限公司 | 数据传输方法、装置、系统、介质及程序产品 |
CN112379868A (zh) * | 2020-11-12 | 2021-02-19 | 无锡沐创集成电路设计有限公司 | 基于可重构芯片的网络数据包处理的编程方法 |
CN114189569A (zh) * | 2020-08-31 | 2022-03-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702688A (zh) * | 2009-11-24 | 2010-05-05 | 武汉绿色网络信息服务有限责任公司 | 一种数据包收发方法 |
US20140244949A1 (en) * | 2013-02-26 | 2014-08-28 | International Business Machines Corporation | Asynchronous Data Mirroring in Memory Controller |
CN108243118A (zh) * | 2016-12-27 | 2018-07-03 | 华为技术有限公司 | 转发报文的方法和物理主机 |
-
2018
- 2018-09-10 CN CN201811052722.6A patent/CN109257300A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702688A (zh) * | 2009-11-24 | 2010-05-05 | 武汉绿色网络信息服务有限责任公司 | 一种数据包收发方法 |
US20140244949A1 (en) * | 2013-02-26 | 2014-08-28 | International Business Machines Corporation | Asynchronous Data Mirroring in Memory Controller |
CN108243118A (zh) * | 2016-12-27 | 2018-07-03 | 华为技术有限公司 | 转发报文的方法和物理主机 |
Non-Patent Citations (1)
Title |
---|
LIUYANYGZ: "skb详细解析[转]", 《博客园》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181736A (zh) * | 2019-12-31 | 2020-05-19 | 奇安信科技集团股份有限公司 | 数据传输方法、装置、系统、介质及程序产品 |
CN114189569A (zh) * | 2020-08-31 | 2022-03-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN114244917B (zh) * | 2020-08-31 | 2023-06-02 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN114189569B (zh) * | 2020-08-31 | 2024-03-26 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN112379868A (zh) * | 2020-11-12 | 2021-02-19 | 无锡沐创集成电路设计有限公司 | 基于可重构芯片的网络数据包处理的编程方法 |
CN112379868B (zh) * | 2020-11-12 | 2021-06-18 | 无锡沐创集成电路设计有限公司 | 基于可重构芯片的网络数据包处理的编程方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2671610C (en) | Enhanced wireless usb protocol and hub | |
US20200065244A1 (en) | Methods and apparatus for control of a jointly shared memory-mapped region | |
CN109257300A (zh) | 一种网络数据包的存储方法及装置 | |
US10783086B2 (en) | Method and apparatus for increasing a speed of accessing a storage device | |
CN101304373B (zh) | 一种实现局域网内高效传输大块数据的方法及系统 | |
CN110109852B (zh) | 硬件实现tcp_ip协议的方法 | |
US9002970B2 (en) | Remote direct memory access socket aggregation | |
CN101827072A (zh) | 虚拟内存协议分段卸载 | |
CN105978985A (zh) | 一种用户态RPC over RDMA的内存管理方法 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
EP3077914B1 (en) | System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN102750249B (zh) | 上位机与下位机通信的方法、装置及系统 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
CN104536816A (zh) | 提高虚拟机迁移效率的方法 | |
CN109062826A (zh) | 数据传输方法及系统 | |
US20190288954A1 (en) | Methods and systems for data transmission | |
US20040024833A1 (en) | Key reuse for RDMA virtual address space | |
CN109857553A (zh) | 内存管理方法及装置 | |
CN114189569A (zh) | 一种数据传输方法、装置及系统 | |
CN108459885A (zh) | 一种资源分散加载的方法及其单片机 | |
CN104375783A (zh) | 一种eeprom数据写入的方法 | |
US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
US8315269B1 (en) | Device, method, and protocol for data transfer between host device and device having storage interface | |
CN110474851A (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: 20190122 |
|
RJ01 | Rejection of invention patent application after publication |