CN114710435A - 一种SDN环境下的SRv6段路由标签压缩方法 - Google Patents
一种SDN环境下的SRv6段路由标签压缩方法 Download PDFInfo
- Publication number
- CN114710435A CN114710435A CN202210377227.2A CN202210377227A CN114710435A CN 114710435 A CN114710435 A CN 114710435A CN 202210377227 A CN202210377227 A CN 202210377227A CN 114710435 A CN114710435 A CN 114710435A
- Authority
- CN
- China
- Prior art keywords
- node
- label
- nodes
- joint
- topological structure
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SDN环境下的SRv6段路由标签压缩方法,包括:针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系;根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表;通知起始节点将新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。本发明能够有效的压缩标签的规模,消解无关标签,提高网络资源的利用率。
Description
技术领域
本发明属于计算机网络技术领域,具体涉及一种SDN环境下的SRv6段路由标签压缩方法。
背景技术
随着网络的发展,网络业务类型逐渐多样化,各类业务对网络的要求不仅形同,对传统的互联网提出了重大挑战。
SRv6是基于IPv6的分段路由网络协议,为互联网提供了一种高效灵活的控制手段,具有部署简单,灵活扩展的特点,能够更好地实现流量调度和路径优化,均衡流量分布,提高专线利用率,保障关键业务质量,降低线路成本。
但是,由于SRv6的标签堆栈与路径长度成正比,在转发平面上,由于硬件设备的原因,标签堆栈的深度受到了限制,影响到数据报文头插入标签堆栈的大小。因此,标签压缩具有重大意义。
专利号为CN108123874A的发明中提出一种报文的处理方法、系统和跨域SDN控制器,涉及数据通信技术领域,能够避免跨域报文转发的端到端路径过长带来的报文堆栈深度过长,报文开销过大的缺陷。但是该发明不涉及同域内路径长时标签堆栈过大的技术问题。
发明内容
解决的技术问题:为解决上述所述的SRv6(Segment Routing IPv6,基于IPv6转发平面的段路由)标签栈深度受到硬件设备影响而受控规模受限的问题,本发明提出了一种SDN (Software Defined Network,软件定义网络)环境下的SRv6段路由标签压缩方法,能够有效的压缩标签的规模,消解无关标签,提高网络资源的利用率。
技术方案:
一种SDN环境下的SRv6段路由标签压缩方法,所述压缩方法包括以下步骤:
S1,针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系;
S2,根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表;
S3,通知起始节点将步骤S1中生成的新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。
进一步地,步骤S1中,采用节点压缩算法消解路由转发路径中包含的无关标签的过程包括以下步骤:
S11,根据路由转发路径生成初始标签队列,根据数据传输方向对初始标签队列中的节点进行排序;
S12,对路径转发路径所在的全局拓扑网络的结构类型进行分析,结构类型包括单链路拓扑结构、环状链路拓扑结构和复合链路拓扑结构;复合链路拓扑结构由单链路拓扑结构和环状链路拓扑结构组成;
S13,根据路径转发路径所在的全局拓扑网络类型筛选出无关节点;其中,对于单链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于环状链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于复合链路拓扑结构,将其拆解为单链路拓扑结构和环状链路拓扑结构的子拓扑结构集合,集合中的子拓扑结构按照数据传输方向排序,对于每个子拓扑结构进行无关节点筛选;
S14,从初始标签队列中去除无关节点对应的标签。
本发明还提及一种SDN环境下的SRv6段路由标签压缩装置,所述压缩装置包括:
标签消解模块,用于针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系;
流表生成模块,用于根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表;
数据转发模块,通知起始节点将标签消解模块生成的新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。
进一步地,所述标签消解模块包括:
标签队列生成单元,用于根据路由转发路径生成初始标签队列,根据数据传输方向对初始标签队列中的节点进行排序;
拓扑网络分析单元,用于对路径转发路径所在的全局拓扑网络的结构类型进行分析,结构类型包括单链路拓扑结构、环状链路拓扑结构和复合链路拓扑结构;复合链路拓扑结构由单链路拓扑结构和环状链路拓扑结构组成;
无关节点筛选单元,用于根据路径转发路径所在的全局拓扑网络类型筛选出无关节点;其中,对于单链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于环状链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于复合链路拓扑结构,将其拆解为单链路拓扑结构和环状链路拓扑结构的子拓扑结构集合,集合中的子拓扑结构按照数据传输方向排序,对于每个子拓扑结构进行无关节点筛选;
标签修正单元,用于从初始标签队列中去除无关节点对应的标签。
本发明还提及一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如前所述的SDN环境下的SRv6段路由标签压缩方法。
本发明还提及一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如前所述的SDN环境下的SRv6段路由标签压缩方法。
有益效果:
本发明的SDN环境下的SRv6段路由标签压缩方法,利用了SDN网络的全局控制的功能,结合了SRv6的特点,对路由转发路径上的所有无关节点的标签进行了压缩,有效压缩了整个标签栈的长度,同时,快速转发协议能够弥补无关标签被消解后的问题。该方法实时简单,对硬件设备要求低,能够有效提高网络的利用率和转发效率。
附图说明
图1为本发明实施例的SDN环境下的SRv6段路由标签压缩方法流程图;
图2为单链路节点拓扑及链路标签图;
图3为环状链路节点拓扑及链路标签图;
图4为复合链路节点拓扑及链路标签图。
具体实施方式
下面的实施例可使本专业技术人员更全面地理解本发明,但不以任何方式限制本发明。
图1为本发明实施例的SDN环境下的SRv6段路由标签压缩方法流程图。参见图1,该压缩方法包括以下步骤:
S1,针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系。
S2,根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表。
S3,通知起始节点将步骤S1中生成的新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。
本实施例提及的路由标签压缩方法应用于SDN环境下,数据面设备全部或部分支持SRv6 协议,即该路由标签压缩方法可以应用于支持SRv6协议的设备之中。本实施例的路由标签压缩方法中应用到了节点压缩算法以及单通道快速转发协议。节点压缩算法能够压缩传输路径中的无关节点,达到消解无关标签的目的,快速转发协议能够快速将数据包进行转发,在本实施例中,所节点压缩算法及快速转发协议能够共同工作,也可以独立使用。
本实施例的路由标签压缩方法的总体步骤如图1所示,部分或者所有节点为支持IPv6协议的设备:
步骤101:起始节点生成路由转发路径。
步骤102:控制器利用节点压缩算法消解无关标签,相应的路由节点称为无关节点,生成标签队列。
步骤103:控制器向路径上的所有节点发送流表。
步骤104:起始节点将标签队列压入标签栈中。
步骤105:起始节点根据标签信息发送数据。
步骤106:由于在本方法中,路由转发路径上的节点与起始节点的入栈标签并不是一一对应的,当数据转发到无关节点时,由于标签栈中没有该无关节点对应的标签,因此无法执行下一动作。此时,利用快速转发协议,将所述数据包直接转发。
步骤107:数据包到达目的节点。
下面结合例子对本实施例的节点压缩算法进行原理说明。
在如图2所示的单链路上使用本方法,如图2所示,A、B、C、D、E分别为单链路拓扑上的五个节点,假设数据包P需从节点A传输到节点E,整个传输过程执行以下步骤:
步骤1:节点A生成转发路径A-B-C-D-E。
步骤2:控制器生成初始标签队列[1002 1003 1004 1005],控制器通过全局拓扑发现节点C、节点D与转发路径无关,判定为转发无关节点,消解掉无关标签,生成新的标签队列[1002 1005]。
步骤3:控制器向路径上的所有节点发送流表,并C节点和D节点发送快速转发动作指令。
步骤4:节点A将标签压入SL(SID List)中,标签栈从上到下顺序为1005,1002。
步骤5:节点A根据标签信息将数据包发送到节点B,节点B匹配流表,执行转发到节点C动作。
步骤6:数据包传输到节点C,节点C发现此时目的地址非本节点IP,匹配到快速转发动作指令,从非数据包进入端口转出,传输到节点D,节点D重复节点C动作,将数据包传输到节点E。
步骤7:节点E接收数据包。
在如图3所示的环装链路上使用本方法,如图3所示,A、B、C、D、E、F分别为环状链路拓扑上的6个节点,假设数据包P需从节点A传输到节点D,选取路径为A-F-E-D,整个传输过程执行以下步骤:
步骤1:节点A生成转发路径A-F-E-D。
步骤2:控制器生成初始标签队列[1006 1005 1004],控制器通过全局拓扑发现节点E与转发路径无关,判定为转发无关节点,消解掉无关标签,生成新的标签队列[10061004]。
步骤3:控制器向路径上的所有节点发送流表,并向E节点发送快速转发动作指令。
步骤4:节点A将标签压入SL(SID List)中,标签栈从上到下顺序为1004,1006。
步骤5:节点A根据标签信息将数据包发送到节点F,节点F匹配流表,执行转发到节点 E动作。
步骤6:数据包传输到节点E,节点E发现此时目的地址非本节点IP,匹配到快速转发动作指令,从非数据包进入端口转出,将数据包传输到节点D。
步骤7:节点D接收数据包。
在如图4所示的环装链路上使用本方法,如图4所示,A、B、C、D、E、F、G、H分别为复合链路拓扑上的8个节点,假设数据包P需从节点A传输到节点G,当选取路径为 A-B-F-G时,可用单链路传输方式,当路由路径为A-C-D-G时,整个传输过程执行以下步骤:
步骤1:节点A生成转发路径A-C-D-G。
步骤2:控制器生成初始标签队列[1005 1006 1004],控制器通过全局拓扑发现节点C与转发路径无关,判定为转发无关节点,消解掉无关标签,生成新的标签队列[10061004]。
步骤3:控制器向路径上的所有节点发送流表,并向C节点发送快速转发动作指令。
步骤4:节点A将标签压入SL(SID List)中,标签栈从上到下顺序为1004,1006。
步骤5:数据包传输到节点C,节点C发现此时目的地址非本节点IP,匹配到快速转发动作指令,从非数据包进入端口转出,将数据包传输到节点D。
步骤6:节点F匹配流表,执行转发动作将数据包发送到节点G。
步骤7:节点G接收数据包。
本实施例提供了一种SDN环境下的SRv6段路由标签压缩方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (6)
1.一种SDN环境下的SRv6段路由标签压缩方法,其特征在于,所述压缩方法包括以下步骤:
S1,针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系;
S2,根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表;
S3,通知起始节点将步骤S1中生成的新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。
2.根据权利要求1所述的SDN环境下的SRv6段路由标签压缩方法,其特征在于,步骤S1中,采用节点压缩算法消解路由转发路径中包含的无关标签的过程包括以下步骤:
S11,根据路由转发路径生成初始标签队列,根据数据传输方向对初始标签队列中的节点进行排序;
S12,对路径转发路径所在的全局拓扑网络的结构类型进行分析,结构类型包括单链路拓扑结构、环状链路拓扑结构和复合链路拓扑结构;复合链路拓扑结构由单链路拓扑结构和环状链路拓扑结构组成;
S13,根据路径转发路径所在的全局拓扑网络类型筛选出无关节点;其中,对于单链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于环状链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于复合链路拓扑结构,将其拆解为单链路拓扑结构和环状链路拓扑结构的子拓扑结构集合,集合中的子拓扑结构按照数据传输方向排序,对于每个子拓扑结构进行无关节点筛选;
S14,从初始标签队列中去除无关节点对应的标签。
3.一种SDN环境下的SRv6段路由标签压缩装置,其特征在于,所述压缩装置包括:
标签消解模块,用于针对起始节点生成的路由转发路径进行分析,采用节点压缩算法消解路由转发路径中包含的无关标签,将无关标签对应的路由节点定义为无关节点,生成新的标签队列;其中,无关节点与路径中的上一节点之间具有唯一流向关系;
流表生成模块,用于根据新的标签队列生成相应的流表,向路由转发路径上的所有节点发送流表;
数据转发模块,通知起始节点将标签消解模块生成的新的标签队列压入标签栈,并根据标签信息发送数据,当数据转发到无关节点时,采用单通道快速转发协议,将数据从非数据包进入端口转出至下一节点,直至数据包到达目的节点。
4.根据权利要求3所述的SDN环境下的SRv6段路由标签压缩装置,其特征在于,所述标签消解模块包括:
标签队列生成单元,用于根据路由转发路径生成初始标签队列,根据数据传输方向对初始标签队列中的节点进行排序;
拓扑网络分析单元,用于对路径转发路径所在的全局拓扑网络的结构类型进行分析,结构类型包括单链路拓扑结构、环状链路拓扑结构和复合链路拓扑结构;复合链路拓扑结构由单链路拓扑结构和环状链路拓扑结构组成;
无关节点筛选单元,用于根据路径转发路径所在的全局拓扑网络类型筛选出无关节点;其中,对于单链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于环状链路拓扑结构,将除起始节点、第二节点和目的节点之外的其他节点定义为无关节点;对于复合链路拓扑结构,将其拆解为单链路拓扑结构和环状链路拓扑结构的子拓扑结构集合,集合中的子拓扑结构按照数据传输方向排序,对于每个子拓扑结构进行无关节点筛选;
标签修正单元,用于从初始标签队列中去除无关节点对应的标签。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2中任一项所述的SDN环境下的SRv6段路由标签压缩方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的SDN环境下的SRv6段路由标签压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210377227.2A CN114710435B (zh) | 2022-04-11 | 2022-04-11 | 一种SDN环境下的SRv6段路由标签压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210377227.2A CN114710435B (zh) | 2022-04-11 | 2022-04-11 | 一种SDN环境下的SRv6段路由标签压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114710435A true CN114710435A (zh) | 2022-07-05 |
CN114710435B CN114710435B (zh) | 2023-05-30 |
Family
ID=82172459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210377227.2A Active CN114710435B (zh) | 2022-04-11 | 2022-04-11 | 一种SDN环境下的SRv6段路由标签压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114710435B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327527A (zh) * | 2018-12-14 | 2020-06-23 | 中国电信股份有限公司 | 流量转发方法、系统、sdn控制器及计算机可读存储介质 |
WO2021180077A1 (zh) * | 2020-03-09 | 2021-09-16 | 中国移动通信有限公司研究院 | 路径建立方法、数据传输方法、装置、网络节点及存储介质 |
CN113438160A (zh) * | 2020-03-23 | 2021-09-24 | 中兴通讯股份有限公司 | 路由方法、路由装置及计算机可读存储介质 |
CN113676959A (zh) * | 2021-08-31 | 2021-11-19 | 新华三技术有限公司 | 一种基于5g核心网的业务流转发方法、装置及设备 |
-
2022
- 2022-04-11 CN CN202210377227.2A patent/CN114710435B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327527A (zh) * | 2018-12-14 | 2020-06-23 | 中国电信股份有限公司 | 流量转发方法、系统、sdn控制器及计算机可读存储介质 |
WO2021180077A1 (zh) * | 2020-03-09 | 2021-09-16 | 中国移动通信有限公司研究院 | 路径建立方法、数据传输方法、装置、网络节点及存储介质 |
CN113438160A (zh) * | 2020-03-23 | 2021-09-24 | 中兴通讯股份有限公司 | 路由方法、路由装置及计算机可读存储介质 |
CN113676959A (zh) * | 2021-08-31 | 2021-11-19 | 新华三技术有限公司 | 一种基于5g核心网的业务流转发方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114710435B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7406031B1 (en) | Multihop nested tunnel restoration | |
EP2849397A1 (en) | Communication system, control device, communication method, and program | |
JP5880570B2 (ja) | マッピングサーバ装置、ネットワークシステム、パケット転送方法およびプログラム | |
US20120170477A1 (en) | Computer, communication system, network connection switching method, and program | |
US20030128668A1 (en) | Distributed implementation of control protocols in routers and switches | |
WO2005031533A2 (en) | Model-based method and apparatus for determining mpls network properties | |
JPH11163854A (ja) | データ通信方法 | |
JP2006197613A (ja) | Mplsマルチキャストの高速再経路設定装置及び方法 | |
JP2007166666A (ja) | ネットワーク管理のための方法とシステム | |
US12003410B2 (en) | Method and apparatus for establishing forwarding path, and computer-readable storage medium | |
US7936668B2 (en) | Methods and apparatus for distributing label information | |
US20120124238A1 (en) | Prioritization of routing information updates | |
CN110784407B (zh) | 接口配置方法、数据传输方法、装置及电子设备 | |
WO2021143279A1 (zh) | 段路由业务处理方法和装置、路由设备及存储介质 | |
JPWO2010038775A1 (ja) | ネットワークノードおよびその負荷分散方法 | |
EP3157211A1 (en) | Isis-based flooding method and device | |
JP5534033B2 (ja) | 通信システム、ノード、パケット転送方法およびプログラム | |
CN112087381B (zh) | 一种实现业务功能处理的方法及装置 | |
JP4599429B2 (ja) | 通信システム及び通信方法 | |
JP4623317B2 (ja) | 通信装置、ルーティング方法及びプログラム | |
JP4383216B2 (ja) | 通信端末 | |
CN114710435A (zh) | 一种SDN环境下的SRv6段路由标签压缩方法 | |
CN108965122B (zh) | 路由选路方法、设备及计算机可读存储介质 | |
KR20010087705A (ko) | 엠피엘에스 시스템에서 링크 상태 라우팅 정보를 이용한엘에스피 설정 장치 및 방법 | |
JP4369882B2 (ja) | ルーティング方法、および、ネットワークシステム |
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 |