CN113098785B - 一种报文处理方法及装置 - Google Patents

一种报文处理方法及装置 Download PDF

Info

Publication number
CN113098785B
CN113098785B CN202110345275.9A CN202110345275A CN113098785B CN 113098785 B CN113098785 B CN 113098785B CN 202110345275 A CN202110345275 A CN 202110345275A CN 113098785 B CN113098785 B CN 113098785B
Authority
CN
China
Prior art keywords
sending rate
voq
sending
index value
flow control
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
Application number
CN202110345275.9A
Other languages
English (en)
Other versions
CN113098785A (zh
Inventor
吕磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN202110345275.9A priority Critical patent/CN113098785B/zh
Publication of CN113098785A publication Critical patent/CN113098785A/zh
Application granted granted Critical
Publication of CN113098785B publication Critical patent/CN113098785B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/37Slow start
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种报文处理方法及装置,该方法应用于框式交换设备中任一接口板中的任一Qos调度芯片,该方法包括:针对本地的任一VOQ,若接收到该VOQ对应的OQ所在的接口板发送的第一流控帧、且第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;按照确定出的发送速率发送该VOQ中缓存的数据报文;其中,该VOQ对应的OQ对应有多个VOQ,且多个VOQ所在的Qos调度芯片不完全相同。本申请可以在一定程度上减少网板侧的流量突发,进而降低了框式交换设备的负载。

Description

一种报文处理方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法及装置。
背景技术
目前,为了提高框式交换设备处理数据报文的服务质量(Quality of Service,Qos),通常在框式交换设备的接口板中的Qos调度芯片(例如,交换网适配(FabricAdapter,FAP)芯片等)上配置虚拟出端口队列(Virtual Output Queue,VOQ)和出端口队列(Output Queue,OQ)。
具体地,如图1所示,假设框式交换设备包括4个接口板,分别为接口板1、接口板2、接口板3和接口板4。假设分别在接口板1和接口板2中的FAP芯片上为某个出端口配置1个VOQ,在接口板3中的FAP芯片上为该出端口配置2个VOQ,在接口板4中的FAP芯片上为该出端口配置一个OQ,事先为该OQ设置两个门限,分别为反压门限(也称为Xoff门限)和解除反压门限(也称为Xon门限)。在这种架构下,对于接口板1至接口板3中的任一接口板中的FAP芯片而言,在接收到该接口板中的网络处理芯片(例如,包处理芯片等)转发的出端口为该出端口的数据报文时,会将该数据报文缓存到对应的VOQ中;在根据预设的调度策略决策出需要转发该数据报文时,该接口板中的FAP芯片会将该数据报文通过根据网板选择策略从该框式交换设备中的多个网板中选择出的一个网板转发给接口板4中的FAP芯片。
这样一来,对于接口板4中的FAP芯片而言,会在该出端口对应的OQ中缓存接口板1至接口板3中的FAP芯片转发过来的数据报文,一旦发现缓存的报文数量达到Xoff门限,接口板4中的FAP芯片会向接口板1至接口板3中的FAP芯片广播用于指示停止发送对应的VOQ中缓存的数据报文的流控帧。
接口板1至接口板3中的FAP芯片在接收到此流控帧时,会停止发送该出端口对应的VOQ中缓存的数据报文的流控帧。
后续随着接口板4上该出端口对应的OQ中的报文缓存数量逐渐减少,待报文缓存数量不高于Xon门限时,接口板4中的FAP芯片会再次向接口板1至接口板3中的FAP芯片广播用于指示继续发送对应的VOQ中缓存的数据报文的流控帧。
接口板1至接口板3中的FAP芯片在接收到此次的流控帧时,会根据该调度策略,按照最大发送速率发送该出端口对应的VOQ中缓存的数据报文。
可见,在框式交换设备处理数据报文的处理过程中,会存在以下问题:
1、在多个接口板中的Qos调度芯片上均配置有同一出端口的VOQ的情形下,一旦这些Qos调度芯片接收到用于指示继续发送对应的VOQ中缓存的数据报文的流控帧,则均会按照最大发送速率发送相应的数据报文,这样一来,会造成网板侧的流量突发,导致框式交换设备的负载较大。
2、容易在同一端口对应的VOQ和OQ所在的Qos调度芯片之间传输大量的用于指示停止发送相关的VOQ中缓存的数据报文的流控帧和用于指示继续发送相关的VOQ中缓存的数据报文的流控帧,进而影响框式交换设备的处理性能。
发明内容
为克服相关技术中存在的问题,本申请提供了一种报文处理方法及装置。
根据本申请实施例的第一方面,提供一种报文处理方法,所述方法应用于框式交换设备中任一接口板中的任一Qos调度芯片,所述方法包括:
针对本地的任一VOQ,若接收到该VOQ对应的OQ所在的接口板发送的第一流控帧、且所述第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;
按照确定出的发送速率发送该VOQ中缓存的数据报文;
其中,该VOQ对应的OQ对应有多个VOQ,且所述多个VOQ所在的Qos调度芯片不完全相同。
根据本申请实施例的第二方面,提供一种报文处理装置,所述装置应用于框式交换设备中任一接口板中的任一Qos调度芯片,所述装置包括:
确定模块,用于针对本地的任一VOQ,若接收到该VOQ对应的OQ所在的接口板发送的第一流控帧、且所述第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;
发送模块,用于按照确定出的发送速率发送该VOQ中缓存的数据报文;
其中,该VOQ对应的OQ对应有多个VOQ,且所述多个VOQ所在的Qos调度芯片不完全相同。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,在框式交换设备的多个接口板中的Qos调度芯片上均配置有同一出端口的VOQ的情形下,一旦这些Qos调度芯片接收到用于指示继续发送对应的VOQ中缓存的数据报文的流控帧,不再直接按照最大发送速率发送相应的数据报文,而是根据流控帧中携带的发送速率索引值和预设的发送速率调整策略来确定发送速率。这样一来,本申请可以在一定程度上减少网板侧的流量突发,进而降低了框式交换设备的负载;并且,还可以在一定程度上减少同一端口对应的VOQ和OQ所在的Qos调度芯片之间传输的用于指示停止发送相关的VOQ中缓存的数据报文的流控帧和用于指示继续发送相关的VOQ中缓存的数据报文的流控帧的数量,从而提高了框式交换设备的处理性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有的框式交换设备中对应同一OQ的VOQ所在的接口板与OQ所在的接口板之间的交互示意图;
图2为本申请实施例提供的一种报文处理方法的流程示意图;
图3为本申请实施例提供的该VOQ的状态变化示意图;
图4为本申请实施例提供的一种报文处理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
本申请实施例提供了一种报文处理方法,该方法应用于框式交换设备中任一接口板中的任一Qos调度芯片,该Qos调度芯片可以为FAP芯片、现场可编程门阵列(Fiele-Programmable Gate Array,FPGA)芯片等,如图2所示,该方法可以包括如下步骤:
S21、针对本地的任一VOQ,若接收到该VOQ对应的OQ所在的接口板发送的第一流控帧、且第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率。
S22、按照确定出的发送速率发送该VOQ中缓存的数据报文。
需要说明的是,在本申请实施例中,该VOQ对应的OQ对应有多个VOQ,且多个VOQ所在的Qos调度芯片不完全相同。
进一步地,在本申请实施例中,在第一流控帧为用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的流控帧时,则停止发送该VOQ中缓存的数据报文。
具体地,在上述步骤S21中,该Qos调度芯片可以通过以下方式确定待发送该VOQ中缓存的数据报文的发送速率:
第一种方式:在第一发送速率索引值为设定的发送速率索引值时,将最大发送速率确定为待发送该VOQ中缓存的数据报文的发送速率;在第一发送速率索引值不为设定的发送速率索引值时,在预设的发送速率索引值与发送速率的第一对应关系中,查找第一发送速率索引值对应的发送速率,并将查找到的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率。在这里,最大发送速率大于第一对应关系中的任一发送速率。
例如,上述设定的发送速率索引值可以用0b’00000来标识,对应最大发送速率;第一对应关系中的发送速率索引值可以分别为0b’00001、0b’00010和0b’00011等,其中,0b’00001对应75%的最大发送速率,0b’00010对应50%的最大发送速率,0b’00011对应25%的最大发送速率。
当然,上述设定的发送速率索引值以及第一对应关系中的发送速率索引值还可以用其他方式来标识,并且,第一对应关系中的发送速率还可以是其他设置方式,在此不再一一列举。
第二种方式:在第一发送速率索引值为设定的发送速率索引值时,将最大发送速率确定为待发送该VOQ中缓存的数据报文的发送速率;在第一发送速率索引值不为设定的发送速率索引值时,比较第一发送速率索引值、和根据预设的第一数量区间与发送速率的第二对应关系和第一对应关系查找到的该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值的大小;在比较结果为相等时,将比较结果中的任一发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率;在比较结果为不相等时,将比较结果中的最小的发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率。
在第二种方式中,该Qos调度芯片具体可以通过以下方式查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值:
在第二对应关系中,查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率;
在第一对应关系中,进一步查找查找到的发送速率对应的发送速率索引值。
例如,第二对应关系中的第一数量区间可以分别为[XonSlowThreshold 3,XonSlowThreshold2)、[XonSlowThreshold 2,XonSlowThreshold1)和[XonSlowThreshold1,Xon Threshold)等,对应的发送速率分别为25%的最大发送速率、50%的最大发送速率和75%的最大发送速率等。
当然,本申请并不仅限于上述第二对应关系的设置方式,还可以采用其他方式设置,例如,第二对应关系可以包括更多的数量区间及其对应的发送速率,在此不再一一列举。
进一步地,在本申请实施例中,为了实现精准调整发送速率,该Qos调度芯片在执行上述步骤S21中的根据第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤之前,还执行以下操作:
判断该Qos调度芯片是否使能了精细调速功能;
在判断结果为否时,执行根据第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
在判断结果为是时,若第一流控帧为第1次或者第2次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则执行根据第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
若第一流控帧不为前两次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧中的任一流控帧,则获取上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第二流控帧时确定出的发送速率对应的第二发送速率索引值、和上上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第三流控帧时确定出的发送速率对应的第三发送速率索引值,并进一步判断第三发送速率索引值是否与第一发送速率索引值相同、以及第二发送速率索引值和第三发送速率索引值是否为相邻的发送速率索引值;
若是,则按照第一发送速率索引值对应的发送速率与第二发送速率索引值对应的发送之间的中间值发送该VOQ中缓存的数据报文;
否则,执行根据第一流控帧中携带的第一发送速率索引值,确定待发送该VOQ中缓存的数据报文的发送速率的步骤。
需要说明的是,在此操作流程中,该Qos调度芯片在执行根据第一流控帧中携带的第一发送速率索引值,确定待发送该VOQ中缓存的数据报文的发送速率的步骤时,具体可以执行上述第一种方式或者第二种方式。
例如,仍以上述第一对应关系中的发送速率索引值为例,假设该Qos调度芯片在接收到第一流控帧之前已接收到过2次用于指示继续发送缓存到该VOQ中的数据报文的流控帧,并且上次和上上次确定出的发送速率对应的发送速率索引值分别为0b’00001和0b’00010(二者相邻),假设第一流控帧中携带的发送速率索引值为0b’00001,那么,在这种情形下,该Qos调度芯片会按照75%的最大发送速率和50%的最大发送速率之间的中间值发送该VOQ中缓存的数据报文,这样一来,可以使该VOQ和该VOQ对应的OQ中的数据报文被平稳地发送出去,从而可以减少网板侧的流量突发,以及减少相关流控帧的传输数量。
更进一步地,在本申请实施例中,为了更好地减少网板侧的流量突发,以及减少相关流控帧的传输数量,该Qos调度芯片在接收到第一流控帧之前,还可以执行以下操作:
在该Qos调度芯片上电后,将该VOQ的状态设置为初始(Init)状态(如图3所示),并监测该VOQ中缓存的数据报文的数量;
在监测到的数量达到第一设定数量且未达到第二设定数量时,将该VOQ的状态由初始状态切换为慢启动(Slowstart)状态(如图3所示),并在预设的第二数量区间与发送速率的第三对应关系中,查找监测到的数量所处的第二数量区间对应的发送速率,并按照查找到的发送速率发送该VOQ中缓存的数据报文,其中,第三对应关系中不同的第二数量区间对应不同的发送速率;
在监测到的数量达到第二设定数量时,将该VOQ的状态由慢启动状态切换为全速发包(ON)状态(如图3所示),并按照最大发送速率发送该VOQ中缓存的数据报文,其中,最大发送速率大于第三对应关系中的任一发送速率;
在按照最大发送速率发送该VOQ中缓存的数据报文后,若接收到OQ所在的接口板发送的用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的第四流控帧,则将该VOQ的状态由全速发包状态切换为关闭(OFF)状态,并停止发送该VOQ中缓存的数据报文;
该Qos调度芯片在接收到第一流控帧之后,还执行以下操作:
在第一发送速率索引值为设定的发送速率索引值时,将该VOQ的当前状态(即,关闭状态或者调速状态)切换为全速发包状态(如图3所示),在这里,在该VOQ的当前状态为关闭状态时,说明该Qos调度芯片上一次接收到了用于指示停止发送缓存到该VOQ中的数据报文的流控帧;在该VOQ的当前状态为调速状态时,说明该Qos调度芯片上一次接收到了用于指示继续发送缓存到该VOQ中的数据报文的流控帧VOQ;
在第一发送速率索引值不为设定的发送速率索引值时,若该VOQ的当前状态为调速状态,则维持该VOQ的当前状态不变(如图3所示);若该VOQ的当前状态为关闭状态或者全速发包状态,则将该VOQ的当前状态切换为调速状态(如图3所示)。
需要说明的是,在此操作流程中,第一设定数量和第二设定数量可以根据实际经验来取值,例如,第三对应关系中的第二数量区间可以分别为[第一设定数量(例如xStartthreshold 1),xStartthreshold 2)、[xStartthreshold2,xStartthreshold 1)和[xStartthreshold 1,第二设定数量(例如,Xon Threshold))等,对应的发送速率分别为25%的最大发送速率、50%的最大发送速率和75%的最大发送速率等。
当然,本申请并不仅限于上述第三对应关系的设置方式,还可以采用其他方式设置,例如,第三对应关系可以包括更多的数量区间及其对应的发送速率,在此不再一一列举。
进一步需要说明的是,不管该VOQ处于Slowstart状态、Slow状态和ON状态下的哪一个状态,一旦该VOQ中的数据报文被全部发送完毕,该Qos调度芯片立即将状态切换为Init状态(如图3所示)。
另外,在该Qos调度芯片上防止挂死的定时器超时,或者该VOQ对应的OQ所在的接口板被拔出时,该Qos调度芯片将该VOQ的OFF状态切换为Init状态(如图3所示)。
由以上技术方案可以看出,在本申请实施例中,在框式交换设备的多个接口板中的Qos调度芯片上均配置有同一出端口的VOQ的情形下,一旦这些Qos调度芯片接收到用于指示继续发送对应的VOQ中缓存的数据报文的流控帧,不再直接按照最大发送速率发送相应的数据报文,而是根据流控帧中携带的发送速率索引值和预设的发送速率调整策略来确定发送速率。这样一来,本申请可以在一定程度上减少网板侧的流量突发,进而降低了框式交换设备的负载;并且,还可以在一定程度上减少同一端口对应的VOQ和OQ所在的Qos调度芯片之间传输的用于指示停止发送相关的VOQ中缓存的数据报文的流控帧和用于指示继续发送相关的VOQ中缓存的数据报文的流控帧的数量,从而提高了框式交换设备的处理性能。
基于同一发明构思,本申请还提供了一种报文处理装置,所述装置应用于框式交换设备中任一接口板中的任一Qos调度芯片,其结构示意图如图4所示,具体包括:
确定模块41,用于针对本地的任一虚拟出端口队列VOQ,若接收到该VOQ对应的出端口队列OQ所在的接口板发送的第一流控帧、且所述第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;
发送模块42,用于按照确定出的发送速率发送该VOQ中缓存的数据报文;
其中,该VOQ对应的OQ对应有多个VOQ,且所述多个VOQ所在的Qos调度芯片不完全相同。
优选地,所述装置还包括:
停止发送模块(图4中未示出),用于在所述第一流控帧为用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的流控帧时,则停止发送该VOQ中缓存的数据报文。
优选地,所述装置还包括:
判断模块(图4中未示出),用于在所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤之前,判断该Qos调度芯片是否使能了精细调速功能;
在判断结果为否时,触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
在判断结果为是时,若所述第一流控帧为第1次或者第2次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
若所述第一流控帧不为前两次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧中的任一流控帧,则获取上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第二流控帧时确定出的发送速率对应的第二发送速率索引值、和上上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第三流控帧时确定出的发送速率对应的第三发送速率索引值,并进一步判断所述第三发送速率索引值是否与所述第一发送速率索引值相同、以及所述第二发送速率索引值和所述第三发送速率索引值是否为相邻的发送速率索引值;
若是,则按照所述第一发送速率索引值对应的发送速率与所述第二发送速率索引值对应的发送之间的中间值发送该VOQ中缓存的数据报文;
否则,触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值,确定待发送该VOQ中缓存的数据报文的发送速率的步骤。
优选地,所述确定模块,具体用于通过以下方式确定待发送该VOQ中缓存的数据报文的发送速率:
在所述第一发送速率索引值为设定的发送速率索引值时,将最大发送速率确定为待发送该VOQ中缓存的数据报文的发送速率;
在所述第一发送速率索引值不为设定的发送速率索引值时,在预设的发送速率索引值与发送速率的第一对应关系中,查找所述第一发送速率索引值对应的发送速率,并将查找到的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率,其中,所述最大发送速率大于所述第一对应关系中的任一发送速率;或者,
比较所述第一发送速率索引值、和根据预设的第一数量区间与发送速率的第二对应关系和所述第一对应关系查找到的该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值的大小;
在比较结果为相等时,将比较结果中的任一发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率;
在比较结果为不相等时,将比较结果中的最小的发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率。
优选地,所述确定模块41,具体用于通过以下方式查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值:
在所述第二对应关系中,查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率;
在所述第一对应关系中,进一步查找查找到的发送速率对应的发送速率索引值。
优选地,所述装置还包括:
监测模块(图4中未示出),用于在所述确定模块接收到所述第一流控帧之前,在该Qos调度芯片上电后,将该VOQ的状态设置为初始状态,并监测该VOQ中缓存的数据报文的数量;
第一切换模块(图4中未示出),用于在所述监测模块监测到的数量达到第一设定数量且未达到第二设定数量时,将该VOQ的状态由初始状态切换为慢启动状态,并在预设的第二数量区间与发送速率的第三对应关系中,查找监测到的数量所处的第二数量区间对应的发送速率,并按照查找到的发送速率发送该VOQ中缓存的数据报文,其中,所述第三对应关系中不同的第二数量区间对应不同的发送速率;
第二切换模块(图4中未示出),用于在所述监测模块监测到的数量达到所述第二设定数量时,将该VOQ的状态由慢启动状态切换为全速发包状态,并按照最大发送速率发送该VOQ中缓存的数据报文,其中,所述最大发送速率大于所述第三对应关系中的任一发送速率;
第三切换模块(图4中未示出),用于在所述第二切换模块按照最大发送速率发送该VOQ中缓存的数据报文后,若接收到所述OQ所在的接口板发送的用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的第四流控帧,则将该VOQ的状态由全速发包状态切换为关闭状态,并停止发送该VOQ中缓存的数据报文;
第四切换模块(图4中未示出),用于在所述确定模块接收到所述第一流控帧之后,在所述第一发送速率索引值为设定的发送速率索引值时,将该VOQ的当前状态切换为全速发包状态,其中,该VOQ的当前状态为关闭状态或者调速状态;在所述第一发送速率索引值不为设定的发送速率索引值时,若该VOQ的当前状态为调速状态,则维持该VOQ的当前状态不变;若该VOQ的当前状态为关闭状态或者全速发包状态,则将该VOQ的当前状态切换为调速状态。
由以上技术方案可以看出,在本申请实施例中,在框式交换设备的多个接口板中的Qos调度芯片上均配置有同一出端口的VOQ的情形下,一旦这些Qos调度芯片接收到用于指示继续发送对应的VOQ中缓存的数据报文的流控帧,不再直接按照最大发送速率发送相应的数据报文,而是根据流控帧中携带的发送速率索引值和预设的发送速率调整策略来确定发送速率。这样一来,本申请可以在一定程度上减少网板侧的流量突发,进而降低了框式交换设备的负载;并且,还可以在一定程度上减少同一端口对应的VOQ和OQ所在的Qos调度芯片之间传输的用于指示停止发送相关的VOQ中缓存的数据报文的流控帧和用于指示继续发送相关的VOQ中缓存的数据报文的流控帧的数量,从而提高了框式交换设备的处理性能。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种报文处理方法,其特征在于,所述方法应用于框式交换设备中任一接口板中的任一服务质量Qos调度芯片,所述方法包括:
针对本地的任一虚拟出端口队列VOQ,若接收到该VOQ对应的出端口队列OQ所在的接口板发送的第一流控帧、且所述第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;
按照确定出的发送速率发送该VOQ中缓存的数据报文;
其中,该VOQ对应的OQ对应有多个VOQ,且所述多个VOQ所在的Qos调度芯片不完全相同;
在根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率之前,所述方法还包括:
判断该Qos调度芯片是否使能了精细调速功能;
在判断结果为否时,执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
在判断结果为是时,若所述第一流控帧为第1次或者第2次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
若所述第一流控帧不为前两次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧中的任一流控帧,则获取上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第二流控帧时确定出的发送速率对应的第二发送速率索引值、和上上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第三流控帧时确定出的发送速率对应的第三发送速率索引值,并进一步判断所述第三发送速率索引值是否与所述第一发送速率索引值相同、以及所述第二发送速率索引值和所述第三发送速率索引值是否为相邻的发送速率索引值;
若是,则按照所述第一发送速率索引值对应的发送速率与所述第二发送速率索引值对应的发送之间的中间值发送该VOQ中缓存的数据报文;
否则,执行所述根据所述第一流控帧中携带的第一发送速率索引值,确定待发送该VOQ中缓存的数据报文的发送速率的步骤。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一流控帧为用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的流控帧时,则停止发送该VOQ中缓存的数据报文。
3.根据权利要求1所述的方法,其特征在于,通过以下方式确定待发送该VOQ中缓存的数据报文的发送速率:
在所述第一发送速率索引值为设定的发送速率索引值时,将最大发送速率确定为待发送该VOQ中缓存的数据报文的发送速率;
在所述第一发送速率索引值不为设定的发送速率索引值时,在预设的发送速率索引值与发送速率的第一对应关系中,查找所述第一发送速率索引值对应的发送速率,并将查找到的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率,其中,所述最大发送速率大于所述第一对应关系中的任一发送速率;或者,
比较所述第一发送速率索引值、和根据预设的第一数量区间与发送速率的第二对应关系和所述第一对应关系查找到的该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值的大小;
在比较结果为相等时,将比较结果中的任一发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率;
在比较结果为不相等时,将比较结果中的最小的发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率。
4.根据权利要求3所述的方法,其特征在于,通过以下方式查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值:
在所述第二对应关系中,查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率;
在所述第一对应关系中,进一步查找查找到的发送速率对应的发送速率索引值。
5.根据权利要求3所述的方法,其特征在于,在接收到所述第一流控帧之前,所述方法还包括:
在该Qos调度芯片上电后,将该VOQ的状态设置为初始状态,并监测该VOQ中缓存的数据报文的数量;
在监测到的数量达到第一设定数量且未达到第二设定数量时,将该VOQ的状态由初始状态切换为慢启动状态,并在预设的第二数量区间与发送速率的第三对应关系中,查找监测到的数量所处的第二数量区间对应的发送速率,并按照查找到的发送速率发送该VOQ中缓存的数据报文,其中,所述第三对应关系中不同的第二数量区间对应不同的发送速率;
在监测到的数量达到所述第二设定数量时,将该VOQ的状态由慢启动状态切换为全速发包状态,并按照最大发送速率发送该VOQ中缓存的数据报文,其中,所述最大发送速率大于所述第三对应关系中的任一发送速率;
在按照最大发送速率发送该VOQ中缓存的数据报文后,若接收到所述OQ所在的接口板发送的用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的第四流控帧,则将该VOQ的状态由全速发包状态切换为关闭状态,并停止发送该VOQ中缓存的数据报文;
在接收到所述第一流控帧之后,所述方法还包括:
在所述第一发送速率索引值为设定的发送速率索引值时,将该VOQ的当前状态切换为全速发包状态,其中,该VOQ的当前状态为关闭状态或者调速状态;
在所述第一发送速率索引值不为设定的发送速率索引值时,若该VOQ的当前状态为调速状态,则维持该VOQ的当前状态不变;若该VOQ的当前状态为关闭状态或者全速发包状态,则将该VOQ的当前状态切换为调速状态。
6.一种报文处理装置,其特征在于,所述装置应用于框式交换设备中任一接口板中的任一服务质量Qos调度芯片,所述装置包括:
确定模块,用于针对本地的任一虚拟出端口队列VOQ,若接收到该VOQ对应的出端口队列OQ所在的接口板发送的第一流控帧、且所述第一流控帧为用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率;
发送模块,用于按照确定出的发送速率发送该VOQ中缓存的数据报文;
其中,该VOQ对应的OQ对应有多个VOQ,且所述多个VOQ所在的Qos调度芯片不完全相同;
所述装置还包括:
判断模块,用于在所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤之前,判断该Qos调度芯片是否使能了精细调速功能;
在判断结果为否时,触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
在判断结果为是时,若所述第一流控帧为第1次或者第2次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧,则触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值和预设的发送速率调整策略,确定待发送该VOQ中缓存的数据报文的发送速率的步骤;
若所述第一流控帧不为前两次接收到的用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的流控帧中的任一流控帧,则获取上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第二流控帧时确定出的发送速率对应的第二发送速率索引值、和上上次接收到用于指示该Qos调度芯片继续发送缓存到该VOQ中的数据报文的第三流控帧时确定出的发送速率对应的第三发送速率索引值,并进一步判断所述第三发送速率索引值是否与所述第一发送速率索引值相同、以及所述第二发送速率索引值和所述第三发送速率索引值是否为相邻的发送速率索引值;
若是,则按照所述第一发送速率索引值对应的发送速率与所述第二发送速率索引值对应的发送之间的中间值发送该VOQ中缓存的数据报文;
否则,触发所述确定模块执行所述根据所述第一流控帧中携带的第一发送速率索引值,确定待发送该VOQ中缓存的数据报文的发送速率的步骤。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
停止发送模块,用于在所述第一流控帧为用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的流控帧时,则停止发送该VOQ中缓存的数据报文。
8.根据权利要求6所述的装置,其特征在于,所述确定模块,具体用于通过以下方式确定待发送该VOQ中缓存的数据报文的发送速率:
在所述第一发送速率索引值为设定的发送速率索引值时,将最大发送速率确定为待发送该VOQ中缓存的数据报文的发送速率;
在所述第一发送速率索引值不为设定的发送速率索引值时,在预设的发送速率索引值与发送速率的第一对应关系中,查找所述第一发送速率索引值对应的发送速率,并将查找到的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率,其中,所述最大发送速率大于所述第一对应关系中的任一发送速率;或者,
比较所述第一发送速率索引值、和根据预设的第一数量区间与发送速率的第二对应关系和所述第一对应关系查找到的该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值的大小;
在比较结果为相等时,将比较结果中的任一发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率;
在比较结果为不相等时,将比较结果中的最小的发送速率索引值对应的发送速率,确定为待发送该VOQ中缓存的数据报文的发送速率。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于通过以下方式查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率所对应的发送速率索引值:
在所述第二对应关系中,查找该VOQ中当前缓存的数据报文的数量所处的第一数量区间对应的发送速率;
在所述第一对应关系中,进一步查找查找到的发送速率对应的发送速率索引值。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
监测模块,用于在所述确定模块接收到所述第一流控帧之前,在该Qos调度芯片上电后,将该VOQ的状态设置为初始状态,并监测该VOQ中缓存的数据报文的数量;
第一切换模块,用于在所述监测模块监测到的数量达到第一设定数量且未达到第二设定数量时,将该VOQ的状态由初始状态切换为慢启动状态,并在预设的第二数量区间与发送速率的第三对应关系中,查找监测到的数量所处的第二数量区间对应的发送速率,并按照查找到的发送速率发送该VOQ中缓存的数据报文,其中,所述第三对应关系中不同的第二数量区间对应不同的发送速率;
第二切换模块,用于在所述监测模块监测到的数量达到所述第二设定数量时,将该VOQ的状态由慢启动状态切换为全速发包状态,并按照最大发送速率发送该VOQ中缓存的数据报文,其中,所述最大发送速率大于所述第三对应关系中的任一发送速率;
第三切换模块,用于在所述第二切换模块按照最大发送速率发送该VOQ中缓存的数据报文后,若接收到所述OQ所在的接口板发送的用于指示该Qos调度芯片停止发送缓存到该VOQ中的数据报文的第四流控帧,则将该VOQ的状态由全速发包状态切换为关闭状态,并停止发送该VOQ中缓存的数据报文;
第四切换模块,用于在所述确定模块接收到所述第一流控帧之后,在所述第一发送速率索引值为设定的发送速率索引值时,将该VOQ的当前状态切换为全速发包状态,其中,该VOQ的当前状态为关闭状态或者调速状态;在所述第一发送速率索引值不为设定的发送速率索引值时,若该VOQ的当前状态为调速状态,则维持该VOQ的当前状态不变;若该VOQ的当前状态为关闭状态或者全速发包状态,则将该VOQ的当前状态切换为调速状态。
CN202110345275.9A 2021-03-31 2021-03-31 一种报文处理方法及装置 Active CN113098785B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110345275.9A CN113098785B (zh) 2021-03-31 2021-03-31 一种报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110345275.9A CN113098785B (zh) 2021-03-31 2021-03-31 一种报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN113098785A CN113098785A (zh) 2021-07-09
CN113098785B true CN113098785B (zh) 2022-05-27

Family

ID=76671856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110345275.9A Active CN113098785B (zh) 2021-03-31 2021-03-31 一种报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN113098785B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039931B (zh) * 2021-10-27 2024-04-02 浙江大华技术股份有限公司 一种控制数据传输的方法、装置、设备及介质
CN114268597A (zh) * 2021-12-17 2022-04-01 锐捷网络股份有限公司 一种报文上送cpu的控制方法及装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719853A (en) * 1993-12-22 1998-02-17 Nec Corporation Congestion control method in an ATM network based on threshold values of node queue length
CN1469601A (zh) * 2002-06-18 2004-01-21 ���µ�����ҵ��ʽ���� 使启动接收器发送速率增加最佳化
CN101621833A (zh) * 2009-08-13 2010-01-06 中兴通讯股份有限公司 一种报文流量控制方法和基站控制器
EP2164210A1 (en) * 2008-09-11 2010-03-17 Juniper Networks, Inc. Methods and apparatus for defining a flow control signal
CN101867511A (zh) * 2009-04-20 2010-10-20 华为技术有限公司 流控帧发送方法、相关设备及系统
CN101959245A (zh) * 2009-07-13 2011-01-26 中兴通讯股份有限公司 一种WiMAX系统中流量控制的方法、装置及系统
CN104980359A (zh) * 2014-04-04 2015-10-14 中兴通讯股份有限公司 以太网光纤通道的流量控制方法、装置及系统
CN105337895A (zh) * 2014-07-14 2016-02-17 杭州华三通信技术有限公司 一种网络设备主机单元、网络设备子卡以及网络设备
CN107579921A (zh) * 2017-09-26 2018-01-12 锐捷网络股份有限公司 流量控制方法及装置
CN107995199A (zh) * 2017-12-06 2018-05-04 锐捷网络股份有限公司 网络设备的端口限速方法及装置
CN108667739A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 拥塞控制方法、装置及系统
CN109039936A (zh) * 2018-08-30 2018-12-18 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备
CN109257298A (zh) * 2018-11-06 2019-01-22 上海航天测控通信研究所 基于自适应比例控制算法的网络流量控制方法
CN109714128A (zh) * 2017-10-25 2019-05-03 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN111970204A (zh) * 2020-08-10 2020-11-20 江苏创通电子股份有限公司 网络流量控制方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331387B2 (en) * 2007-06-22 2012-12-11 Broadcom Corporation Data switching flow control with virtual output queuing

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719853A (en) * 1993-12-22 1998-02-17 Nec Corporation Congestion control method in an ATM network based on threshold values of node queue length
CN1469601A (zh) * 2002-06-18 2004-01-21 ���µ�����ҵ��ʽ���� 使启动接收器发送速率增加最佳化
EP2164210A1 (en) * 2008-09-11 2010-03-17 Juniper Networks, Inc. Methods and apparatus for defining a flow control signal
CN101867511A (zh) * 2009-04-20 2010-10-20 华为技术有限公司 流控帧发送方法、相关设备及系统
CN101959245A (zh) * 2009-07-13 2011-01-26 中兴通讯股份有限公司 一种WiMAX系统中流量控制的方法、装置及系统
CN101621833A (zh) * 2009-08-13 2010-01-06 中兴通讯股份有限公司 一种报文流量控制方法和基站控制器
CN104980359A (zh) * 2014-04-04 2015-10-14 中兴通讯股份有限公司 以太网光纤通道的流量控制方法、装置及系统
CN105337895A (zh) * 2014-07-14 2016-02-17 杭州华三通信技术有限公司 一种网络设备主机单元、网络设备子卡以及网络设备
CN108667739A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 拥塞控制方法、装置及系统
CN107579921A (zh) * 2017-09-26 2018-01-12 锐捷网络股份有限公司 流量控制方法及装置
CN109714128A (zh) * 2017-10-25 2019-05-03 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN107995199A (zh) * 2017-12-06 2018-05-04 锐捷网络股份有限公司 网络设备的端口限速方法及装置
CN109039936A (zh) * 2018-08-30 2018-12-18 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备
CN109257298A (zh) * 2018-11-06 2019-01-22 上海航天测控通信研究所 基于自适应比例控制算法的网络流量控制方法
CN111970204A (zh) * 2020-08-10 2020-11-20 江苏创通电子股份有限公司 网络流量控制方法及装置

Also Published As

Publication number Publication date
CN113098785A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN113098785B (zh) 一种报文处理方法及装置
EP0688481B1 (en) Device and method for atm end system cell flow regulation
US11870698B2 (en) Congestion control method and apparatus, communications network, and computer storage medium
US6570848B1 (en) System and method for congestion control in packet-based communication networks
KR100666980B1 (ko) 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치
JP3970138B2 (ja) イーサネットスイッチにおける輻輳制御装置
KR100333259B1 (ko) 프레임릴레이교환네트워크를통하여인정정보속도를적응시키는방법
CN107948103B (zh) 一种基于预测的交换机pfc控制方法及控制系统
WO2000072516A1 (en) Communication network method and apparatus
WO2017186070A1 (zh) 流量整形方法、控制器、网络设备和流量整形系统
CN112995048B (zh) 数据中心网络的阻塞控制与调度融合方法及终端设备
WO2008066429A1 (en) A method for improved handling of traffic congestion in a wireless telecommunications system
US20050185581A1 (en) Active flow management with hysteresis
CN114124826A (zh) 拥塞位置可感知的低时延数据中心网络传输系统及方法
CN112468405B (zh) 基于信用和反应型的数据中心网络拥塞控制方法
CN111431812B (zh) 一种报文转发控制方法及装置
US8412843B2 (en) Network relay apparatus
US10749803B1 (en) Enhanced congestion avoidance in network devices
JP2001197119A (ja) サーバ装置、ネットワークシステム、及びその受信負荷制御方法
US9071538B2 (en) Method for dynamically adjusting switching loop and network equipment
CN113114578A (zh) 一种流量拥塞隔离方法、装置和系统
CN106559351B (zh) 一种处理报文的方法、sdn控制器及网元
WO2004086786A1 (en) Packet transmission control in cellular communications systems
JP4094626B2 (ja) 無線制御装置および無線制御方法
KR100429503B1 (ko) 데이터 패킷의 흐름제어 방법

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