Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020114133 - PQ EXPANSION IMPLEMENTATION METHOD, DEVICE, EQUIPMENT AND STORAGE MEDIUM

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186  

权利要求书

1   2   3   4   5   6   7   8   9  

附图

1   2   3   4   5   6   7   8   9   10   11  

说明书

发明名称 : 一种PQ队列扩容实现方法、装置、设备及存储介质

[0001]
本申请要求在2018年12月04日提交中国专利局、申请号为201811473910.6的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。

技术领域

[0002]
本申请涉及通信领域但不限于通信领域,尤其涉及一种优先(Priority Queueing,PQ)队列扩容实现方法、装置、设备及存储介质。

背景技术

[0003]
QoS(Quality of Service)即服务质量。对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。例如,在网络总带宽固定的情况下,如果某类业务占用带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。
[0004]
QoS技术包括流分类、流量监管、流量整形、接口限速、拥塞管理和拥塞避免等。
[0005]
其中,拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。目前广泛采用的队列技术主要包括:FIFO(先进先出队列)、PQ(优先队列)、WFQ(加权公平队列)、CBWFQ(基于类的加权公平队列)等。
[0006]
因PQ(Priority Queueing,优先队列)按照严格按照队列的优先级发送报文,如可支持QoS调度的硬件PQ队列个数不足时,低优先级队列中的报文将一直不能发送。
[0007]
发明内容
[0008]
本申请实施例提供一种PQ队列扩容实现方法、装置、设备及存储介质。
[0009]
第一方面,本申请实施例提供一种PQ队列扩容实现方法,所述方法包括:
[0010]
依据配置的QOS业务生成PQ队列扩容请求;
[0011]
基于所述PQ队列扩容请求,选择PQ队列号;
[0012]
基于丢弃阈值和所述PQ队列号生成模拟PQ队列号;
[0013]
将所述QOS业务的报文放入模拟PQ队列号。
[0014]
作为本申请实施例的一种具体实现方式,所述选择PQ队列号,包括:
[0015]
在资源池里选择PQ队列号。
[0016]
作为本申请实施例的一种具体实现方式,所述依据配置的QOS业务生成PQ队列扩容请求,包括:
[0017]
配置QOS业务的PQ队列数量以及所述QOS业务的报文的优先级;
[0018]
基于配置的PQ队列数量生成PQ队列扩容请求。
[0019]
作为本申请实施例的一种具体实现方式,所述将所述QOS业务的报文放入模拟PQ队列号的步骤之后,还包括,
[0020]
将所述模拟PQ队列号还原为PQ队列号。
[0021]
作为本申请实施例的一种具体实现方式,所述基于丢弃阈值和所述PQ队列号生成模拟PQ队列号,包括:
[0022]
选择多个不同的丢弃阈值;
[0023]
基于所述PQ队列号和多个不同的丢弃阈值生成多个模拟PQ队列号。
[0024]
作为本申请实施例的一种具体实现方式,将所述QOS业务的报文放入模拟的PQ队列号,包括:
[0025]
查询所述模拟PQ队列号信息;
[0026]
基于查询信息,将不同优选级别的报文放入相应的模拟PQ队列号。
[0027]
第二方面,一种PQ队列扩容实现装置,包括:
[0028]
配置模块,配置为依据配置的QOS业务生成PQ队列扩容请求;
[0029]
控制模块,配置为基于所述PQ队列扩容请求,选择PQ队列号;
[0030]
确定模块,配置为基于丢弃阈值和所述PQ队列号生成模拟PQ队列号;
[0031]
入队模块,配置为将所述QOS业务的报文放入模拟PQ队列号。
[0032]
第三方面,一种网络设备,所述网络设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现第一方面中任一所述的方法的步骤。
[0033]
第四方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有 计算机程序,所述计算机程序被处理器执行时实现第一方面中任一所述的方法的步骤。
[0034]
本申请实施例通过基于QOS业务配置的队列的个数,将具体的硬件PQ队列号生成模拟PQ队列号,模拟PQ队列相对于硬件PQ队列个数进行了扩容,由此解决了现有的可支持QoS调度的PQ队列个数受到限制的问题,取得了积极的技术效果。
[0035]
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

