DPDK QOS2 -- DPDK的QOS框架

VPP HQOS处理报文整体框架如下图所示:

上图的QOS就是DPDK实现的HQOS,它的层次如下,官网摘录:

The scheduling hierarchy As shown below. The first level of the hierarchy is the Ethernet TX port 1/10/40 GbE, with subsequent hierarchy levels defined as subport, pipe, traffic class and queue.

Typically, each subport represents a predefined group of users, while each pipe represents an individual user/subscriber. Each traffic class is the representation of a different traffic type with specific loss rate, delay and jitter requirements, such as voice, video or data transfers. Each queue hosts packets from one or multiple connections of the same type belonging to the same user.

The functionality of each hierarchical level is detailed in the following table.

 

#

Level

Siblings per Parent

Functional Description

1

Port

 
  1. Output Ethernet port 1/10/40 GbE.
  2. Multiple ports are scheduled in round robin order with all ports having equal priority.

2

Subport

Configurable (default: 8)

  1. Traffic shaping using token bucket algorithm (one token bucket per subport).
  2. Upper limit enforced per Traffic Class (TC) at the subport level.
  3. Lower priority TCs able to reuse subport bandwidth currently unused by higher priority TCs.

3

Pipe

Configurable (default: 4K)

  1. Traffic shaping using the token bucket algorithm (one token bucket per pipe.

4

Traffic Class (TC)

4

  1. TCs of the same pipe handled in strict priority order.
  2. Upper limit enforced per TC at the pipe level.
  3. Lower priority TCs able to reuse pipe bandwidth currently unused by higher priority TCs.
  4. When subport TC is oversubscribed (configuration time event), pipe TC upper limit is capped to a dynamically adjusted value that is shared by all the subport pipes.

5

Queue

4

  1. Queues of the same TC are serviced using Weighted Round Robin (WRR) according to predefined weights.

 

从上面描述可以了解DPDK 支持5级HQOS,每一级的调度方式已经固化,没有上面的LINUX QOS框架的灵活性,每一个层级解释如下:

1、Port代表物理网口,每个Port下最多64Subport(默认8个),每一个Subport可以代表一组用户,Port层使用RR调度,说明当前的DPDK的QOS出队不是每个Port单独调度的,而是所有的Port一起调度。

2、每个Subport节点下最多有1MPipe节点(默认4K),一个节点可以代表一组用户中的某个用户, Subport层,使用RR调度,使用TB限速。

3、每个Pipe节点下有4TC(traffic class)节点,每一个节点代表用户中的某一种流量类型,如数据、语音、媒体等业务流量类型,其中每一种TC可以有不同的速率、 延迟、抖动要求,Pipe使用RR调度,使用TB限速。

4、每一个TC节点下有4Queue节点,每个Queue节点代表一个真实的队列,TC层使用SP调度,使用TB限速。

5、Queue 层4个,采用WRR调度,Queue层才是真正的叶子节点,存放真正的报文。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值