CN108134855B - Arp表管理方法、处理器核心、存储介质、电子设备 - Google Patents
Arp表管理方法、处理器核心、存储介质、电子设备 Download PDFInfo
- Publication number
- CN108134855B CN108134855B CN201711366321.3A CN201711366321A CN108134855B CN 108134855 B CN108134855 B CN 108134855B CN 201711366321 A CN201711366321 A CN 201711366321A CN 108134855 B CN108134855 B CN 108134855B
- Authority
- CN
- China
- Prior art keywords
- arp
- processor core
- core
- response
- processor
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5053—Lease time; Renewal aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/58—Caching of addresses or names
Abstract
本公开涉及一种ARP表管理方法、处理器核心、存储介质、电子设备。所述方法应用于多核处理器中唯一可对ARP表进行写操作的写处理器核心,所述方法包括:在接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;若所述ARP响应是所述写处理器核心发出的ARP请求的响应,则根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;若所述ARP响应不是所述写处理器核心发出的ARP请求的响应,则通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
Description
技术领域
本公开涉及计算机领域,具体地,涉及一种ARP表管理方法、处理器核心、存储介质、电子设备。
背景技术
ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。主机发包前,将包含目标IP地址的ARP请求广播到网络上其他的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机ARP表中并保留一定时间,下次发包前直接查询ARP表以节约资源。
ARP表属于包包操作资源,也就是说,每发出一个报文前均需要查询ARP表。在异步多核处理器中,报文的转发性能主要取决于每个报文都要做的事情,ARP表项的访问就是包包都要做的,又因为ARP表是全局表,需要定时更新维护超时机制,且这个ARP表在整个异步多核处理器中无论是用户态还是内核态都有多个处理器核心需要对其进行读写操作。但是,如何设计好ARP表项,使得在保证功能完备的前提下,将多个处理器核心的竞争互斥对性能的影响降到最低,使得多核下的网络转发性能可以做到多核线性增加,总体性能可以随着处理器核心的个数增长而增长,是本领域技术人员目前未考虑清楚的。
发明内容
本公开的主要目的是提供一种ARP表管理方法、处理器核心、存储介质、电子设备,以解决现有技术对ARP表的管理导致电子设备网络转发性能低下的技术问题。
为了实现上述目的,本公开第一方面提供一种ARP表项的管理方法,所述方法应用于写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,所述方法包括:
在接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;
判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;
若所述ARP响应是所述写处理器核心发出的ARP请求的响应,则根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;
若所述ARP响应不是所述写处理器核心发出的ARP请求的响应,则通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
本公开第二方面提供一种ARP表项的管理方法,所述方法应用于多核处理器核心中的任一处理器核心,所述方法包括:
在确定ARP表有更新时,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,所述ARP缓存表包括目的端的IP地址以及ARP报文;
若本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项,则根据所述IP地址相同的表项对应ARP表中的物理地址向目的端发送所述ARP缓存表中对应的ARP报文。
可选地,所述在确定ARP表有更新之前,所述方法还包括:
当需要向所述目的端发送所述ARP报文时,查找所述ARP表中是否存在所述ARP报文对应的ARP表项;
若查找到所述ARP报文对应的ARP表项,则根据所述ARP表项中的物理地址向所述目的端发送所述ARP报文;
若未查找到所述ARP报文对应的ARP表项,则在本地ARP缓存表中建立ARP缓存表项,所述ARP缓存表项包括所述目的端的IP地址以及所述ARP报文,并广播ARP请求以获取所述目的端的物理地址。
可选地,所述ARP表还包括每一ARP表项内存的handle号,则若查找到所述ARP报文对应的ARP表项,所述方法还包括:
存储所述ARP表项内存的handle号;
当需要向所述目的端再次发送ARP报文时,通过存储的所述handle号获取所述ARP表中的ARP表项;根据新获取到的所述ARP表项中的物理地址向所述目的端发送ARP报文。
可选地,所述查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,包括:
确定所述ARP表中最近更新的ARP表项集合;
查询所述本地ARP缓存表中与所述最近更新的ARP表项集合中是否存在IP地址相同的表项。
可选地,所述处理器核心是所述多核处理器中的转发处理器核心,所述方法还包括:
在接收到ARP响应时,将所述ARP响应倒核给所述多核处理器中的写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心。
可选地,所述方法还包括:
若所述ARP缓存表项中的ARP报文在第一时长阈值内未发出,则重新发送ARP请求;
若所述ARP缓存表项中的ARP报文在第二时长阈值内未发出,则删除所述ARP缓存表项,其中,所述第二时长阈值大于所述第一时长阈值。
本公开第三方面提供一种写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,包括:
ARP表写操作模块,用于在所述写处理器核心接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;
判断模块,用于判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;
报文发送模块,用于在所述ARP响应是所述写处理器核心发出的ARP请求的响应时,根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;
更新通知模块,用于在所述ARP响应不是所述写处理器核心发出的ARP请求的响应时,通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
本公开第四方面提供一种处理器核心,包括:
查询模块,用于在该处理器核心确定ARP表有更新时,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,所述ARP缓存表包括目的端的IP地址以及ARP报文;
报文发送模块,用于在本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项时,根据所述IP地址相同的表项对应ARP表中的物理地址向目的端发送所述ARP缓存表中对应的ARP报文。
本公开第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求第一方面或者第二方面所述方法的步骤。
本公开第六方面提供一种电子设备,该电子设备包括第一计算机可读存储介质,写处理器核心,第二计算机可读存储介质,以及至少一个转发处理器核心;
其中,所述写处理器核心执行所述第一计算机可读存储介质上存储的计算机程序时实现第一方面所述方法的步骤;
所述转发处理器核心执行所述第二计算机可读存储介质上存储的计算机程序时实现第二方面所述方法的步骤。
采用上述技术方案,写处理器核心是多核处理器核心中唯一可对ARP表进行写操作的核心,单一处理器核心对ARP表进行写操作即无需考虑写冲突的问题,因此,该写处理器核心在对ARP表进行写操作时无需进行加锁,这样,其他所有处理器核心可以同步对ARP表项进行读取操作,使得报文转发性能可以随着核心数增加而线性增长。同时,写处理器核心在对ARP表进行写操作后,可以通知其他所有处理器核心ARP表有更新,保证了其他处理器核心能够及时从ARP表中读取到需求的ARP表项,不影响报文的正常发送功能。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是一种现有异步多核处理器的结构示意图;
图2是本公开实施例提供的一种ARP表项的管理方法的流程示意图;
图3是本公开实施例提供的另一种ARP表项的管理方法的流程示意图;
图4是本公开实施例提供的一种网卡队列的配置示意图;
图5是本公开实施例提供的一种实施环境的示意图;
图6是基于图5所示的实施环境提供的一种ARP表项的管理方法的流程示意图;
图7是本公开实施例提供的一种写处理器核心的结构示意图;
图8是本公开实施例提供的一种处理器核心的结构示意图;
图9是本公开实施例提供的一种异步多核处理器的结构示意图;
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面首先对本公开实施例涉及到的相关技术进行简单介绍。
图1提供了一种异步多核处理器10的结构示意图,参照图1,该异步多核处理器10包括运行在用户态的快速CPU0,快速CPU1,块速CPU2和快速CPU3,运行在内核态的慢速CPU4,慢速CPU5,慢速CPU6和慢速CPU7,以及ARP表。
值得说明的是,异步多核处理器在报文转发时,CPU的分配是专一职能分配,也就是说,一个CPU只做一件事情,而不是一个CPU将所有事情都做完。为此,异步多核处理器在模块上分为快速模块(如图1所示的CPU0,快速CPU1,块速CPU2和快速CPU3)以及慢速模块(如图1所示的慢速CPU4,慢速CPU5,慢速CPU6和慢速CPU7),其中,快速模块用于负责快速转发逻辑,慢速模块用于负责功能复杂的策略性慢速逻辑;在运行时态上,异步多核处理器分为内核态以及用户态,内核态用于负责实现功能复杂的逻辑,慢速模块就运行在这个时态中,用户态负责从接收网卡报文并实现快速转发逻辑,快速模块运行在用户态中。
相关技术中,无论是用户态还是内核态都有很多模块需要对ARP表进行读写操作,如图1所示,每一CPU(即处理器核心)均可以对ARP表进行增加,删除,查找操作,因此,需要对ARP表的读写操作加锁,避免冲突,导致了报文转发性能低下。
本公开实施例提供一种ARP表项的管理方法,该方法应用于写处理器核心,该写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,例如图1所示的异步多核处理器,可以将快速CPU0配置为唯一用于对ARP表进行写操作的核心,则快速CPU0即为写处理器核心。如图2所示,该方法包括:
S201、在接收到ARP响应时,根据该ARP响应在ARP表中建立新的ARP表项,该ARP响应用于响应多核处理器核心中任一处理器核心广播的ARP请求。
示例地,多核处理器中任一核心(包括写处理器核心)可以将包含目标IP地址的ARP请求广播到网络上其他的所有主机,以获得目的端的物理地址,而由于本公开实施例中,写处理器核心唯一可对ARP表进行写操作,因此,任一处理器核心发送的ARP请求的ARP响应都将被发送到写处理器核心上。
S202、判断该ARP响应是否为写处理器核心发出的ARP请求的响应。
由于多核处理器中的任一核心发送的ARP请求的响应都将被发送到写处理器核心上,因此,该写处理器核心在接收到ARP响应后,可以判断该ARP响应是否为写处理器核心自身发送的ARP请求的响应。值得说明的是,本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因此,写处理器核心也可以先判断ARP响应是否为写处理器核心发出的ARP请求的响应,再根据该ARP响应在ARP表中建立新的ARP表项。
示例地,写处理器核心可以对自身发出的ARP请求进行记录,则在接收到任一ARP响应后,判断记录里是否存在对应的ARP请求,即可判断该ARP响应是否为自身发出的ARP请求的响应。
S203、若该ARP响应是写处理器核心发出的ARP请求的响应,则根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文。
其中,多核处理器中的任一处理器核心在准备发送ARP报文时,可能存在还未获知目的端物理地址的情况,该目的端是指网络中的另一主机,在此情况下,该处理器核心可以将待发送的ARP报文缓存下来,等到从ARP表中查询到目的端的物理地址之后再发送。步骤S203也就是说,写处理器核心确定接收到的ARP响应是自身发出的ARP请求的响应后,可以利用ARP响应中携带的目的端的物理地址发送自身缓存的ARP报文。
S204、若该ARP响应不是写处理器核心发出的ARP请求的响应,则通知多核处理器中的其他所有处理器核心ARP表有更新。
这样,其他处理器核心在感知ARP表有更新后,即可查询ARP表,判断更新后的ARP表是否存在自身缓存的ARP报文的目的端的物理地址,若存在,则根据该物理地址将自身缓存的ARP报文发送给目的端,保证了其他处理器核心的报文能够正常发送。
采用上述方法,写处理器核心是多核处理器核心中唯一可对ARP表进行写操作的核心,单一处理器核心对ARP表进行写操作即无需考虑写冲突的问题,因此,该写处理器核心在对ARP表进行写操作时无需进行加锁,这样,其他所有处理器核心可以同步对ARP表项进行读取操作,使得报文转发性能可以随着核心数增加而线性增长。同时,写处理器核心在对ARP表进行写操作后,可以通知其他所有处理器核心ARP表有更新,保证了其他处理器核心能够及时从ARP表中读取到需求的ARP表项,不影响报文的正常发送功能。
在一种可能的实现方式中,多核处理器中除写处理器核心以外的任一核心可以在软件上通过倒核技术实现将接收到的触发对ARP表进行写操作的报文发送给写处理器核心。也就是说,使用软件方法将所有ARP报文倒核到写处理器核心处理。
另一种可能的实现方式,本公开实施例还可以通过对主机网卡进行配置使得接收到的其他主机发送的所有触发对ARP表进行写操作的报文均被转发给写处理器核心,进而使得写处理器核心是唯一对ARP表进行写操作的核心。
示例地,如图3所示,主机包括多个网卡,如图3中所示的网卡1,网卡2和网卡3。其中,每一网卡用于,接收其他主机发送的触发对ARP表的写操作的报文,并将该报文发送给该主机中的写处理器核心。例如,在网卡支持多队列的情况下,不同网卡的同一队列均向同一CPU传输报文,如图3所示,网卡1,网卡2和网卡3的队列4均对应CPUA(写处理器核心),这样,在初始化配置时,配置将每一网卡接收到的ARP报文都交给队列4进行传输,即可实现CPUA获取到所有触发对ARP表进行写操作的报文。
这样,通过对网卡硬件配置使得所有触发对ARP表写操作的报文均被网卡直接发送到写处理器核心,避免了处理器核心将ARP报文倒核到写处理器核心,从而减少了其他处理器核心与写处理器核心之间的通知消息,进一步提升了性能。
步骤S204中,写处理器核心通知多核处理器中的其他所有处理器核心ARP表有更新的通知方式可以是采用通知消息的方式,为了减少核心间的消息,本公开实施例也可以设计为无需消息通知的方式。例如,在寄存器中设置一更新标志位,写处理器核心在确定接收到的ARP响应不是写处理器核心发出的ARP请求的响应时,可以将该更新标志位置1,其他处理器核心可以周期性的查询该更新标志位,这样,其他处理器核心在查询到该更新标志位置1时,确认ARP表有更新。
本公开实施例还提供另一种ARP表项的管理方法,该方法应用于多核处理器中的任一处理器核心,包括该多核处理器中的写处理器核心,如图4所示,该方法包括:
S401、在确定ARP表有更新时,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,该ARP缓存表包括目的端的IP地址以及ARP报文。
示例地,若该处理器核心为写处理器核心,则步骤S401中确定ARP表有更新是指该写处理器核心在每次接收到用于触发对ARP进行写操作的报文,并根据该报文对ARP表进行写操作。
若该处理器核心为多核处理器中的转发处理器核心(除写处理器核心以外的任一核心),则步骤S401中确定ARP表有更新是指该处理器核心被写处理器核心通知该ARP表有更新。
其中,上述写处理器核心是指多核处理器中唯一可对ARP表进行写操作的核心。在一种可能的实现方式,多核处理器中的每一转发处理器核心在接收到ARP响应时,可以将该ARP响应倒核给该写处理器核心,实现由唯一的该处理器核心对ARP表进行写操作。
S402、若本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项,则根据该IP地址相同的表项对应ARP表中的物理地址向目的端发送该ARP缓存表中对应的ARP报文。
其中,ARP缓存表中包括缓存的待发送的ARP报文以及目的端的IP地址,写处理器核心在ARP表中建立的ARP表项包括目的端的IP地址以及物理地址,因此,通过处理器核心的本地ARP缓存表中每一表项的IP地址遍历ARP表中的每一ARP表项即可查询到是否存在IP地址相同的表项。
下面详细说明每一处理器核心建立ARP缓存表项的过程。具体地,每一处理器核心在需要向目的端发送ARP报文时,查找ARP表中是否存在该ARP报文对应的ARP表项(即查询该ARP表中是否存在与目的端的IP地址相同的ARP表项),若查找到该ARP报文对应的ARP表项,则根据该ARP表项中的物理地址向该目的端发送该ARP报文;若未查找到该ARP报文对应的ARP表项,则在本地ARP缓存表中建立ARP缓存表项,该ARP缓存表项包括该目的端的IP地址以及该ARP报文,并广播ARP请求以获取该目的端的物理地址。
需要说明的是,session代表着主机和另一主机一次会话的过程,直到任一主机关闭时结束,会话表是用于记录设备上相关会话信息的表项,每一会话在初始建立时可以在会话表中建立有一个会话表项。在本公开实施例的一种可能的实现方式中,每一处理器核心在创建ARP缓存表项时,该ARP缓存表项还可以包括对应的会话表项的地址。这样,步骤S402中,处理器核心在查找到本地ARP缓存表中某一ARP缓存表项与更新后的ARP表中某一ARP表项的IP地址相同时,还可以根据该ARP缓存表项中的会话表项的地址将该ARP表项写入到会话表项中,这样,该处理器核心再次发送报文时,无需再次从ARP表中查询目的端的物理地址。
可选地,ARP表除了包括ARP表项,还可以包括每一ARP表项内存的handle号,则处理器核心在初始查找到ARP报文对应的ARP表项后,可以存储该ARP表项内存的handle号,例如将handle号存储在对应的会话表项中。这样,当处理器核心需要向目的端再次发送ARP报文时,通过存储的handle号即可直接获取到该handle号标识的内存地址中存储的ARP表项,无需再次通过目的端的IP地址查询ARP表,提高了报文发送效率。并且,相较初次查询到ARP表项后本地缓存该ARP表项,并通过本地缓存的ARP表项中的物理地址再次发送报文的方式,通过handle号每次从ARP表中获取对应的ARP报文,降低了由于目的端地址发生变化导致报文发送失败的概率。
值得说明的是,handle号由于直接标识系统为存储ARP表项分配的内存地址,因此,处理器核心可以直接根据handle号获取到ARP表项,相比相关技术中,需要提取ARP报文的键值,并利用键值查询哈希表找到ARP表项,本公开实施例提供的方法,操作复杂度更低,进而可以提升报文发送效率。具体地,为了使所有处理器核心能够访问ARP表,ARP表项可以是存储在共享内存中,并且,该共享内存可以为预先在内存池mempool申请的内存,从而保证了对ARP表的查找不会出现查到无效地址,避免了访问无效地址而导致死机的问题。并且在申请内存时,通过对ARP表项在内存中初始化的位置进行handle号赋值,即可得到每一ARP表项的内存handle号。
可选地,该ARP表还可以包括每一ARP表项的版本号,写处理器核心每次对ARP表项进行更新后,同时更新该ARP表项的版本号。处理器核心可以在ARP表中初次查询到对应的ARP表项后,读取该ARP表项以及该ARP表项的版本号,并在对应的会话表项中存储该ARP表项以及该ARP表项的版本号。这样,处理器核心再次从ARP表中查询到对应的ARP表项后,例如,通过本地存储的handle号再次找到对应的ARP表项后,先不读取该ARP表项,而是读取该ARP表项的版本号,并判断读取到的版本号与会话表项中存储的版本号是否一致,若一致,则确定ARP未发生更新,可直接利用会话表项中存储的ARP表项中的物理地址发送报文,若不一致,则确定ARP发生更新,此时,再读取更新后的ARP表项,并利用更新后的ARP表项中的物理地址发送报文。值得说明的是,目的端的地址通常不会频繁更新,在此种情况下,每次通过版本号判断ARP表项是否发生更新,并在未更新时直接使用本地存储的ARP表项发送报文,相比每次从ARP表中读取ARP表项,报文发送效率更高。
可选地,步骤S401中,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,可以是利用ARP缓存表中每一缓存表项的IP地址依次查找ARP表中的每一表项。在ARP表中项数过多的情况下,遍历每一ARP表项查找是否存在IP地址相同的表项效率较低。因此,本公开实施例查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项可以包括:确定ARP表中最近更新的ARP表项集合,查询本地ARP缓存表中与该最近更新的ARP表项集合中是否存在IP地址相同的表项,从而减少了ARP表的查询量,提高了查询效率。下面举例说明如何确定最近更新的ARP表项集合。
示例地,每一转发处理器核心对应设置有一更新标志位,写处理器核心通过将更新标志位置1的方式通知转发处理器核心的ARP表有更新。这样,写处理器核心在接收到ARP响应后,可以首先将每一转发处理器核心的更新标志位置1,并记录置位时刻,再根据该ARP响应建立新的ARP表项,并在ARP表中记录该新的ARP表项的建立时刻,也就是说,写处理器核心记录有每一ARP表项的最新更新时刻。这样,ARP表中最新更新时刻晚于更新标志位的置位时刻的ARP表项集合即为上述最近更新的ARP表项集合。
可选地,ARP表可以为一lru链表,在lru链表中,最近更新的表项位于链表头,这样,转发处理器核心可以直接在链表头依次遍历更新时刻晚于更新标志位置位时刻的ARP表项,进一步节省了查找时间,提高了效率。
进一步地,步骤S402后,转发处理器核心可以删除的ARP缓存表中对应的表项。可选地,在写处理器核心通过更新标志位通知转发处理器核心ARP表有更新的情况下,转发处理器核心在未查找本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项时,或者在步骤S402后,还可以将其更新标志位置0。
可选地,若ARP缓存表项中的ARP报文在第一时长阈值内未发出,处理器核心可以重新发送ARP请求,而若ARP缓存表项中的ARP报文在第二时长阈值内未发,转发处理器核心可以删除该ARP缓存表项,其中,所述第二时长阈值大于所述第一时长阈值。示例地,转发处理器核心在ARP缓存表建立每一缓存表项时,可以设定一对应该ARP缓存表项的定时器,若该定时器超时的时刻,该ARP缓存表项中缓存的ARP报文未发出,则可以重新发送ARP请求,并复位该定时器以重新计时,而若定时器多次超时,例如五次,该ARP缓存表项中缓存的ARP报文仍未发出,则可以删除该ARP缓存表项,丢弃该ARP报文。
为了使本领域技术人员更加理解本公开实施例提供的一种ARP表项的管理方法,下面以图5所示的实施环境为例进行详细说明,如图5所示,每一CPU对应有一ARP缓存表,除写处理器核心CPUA以外所有CPU还对应设置有一ARP更新标志位。基于图5,本公开实施例提供的一种ARP表项的管理方法如图6所示,该方法包括:
S601、CPU1在会话1中发送ARP报文前,在ARP表中查找对应该ARP报文的ARP表项。
该ARP报文对应的ARP表项即为包括会话1的目的端的IP地址以及物理地址的ARP表项,CPU1查找该ARP表项是为了确定会话1的会话表项中的ARP表项是否需要更新。若查找到的ARP表项与会话1的会话表项中ARP表项一致,则直接根据该会话表项发送报文。
若在ARP表中未查找到对应的ARP表项,则执行步骤S602。
S602、CPU1在未查找到对应的ARP表项时,在CPU1的ARP缓存表中建立新的ARP缓存表项,该ARP缓存表项包括目的端的IP地址,会话1的会话表项的地址以及该ARP报文。
S603、CPU1向外广播ARP请求,以获取目的端的物理地址。
其中,该ARP请求包括目的端的IP地址,目的端在接收到该ARP请求后,可以返回包括其物理地址的ARP响应。
S604、CPUA在接收到ARP响应时,判断该ARP响应是否为CPUA发出的ARP请求的响应。
值得说明的是,步骤S601至S603只是以CPU1进行举例说明,在具体实施时,每一CPU(包括CPUA)都可能执行步骤S601至S603。这样,由于所有触发对ARP表进行写操作的报文都会发送到CPUA,因此,CPUA接收到的ARP响应可能是其他CPU发送的ARP请求的响应。
进一步地,若该ARP响应是CPUA发出的ARP请求的响应,则执行步骤S605至步骤S607;若该ARP响应不是CPUA发出的ARP请求的响应,则执行步骤S608至步骤S610。
S605、CPUA根据该ARP响应在ARP表中建立新的ARP表项,该新的ARP表项包括IP地址以及物理地址。
例如,该新的ARP表项是图5中所示的包括IP地址3以及物理地址3的表项,也就是说,本次学习到的目的端的物理地址为物理地址3。
S606、CPUA根据该新的ARP表项中的IP地址从CPUA对应的ARP缓存表中查找到与该IP地址相同的ARP缓存表项,并根据该新的ARP表项中的物理地址发送该ARP缓存表项中缓存的ARP报文。
S607、CPUA根据该ARP缓存表项中的会话表项地址查找到对应的会话表项,并利用该新的ARP表项更新该会话表项中的ARP表项,并从该CPUA的ARP缓存表中删除该ARP缓存表项。
示例地,如图5所示,CPUA根据IP地址3查找CPUA的ARP缓存表,查找到包括IP地址3以及会话表项3地址的ARP缓存表项。进而可以根据会话表项3地址查找到会话表项3。在利用包括IP地址3以及物理地址3的表项更新会话表项3中的ARP表项并将缓存的ARP报文发出后,删除CPUA的ARP缓存表中的包括IP地址3以及会话表项3地址的ARP缓存表项。
S608、CPUA将其他每一处理器核心的ARP更新标志位置1,并根据该ARP响应在ARP表中建立新的ARP表项,该新的ARP表项包括IP地址以及物理地址。
具体地,如图5所示,该CPUA是将CPU1、CPU2以及CPU3的ARP更新标志位均置1。这样,任一CPU在检测到更新标志位为1时,均执行以下以CPU1为例进行说明的步骤S609。
S609、CPU1在检测到自身的ARP更新标志位置1时,根据ARP缓存表中的每一ARP缓存表项中的IP地址查询ARP表。
其中,CPU1可以周期性的查询ARP更新标志位的状态。
S610、CPU1确定ARP表中是否存在包括ARP缓存表项中的IP地址以及对应的物理地址的ARP表项。
若未查到ARP表中存在包括任一ARP缓存表项中的IP地址以及对应的物理地址的ARP表项,则执行步骤S611;若查到ARP表中存在包括某一ARP缓存表项中的IP地址以及对应的物理地址的ARP表项,则执行步骤S612和步骤S613。
S611、CPU1将自身的ARP更新标志位置0。
S612、CPU1根据查找到的ARP表项中的物理地址发送对应的ARP缓存表项中的ARP报文。
S613、CPU1根据该ARP缓存表项中会话表项地址利用该ARP表项更新会话表项中的ARP表项,并从CPU1的ARP缓存表中删除该ARP缓存表项,并将CPU1的ARP更新标志位置0。
由上述步骤S611以及S613可知,每一处理器核心在查询完ARP表后,无论是否查找到IP地址一致的表项,均需将自身的ARP更新标志位置0,以便写处理器核心下次再通过将更新标志位置1的方式通知各处理器核心ARP表有更新。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开所必须的。
本公开实施例还提供一种写处理器核心70,该写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,如图7所示,该写处理器核心70包括:
ARP表写操作模块701,用于在所述写处理器核心接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;
判断模块702,用于判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;
报文发送模块703,用于在所述ARP响应是所述写处理器核心发出的ARP请求的响应时,根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;
更新通知模块704,用于在所述ARP响应不是所述写处理器核心发出的ARP请求的响应时,通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
采用上述写处理器核心,该写处理器核心是多核处理器核心中唯一可对ARP表进行写操作的核心,单一处理器核心对ARP表进行写操作即无需考虑写冲突的问题,因此,该写处理器核心在对ARP表进行写操作时无需进行加锁,这样,其他所有处理器核心可以同步对ARP表项进行读取操作,使得报文转发性能可以随着核心数增加而线性增长。同时,写处理器核心在对ARP表进行写操作后,可以通知其他所有处理器核心ARP表有更新,保证了其他处理器核心能够及时从ARP表中读取到需求的ARP表项,不影响报文的正常发送功能。
本公开实施例还提供另一种处理器核心80,如图8所示,包括:
查询模块801,用于在该处理器核心确定ARP表有更新时,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,所述ARP缓存表包括目的端的IP地址以及ARP报文;
报文发送模块802,用于在本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项时,根据所述IP地址相同的表项对应ARP表中的物理地址向目的端发送所述ARP缓存表中对应的ARP报文。
可选地,该查询模块801还用于:当该处理器核心80需要向所述目的端发送所述ARP报文时,查找所述ARP表中是否存在所述ARP报文对应的ARP表项,该报文发送模块802还用于,在该查询模块801查找到所述ARP报文对应的ARP表项时,根据所述ARP表项中的物理地址向所述目的端发送所述ARP报文;该处理器核心80还包括缓存建立模块,用于在该查询模块801未查找到所述ARP报文对应的ARP表项时,在本地ARP缓存表中建立ARP缓存表项,所述ARP缓存表项包括所述目的端的IP地址以及所述ARP报文;广播模块,用于广播ARP请求以获取所述目的端的物理地址。
可选地,所述ARP表还包括每一ARP表项内存的handle号,该处理器核心80还包括存储模块,用于存储所述ARP表项内存的handle号;该查询模块801用于,当该处理器核心80需要向目的端再次发送ARP报文时,通过存储的所述handle号获取所述ARP表中的ARP表项;该报文发送模块802还用于,根据新获取到的所述ARP表项中的物理地址向所述目的端发送ARP报文。
可选地,该查询模块801还包括:确定子模块,用于确定所述ARP表中最近更新的ARP表项集合;查询子模块,用于查询所述本地ARP缓存表中与所述最近更新的ARP表项集合中是否存在IP地址相同的表项。
可选地,该处理器核心80还包括倒核模块,用于在该处理器核心80接收到ARP响应时,将所述ARP响应倒核给所述多核处理器中的写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心。
可选地,该处理器核心80包括的广播模块,还用于在所述ARP缓存表项中的ARP报文在第一时长阈值内未发出时,重新发送ARP请求;该处理器核心80还包括删除缓存模块,用于在所述ARP缓存表项中的ARP报文在第二时长阈值内未发出时,删除所述ARP缓存表项,其中,所述第二时长阈值大于所述第一时长阈值。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
结合图7所示的写处理器核心70以及图8所示的处理器核心80,本公开实施例还提供一种异步多核处理器90,如图9所示,该异步多核处理器90包括:运行于内核态的至少一个处理器核心(如图9中所示的CPU4、CPU5、CPU6和CPU7),以及运行于用户态的至少一个处理器核心(如图9中所示的CPUA、CPU1、CPU2和CPU3),以及存储ARP表(如图9所示的ARP表)的存储器,所述存储器存储所述ARP表的存储空间是内核态和用户态的共享内存。
其中,该CPUA为该异步多核处理器中的写处理器核心,具体可以参照图7所示的写处理器核心70,其他任一处理器核心可以参照图8所示的处理器核心80,此处不再赘述。
如图9所示,CPUA是唯一用于对ARP表进行增加和删除的处理器核心,即进行写操作。内核态需要对ARP表进行的写操作均通过KU通道模块以及UK通道模块传送到CPUA执行。其他任一CPU可以对ARP表进行查找操作,即读操作。这样,由于只有唯一一个处理器核心对ARP表进行写操作,因此,整个运行过程不可能出现同时出现写写操作,因此ARP表项多核查找可以不加锁,写操作也无需加锁,既整个ARP表的读写均无需加锁,对ARP表的读写操作可以同时进行,这样,内核态的所有上下文的查表操作都可以同步获取到结果,而无需通过异步消息机制来回传递信息,从而简化了整体设计流程,又可以降低访问延迟。并且,可以保证随着CPU个数的增加,报文转发性能线性增长。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器核心执行时实现图2或图4所示的ARP表项的管理方法的步骤。
本公开实施例还提供一种电子设备,该电子设备包括第一计算机可读存储介质,写处理器核心,第二计算机可读存储介质,以及至少一个转发处理器核心。其中,该写处理器核心执行该第一计算机可读存储介质上存储的计算机程序时实现图1所示方法的步骤。该转发处理器核心执行该第二计算机可读存储介质上存储的计算机程序时实现图2所示方法的步骤。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (11)
1.一种ARP表项的管理方法,其特征在于,所述方法应用于写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,所述方法包括:
在接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;
判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;
若所述ARP响应是所述写处理器核心发出的ARP请求的响应,则根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;
若所述ARP响应不是所述写处理器核心发出的ARP请求的响应,则通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
2.一种ARP表项的管理方法,其特征在于,所述方法应用于多核处理器核心中的任一处理器核心,所述多核处理器包括写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,所述方法包括:
响应于所述写处理器核心确定ARP表有更新,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,所述ARP缓存表包括目的端的IP地址以及ARP报文;
若本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项,则根据所述IP地址相同的表项对应ARP表中的物理地址向目的端发送所述ARP缓存表中对应的ARP报文。
3.根据权利要求2所述的方法,其特征在于,所述在确定ARP表有更新之前,所述方法还包括:
当需要向所述目的端发送所述ARP报文时,查找所述ARP表中是否存在所述ARP报文对应的ARP表项;
若查找到所述ARP报文对应的ARP表项,则根据所述ARP表项中的物理地址向所述目的端发送所述ARP报文;
若未查找到所述ARP报文对应的ARP表项,则在本地ARP缓存表中建立ARP缓存表项,所述ARP缓存表项包括所述目的端的IP地址以及所述ARP报文,并广播ARP请求以获取所述目的端的物理地址。
4.根据权利要求3所述的方法,其特征在于,所述ARP表还包括每一ARP表项内存的handle号,则若查找到所述ARP报文对应的ARP表项,所述方法还包括:
存储所述ARP表项内存的handle号;
当需要向所述目的端再次发送ARP报文时,通过存储的所述handle号获取所述ARP表中的ARP表项;
根据新获取到的所述ARP表项中的物理地址向所述目的端发送ARP报文。
5.根据权利要求2所述的方法,其特征在于,所述查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,包括:
确定所述ARP表中最近更新的ARP表项集合;
查询所述本地ARP缓存表中与所述最近更新的ARP表项集合中是否存在IP地址相同的表项。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述处理器核心是所述多核处理器中的转发处理器核心,所述方法还包括:
在接收到ARP响应时,将所述ARP响应倒核给所述多核处理器中的写处理器核心,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述ARP缓存表项中的ARP报文在第一时长阈值内未发出,则重新发送ARP请求;
若所述ARP缓存表项中的ARP报文在第二时长阈值内未发出,则删除所述ARP缓存表项,其中,所述第二时长阈值大于所述第一时长阈值。
8.一种写处理器核心,其特征在于,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心,包括:
ARP表写操作模块,用于在所述写处理器核心接收到ARP响应时,根据所述ARP响应在所述ARP表中建立新的ARP表项,所述ARP响应用于响应所述多核处理器核心中任一处理器核心广播的ARP请求;
判断模块,用于判断所述ARP响应是否为所述写处理器核心发出的ARP请求的响应;
报文发送模块,用于在所述ARP响应是所述写处理器核心发出的ARP请求的响应时,根据新建立的ARP表项中的物理地址向目的端发送缓存的ARP报文;
更新通知模块,用于在所述ARP响应不是所述写处理器核心发出的ARP请求的响应时,通知所述多核处理器中的其他所有处理器核心所述ARP表有更新。
9.一种处理器核心,其特征在于,包括:
查询模块,用于响应于写处理器核心确定ARP表有更新,查询本地ARP缓存表中与更新后的ARP表中是否存在IP地址相同的表项,所述ARP缓存表包括目的端的IP地址以及ARP报文;其中,所述写处理器核心是多核处理器中唯一可对ARP表进行写操作的核心;
报文发送模块,用于在本地ARP缓存表中与更新后的ARP表中存在IP地址相同的表项时,根据所述IP地址相同的表项对应ARP表中的物理地址向目的端发送所述ARP缓存表中对应的ARP报文。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括第一计算机可读存储介质,写处理器核心,第二计算机可读存储介质,以及至少一个转发处理器核心;
其中,所述写处理器核心执行所述第一计算机可读存储介质上存储的计算机程序时实现权利要求1所述方法的步骤;
所述转发处理器核心执行所述第二计算机可读存储介质上存储的计算机程序时实现权利要求2至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711366321.3A CN108134855B (zh) | 2017-12-18 | 2017-12-18 | Arp表管理方法、处理器核心、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711366321.3A CN108134855B (zh) | 2017-12-18 | 2017-12-18 | Arp表管理方法、处理器核心、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108134855A CN108134855A (zh) | 2018-06-08 |
CN108134855B true CN108134855B (zh) | 2021-03-09 |
Family
ID=62390708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711366321.3A Active CN108134855B (zh) | 2017-12-18 | 2017-12-18 | Arp表管理方法、处理器核心、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108134855B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037879A (zh) * | 2019-12-24 | 2021-06-25 | 中兴通讯股份有限公司 | Arp学习方法和节点设备 |
CN111277518B (zh) * | 2020-01-22 | 2022-04-01 | 苏州盛科通信股份有限公司 | 信息处理方法、以太网交换芯片以及存储介质 |
CN111343107B (zh) * | 2020-01-22 | 2022-03-04 | 苏州盛科通信股份有限公司 | 信息处理方法、以太网交换芯片以及存储介质 |
CN111464447B (zh) * | 2020-04-08 | 2021-08-13 | 苏州盛科通信股份有限公司 | 一种超带宽多核心以太网交换芯片转发表同步的方法及装置 |
CN115442173B (zh) * | 2022-06-07 | 2024-02-06 | 北京车和家信息技术有限公司 | 车辆报文转发、处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081603A (zh) * | 2009-11-27 | 2011-06-01 | 上海博达数据通信有限公司 | 一种在多核环境下的arp查询优化的方法 |
CN102446159A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器的数据管理方法及装置 |
CN107360268A (zh) * | 2017-06-23 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种数据包处理方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547209B (zh) * | 2009-05-15 | 2012-01-04 | 杭州华三通信技术有限公司 | 一种信息表项的更新方法和设备 |
CN101650698B (zh) * | 2009-08-28 | 2011-11-16 | 曙光信息产业(北京)有限公司 | 直接存储器访问的实现方法 |
CN105516302B (zh) * | 2015-12-07 | 2018-08-03 | 东软集团股份有限公司 | 一种数据处理方法及网络设备 |
CN106973053B (zh) * | 2017-03-29 | 2019-10-11 | 网宿科技股份有限公司 | 宽带接入服务器的加速方法和系统 |
-
2017
- 2017-12-18 CN CN201711366321.3A patent/CN108134855B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081603A (zh) * | 2009-11-27 | 2011-06-01 | 上海博达数据通信有限公司 | 一种在多核环境下的arp查询优化的方法 |
CN102446159A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器的数据管理方法及装置 |
CN107360268A (zh) * | 2017-06-23 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种数据包处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108134855A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108134855B (zh) | Arp表管理方法、处理器核心、存储介质、电子设备 | |
US10795826B2 (en) | Translation lookaside buffer management method and multi-core processor | |
US7778203B2 (en) | On-demand MAC address lookup | |
CN107360268B (zh) | 一种数据包处理方法、装置及设备 | |
CN108762668B (zh) | 一种处理写入冲突的方法及装置 | |
WO2022007470A1 (zh) | 一种数据传输的方法、芯片和设备 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
CN107992270B (zh) | 一种多控存储系统全局共享缓存的方法及装置 | |
EP2568386A1 (en) | Method for accessing cache and fictitious cache agent | |
US11231964B2 (en) | Computing device shared resource lock allocation | |
US8510513B2 (en) | Network load reducing method and node structure for multiprocessor system with distributed memory | |
KR102027391B1 (ko) | 멀티 코어 시스템에서 데이터 방문자 디렉토리에 액세스하는 방법 및 장치 | |
CN116755635B (zh) | 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
KR100231707B1 (ko) | 통신 장비의 디엠에이 처리 방법 및 그 장치 | |
CN107765992B (zh) | 一种处理数据的方法和装置 | |
US20230229500A1 (en) | Parallel and distributed computing system | |
CN108768859B (zh) | 数据处理方法、装置及系统 | |
CN117453380B (zh) | 集群的容器组调度方法、系统以及计算机设备 | |
CN115086001B (zh) | 采样数据缓存方法、装置及存储介质 | |
KR102125791B1 (ko) | 멀티코어 환경에서 네트워크 세션 관리 방법 및 장치 | |
CN116010293A (zh) | 数据请求处理电路、方法及其缓存电路和处理器 | |
WO2021063242A1 (zh) | 一种存储系统的元数据的发送方法及存储系统 | |
JP3226619B2 (ja) | 拡張スワップ機能を有する記憶システム | |
CN116069439A (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 |