[0036]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0037]
图1为本申请实施例中端到端QoS模型图;
[0038]
图2为本申请实施例中PQ技术报文发送示意图;
[0039]
图3为本申请实施例中RED类算法中差别丢弃的示意图;
[0040]
图4为本申请实施例中WRED策略差别丢弃的示意图;
[0041]
图5为本申请实施例所述的PQ队列扩容实现方法的流程图;
[0042]
图6为本申请实施例所述的PQ队列扩容实现方法的流程图;
[0043]
图7为本申请实施例所述的PQ队列扩容实现装置的原理框图;
[0044]
图8为本申请实施例四中流量管理芯片的资源的原理框图;
[0045]
图9为现有技术中队列优先级调度示意图;
[0046]
图10为本申请实施例四中采用PQ队列扩容后的队列优先级调度示意图;
[0047]
图11为本申请实施例四所述的具体实际应用的流程图。

具体实施方式

[0048]
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本 公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0049]
如图1所示,流分类、流量监管、流量整形、拥塞管理和拥塞避免主要完成如下功能:
[0050]
流分类:采用一定的规则识别符合某类特征的报文,对网络业务进行区分服务。
[0051]
流量监管:对进入或流出设备的特定流量进行监管。当流量超出设定值时,可以采取限制或惩罚措施,以保护网络资源不受损害。可以作用在接口入方向和出方向。
[0052]
流量整形:主动调整流的输出速率,用来使流量适配下游设备,可供给的网络资源,避免不必要的报文丢弃,通常作用在接口出方向。
[0053]
拥塞管理:当拥塞发生时制定一个资源的调度策略,以决定报文转发的处理次序,通常作用在接口出方向。
[0054]
拥塞避免:监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整队列长度来解除网络的过载,通常作用在接口出方向。
[0055]
拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。目前广泛采用的队列技术主要包括:FIFO(先进先出队列)、PQ(优先队列)、WFQ(加权公平队列)、CBWFQ(基于类的加权公平队列)等。
[0056]
PQ(Priority Queueing,优先队列),PQ是针对关键业务应用设计的。关键业务有一个重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。PQ可以根据网络协议(比如IP,IPX)、数据流入接口、报文长短、源地址/目的地址等灵活地指定优先次序。优先队列将报文分成4类,分别为高优先队列(high)、中优先队列(middle)、正常优先队列(normal)和低优先队列(low),它们的优先级依次降低。缺省情况下,数据流进入normal队列。如图2所示。在队列调度时,PQ严格按照优先级从高到低的次序,优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。这样,将关键业务的分组放入较高优先级的队列,将非关键业务的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。
[0057]
PQ的缺点是如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文将一直得不到服务。
[0058]
拥塞避免技术具体采用如下技术:
[0059]
如现有的丢包策略:
[0060]
现有的丢包策略采用尾部丢弃(Tail-Drop)的方法。当队列的长度达到某一最大值后,所有新到来的报文都将被丢弃。
[0061]
这种丢弃策略会引发TCP全局同步现象——当队列同时丢弃多个TCP连接的报文时,将造成TCP超时,从而引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。
[0062]
2、RED与WRED。
[0063]
为避免TCP全局同步现象,可使用RED(Random Early Detection,随机早期检测)或WRED(Weighted Random Early Detection,加权随机早期检测)。
[0064]
在RED类算法中,为每个队列都设定上限和下限,对队列中的报文进行如下处理:当队列的长度小于下限时,不丢弃报文;当队列的长度超过上限时,丢弃所有到来的报文;当队列的长度在上限和下限之间时,开始随机丢弃到来的报文。队列越长,丢弃概率越高,但有一个最大丢弃概率。如图3所示。
[0065]
WRED将IP报头中的DSCP和RED结合起来,为优先通信流(高优先级)提供与标准通信流(优先级较低)有差别的丢弃阈值。换句话说,WRED根据IP报头中的DSCP(Differentiated Services Code Point,差分服务代码点)对数据包进行有选择的丢弃。WRED策略实现的差别丢弃阈值如图4所示。
[0066]
WRED监视网络设备中队列的平均长度,所以它可以根据队列长度决定何时开始丢弃数据包。队列的平均长度是队列长度被低通滤波后的结果。它既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性的数据流造成不公正的待遇。
[0067]
当平均队列长度超过用户规定的最小丢弃阈值时,WRED开始按照一定的丢弃概率丢弃数据包,队列的长度越长,丢弃的概率越高。如果平均队列长度超过用户规定的最大丢弃阈值,则WRED转为队尾丢弃,即所有后面到达的数据包都将被丢弃。
[0068]
丢弃优先级(Drop Priority,DP)是从IP报文头中的DSCP优先级映射得到的,Precedence优先级越高,丢弃概率越低。
[0069]
本申请实施例提供一种PQ队列扩容实现方法,如图5所示,可包括以下步骤:
[0070]
步骤S501:依据配置的QOS业务生成PQ队列扩容请求。
[0071]
配置QOS业务即将IP报文分为多个队列,并分别各个队列的优先级,如高 优先队列、中优先队列、正常优先队列和低优先队列,然后依据队列的个数和队列优先级发送PQ队列扩容请求。
[0072]
在一个具体的应用场景中,如将QOSIP报文分为8个队列,在生成PQ队列扩容请求中,需要包含8个队列的信息,使在扩容时知道需要扩容为几个PQ队列。
[0073]
步骤S502:基于所述PQ队列扩容请求,选择PQ队列号。
[0074]
选择PQ队列号是在选择具体的硬件的PQ队列号,在一个具体的应用场景中,如接收到需要扩容为8个PQ队列的PQ队列扩容请求后,选择扩展为8个PQ队列需要的硬件PQ队列,如选择4个硬件PQ队列。文中的PQ队列好均指硬件的PQ队列号。
[0075]
在一些实施例中,选择硬件PQ队列是在资源池里选择的。即将所有的硬件PQ队列都是放置在一个资源池内的,需要选择硬件PQ队列时,去资源池内查询有哪些硬件PQ队列是处于可用状态,然后根据需要在可用状态的硬件PQ队列选中,从而得到选中的硬件PQ队列的PQ队列号。在硬件PQ队列不被使用时,要及时将相应的硬件PQ队列释放到资源池内,便于其他业务再次调用,从而设置资源池,并将所有硬件PQ队列放置到资源池内,提高了硬件PQ队列的使用效率。
[0076]
步骤S503:基于丢弃阈值和所述PQ队列号生成模拟PQ队列号。
[0077]
在选择了硬件PQ队列号后,在硬件PQ队列号信息基础上,填充丢弃阈值信息,生成多个模拟PQ队列号。
[0078]
在一个具体的应用场景中,QOS业务需要8个队列,并选择了4个PQ队列号的基础上,填充丢弃阈值信息生成8个模拟PQ队列号。
[0079]
步骤S504:将所述QOS业务的报文放入模拟PQ队列号。
[0080]
将QOS业务中IP报文的队列按照优先级放入到模拟PQ队列号中。
[0081]
在一个具体的应用场景中,在生成8个模拟PQ队列号后将QOS业务中的8个队列按照优先级别放入到相应的8个模拟PQ队列号中。然后按照优先级依次发送。
[0082]
在本申请的一个实施例中:步骤S501:依据配置的QOS业务生成PQ队列扩容请求,包括:
[0083]
配置QOS业务的PQ队列数量以及所述QOS业务的报文的优先级。
[0084]
配置QOS业务即将IP报文分为多个队列,并分别各个队列的优先级,如高优先队列、中优先队列、正常优先队列和低优先队列。
[0085]
基于配置的PQ队列数量生成PQ队列扩容请求。
[0086]
依据队列的个数和队列优先级发送PQ队列扩容请求。
[0087]
在本申请的一个实施例中:步骤S503:所述基于丢弃阈值和所述PQ队列号生成模拟PQ队列号,包括:
[0088]
选择多个不同的丢弃阈值。
[0089]
丢弃阈值可以选择多个,具体根据实际应用确定,在一个具体的应用场景中,选择两个丢弃阈值。
[0090]
基于所述PQ队列号和多个不同的丢弃阈值生成多个模拟PQ队列号。
[0091]
基于选择的硬件PQ队列号和选择的丢弃阈值对表信息进行修改,从而生成多个模拟PQ队列号。
[0092]
在一个具体的应用场景中,在选择了4个对应的PQ队列号后,将两个丢弃阈值填充到4个PQ队列号后,生成8个模拟PQ队列号。
[0093]
在本申请的一个可选实施例中:步骤504:将所述QOS业务的报文放入模拟的PQ队列号,包括:
[0094]
查询所述模拟PQ队列号信息。
[0095]
基于查询信息,将不同优选级别的报文放入相应的模拟PQ队列号。
[0096]
生成模拟PQ队列号后,将报文信息按照优先级对应到放入到模拟PQ队列号中,然后按照优先级依次发送模拟PQ队列号内的报文信息。
[0097]
本申请实施例提供一种PQ队列扩容实现方法,如图6所示,包括以下具体步骤:
[0098]
步骤S601:依据配置的QOS业务生成PQ队列扩容请求。
[0099]
配置QOS业务即将IP报文分为多个队列,并分别各个队列的优先级,如高优先队列、中优先队列、正常优先队列和低优先队列,然后依据队列的个数和队列优先级发送PQ队列扩容请求。
[0100]
在一个具体的应用场景中,如将QOSIP报文分为8个队列,在生成PQ队列扩容请求中,需要包含8个队列的信息,使在扩容时知道需要扩容为几个PQ队列。
[0101]
步骤S602:基于所述PQ队列扩容请求,选择PQ队列号。
[0102]
选择PQ队列号是在选择具体的硬件的PQ队列号,在一个具体的应用场景 中,如接收到需要扩容为8个PQ队列的PQ队列扩容请求后,选择扩展为8个PQ队列需要的硬件PQ队列,如选择4个硬件PQ队列。文中的PQ队列好均指硬件的PQ队列号。
[0103]
可选的,选择硬件PQ队列是在资源池里选择的。即将所有的硬件PQ队列都是放置在一个资源池内的,需要选择硬件PQ队列时,去资源池内查询有哪些硬件PQ队列是处于可用状态,然后根据需要在可用状态的硬件PQ队列选中,从而得到选中的硬件PQ队列的PQ队列号。在硬件PQ队列不被使用时,要及时将相应的硬件PQ队列释放到资源池内,便于其他业务再次调用,从而设置资源池,并将所有硬件PQ队列放置到资源池内,提高了硬件PQ队列的使用效率。
[0104]
步骤S603:基于丢弃阈值和所述PQ队列号生成模拟PQ队列号。
[0105]
在选择了硬件PQ队列号后,在硬件PQ队列号信息基础上,填充丢弃阈值信息,生成多个模拟PQ队列号。
[0106]
在一个具体的应用场景中,QOS业务需要8个队列,并选择了4个PQ队列号的基础上,填充丢弃阈值信息生成8个模拟PQ队列号。
[0107]
步骤S604:将所述QOS业务的报文放入模拟PQ队列号。
[0108]
将QOS业务中IP报文的队列按照优先级放入到模拟PQ队列号中。
[0109]
在一个具体的应用场景中,在生成8个模拟PQ队列号后将QOS业务中的8个队列按照优先级别放入到相应的8个模拟PQ队列号中。然后按照优先级依次发送。
[0110]
步骤S605:将所述模拟PQ队列号还原为PQ队列号。
[0111]
在模拟PQ队列号内的报文发送完毕后,需要将模拟PQ队列号还原为原来的硬件的PQ队列号,将模拟PQ队列号解除,并将PQ队列放入到资源池内以便于被其他QOS业务调用。
[0112]
本申请实施例提供一种PQ队列扩容实现装置,如图7所示,包括:
[0113]
配置模块701,配置为依据配置的QOS业务生成PQ队列扩容请求。
[0114]
配置QOS业务即将IP报文分为多个队列,并分别各个队列的优先级,如高优先队列、中优先队列、正常优先队列和低优先队列,然后依据队列的个数和队列优先级发送PQ队列扩容请求。
[0115]
在一个具体的应用场景中,如将QOSIP报文分为8个队列,在生成PQ队列扩容请求中,需要包含8个队列的信息,使在扩容时知道需要扩容为几个PQ队列。
[0116]
控制模块702,配置为基于所述PQ队列扩容请求,选择PQ队列号。
[0117]
选择PQ队列号是在选择具体的硬件的PQ队列号,在一个具体的应用场景中,如接收到需要扩容为8个PQ队列的PQ队列扩容请求后,选择扩展为8个PQ队列需要的硬件PQ队列,如选择4个硬件PQ队列。文中的PQ队列好均指硬件的PQ队列号。
[0118]
在一些实施例中,选择硬件PQ队列是在资源池里选择的。即将所有的硬件PQ队列都是放置在一个资源池内的,需要选择硬件PQ队列时,去资源池内查询有哪些硬件PQ队列是处于可用状态,然后根据需要在可用状态的硬件PQ队列选中,从而得到选中的硬件PQ队列的PQ队列号。在硬件PQ队列不被使用时,要及时将相应的硬件PQ队列释放到资源池内,便于其他业务再次调用,从而设置资源池,并将所有硬件PQ队列放置到资源池内,提高了硬件PQ队列的使用效率。
[0119]
确定模块703,配置为基于丢弃阈值和所述PQ队列号生成模拟PQ队列号;
[0120]
在选择了硬件PQ队列号后,在硬件PQ队列号信息基础上,填充丢弃阈值信息,生成多个模拟PQ队列号。
[0121]
在一个具体的应用场景中,QOS业务需要8个队列,并选择了4个PQ队列号的基础上,填充丢弃阈值信息生成8个模拟PQ队列号。
[0122]
入队模块704,配置为将所述QOS业务的报文放入模拟PQ队列号。
[0123]
将QOS业务中IP报文的队列按照优先级放入到模拟PQ队列号中。
[0124]
在接入QOS业务之后,确定模块将扩容的模拟PQ队列号回填给入队模块,流量根据回填的模拟PQ队列号进行分类到各模拟PQ队列。
[0125]
在一个具体的应用场景中,在生成8个模拟PQ队列号后将QOS业务中的8个队列按照优先级别放入到相应的8个模拟PQ队列号中。然后按照优先级依次发送。
[0126]
在本申请的一个实施例中:所述配置模块701,包括:
[0127]
QOS业务配置模块:配置为配置QOS业务的PQ队列数量以及所述QOS业务的报文的优先级。
[0128]
请求生成模块:配置为基于配置的PQ队列数量生成PQ队列扩容请求。
[0129]
在本申请的一个实施例中:装置还包括,解除模块:配置为将所述模拟PQ队列号还原为PQ队列号。
[0130]
在本申请的一个实施例中:所述确定模块703,包括:阈值选择模块:配置为选择多个不同的丢弃阈值;
[0131]
模拟PQ队列号生成模块:配置为基于所述PQ队列号和多个不同的丢弃阈值生成多个模拟PQ队列号。
[0132]
在本申请的一个实施例中:所述入队模块704,包括:查询模块:配置为查询所述模拟PQ队列号信息;
[0133]
报文入队模块:配置为基于查询信息,将不同优选级别的报文放入相应的模拟PQ队列号。
[0134]
在本申请的一个实施例中:装置还包括:表管理模块:配置为接收来自配置模块的PQ队列扩容请求,并将所述PQ队列扩容请求发送至所述控制模块。
[0135]
本实施例是在上述实施例的基础上,结合附图8~11介绍一个本申请的应用实例。
[0136]
一种PQ队列扩容实现方法和装置的具体实际应用,可包括:
[0137]
如图8假设是一款流量管理芯片的资源分配图:图8中从PQ出来的队列按照树的设置流向上一级结点,根优选级无关。例如L3层0号实体的队列总是会流向L2层的0号实体。图中 表示四种优先级的队列,→表示四种优先级队列所有的情况, 表示根据设置使用,Host和Loopback用的时候L1层的30和31号实体无效。
[0138]
如图8所示,本流量管理芯片的资源数是:L1,2(32×8),L3,4(4K×4)模式下的情况,每个L3下挂L4的时候,支持4个优先级。总共支持16K个L4PQ队列。若在现有的设计上,满足支持16K以上的PQ队列支持,或者每个L3挂L4的时候,支持4个以上的优先级是不可能的。
[0139]
即如果一个用户占用一个L3资源,一个用户下面需要支持8类业务报文的优先级调度,在现有的PQ实现方法上,是无法实现的。因为该硬件限制了一个L3下挂4个优先级的L4调度。必须使用两个L3和8个L4队列才可以实现8队列优先级调度如图9所示。
[0140]
步骤可如图11所示:
[0141]
S1101:设备初始化。
[0142]
初始状态:没有接入QOS业务,流量管理芯片的所有队列都在资源池里待分配。
[0143]
资源池内分配PQ队列具体如下:
[0144]
S1102:申请QOS业务并PQ队列扩容叠加流程。
[0145]
配置模块将包含8条PQ队列的策略QOS业务和PQ队列扩容标记透传到表管理模块。
[0146]
S1103:表管理模块将PQ队列配置和队列扩容标记透传给流量芯片管理模块。
[0147]
S1104:流量管理芯片模块收到表管理模块的信息后,先从资源池分配一个port(L1)、1个subport(L2)、1个class(L3)和4个queue(L4)作为扩容PQ模拟队列的基础调度器和PQ队列。
[0148]
然后生成表信息FLOWID0、FLOWID1、FLOWID2、FLOWID3:
[0149]
FLOWID0:00 0000 0000 0000 0000 0000 00000 0000;
[0150]
FLOWID1:00 0000 0000 0000 0000 0000 00000 0001;
[0151]
FLOWID2:00 0000 0000 0000 0000 0000 00000 0010;
[0152]
FLOWID3:00 0000 0000 0000 0000 0000 00000 0011。
[0153]
S1105:同时分配两个不同的队列深度阈值(丢弃阈值)1M、2M匹配不同的precedence。
[0154]
将两个队列深度阈值转化成两个不同的profile信息填充到FLOWID的第30和31bit。
[0155]
经过重新组合后生成新的表信息:
[0156]
FLOWID0_EX1:0000 0000 0000 0000 0000 0000 00000 0000;
[0157]
FLOWID1_EX1:0000 0000 0000 0000 0000 0000 00000 0001;
[0158]
FLOWID2_EX1:0000 0000 0000 0000 0000 0000 00000 0010;
[0159]
FLOWID3_EX1:0000 0000 0000 0000 0000 0000 00000 0011;
[0160]
FLOWID0_EX2:0100 0000 0000 0000 0000 0000 00000 0000;
[0161]
FLOWID1_EX2:0100 0000 0000 0000 0000 0000 00000 0001;
[0162]
FLOWID2_EX2:0100 0000 0000 0000 0000 0000 00000 0010;
[0163]
FLOWID3_EX2:0100 0000 0000 0000 0000 0000 00000 0011。
[0164]
S1106:然后将新的表信息回填给表管理模块。同时将调度信息配置通过SDK配置到底层芯片。
[0165]
S1107:入队模块通过查询表管理模块中的flowid信息,将不同precedence的报文送入到不同的模拟PQ队列号。实际入队的是FLOWID0、FLOWID1、FLOWID2、FLOWID3。从效果看是8条PQ业务。
[0166]
综上,8条PQ队列的QOS业务在实际中只使用了4个硬件队列资源,极大了减少了资源的使用。不仅如此,在有限的硬件资源限制下,可以支持超出硬件资源限制的配置实例。
[0167]
S1108:解除QOS业务。
[0168]
解除QOS业务具体如下:配置模块将解除的8条PQ队列的策略QOS业务和PQ队列扩容标记透传到表管理模块。
[0169]
表管理模块将解除的8条PQ队列配置和队列扩容标记透传给流量芯片管理模块。同时表管理模块将回填的flowid恢复默认值。
[0170]
流量管理芯片模块将QOS调度使用的调度器信息、度使用的调度器和PQ队列回收,QOS参数恢复默认值下发给SDK,写入芯片。
[0171]
本实施例中使用较少的硬件队列资源,实现了较多队列配置的应用。节省了流量管理芯片的硬件资源。在资源有限的情况下,可以很好的发挥作用。
[0172]
生成的调度资源如图10所示,将图9与图10进行对比可知:本实施例和现有的实现PQ对的QOS方法在硬件方面的区别包括:本实施例重点是节省了流量管理芯片模块的硬件队列资源。
[0173]
图9所示的现有技术总共使用了8个硬件队列,实现8个PQ队列的调度。
[0174]
图10所述的本实施例总共使用了4个硬件队列,实现了8个PQ队列的调度。需要支持同等的PQ队列数,本实施例中的硬件资源需求更少。
[0175]
本实施例中的配置模块、表管理模块和流量管理芯片管理模块都需要增加PQ队列扩容标记,表管理模块和流量管理模块交互的flowid信息新增两字节丢弃阈值信息。
[0176]
综上可知,通过本实施例,至少存在以下有益效果:
[0177]
现有技术的流量管理芯片模块包含硬件调度队列资源N个,那么支持QOS的调度队列个数最多N个。存在耗费资源的缺点。在硬件调度队列资源有限时,可支持QOS的队列个数受到限制,无法实现队列数扩展。在本实施例中,在接入QOS业务时,在实际的硬件队列资源基础上,模拟出虚拟的PQ队列,节省了硬件调度队列资源,并扩容了可支持QOS业务的队列个数。
[0178]
本申请实施例,提供一种网络设备,可以作为实体装置来理解,包括处理器以及存储有所述处理器可执行指令的存储器,当所述指令被处理器执行时,执行如下操作:配置QOS业务,并依据配置的QOS业务生成PQ队列扩容请求;基于所述PQ队列扩容请求,选择PQ队列号;基于丢弃阈值和所述PQ队列号 生成模拟PQ队列号;将所述QOS业务的报文放入模拟PQ队列号。
[0179]
上述方法步骤的具体实施例过程可参见第一实施例和第二实施例,本实施例在此不再重复赘述。
[0180]
处理器可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本本申请实施例的一个或多个集成电路。其中,存储器配置为存储所述处理器的可执行指令;存储器,配置为存储程序代码,并将该程序代码传输给处理器。存储器可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);还可以包括上述种类的存储器的组合。
[0181]
本申请实施例,提供一种提供计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:配置QOS业务,并依据配置的QOS业务生成PQ队列扩容请求;基于所述PQ队列扩容请求,选择PQ队列号;基于丢弃阈值和所述PQ队列号生成模拟PQ队列号;将所述QOS业务的报文放入模拟PQ队列号。
[0182]
上述方法步骤的具体实施例过程可参见第一实施例和第二实施例,本实施例在此不再重复赘述。其中,计算机可读存储介质包括但不限于为:ROM、RAM、磁盘或光盘等。
[0183]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0184]
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0185]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方 案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
[0186]
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。

