CN105577575A - 一种链路控制方法及装置 - Google Patents
一种链路控制方法及装置 Download PDFInfo
- Publication number
- CN105577575A CN105577575A CN201410567855.2A CN201410567855A CN105577575A CN 105577575 A CN105577575 A CN 105577575A CN 201410567855 A CN201410567855 A CN 201410567855A CN 105577575 A CN105577575 A CN 105577575A
- Authority
- CN
- China
- Prior art keywords
- link
- crosspoint
- level
- input
- information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- 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/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种链路控制方法及装置,该方法包括:获取系统中的链路信息和/或机框信息;根据所述获取的链路信息和/或机框信息,进行链路控制。根据本发明实施例所述的技术方案,能够有效的解决三级非对称交换系统中的局部拥塞和丢包问题,保证了系统的流量水平,提高了系统的性能。
Description
技术领域
本发明涉分组数据交换技术领域,尤其涉及一种链路控制方法及装置。
背景技术
交换系统是分组交换设备的关键组成部分,交换系统由交换接入单元与交换单元组成,交换接入单元由源交换接入单元与目的交换接入单元组成,其中,源侧交换接入单元将数据包切换为信元,目的侧交换接入单元将信元重组为数据包,交换单元负责实现信元的转发与交换,一般系统中有多个交换接入单元与多个交换单元。
图1为一种三级交换系统连接情况示意图,如图1所示,该三级交换系统有四个业务机框和一个中心机框,四个业务机框分别为业务机框1、业务机框2、业务机框3、业务机框4,图1中,位于业务机框上的交换单元称作业务交换单元,位于中心机框上面的交换单元称为中心交换单元;交换接入单元与业务交换单元之间、业务交换单元与中心交换单元之间,都是通过高速串行链路互联。交换接入单元由源交换接入单元与目的交换接入单元两部分组成,其中源交换接入单元完成从外部接收数据包并且将数据包切换为信元发送给交换单元,目的交换接入单元从交换单元接收信元重组为数据包后传递给外部。业务交换单元由第一级交换单元与第三级交换单元组成,其中第一级交换单元实现将从源交换接入单元接收信元后转发给中心交换单元;第三级交换单元从中心交换单元接收信元后转发给目的交换单元。由于源交换接入单元与目的交换接入单元都是位于交换接入单元,因此源交换接入单元与目的交换接入单元有内部总线可以共享信息;同样第一级交换单元与第三级交换单元都是位于业务交换单元,因此第一级交换单元与第三级交换单元有内部总线可以共享信息。
图2为一种三级交换系统数据流示意图,如图2所示,按照数据流的流向,从源交换接入单元到目的交换接入单元,如图2所示的从业务机框1源交换接入单元到业务机框2目的交换接入单元的数据流,业务机框1上的源交换接入单元发出的信元,依次经过业务机框1上的第一级交换单元达到中心机框,经过中心机框的交换单元交换到达业务机框2上的第三级交换单元,经过业务机框2上的第三级交换单元的交换,最终达到业务机框2上的各个目的交换接入单元。通常中心机框上的交换单元又叫做第二级交换单元,即系统中有3级交换单元。
交换接入单元与业务交换单元之间,业务交换单元与中心交换单元之间,都是通过高速串行链路互联,如图1、图2中的链路1与链路2,这些高速链路都是双向链路,按照数据流向,从源交换接入单元到目的交换接入单元。
非对称交换系统是指,在交换单元内,针对某个目的交换接入单元,存在带宽不一致的情况,这样会导致交换单元内部长期存在局部拥塞,导致整网流量下降,在拥塞程度严重时则有可能导致丢包,系统性能降低。
发明内容
有鉴于此,为解决现有存在的技术问题,本发明实施例提供:
一种链路控制方法,应用于三级交换系统,包括:
获取系统中的链路信息和/或机框信息;
根据所述获取的链路信息和/或机框信息,进行链路控制。
一具体实施例中,对于第三级交换单元,
所述获取系统中的链路信息和/或机框信息,包括:
获取所述第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
所述根据所述获取的链路信息和/或机框信息,进行链路控制,包括:
根据K=K+Ki计算当前输入带宽值K,其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数;
判断所述K的值是否不大于所述第三级交换单元总的输出带宽,如果是,向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,i=i+1,重新计算K的值,继续判断所述K的值是否不大于所述第三级交换单元总的输出带宽,如此循环;否则,向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息,其中,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和。
一具体实施例中,对于第二级交换单元,
所述获取系统中的链路信息和/或机框信息,包括:
获取所述第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
所述根据所述获取的链路信息和/或机框信息,进行链路控制,包括:
根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数;
判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,如果是,向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息,i=i+1,重新计算Kt的值,继续判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,如此循环;否则,向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息,遍历所有来自源业务机框t的输入链路后,t=t+1,i=1,重新计算Kt的值,继续判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和;
遍历所有与所述第二级交换单元存在链路连接的源业务机框后,h=h+1,t=1,i=1,重复上述步骤,进行链路控制。
一具体实施例中,所述根据获取的链路信息和/或机框信息,进行链路控制,包括:
采用轮询的方式和/或在交换单元输出链路发生故障时,根据获取的链路信息和/或机框信息,对所述交换单元进行链路控制。
本发明实施例还提供一种链路控制装置,应用于三级交换系统,包括:获取模块和链路控制模块;其中,
所述获取模块,用于获取系统中的链路信息和/或机框信息;
所述链路控制模块,用于根据所述获取的链路信息和/或机框信息,进行链路控制。
一具体实施例中,所述链路控制模块包括第一计算子模块、第一判断子模块和第一发送子模块;其中,
所述获取模块,具体用于获取第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
所述第一计算子模块,用于根据K=K+Ki计算当前输入带宽值K,其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数;以及根据第一发送子模块的通知,重新确定i=i+1,以及重新计算K的值;
所述第一判断子模块,用于判断所述第一计算子模块计算的K的值是否不大于所述第三级交换单元总的输出带宽,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和;
所述第一发送子模块,用于当第一判断子模块确定K的值不大于所述第三级交换单元总的输出带宽时,向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,之后,通知第一计算子模块;当第一判断子模块确定K的值大于所述第三级交换单元总的输出带宽时,向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息。
一具体实施例中,所述链路控制模块包括第二计算子模块、第二判断子模块和第二发送子模块;其中,
所述获取模块,具体用于获取第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
所述第二计算子模块,用于根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数;以及在第二发送子模块向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息后,i=i+1,重新计算Kt的值;以及在遍历所有来自源业务机框t的输入链路后,t=t+1,i=1,重新计算Kt的值;以及在遍历所有与所述第二级交换单元存在链路连接的源业务机框后,h=h+1,t=1,i=1,重新计算Kt的值;
所述第二判断子模块,用于判断所述第二计算子模块计算的Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽;其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和;
所述第二发送子模块,用于在第二判断子模块确定Kt的值不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息;在第二判断子模块确定Kt的值大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息。
一具体实施例中,该装置还包括触发模块,
所述触发模块,用于采用轮询的方式和/或在交换单元输出链路发生故障时,触发链路控制模块进行链路控制。
本发明实施例所述的一种链路控制方法及装置,获取系统中的链路信息和/或机框信息;根据所述获取的链路信息和/或机框信息,进行链路控制。根据本发明实施例所述的技术方案,能够有效的解决三级非对称交换系统中的局部拥塞和丢包问题,保证了系统的流量水平,提高了系统的性能。
附图说明
图1为一种三级交换系统连接情况示意图;
图2为一种三级交换系统数据流示意图;
图3为本发明实施例一种链路控制方法流程示意图;
图4为本发明实施例再一种链路控制方法流程示意图;
图5为本发明实施例再一种链路控制方法流程示意图;
图6为本发明实施例一种链路控制装置结构示意图;
图7为本发明实施例一种链路控制模块62的结构示意图;
图8为本发明实施例再一种链路控制模块62的结构示意图;
图9为本发明实施例再一种链路控制装置结构示意图;
图10为本发明实施例1中三级非对称交换系统处理装置结构示意图;
图11为本发明实施例2中第三级交换单元的非对称交换系统结构示意图;
图12为本发明实施例3中第二级交换单元不对称的场景示意图。
具体实施方式
为了解决三级非对称交换系统中的局部拥塞和丢包问题,本发明实施例提供了一种链路控制方法,应用于三级交换系统,如图3所示,该方法包括:
步骤301:获取系统中的链路信息和/或机框信息;
需要说明的是,这里,可以获取系统中所有链路的链路信息和/或机框信息,也可以仅获取预设的部分链路的链路信息和/或机框信息。
步骤302:根据所述获取的链路信息和/或机框信息,进行链路控制。
在一具体实施例中,对于第三级交换单元,如图4所示,该方法包括:
步骤401:获取第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
步骤402:根据K=K+Ki计算当前输入带宽值K。
其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数。
步骤403:判断所述K的值是否不大于所述第三级交换单元总的输出带宽,如果是,执行步骤404;否则执行步骤405。
这里,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和。
步骤404:向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,转到步骤406。
步骤405:向第i条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息。
需要说明的是,该步骤与向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息是等效的。
步骤406:判断是否遍历所述第三级交换单元的所有输入链路,如果是,流程结束;否则,i=i+1,返回步骤402。
需要说明的是,进行链路控制时,输入带宽的叠加顺序可以根据预先设定的顺序确定,也可以随机确定,还可以根据链路速率由大到小或由小到大的顺序确定等等。
在一具体实施例中,对于第二级交换单元,如图5所示,该方法包括:
步骤501:获取所述第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
步骤502:根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt。
这里,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数。
步骤503:判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,如果是,执行步骤504;否则,执行步骤505。
其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和。
步骤504:向第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息,执行步骤506。
步骤505:向第i条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息,执行步骤506。
本步骤与向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息等效。
步骤506:判断是否遍历所有来自源业务机框t的输入链路,如果是,t=t+1,i=1,返回步骤502;否则,i=i+1,返回步骤502。
步骤507:判断是否遍历所有与所述第二级交换单元存在链路连接的源业务机框,如果是,流程结束,否则,t=t+1,i=1,返回步骤502。
步骤508:判断是否遍历所有与该第二级交换单元存在链路连接的目的交换接入单元,如果是,流程结束,否则,h=h+1,t=1,i=1,返回步骤502。
可选的,在一具体实施例中,所述根据获取的链路信息和/或机框信息,进行链路控制,包括:
采用轮询的方式和/或在交换单元输出链路发生故障时,根据获取的链路信息和/或机框信息,对所述交换单元进行链路控制。
本发明实施例主要应用于分组数据交换中的三级非对称交换系统,解决了三级交换系统中存在不对称所带来的局部拥塞和带宽浪费和丢包问题,提高了交换系统的性能。
本发明实施例还相应地提供了一种链路控制装置,应用于三级交换系统,如图6所示,该装置包括:获取模块61和链路控制模块62;其中,
所述获取模块61,用于获取系统中的链路信息和/或机框信息;
所述链路控制模块62,用于根据所述获取的链路信息和/或机框信息,进行链路控制。
在一具体实施例中,如图7所示,所述链路控制模块62包括第一计算子模块521、第一判断子模块622和第一发送子模块623;其中,
所述获取模块61,具体用于获取第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
所述第一计算子模块621,用于根据K=K+Ki计算当前输入带宽值K,其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数;以及根据第一发送子模块的通知,重新确定i=i+1,以及重新计算K的值;
所述第一判断子模块622,用于判断所述第一计算子模块621计算的K的值是否不大于所述第三级交换单元总的输出带宽,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和;
所述第一发送子模块623,用于当第一判断子模块622确定K的值不大于所述第三级交换单元总的输出带宽时,向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,之后,通知第一计算子模块;当第一判断子模块622确定K的值大于所述第三级交换单元总的输出带宽时,向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息。
在一具体实施例中,如图8所示,所述链路控制模块包括第二计算子模块621’、第二判断子模块622’和第二发送子模块623’;其中,
所述获取模块61,具体用于获取第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
所述第二计算子模块621’,用于根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数;以及在第二发送子模块向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息后,i=i+1,重新计算Kt的值;以及在遍历所有来自源业务机框t的输入链路后,t=t+1,i=1,重新计算Kt的值;以及在遍历所有与所述第二级交换单元存在链路连接的源业务机框后,h=h+1,t=1,i=1,重新计算Kt的值;
所述第二判断子模块622’,用于判断所述第二计算子模块计算的Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽;其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和;
所述第二发送子模块623’,用于在第二判断子模块622’确定Kt的值不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息;在第二判断子模块622’确定Kt的值大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息。
在一具体实施例中,如图9所示,该装置还包括触发模块63,
所述触发模块63,用于采用轮询的方式和/或在交换单元输出链路发生故障时,触发链路控制模块62进行链路控制。
下面通过具体实施例对本发明的技术方案作进一步详细说明。
实施例1
本发明实施例通过分级处理的方式来解决第二级与第三级交换单元的非对称问题。对于业务机框中的第三级交换单元的非对称,针对每一个目的交换接入单元,通过发送不可到达信息,保证在当前交换单元输入链路的总输入带宽小于或者等于其总的输出带宽的方式来实现;而对于中心机框的的第二级交换单元的非对称,则把所有的业务机框当做一个整体考虑,针对每一个目的交换接入单元,保证每个源端业务机框的输入带宽小于或等于到目的交换接入单元的输出带宽。
为了完成上述处理过程,本发明实施例提供了一套三级非对称交换系统处理装置,如图10所示。该装置包括存储模块(其中存储有一张转发表和一张机框表)、一个拓扑信息检测模块(对应上述获取模块61)、一个输出带宽计算模块(对应上述第一计算子模块621和/或第二计算子模块621’)和一个路由信息发送模块(对应上述第一判断子模块622和第一发送子模块623,和/或,第二判断子模块622’和第二发送子模块623’)。
对于业务机框的第三级交换单元的非对称处理,拓扑信息检测模块用来查询转发表,获得其输入和输出链路连接关系和数量;
输出带宽计算模块,根据查表得到的连接关系和各条链路的链路速率,计算该交换单元总的输出带宽;
路由信息发送模块,根据输入链路和链路速率,对各条输入链路,依次累加计算交换单元的输入带宽,当输入带宽小于或等于总的输出带宽时,向当前输入链路相应输出链路发送可到达目的交换接入单元信息;当输入带宽大于输出带宽时,向当前输入链路相应输出链路发送不可到达目的交换接入单元信息。
对于中心机框上的第二级交换单元,同样,拓扑信息检测模块用来读取转发表和机框表,获得输入链路和输出链路的连接关系和数量;
输出带宽计算模块,根据查询转发表和机框表得到的连接关系和各条链路的链路速率,计算该交换单元到该目的交换接入单元所在机框的输出带宽;
路由信息发送模块,用来对于每一个源业务机框,根据查表获得的连接关系和各条链路的链路速率,对各条输入链路的带宽依次累加,并与输出带宽进行比较,对于输入带宽小于或等于输出带宽的链路发送可到达相应目的交换接入单元信息;对于输入带宽大于输出带宽的链路发送不可到达相应目的交换接入单元信息。
实施例2
本实施例对基于第三级交换单元的链路控制进行举例说明。
图11所示为本发明实施例2中第三级交换单元的非对称交换系统结构示意图,如图11所示,系统中包括4个业务机框1、2、3和4,一个中心机框。在每个业务机框上有两个源交换接入单元、目的交换接入单元和2个第一级、第三级交换单元,在中心机框上有两个第二级交换单元。在该实现用例中,只列出了从业务机框1、业务机框2经过中心交换框到达业务机框3、业务机框4的流量。
在每个业务机框中,交换接入单元和业务交换单元之间分别各有两条链路相连接,业务交换单元和中心机框上的第二级交换单元之间也分别各有两条链路相连,此时在业务机框2上的第三交换单元4#和目的交换接入单元3#之间有一条链路断开(如图11所示),那么此时交换系统出现第三级交换单元非对称,在业务机框2上,对于目的交换接入单元3#,第三级交换单元4#的输入带宽大于输出带宽,在此处可能产生局部拥塞,从而影响系统性能。
此时发生的是第三级交换单元非对称,其处理方式如下:
步骤001:在业务机框2上的第三级交换单元4#上,首先由拓扑检测模块读取转发表,转发表中的索引是目的交换接入单元,内容则是可以到达该目的交换接入单元的链路编号及该链路速率(即带宽),因此读取转发表可以获取针对某个目的交换单元的可达输出链路的数量与总带宽;
步骤002:从第一个目的交换接入单元,也就是3#目的交换接入单元开始,根据转发表中的可以到达该目的交换接入单元的链路数量及各个链路的速率,计算该交换单元的总的输出带宽,在图11中,4#第三级交换单元有3条输出链路,设定各条链路的速率相等,权重为1,那么4#第三级交换单元可以到达目的交换接入单元3#的输出带宽是1,而达到目的交换接入单元4#的输出带宽为2;
步骤003:4#第三级交换单元输入链路有2条,各条链路速率相等,均为1。针对目的交换接入单元3#,那么轮询到2条输入链路时,累加输入带宽分别是1、2,当轮询到第1条输入链路时候,输入带宽为1,小于等于可达到目的交换接入单元1#的输出带宽,因此第三级交换单元通过与第一级交换单元中的内部总线完成往第1条输入链路相应的输出链路向中心交换框中的第二级交换单元传递可以达到目的交换接入单元3#的路由信息,输入轮询到第2条输入链路时候,加上第一条输入链路则两条输入链路的总输入带宽大于1,因此往第2条输入链路相应的输出链路向中心交换框中的第二级交换单元传递不可以达到目的交换接入单元3#的路由信息。
步骤004:针对4#目的交换接入单元,那么轮询到2条输入链路时,累加输入带宽分别是1、2,当轮询到第1条输入链路时候,输入带宽为1,小于等于可达到目的交换接入单元4#的输出带宽,往第1条输入链路相应的输出链路向中心交换框中的第二级交换单元传递可以达到目的交换接入单元4#的路由信息,输入轮询到第2条输入链路时候,加上第一条输入链路则两条输入链路的总输入带宽等于2,仍然小于等于4#目的交换接入单元的输出带宽,因此往第2条输入链路相应的输出链路向中心交换框中的第二级交换单元传递可以达到目的交换接入单元4#的路由信息。
经过上述的处理后,对于中心机框上的1#第二级交换单元与第二级交换单元2#,都接收到了有两条输出链路可以通过第三级交换单元4#到达目的交换接入单元4#,并且只有一条输出链路可以通过第三级交换单元4#到达目的交换接入单元3#,实现了第三级交换单元4#到目的交换接入单元3#与目的交换接入单元4#的输入输出带宽一致。
本实施例中,第三级交换单元4#仅仅与目的交换接入单元3#与目的交换接入单元4#共两个目的交换接入单元互联,在实际应用中,若有更多目的交换接入装置,依次重复上述步骤,即实现第三级交换单元针对各个交换目的单元实现输入输出带宽一致。
实施例3
本实施例对基于第二级交换单元的链路控制进行举例说明。
第二级交换单元不对称场景如图12所示,第二级交换单元2#与第三级交换单元7#、第三级交换单元8#各有1条高速串行链路互联,但是由于链路异常等原因,第二级交换单元2#与第三级交换单元7#之间的一条链路断开,那么第二级交换单元2#只与第三级交换单元8#之间有1条链路互联,那么经过第二级交换单元2#,只能通过与第三级交换单元8#只有一条链路可以到达目的交换接入单元7#与目的交换接入单元8#,针对这种情况,处理步骤如下:
步骤001:在中心机框上的第二级交换单元2#中,由拓扑检测模块检测读取转发表和机框表获取其连接关系,转发表中的索引是目的交换接入单元,内容则是可以到达该目的交换接入单元的链路编号及该链路速率(即带宽),机框表用于指示某条链路是与哪个业务机框互联,其索引为业务框号,内容是该业务框互联对应的输入链路编号与及链路速率(即带宽);
步骤002:第二级交换单元2#从目的交换接入单元7#开始,根据其连接关系和各条链路的链路速率,计算到达该目的交换接入单元所在的目的端业务机框的输出带宽,同样,设第二级交换单元2#的输入输出链路的带宽权重都为1,第二级交换单元2#只能通过1条链路通过第三级交换单元8#到达目的交换接入单元3#,因此在第二级交换单元2#中到达目的交换接入单元7#的输出带宽为1;
步骤003:从源端业务机框1开始,根据机框表得到业务框1与第二级交换单元2#共有2条链路互联,各条链路依次累加计算业务机框1到该目的交换单元7#的输入带宽,并与输出带宽进行比较,当,由于业务框1与第二级交换单元#2共有2条链路互联,因此向第一条链路的相应输出链路向传递可以到达目的交换接口7#的路由信息,业务机框1中的第三级交换单元1#接收到此信息后通过内部总线传递给业务机框1的相应第一级交换单元1#;向第二条链路的相应输出链路传递不可以到达目的交换接口7#的路由信息,业务机框1中的第三级交换单元2#接收到此信息后通过内部总线传递给业务机框1中的第一级交换单元2#;
步骤004:轮询到源端业务机框3时,重复步骤003的操作,同样实现了向业务机框3中的第一级交换接入单元5#1条输出链路可以到达目的交换接口7#,第一级交换接入单元6#1条输出链路不可以到达目的交换接口7#;
步骤005:对下一个目的交换接入单元8#,重复步骤002到步骤004的操作;
经过在第二级交换单元2#处的处理,实现了对控制各个业务框只有1条输入链路可以通过1条链路到达7#目的交换接入单元与目的交换接入单元8#,实现了输入链路与输出链路带宽的一致,解决了局部拥塞问题。当系统中有更多的目的交换接入单元,可以采取相同的方式实现非对称的处理。
根据上述描述,可以看出,采用本发明所述的方法和装置,保证了针对每个目的交换接入单元,第二级与第三级交换单元的输入带宽小于或等于输出带宽,解决了局部拥塞问题,提高了系统的稳定性。
上述各模块可以由电子设备中的中央处理器(CentralProcessingUnit,CPU)、数字信号处理器(DigitalSignalProcessor,DSP)或可编程逻辑阵列(Field-ProgrammableGateArray,FPGA)实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种链路控制方法,应用于三级交换系统,其特征在于,该方法包括:
获取系统中的链路信息和/或机框信息;
根据所述获取的链路信息和/或机框信息,进行链路控制。
2.根据权利要求1所述的方法,其特征在于,对于第三级交换单元,
所述获取系统中的链路信息和/或机框信息,包括:
获取所述第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
所述根据所述获取的链路信息和/或机框信息,进行链路控制,包括:
根据K=K+Ki计算当前输入带宽值K,其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数;
判断所述K的值是否不大于所述第三级交换单元总的输出带宽,如果是,向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,i=i+1,重新计算K的值,继续判断所述K的值是否不大于所述第三级交换单元总的输出带宽,如此循环;否则,向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息,其中,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和。
3.根据权利要求1所述的方法,其特征在于,对于第二级交换单元,
所述获取系统中的链路信息和/或机框信息,包括:
获取所述第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
所述根据所述获取的链路信息和/或机框信息,进行链路控制,包括:
根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数;
判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,如果是,向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息,i=i+1,重新计算Kt的值,继续判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,如此循环;否则,向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息,遍历所有来自源业务机框t的输入链路后,t=t+1,i=1,重新计算Kt的值,继续判断所述Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽,其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和;
遍历所有与所述第二级交换单元存在链路连接的源业务机框后,h=h+1,t=1,i=1,重复上述步骤,进行链路控制。
4.根据权利要求2或3所述的方法,其特征在于,所述根据获取的链路信息和/或机框信息,进行链路控制,包括:
采用轮询的方式和/或在交换单元输出链路发生故障时,根据获取的链路信息和/或机框信息,对所述交换单元进行链路控制。
5.一种链路控制装置,应用于三级交换系统,其特征在于,该装置包括:获取模块和链路控制模块;其中,
所述获取模块,用于获取系统中的链路信息和/或机框信息;
所述链路控制模块,用于根据所述获取的链路信息和/或机框信息,进行链路控制。
6.根据权利要求5所述的装置,其特征在于,所述链路控制模块包括第一计算子模块、第一判断子模块和第一发送子模块;其中,
所述获取模块,具体用于获取第三级交换单元的输入链路的连接关系和链路速率、以及输出链路的连接关系和链路速率;
所述第一计算子模块,用于根据K=K+Ki计算当前输入带宽值K,其中,K的初始值为0,Ki为所述第三级交换单元第i条输入链路的链路速率,i=1、2、……、n,n为所述第三级交换单元输入链路的个数;以及根据第一发送子模块的通知,重新确定i=i+1,以及重新计算K的值;
所述第一判断子模块,用于判断所述第一计算子模块计算的K的值是否不大于所述第三级交换单元总的输出带宽,所述第三级交换单元总的输出带宽为所述第三级交换单元所有输出链路的链路速率之和;
所述第一发送子模块,用于当第一判断子模块确定K的值不大于所述第三级交换单元总的输出带宽时,向所述第i条输入链路对应的第二级交换单元发送可到达目的交换接入单元信息,之后,通知第一计算子模块;当第一判断子模块确定K的值大于所述第三级交换单元总的输出带宽时,向第i条、第i+1条、……、以及第n条输入链路对应的第二级交换单元发送不可到达目的交换接入单元信息。
7.根据权利要求5所述的装置,其特征在于,所述链路控制模块包括第二计算子模块、第二判断子模块和第二发送子模块;其中,
所述获取模块,具体用于获取第二级交换单元的输入链路的连接关系和链路速率、输出链路的连接关系和链路速率、以及与所述第二级交换单元存在链路连接的业务机框的组成情况;
所述第二计算子模块,用于根据Kt=Kt+Kti计算来自源业务机框t的输入带宽值Kt,其中,Kt的初始值为0,Kti为所述第二级交换单元第i条来自源业务机框t的输入链路的链路速率,i=1、2、……、n,t=1、2、……、m,n为所述第二级交换单元来自源业务机框t的输入链路的个数,m为与所述第二级交换单元存在链路连接的源业务机框的个数;以及在第二发送子模块向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息后,i=i+1,重新计算Kt的值;以及在遍历所有来自源业务机框t的输入链路后,t=t+1,i=1,重新计算Kt的值;以及在遍历所有与所述第二级交换单元存在链路连接的源业务机框后,h=h+1,t=1,i=1,重新计算Kt的值;
所述第二判断子模块,用于判断所述第二计算子模块计算的Kt的值是否不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽;其中,所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽为所述第二级交换单元到目的交换单元h的所有输出链路的链路速率之和;
所述第二发送子模块,用于在第二判断子模块确定Kt的值不大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向所述第i条来自源业务机框t的输入链路对应的第一级交换单元发送可到达目的交换接入单元h的信息;在第二判断子模块确定Kt的值大于所述第二级交换单元到目的交换单元h所在的业务机框的输出带宽时,向第i条、第i+1条、……、以及第n条来自源业务机框t的输入链路对应的第一级交换单元发送不可到达目的交换接入单元h的信息。
8.根据权利要求6或7所述的装置,其特征在于,该装置还包括触发模块,
所述触发模块,用于采用轮询的方式和/或在交换单元输出链路发生故障时,触发链路控制模块进行链路控制。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410567855.2A CN105577575B (zh) | 2014-10-22 | 2014-10-22 | 一种链路控制方法及装置 |
PCT/CN2015/076156 WO2016062024A1 (zh) | 2014-10-22 | 2015-04-09 | 一种链路控制方法及装置 |
US15/519,666 US10250506B2 (en) | 2014-10-22 | 2015-04-09 | Link control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410567855.2A CN105577575B (zh) | 2014-10-22 | 2014-10-22 | 一种链路控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105577575A true CN105577575A (zh) | 2016-05-11 |
CN105577575B CN105577575B (zh) | 2019-09-17 |
Family
ID=55760185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410567855.2A Active CN105577575B (zh) | 2014-10-22 | 2014-10-22 | 一种链路控制方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10250506B2 (zh) |
CN (1) | CN105577575B (zh) |
WO (1) | WO2016062024A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276908A (zh) * | 2016-04-07 | 2017-10-20 | 深圳市中兴微电子技术有限公司 | 一种路由信息处理方法及分组交换设备 |
CN109120539A (zh) * | 2017-06-22 | 2019-01-01 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
WO2021253997A1 (zh) * | 2020-06-16 | 2021-12-23 | 中兴通讯股份有限公司 | 一种路径确定方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070041321A1 (en) * | 2005-08-17 | 2007-02-22 | Fujitsu Limited | Network switch apparatus that avoids congestion at link-aggregated physical port |
CN101179453A (zh) * | 2007-12-06 | 2008-05-14 | 华为技术有限公司 | 一种链路状态检测方法和系统 |
CN101631070A (zh) * | 2008-07-16 | 2010-01-20 | 中国人民解放军信息工程大学 | 三级交换系统及其调度方法 |
CN101917331A (zh) * | 2008-09-11 | 2010-12-15 | 丛林网络公司 | 用于数据中心的系统、方法以及设备 |
US8447902B2 (en) * | 2005-08-05 | 2013-05-21 | Integrated Device Technology, Inc. | Method and apparatus for predictive switching |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450074A (en) | 1991-02-27 | 1995-09-12 | Nec Corporation | Method for setting branch routes in a three-stage cross-connect switch system |
JPH1032585A (ja) | 1996-07-18 | 1998-02-03 | Nec Corp | Atmスイッチ制御方式 |
US8265071B2 (en) | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US8325749B2 (en) | 2008-12-24 | 2012-12-04 | Juniper Networks, Inc. | Methods and apparatus for transmission of groups of cells via a switch fabric |
US8755396B2 (en) | 2008-09-11 | 2014-06-17 | Juniper Networks, Inc. | Methods and apparatus related to flow control within a data center switch fabric |
US8340088B2 (en) | 2008-09-11 | 2012-12-25 | Juniper Networks, Inc. | Methods and apparatus related to a low cost data center architecture |
US8730954B2 (en) | 2008-09-11 | 2014-05-20 | Juniper Networks, Inc. | Methods and apparatus related to any-to-any connectivity within a data center |
US8213308B2 (en) | 2008-09-11 | 2012-07-03 | Juniper Networks, Inc. | Methods and apparatus for defining a flow control signal related to a transmit queue |
US8335213B2 (en) | 2008-09-11 | 2012-12-18 | Juniper Networks, Inc. | Methods and apparatus related to low latency within a data center |
US8804711B2 (en) | 2008-12-29 | 2014-08-12 | Juniper Networks, Inc. | Methods and apparatus related to a modular switch architecture |
US8154996B2 (en) | 2008-09-11 | 2012-04-10 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with multi-staged queues |
US20100061367A1 (en) | 2008-09-11 | 2010-03-11 | Pradeep Sindhu | Methods and apparatus related to lossless operation within a data center |
US8804710B2 (en) | 2008-12-29 | 2014-08-12 | Juniper Networks, Inc. | System architecture for a scalable and distributed multi-stage switch fabric |
US9847953B2 (en) | 2008-09-11 | 2017-12-19 | Juniper Networks, Inc. | Methods and apparatus related to virtualization of data center resources |
CN102238072B (zh) | 2010-05-06 | 2015-03-25 | 中兴通讯股份有限公司 | 一种动态选择路由的方法及clos交换网系统 |
CN102281192B (zh) | 2011-07-19 | 2017-09-29 | 中兴通讯股份有限公司 | 交换网络芯片的信元处理方法及装置 |
-
2014
- 2014-10-22 CN CN201410567855.2A patent/CN105577575B/zh active Active
-
2015
- 2015-04-09 WO PCT/CN2015/076156 patent/WO2016062024A1/zh active Application Filing
- 2015-04-09 US US15/519,666 patent/US10250506B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447902B2 (en) * | 2005-08-05 | 2013-05-21 | Integrated Device Technology, Inc. | Method and apparatus for predictive switching |
US20070041321A1 (en) * | 2005-08-17 | 2007-02-22 | Fujitsu Limited | Network switch apparatus that avoids congestion at link-aggregated physical port |
CN101179453A (zh) * | 2007-12-06 | 2008-05-14 | 华为技术有限公司 | 一种链路状态检测方法和系统 |
CN101631070A (zh) * | 2008-07-16 | 2010-01-20 | 中国人民解放军信息工程大学 | 三级交换系统及其调度方法 |
CN101917331A (zh) * | 2008-09-11 | 2010-12-15 | 丛林网络公司 | 用于数据中心的系统、方法以及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276908A (zh) * | 2016-04-07 | 2017-10-20 | 深圳市中兴微电子技术有限公司 | 一种路由信息处理方法及分组交换设备 |
CN109120539A (zh) * | 2017-06-22 | 2019-01-01 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
CN109120539B (zh) * | 2017-06-22 | 2022-05-13 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
WO2021253997A1 (zh) * | 2020-06-16 | 2021-12-23 | 中兴通讯股份有限公司 | 一种路径确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180145912A1 (en) | 2018-05-24 |
CN105577575B (zh) | 2019-09-17 |
WO2016062024A1 (zh) | 2016-04-28 |
US10250506B2 (en) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102263697B (zh) | 一种聚合链路流量分担方法和装置 | |
CN102792646B (zh) | 通信系统、控制装置、通信方法 | |
CN102238072B (zh) | 一种动态选择路由的方法及clos交换网系统 | |
CN111800351B (zh) | 由交换机进行的拥塞通知分组生成 | |
CN104335537A (zh) | 用于层2多播多路径传送的系统和方法 | |
CN107634912A (zh) | 负载均衡方法、装置及设备 | |
CN101753455B (zh) | 转发方法及装置 | |
CN102111327B (zh) | 信元调度方法和系统 | |
CN105791169A (zh) | 软件定义网络中交换机转发控制、转发方法及相关设备 | |
CN108234320B (zh) | 报文传输方法及交换机 | |
CN104601461B (zh) | 一种纵向智能弹性架构系统中的报文转发方法及装置 | |
CN110832812B (zh) | 一种路径计算的方法、装置和系统 | |
CN105577575A (zh) | 一种链路控制方法及装置 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN104363171B (zh) | 一种用户报文的转发控制方法以及处理节点 | |
CN111654437A (zh) | 基于数据中心的报文转发方法及装置 | |
CN102333023B (zh) | 多链接透明互联网络中的通信方法及设备 | |
CN101714940B (zh) | 路径计算及建立方法、路径计算单元和节点、网络 | |
CN105765909A (zh) | 一种链路切换方法及装置 | |
Liu et al. | NCoS: A framework for realizing network coding over software-defined network | |
CN106105282A (zh) | 利用链路缓冲区状态进行流量工程的系统和方法 | |
US11005778B1 (en) | Priority flow control in a distributed network switch architecture | |
CN107276908A (zh) | 一种路由信息处理方法及分组交换设备 | |
CN111434079B (zh) | 一种数据通信方法及装置 | |
CN104954249A (zh) | 一种报文转发方法、系统及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |