CN113497798A - 一种用于防火墙的基于fpga的数据转发方法 - Google Patents
一种用于防火墙的基于fpga的数据转发方法 Download PDFInfo
- Publication number
- CN113497798A CN113497798A CN202010269948.2A CN202010269948A CN113497798A CN 113497798 A CN113497798 A CN 113497798A CN 202010269948 A CN202010269948 A CN 202010269948A CN 113497798 A CN113497798 A CN 113497798A
- Authority
- CN
- China
- Prior art keywords
- fpga
- flow
- address
- flow table
- message
- 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.)
- Granted
Links
Images
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种用于防火墙的基于FPGA的数据转发方法。所述方法包括FPGA通过外部接口接收待转发数据包,并根据待转发数据包的传输特征信息得到流量地址;在预存的流量地址表中进行查询,并根据查询结果决定是否将待转发数据包经网卡的内部接口上送给内部接口软件;若决定不将待转发数据包上送,则根据与流量地址对应的转发地址信息,将待转发数据包由与转发地址信息对应的外部接口直接转发,本发明实施例通过FPGA提取接收到的待转发数据包的传输特征信息,得到流量地址,若存在于预存的流量地址表中,则将数据流量由FPGA直接转发,性能不再受限于CPU或网卡转发性能,从而提升了网络数据转发的性能,降低了时延。
Description
技术领域
本发明涉及数据通讯技术领域,尤其涉及一种用于防火墙的基于FPGA的数据转发方法。
背景技术
在防火墙若采用传统网络硬件设备的CPU及网卡,由于网卡在接收到流量数据时,均需要上传给终端安装的软件来进行处理,再决定如何执行后续操作来进行流量数据的转发。
但随着网卡带宽的越来越大,由于CPU处理性能有限,严重限制了流量数据的处理速度,尤其是在小包的复杂业务处理能力上显得捉襟见肘,无法充分利用网卡的性能,从而使防火墙因性能低导致的网络阻塞或延迟等问题。
发明内容
由于现有方法存在上述问题,本发明实施例提供一种用于防火墙的基于FPGA的数据转发方法。
第一方面,本发明实施例提供了一种用于防火墙的基于FPGA的数据转发方法,包括:
FPGA通过外部接口接收待转发数据包,并根据所述待转发数据包中包含的传输特征信息得到流量地址;
将所述流量地址在预存的流量地址表中进行查询,并根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件;其中,所述流量地址表包括:各流量地址和分别对应的转发地址信息;所述网卡与所述FPGA通过对应的内部接口连接,且各外部接口与各内部接口一一对应;
若根据查询结果决定不将所述待转发数据包经所述网卡的内部接口上送给所述内部接口软件,则所述FPGA根据与所述流量地址对应的转发地址信息,将所述待转发数据包由与所述转发地址信息对应的外部接口直接转发。
进一步地,所述根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件,具体包括:
若在所述流量地址表中未查询到所述流量地址,则所述FPGA将所述待转发数据包由所述外部接口上送到所述网卡的内部接口发送给所述内部接口软件的流表配置模块,由所述流表配置模块执行预设的转发流程;
所述流表配置模块将新建与所述待转发数据包对应的会话,并向所述FPGA发送流表添加报文;其中,所述流表添加报文包括:所述待转发数据包的流量地址和对应的转发地址信息;
所述FPGA根据接收到的所述流表添加报文,更新所述流量地址表。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
根据预设的保活门限值,对于所述流量地址表中的每条流量地址,若所述FPGA在当前的保活门限值的时间范围内接收到的与所述流量地址对应的待转发数据包,则定期向所述内部接口软件的应答解析模块发送与所述流量地址对应的保活应答报文;
所述应答解析模块根据所述保活应答报文中的流量地址找到对应的会话,重置与所述流量地址对应的会话的保活计时器;
若所述会话的保活计时器超时,则清除所述会话,同时向所述FPGA发送流表删除报文,用于将与所述会话对应的流表地址从所述流量地址表中删除。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
若开启所述FPGA的转发功能,则由所述内部接口软件的开关模块创建与所述FPGA所在槽位对应的FPGA标志位文件,同时设置所述槽位各内部接口的FPGA开关标志位开启;其中,所述FPGA标志位文件包括:与所述FPGA所在槽位对应的用于表征开启的FPGA开关标志位;
若关闭所述FPGA的转发功能,则由所述开关模块删除所述FPGA对应的FPGA标志位文件,并设置所述槽位各内部接口的FPGA开关标志位关闭。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
在开启系统过程中由接口注册模块根据保存的所述FPGA标志位文件为所述FPGA连接的各网卡执行预设的接口注册流程并设置各内部接口对应的用于表征开启的FPGA开关标志位。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
所述流表配置模块向所述FPGA发送各类配置报文,所述各类配置报文包括:MAC配置报文、保活门限值配置报文、所述流表添加报文、流表清空报文和流表删除报文;其中,所述MAC配置报文用于将所述FPGA的外部接口的MAC地址与对应的内部接口的MAC地址同步,所述保活门限值配置报文用于设置所述FPGA的所述保活门限值,所述流表清空报文用于清空所述FPGA的流表地址表,所述流表删除报文用于从所述FPGA的流表地址表中删除一条流表地址;
所述FPGA执行与各类配置报文对应的配置流程,并向所述应答解析模块回复与各类配置报文对应的配置应答报文,所述配置应答报文包括:MAC配置应答报文、保活门限值应答报文、所述流表添加应答报文、流表清空应答报文和流表删除应答报文。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
状态查询模块向所述FPGA发送各类状态查询报文,所述各类状态查询报文包括:外部接口连接状态查询报文、外部接口收发统计查询报文、外部接口收发统计清空并查询报文、流表添加成功查询报文、流表删除成功查询报文;其中,所述外部接口连接状态查询报文用于查询所述FPGA的外部接口的连接状态,所述外部接口收发统计查询报文用于查询所述FPGA的外部接口接收和发送的数据包统计数量,所述外部接口收发统计清空并查询报文用于将所述FPGA的外部接口接收和发送的报文统计数量清空并查询清空结果,所述流表添加成功查询报文用于确定所述流表添加报文被所述FPGA正确执行,所述流表删除成功查询报文用于确定所述流表删除报文被所述FPGA正确执行;
所述FPGA执行与各类状态查询报文对应的查询流程,并向所述应答解析模块回复与各类状态查询报文对应的各类状态应答报文,所述各类状态应答报文包括:外部接口连接状态应答报文、外部接口收发统计应答报文、外部接口收发统计清空并应答报文、流表添加成功应答报文、流表删除成功应答报文。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
调试统计模块定期将所述流表配置模块发送的各类配置报文的数量、所述状态查询模块发送的各类状态查询报文的数量,分别与所述应答解析模块接收到的各类配置应答报文的数量、所述应答解析模块接收到的各类状态应答报文的数量,进行比对,以确定数量匹配。
第二方面,本发明实施例还提供了一种电子设备,包括:
处理器、存储器、通信接口和通信总线;其中,
所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;
所述通信接口用于该电子设备的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:
FPGA通过外部接口接收待转发数据包,并根据所述待转发数据包中包含的传输特征信息得到流量地址;
将所述流量地址在预存的流量地址表中进行查询,并根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件;其中,所述流量地址表包括:各流量地址和分别对应的转发地址信息;所述网卡与所述FPGA通过对应的内部接口连接,且各外部接口与各内部接口一一对应;
若根据查询结果决定不将所述待转发数据包经所述网卡的内部接口上送给所述内部接口软件,则所述FPGA根据与所述流量地址对应的转发地址信息,将所述待转发数据包由与所述转发地址信息对应的外部接口直接转发。
第三方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:
FPGA通过外部接口接收待转发数据包,并根据所述待转发数据包中包含的传输特征信息得到流量地址;
将所述流量地址在预存的流量地址表中进行查询,并根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件;其中,所述流量地址表包括:各流量地址和分别对应的转发地址信息;所述网卡与所述FPGA通过对应的内部接口连接,且各外部接口与各内部接口一一对应;
若根据查询结果决定不将所述待转发数据包经所述网卡的内部接口上送给所述内部接口软件,则所述FPGA根据与所述流量地址对应的转发地址信息,将所述待转发数据包由与所述转发地址信息对应的外部接口直接转发。
本发明实施例提供的用于防火墙的基于FPGA的数据转发方法,通过FPGA提取接收到的待转发数据包的传输特征信息,得到流量地址,若存在于预存的流量地址表中,则将根据与所述流量地址对应传输地址信息对所述待转发数据包执行转发,从而提升了网络数据转发的性能,降低了时延。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的用于防火墙的基于FPGA的数据转发方法流程图;
图2为本发明实施例的用于防火墙的基于FPGA的数据转发加速卡结构示意图;
图3示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的用于防火墙的基于FPGA的数据转发方法流程图,图2为本发明实施例的用于防火墙的基于FPGA的数据转发加速卡结构示意图,如图1所示,所述方法包括:
步骤S01、FPGA通过外部接口接收待转发数据包,并根据所述待转发数据包中包含的传输特征信息得到流量地址。
由于传输网络硬件设备的CPU处理能力有限,所以为了提升网络设备的转发性能本发明实施例引入了专门的加速卡硬件设备,一种基于现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)器件。FPGA属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,配合传统网卡,例如:XL710等,使用及专门的定制程序,实现整个流量转发过程中替代解决方案,达到网络转发的高性能、低时延目的。如图2所示,所述FPGA包括多个一一对应的外部接口和内部接口。所述外部接口为网络设备面板物理接口,例如,10Gbps光口,用于收发待转发数据包。所述内部接口为网卡驱动注册接口,每个内部接口分别连接一个网卡。FLASH,用于保存FPGA的配置同步及数据包转发的定制程序,DDR3内存用于保存流量地址表及定制程序的运行结果,FPGA与内部接口软件通过自定义的特殊协议报文进行通信,即在相互发送的各类报文中包含用于表征各种报文类型的特殊协议报文头,所述内部接口软件安装于终端的操作系统由终端的CPU驱动。所有所述FPGA与网卡集成的设备插入到插槽中,例如,PCIE3.0。
在所述FGPA的转发功能开启的情况下,所述FPGA将从外部接口接收到待转发数据包,通过调用所述FLASH中的数据包转发的定制程序,提取出所述待转发数据包中包含的传输特征信息。所述传输特征信息具体可以根据实际的需要来进行设定,例如,该待转发数据包包含的四元组、五元组或七元组。具体地,所述四元组包括:源IP地址、目的IP地址、源端口、目的端口;所述五元组包括:源IP地址、目的IP地址、协议号、源端口、目的端口;所述七元组包括:源IP地址、目的IP地址、协议号、源端口、目的端口,服务类型以及接口索引。
通过预设的算法,例如,异或算法,根据所述传输特征信息计算得到所述待转发数据包的流量地址。
步骤S02、将所述流量地址在预存的流量地址表中进行查询,并根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件;其中,所述流量地址表包括:各流量地址和分别对应的转发地址信息;所述网卡与所述FPGA通过对应的内部接口连接,且各外部接口与各内部接口一一对应。
所述DDR3内存中保存的流量地址表记录了所有可以直接转发的流量地址,以及与各流量地址对应的转发地址信息,所述转发地址信息可以根据实际的需要进行设定,例如,可以简单表示为外部接口的接口序号。
FPGA将上述通过计算得到的流量地址在所述流量地址表中进行查询:若在所述流量地址表中找到了相同的流量地址,则认为本次流表查询命中,此时,所述FPGA无需将所述待转发数据包经由内部接口发送给内部接口软件;而若,在所述流量地址表中未找到相同的流量地址,则认为本次流表查询未命中,此时,所述FPGA需要将所述待转发数据包经由内部接口发送给内部接口软件,由所述内部接口软件在执行预设的转发流程。
步骤S03、若根据查询结果决定不将所述待转发数据包经所述网卡的内部接口上送给所述内部接口软件,则所述FPGA根据与所述流量地址对应的转发地址信息,将所述待转发数据包由与所述转发地址信息对应的外部接口直接转发。
在所述FPGA确定无需所述待转发数据包经由内部接口发送给内部接口软件,则需要根据查询的结果,从所述流量地址表中提取出与所述流量地址对应的转发地址信息,再根据所述转发地址信息,确定用于发送的外部接口,从而将所述待转发送数据包经由该外部接口进行转发。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
步骤S021、若在所述流量地址表中未查询到所述流量地址,则所述FPGA将所述待转发数据包由所述外部接口上送到所述网卡的内部接口发送给所述内部接口软件的流表配置模块,由所述流表配置模块执行预设的转发流程。
当FPGA将得到的流量地址在所述流量地址表中进行查询后,确定流表查询未命中,则可将所述待转发数据包认定为首包,并判定无法对该待转发数据包进行直接转发,而需要将所述待转发数据包经由网卡的内部接口,上送到内部接口软件的流表配置模块中,执行常规的转发流程。此处所述的常规的转发流程与常规的网卡的转发流程相同,相当于关闭了本发明实施例中FPGA的转发功能,具体不再赘述。
步骤S031、所述流表配置模块将新建与所述待转发数据包对应的会话,并向所述FPGA发送流表添加报文;其中,所述流表添加报文包括:所述待转发数据包的流量地址和对应的转发地址信息。
并且,在常规的转发流程执行完成后,所述流表配置模块将新建与所述待转发数据包对应的会话session。建立成功后,需要将该会话的信息同步添加到FPGA保存的流量地址表中。具体的方法为:根据首包的传输特征信息得出对应的流量地址,再与对应转发地址信息进行特定格式报文组装,得到流表添加报文并发送给FPGA。其中,所述转发地址信息可以包括:MAC、NAT、PASS等信息。所述流表添加报文包括与流表添加报文对应的特殊协议报文头,例如,0x3333。
步骤S041、所述FPGA根据接收到的所述流表添加报文,更新所述流量地址表。
FPGA对接收到的流表添加报文进行解析后,将其中的流表地址和对应的转发地址信息添加到所述流量地址表中。流表同步成功后,若所述FPGA在后续接收到包含同样传输特征信息的待传数据包,则可以根据其中的MAC、NAT、PASS等信息直接修改所述待转发数据包并找到对应的用于发送的外部接口,进行发送或丢弃。
另外,当所述FPGA无法从待转发数据包中提取出需要的传输特征信息时,则也直接将该待转发数据包判定为流表查询未命中,将该待传数据包经过网卡的内部接口发送给内部接口软件。
本发明实施例通过FPGA提取接收到的待转发数据包的传输特征信息,得到流量地址,若存在于预存的流量地址表中,则将根据与所述流量地址对应传输地址信息对所述待转发数据包执行转发,从而提升了网络数据转发的性能,降低了时延。
基于上述实施例,进一步地,所述方法还包括:
步骤S05、根据预设的保活门限值,对于所述流量地址表中的每条流量地址,若所述FPGA在当前的保活门限值的时间范围内接收到的与所述流量地址对应的待转发数据包,则定期向所述内部接口软件的应答解析模块发送与所述流量地址对应的保活应答报文;
所述内部接口软件在建立会话时将同时设置该会话的保活计时器。
而FPGA在通过流量添加报文更新所述流量地址表后,将会按照系统开启时设置的保活门限值的时间间隔,若在当前的保活门限值的时间间隔内接收到与该会话的流量地址对应的待转发数据包,则在当前的保活门限值的时间间隔后定时向所述内部接口软件的应答解析模块发送保活应答报文。所述保活应答报文中包括与所述保活应答报文对应的特殊协议报文头,例如,0xbbbb。
步骤S06、所述应答解析模块根据所述保活应答报文中的流量地址找到对应的会话,重置与所述流量地址对应的会话的保活计时器。
所述应答解析模块通过对接收到的保活应答报文的解析,提取出其中的流量地址或者传输特征信息,查找到对应的会话,重置该会话的保活计时器,从而所述会话与对应的流量地址表中地流量地址同时保活存在。
步骤S07、若所述会话的保活计时器超时,则清除所述会话,同时向所述FPGA发送流表删除报文,用于将与所述会话对应的流表地址从所述流量地址表中删除。
而若由于长期未接收到保活应答报文,使保活计时器未被重置而超过了预设时间阈值,则将导致该会话被清理,并同进由流表配置模块向FPGA的发送流表删除报文。所述FPGA根据接收到的流表删除报文,从流量地址表中删除与该被清理的会话对应的流量地址,从而使所述会话与流量地址表中对应的流量地址同时被销毁。
本发明实施例通过FPGA根据预设的保活门限值定期向所述应答解析模块发送与各流量地址对应的保活应答报文,用于重置对应的会话的保活计时器,从而在提升网络转发性能的前提下,确保了所述会话与对应的流量地址的同步存续和及时同步清理。
基于上述实施例,进一步地,所述方法还包括:
若开启所述FPGA的转发功能,则由开关模块创建与所述FPGA对应的FPGA标志位文件,并向所述FPGA发送开启指令;其中,所述FPGA标志位文件包括:与所述FPGA的各内部接口对应的用于表征开启的FPGA开关标志位;
若关闭所述FPGA的转发功能,则由所述开关模块删除所述FPGA对应的FPGA标志位文件,并向所述FPGA发送关闭指令。
所述内部接口软件还包括开关模块,用于提供相关的命令行或web界面,控制所述FPGA的转发功能的开启和关闭,并在后台存储目录中相应地创建或删除与所述FPGA对应的FPGA标志文件,具体地,可以根据所述FPGA插入的槽位的槽位号来命名所述FPGA标志文件。所述FPGA标志文件中包括所述FPGA的各个内部接口的FPGA开关标志位。并在创建完成后,设置该槽位对应的各内部接口的FPGA开关标志位。
若开启,则开关模块设置该FPGA下所有内部接口的开关标志位为开启,例如,用1表示,并写入到对应的FPGA标志位文件中保存到磁盘目录。
若关闭,则设置该所有内部接口的开关标志位为关闭,例如,用0表示,并删除FPGA标志位文件。而且,同时还可以提供Web配置FPGA开关状态的回显功能。所述FPGA的转发功能的开启或关闭需要在第一次插入槽位时进行操作或在后续通过提供的命令行和web界面进行更改。
进一步地,所述方法还包括:
在开启系统过程中由接口注册模块根据保存的所述FPGA标志位文件为所述FPGA连接的各网卡执行预设的接口注册流程,并设置各内部接口对应的用于表征开启的FPGA开关标志位。
在每次开启系统的过程中,所述内部接口软件的接口注册模块通过判断磁盘目录中是否存在对应的FPGA标志文件,即可对所有内部接口的开关标志位的进行设置。若存在所述FPGA标志文件,则将该FPGA对应的所有内部接口的FPGA开关标志位设置为1,而若不存在所述FPGA标志文件,则将所有内部接口的FPGA开关标志位设置为0。
本发明实施例通过开关模块和接口注册模块,实现对FPGA的转发功能的开启或关闭,从而使网卡的使用更加灵活,方便。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
所述流表配置模块向所述FPGA发送各类配置报文,所述各类配置报文包括:MAC配置报文、保活门限值配置报文、所述流表添加报文、流表清空报文和流表删除报文;其中,所述MAC配置报文用于将所述FPGA的外部接口的MAC地址与对应的内部接口的MAC地址同步,所述保活门限值配置报文用于设置所述FPGA的所述保活门限值,所述流表清空报文用于清空所述FPGA的流表地址表,所述流表删除报文用于从所述FPGA的流表地址表中删除一条流表地址;
所述FPGA执行与各类配置报文对应的配置流程,并向所述应答解析模块回复与各类配置报文对应的配置应答报文,所述配置应答报文包括:MAC配置应答报文、保活门限值应答报文、所述流表添加应答报文、流表清空应答报文和流表删除应答报文。
所述流表配置模块还用于向所述FPGA发送各类配置报文,所述各类配置报文分别包含对应的特殊协议报文头,从而使所述FPGA根据解析得到的特殊协议报文头,确定配置报文的类型,从而执行对应的配置流程,在配置流程完成,所述FPGA将向所述应答解析模块回复对应的配置应答报文,所述配置应答报文包含与对应的配置报文相同的特殊协议报文头。具体地:
所述流表配置模块向所述FPGA发送MAC配置报文用于配置FPGA的外部接口MAC地址,从而使该外部接口的MAC地址与对应的内部接口的MAC地址同步。所述MAC配置报文包括与MAC配置报文对应的特殊协议报文头,例如,0x1111,待配置的外部接口的标识,以及待配置的MAC地址。其中,所述待配置的MAC地址为所述待配置的外部接口对应的内部接口的MAC地址。
在系统开启过程中,在所述接口注册模块对各网卡进行接口注册流程后,可由流表配置模块通过MAC配置报文将各内部接口的默认MAC地址同步配置给对应的外部接口。具体包括:创建接口MAC同步线程,遍历各内部接口对应的开关标志位,若所述开关标志位表征开启,则获取该内部接口的默认MAC地址作为待配置的MAC地址组装到MAC配置报文中发送给FPGA。并且流表配置模块在确认各外部接口的配置流程执行完毕后,将该MAC同步线程销毁。
另外,在对任一内部接口的MAC地址进行修改后,也需要将修改后的MAC地址作为待配置的MAC地址,由流表配置模块能过MAC配置报文发送给对应的外部接口,从而将接外部接口的MAC地址同步为修改后的MAC地址。
FPGA的接收到MAC配置报文后,对待配置的外部接口执行相应的配置流程,并在配置成功后,向应答解析模块发送MAC配置应答报文,所述MAC配置应答报文包含与所述MAC配置报文对应的特殊协议报文头。
在系统开启过程中,流表配置模块需要向FPGA发送保活门限值配置报文,所述保活门限值配置报文包括:与所述保活门限值配置报文对应的特殊协议报文头,例如,0x2222,以及预设的保活门限值。
FPGA在接收到保活门限值配置报文后,将所述保活门限值进行保存,并在保存完成后,向应答解析模块发送保活门限值应答报文,所述保活门限值应答报文包括:与所述保活门限值配置报文对应的特殊协议报文头。
如上所述,所述流表配置模块在接收到待转发数据包,建立对应的会话完成后,将向FPGA发送所述流表添加报文,所述流表添加报文包括:与所述流表添加报文对应的特殊协议报文头,例如,0x3333,流量地址,以及对应的转发地址信息。
FPGA在接收到流表添加报文后,更新所述流量地址表,并在更新成功后向所述应答解析模块发送流表添加应答报文,所述流表添加应答报文包括:与流表添加报文对应的特殊协议报文头。
流表配置模块根据实际的需要,例如,关闭FPGA的转发功能时,向FPGA发送流表清空报文,所述流表清空报文包括:与所述流表清空报文对应的特殊协议报文头,例如,0x4444。
FPGA在接收到流表清空报文后,将清空DDR3内存中保存的流量地址表,并在清空完成后,向应答解析模块发送流表清空应答报文,所述流表清空应答报文包括:与所述流表清空报文对应的特殊协议报文头。
流表配置模块根据实际的需要,例如,会话的保活计时器超时,向FPGA发送流表删除报文,所述流表删除报文包括:与所述流表删除报文对应的特殊协议报文头,例如,0x5555,以及与该会话对应的流量地址。
FPGA在接收到流表删除报文后,将从保存的流量地址表删除与流量地址相关的信息,并在删除完成后,向应答解析模块发送流表删除应答报文,所述流表删除应答报文包括:与所述流表删除报文对应的特殊协议报文头。
为了进一步增加内部接口软件与FPGA进行交互的鲁棒性,在所述流表配置模块发送各类配置报文的处理函数中进行死循环,为发送的每条配置报文设置对应的配置成功标志位,若判定配置成功标志位置位则跳出循环,否则每间隔预设时间间隔循环发送一次配置报文。当应答解析模块判断接收与配置报文对应的应答报文后,将对该配置成功标志位进行置位。
本发明实施例通过由流量配置模块向FPGA发送各类配置报文,使FPGA执行相应配置流程,并向应答解析模块回复应答报文,从而使基于FPGA的数据转发方法更加灵活可控。
基于上述实施例,进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
状态查询模块向所述FPGA发送各类状态查询报文,所述各类状态查询报文包括:外部接口连接状态查询报文、外部接口收发统计查询报文、外部接口收发统计清空并查询报文、流表添加成功查询报文、流表删除成功查询报文;其中,所述外部接口连接状态查询报文用于查询所述FPGA的外部接口的连接状态,所述外部接口收发统计查询报文用于查询所述FPGA的外部接口接收和发送的数据包统计数量,所述外部接口收发统计清空并查询报文用于将所述FPGA的外部接口接收和发送的报文统计数量清空并查询清空结果,所述流表添加成功查询报文用于确定所述流表添加报文被所述FPGA正确执行,所述流表删除成功查询报文用于确定所述流表删除报文被所述FPGA正确执行;
所述FPGA执行与各类状态查询报文对应的查询流程,并向所述应答解析模块回复与各类状态查询报文对应的各类状态应答报文,所述各类状态应答报文包括:外部接口连接状态应答报文、外部接口收发统计应答报文、外部接口收发统计清空并应答报文、流表添加成功应答报文、流表删除成功应答报文。
为了获取FPGA的各种状态信息,由内部接口软件的状态查询模块向所述FPGA发送各类状态查询报文,所述各类状态查询报文分别包含对应的特殊协议报文头,从而使所述FPGA根据解析得到的特殊协议报文头,确定状态查询报文的类型,从而执行对应状态查询流程,并根据查询结果向所述应答解析模块回复对应的状态应答报文,而状态应答报文包含对应的状态查询报文的特殊协议报文头。具体地:
状态查询模块根据实际的需要,向FPGA发送外部接口连接状态查询报文,所述外部接口连接状态查询报文包括:与所述外部接口连接状态查询报文对应的特殊协议报文头,例如,0x6666,以及待查询的外部接口的标识。
FPGA在接收到外部接口连接状态查询报文后,将查询相应外部接口的连接Link状态,并根据所述连接状态,向应答解析模块发送外部接口连接状态应答报文,所述外部接口连接状态应答报文包括:与所述外部接口连接状态查询报文对应的特殊协议报文头。
状态查询模块根据实际的需要,向FPGA发送外部接口收发统计查询报文,所述外部接口收发统计查询报文包括:与所述外部接口收发统计查询报文对应的特殊协议报文头,例如,0x7777。
FPGA在接收到外部接口收发统计查询报文后,将查询相应外部接口的数据包收发统计结果,并根据所述统计结果,向应答解析模块发送外部接口收发统计应答报文,所述外部接口收发统计应答报文包括:与所述外部接口收发统计查询报文对应的特殊协议报文头。
状态查询模块根据实际的需要,向FPGA发送外部接口收发统计清空并查询报文,所述外部接口收发统计查询报文包括:与所述外部接口收发统计清空并查询报文对应的特殊协议报文头,例如,0x8888。
FPGA在接收到外部接口收发统计清空并查询报文后,将相应外部接口的数据包收发统计结果清空,并根据清空的结果,向应答解析模块发送外部接口收发统计清空并应答报文,所述外部接口收发统计清空并应答报文包括:与所述外部接口收发统计清空并查询报文对应的特殊协议报文头。
状态查询模块根据实际的需要,向FPGA发送流表添加成功查询报文,所述流表添加成功查询报文包括:与所述流表添加成功查询报文对应的特殊协议报文头,例如,0x9999,以及流量地址。
FPGA在接收到流表添加成功查询报文后,将查询所述流量地址是否存在于流量地址表中,并根据查询结果,向应答解析模块发送流表添加成功应答报文,所述流表添加成功应答报文包括:与所述流表添加成功查询报文对应的特殊协议报文头。
状态查询模块根据实际的需要,向FPGA发送流表删除成功查询报文,所述流表删除成功查询报文包括:与所述流表删除成功查询报文对应的特殊协议报文头,例如,0xaaaa,以及流量地址。
FPGA在接收到流表删除成功查询报文后,将查询所述流量地址是否不存在于流量地址表中,并根据查询结果,向应答解析模块发送流表删除成功应答报文,所述流表删除成功应答报文包括:与所述流表删除成功查询报文对应的特殊协议报文头。
本发明实施例通过状态查询模块向FPGA发送各类状态查询报文,以使FPGA根据查询结果向应答解析模块回复对应的各类状态应答报文,从而能够更快得了解到FPGA的运行状态,作出及时的调整。
进一步地,所述用于防火墙的基于FPGA的数据转发方法,还包括:
调试统计模块定期将所述流表配置模块发送的各类配置报文的数量、所述状态查询模块发送的各类状态查询报文的数量,分别与所述应答解析模块接收到的各类配置应答报文的数量、所述应答解析模块接收到的各类状态应答报文的数量,进行比对,以确定数量匹配。
内部接口软件的调试统计模块分别从流表配置模块和状态查询模块中统计各类配置报文和各类状态查询报文的发送数量,从应答解析模块中统计的各类配置应答报文和各类状态应答报文的接收数量,将发送数量与接收数量进行比对,以确认FPGA的收发是否成对,从而快速定位FPGA的配置信息或查询内容是否下发成功。
本发明实施例,通过将各类配置报文和各类状态查询报文的发送数量与各类配置应答报文和各类状态应答报文的接收数量进行比对,从而确保了FPGA的配置信息和查询内容是否下发成功,保证的数据转发的可靠性。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)303、存储器(memory)302和通信总线304,其中,处理器301,通信接口303,存储器302通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行上述方法。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
本领域普通技术人员可以理解:此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种用于防火墙的基于FPGA的数据转发方法,其特征在于,包括:
FPGA通过外部接口接收待转发数据包,并根据所述待转发数据包中包含的传输特征信息得到流量地址;
将所述流量地址在预存的流量地址表中进行查询,并根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件;其中,所述流量地址表包括:各流量地址和分别对应的转发地址信息;所述网卡与所述FPGA通过对应的内部接口连接,且各外部接口与各内部接口一一对应;
若根据查询结果决定不将所述待转发数据包经所述网卡的内部接口上送给所述内部接口软件,则所述FPGA根据与所述流量地址对应的转发地址信息,将所述待转发数据包由与所述转发地址信息对应的外部接口直接转发。
2.根据权利要求1所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述根据查询结果决定是否将所述待转发数据包经网卡的内部接口上送给内部接口软件,具体包括:
若在所述流量地址表中未查询到所述流量地址,则所述FPGA将所述待转发数据包由所述外部接口上送到所述网卡的内部接口发送给所述内部接口软件的流表配置模块,由所述流表配置模块执行预设的转发流程;
所述流表配置模块将新建与所述待转发数据包对应的会话,并向所述FPGA发送流表添加报文;其中,所述流表添加报文包括:所述待转发数据包的流量地址和对应的转发地址信息;
所述FPGA根据接收到的所述流表添加报文,更新所述流量地址表。
3.根据权利要求2所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
根据预设的保活门限值,对于所述流量地址表中的每条流量地址,若所述FPGA在当前的保活门限值的时间范围内接收到的与所述流量地址对应的待转发数据包,则定期向所述内部接口软件的应答解析模块发送与所述流量地址对应的保活应答报文;
所述应答解析模块根据所述保活应答报文中的流量地址找到对应的会话,重置与所述流量地址对应的会话的保活计时器;
若所述会话的保活计时器超时,则清除所述会话,同时向所述FPGA发送流表删除报文,用于将与所述会话对应的流表地址从所述流量地址表中删除。
4.根据权利要求3所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
若开启所述FPGA的转发功能,则由所述内部接口软件的开关模块创建与所述FPGA所在槽位对应的FPGA标志位文件,同时设置所述槽位各内部接口的FPGA开关标志位开启;其中,所述FPGA标志位文件包括:与所述FPGA所在槽位对应的用于表征开启的FPGA开关标志位;
若关闭所述FPGA的转发功能,则由所述开关模块删除所述FPGA对应的FPGA标志位文件,并设置所述槽位各内部接口的FPGA开关标志位关闭。
5.根据权利要求4所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
在开启系统过程中由接口注册模块根据保存的所述FPGA标志位文件为所述FPGA连接的各网卡执行预设的接口注册流程并设置各内部接口对应的用于表征开启的FPGA开关标志位。
6.根据权利要求5所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
所述流表配置模块向所述FPGA发送各类配置报文,所述各类配置报文包括:MAC配置报文、保活门限值配置报文、所述流表添加报文、流表清空报文和流表删除报文;其中,所述MAC配置报文用于将所述FPGA的外部接口的MAC地址与对应的内部接口的MAC地址同步,所述保活门限值配置报文用于设置所述FPGA的所述保活门限值,所述流表清空报文用于清空所述FPGA的流表地址表,所述流表删除报文用于从所述FPGA的流表地址表中删除一条流表地址;
所述FPGA执行与各类配置报文对应的配置流程,并向所述应答解析模块回复与各类配置报文对应的配置应答报文,所述配置应答报文包括:MAC配置应答报文、保活门限值应答报文、所述流表添加应答报文、流表清空应答报文和流表删除应答报文。
7.根据权利要求6所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
状态查询模块向所述FPGA发送各类状态查询报文,所述各类状态查询报文包括:外部接口连接状态查询报文、外部接口收发统计查询报文、外部接口收发统计清空并查询报文、流表添加成功查询报文、流表删除成功查询报文;其中,所述外部接口连接状态查询报文用于查询所述FPGA的外部接口的连接状态,所述外部接口收发统计查询报文用于查询所述FPGA的外部接口接收和发送的数据包统计数量,所述外部接口收发统计清空并查询报文用于将所述FPGA的外部接口接收和发送的报文统计数量清空并查询清空结果,所述流表添加成功查询报文用于确定所述流表添加报文被所述FPGA正确执行,所述流表删除成功查询报文用于确定所述流表删除报文被所述FPGA正确执行;
所述FPGA执行与各类状态查询报文对应的查询流程,并向所述应答解析模块回复与各类状态查询报文对应的各类状态应答报文,所述各类状态应答报文包括:外部接口连接状态应答报文、外部接口收发统计应答报文、外部接口收发统计清空并应答报文、流表添加成功应答报文、流表删除成功应答报文。
8.根据权利要求7所述的用于防火墙的基于FPGA的数据转发方法,其特征在于,所述用于防火墙的基于FPGA的数据转发方法,还包括:
调试统计模块定期将所述流表配置模块发送的各类配置报文的数量、所述状态查询模块发送的各类状态查询报文的数量,分别与所述应答解析模块接收到的各类配置应答报文的数量、所述应答解析模块接收到的各类状态应答报文的数量,进行比对,以确定数量匹配。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述的用于防火墙的基于FPGA的数据转发方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一项所述的用于防火墙的基于FPGA的数据转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269948.2A CN113497798B (zh) | 2020-04-08 | 2020-04-08 | 一种用于防火墙的基于fpga的数据转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269948.2A CN113497798B (zh) | 2020-04-08 | 2020-04-08 | 一种用于防火墙的基于fpga的数据转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113497798A true CN113497798A (zh) | 2021-10-12 |
CN113497798B CN113497798B (zh) | 2023-01-06 |
Family
ID=77995529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010269948.2A Active CN113497798B (zh) | 2020-04-08 | 2020-04-08 | 一种用于防火墙的基于fpga的数据转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113497798B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024752A (zh) * | 2021-11-08 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 一种基于全网联动的网络安全防御方法、设备及系统 |
CN116015696A (zh) * | 2021-10-20 | 2023-04-25 | 中移系统集成有限公司 | 防火墙系统、恶意软件探测方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215832A1 (en) * | 2003-03-31 | 2004-10-28 | Gordy Stephen C. | Network tap with interchangeable ports |
CN101212314A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 单一芯片实现多项网络安全功能的方法 |
CN101917492A (zh) * | 2010-08-06 | 2010-12-15 | 北京乾唐视联网络科技有限公司 | 一种新型网的通信方法及系统 |
CN101917316A (zh) * | 2010-09-13 | 2010-12-15 | 北京航空航天大学 | 一种高速实时工业以太网的通信方法及装置 |
CN103457952A (zh) * | 2013-09-05 | 2013-12-18 | 杭州华三通信技术有限公司 | 一种基于加密引擎的IPSec处理方法和设备 |
CN104283742A (zh) * | 2014-11-05 | 2015-01-14 | 桂林电子科技大学 | 基于fpga的网络数据包过滤方法 |
EP3229426A1 (en) * | 2015-11-06 | 2017-10-11 | Phicomm (Shanghai) Co., Ltd. | Uplink data packet forwarding method and apparatus, and downlink data packet forwarding method and apparatus |
CN108924050A (zh) * | 2018-06-29 | 2018-11-30 | 优刻得科技股份有限公司 | 数据转发方法及其装置、存储介质和网卡设备 |
-
2020
- 2020-04-08 CN CN202010269948.2A patent/CN113497798B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215832A1 (en) * | 2003-03-31 | 2004-10-28 | Gordy Stephen C. | Network tap with interchangeable ports |
CN101212314A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 单一芯片实现多项网络安全功能的方法 |
CN101917492A (zh) * | 2010-08-06 | 2010-12-15 | 北京乾唐视联网络科技有限公司 | 一种新型网的通信方法及系统 |
CN101917316A (zh) * | 2010-09-13 | 2010-12-15 | 北京航空航天大学 | 一种高速实时工业以太网的通信方法及装置 |
CN103457952A (zh) * | 2013-09-05 | 2013-12-18 | 杭州华三通信技术有限公司 | 一种基于加密引擎的IPSec处理方法和设备 |
CN104283742A (zh) * | 2014-11-05 | 2015-01-14 | 桂林电子科技大学 | 基于fpga的网络数据包过滤方法 |
EP3229426A1 (en) * | 2015-11-06 | 2017-10-11 | Phicomm (Shanghai) Co., Ltd. | Uplink data packet forwarding method and apparatus, and downlink data packet forwarding method and apparatus |
CN108924050A (zh) * | 2018-06-29 | 2018-11-30 | 优刻得科技股份有限公司 | 数据转发方法及其装置、存储介质和网卡设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116015696A (zh) * | 2021-10-20 | 2023-04-25 | 中移系统集成有限公司 | 防火墙系统、恶意软件探测方法及装置 |
CN114024752A (zh) * | 2021-11-08 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 一种基于全网联动的网络安全防御方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113497798B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522790B2 (en) | Multipath data transmission processing method and network device | |
US9380133B2 (en) | Communication method, apparatus and system | |
CN113497798B (zh) | 一种用于防火墙的基于fpga的数据转发方法 | |
CN106576108B (zh) | 通信系统中的通信方法和设备及系统 | |
US10581735B2 (en) | Packet processing method and apparatus | |
US20170026313A1 (en) | Data Processing Method and Apparatus for OpenFlow Network | |
WO2017157318A1 (zh) | 链路发现方法及装置 | |
CN112887209A (zh) | 关于数据传输的表项建立方法及相关设备 | |
CN112887312A (zh) | 一种慢协议报文处理方法及相关装置 | |
CN112612670B (zh) | 一种会话信息统计方法、装置、交换设备及存储介质 | |
CN110337137B (zh) | 数据包过滤方法、装置及系统 | |
Cisco | PTR839.frm | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | TSR839.frm | |
Cisco | 9.0(1) Caveats/9.0(2) Modifications | |
Cisco | 9.0(1) Caveats/9.0(2) Modifications | |
Cisco | 9.0(1) Caveats/9.0(2) Modifications | |
Cisco | 9.0(1) Caveats/9.0(2) Modifications | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | Protocol Translator Release Notes for Software Release 8.3 | |
Cisco | 9.0(1) Caveats/9.0(2) Modifications | |
Cisco | Terminal Server Release Notes for Software Release 8.3 |
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 |