权利要求书

[权利要求 1]
一种优先队列PQ队列扩容实现方法,包括: 依据配置的服务质量QOS业务生成PQ队列扩容请求; 基于所述PQ队列扩容请求,选择PQ队列号; 基于丢弃阈值和所述PQ队列号生成模拟PQ队列号; 将所述QOS业务的报文放入所述模拟PQ队列号。
[权利要求 2]
如权利要求1所述的方法,其中,所述选择PQ队列号,包括: 在资源池里选择PQ队列号。
[权利要求 3]
如权利要求1所述的方法,其中,所述依据配置的QOS业务生成PQ队列扩容请求,包括: 配置QOS业务的PQ队列数量以及所述QOS业务的报文的优先级; 基于配置的所述PQ队列数量生成PQ队列扩容请求。
[权利要求 4]
如权利要求3所述的方法,在所述将所述QOS业务的报文放入所述模拟PQ队列号之后,还包括, 将所述模拟PQ队列号还原为PQ队列号。
[权利要求 5]
如权利要求4所述的方法,其中,所述基于丢弃阈值和所述PQ队列号生成模拟PQ队列号,包括: 选择多个不同的丢弃阈值; 基于所述PQ队列号和所述多个不同的丢弃阈值生成多个模拟PQ队列号。
[权利要求 6]
如权利要求5所述的方法,其中,所述将所述QOS业务的报文放入所述模拟PQ队列号,包括: 查询所述模拟PQ队列号信息; 基于查询信息,将不同优选级别的报文放入相应的模拟PQ队列号。
[权利要求 7]
一种优先队列PQ队列扩容实现装置,包括: 配置模块,配置为依据配置的服务质量QOS业务生成PQ队列扩容请求; 控制模块,配置为基于所述PQ队列扩容请求,选择PQ队列号; 确定模块,配置为基于丢弃阈值和所述PQ队列号生成模拟PQ队列号; 入队模块,配置为将所述QOS业务的报文放入所述模拟PQ队列号。
[权利要求 8]
一种网络设备,所述网络设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执 行时实现如权利要求1至6中任一项所述的方法。
[权利要求 9]
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10]  
[ 图 11]