![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/563371774502a8e6d36e77f00dea4a7b.png)
DPDK 流量管理API使用指南
![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/54d70973b15048845425f8da4400d974.png)
本文介绍了DPDK 17.08版本中新引入的API,用于流量管理(TM,traffic management)。 该API为服务质量(QoS, quality of service)流量管理配置提供了通用界面,该界面集合了由网卡(NIC),网络处理单元(NPU),专用集成电路(ASIC),现场可编程门阵列(FPGA),多核CPU等提供的一套标准特性, 其中包括:分层调度,流量整形,拥塞管理,数据包标记等其他功能。
此API是通用的,因为它不受底层硬件,软件或混合硬件/软件实现的影响。 它作为DPDK ethdev API的扩展,与流API类似。 包含一个典型的DPDK函数调用序列来演示实现。
![640?wx_fmt=gif](https://img-blog.csdnimg.cn/img_convert/37cb016edca409ef1974a70905b4de71.gif)
主要特性
![640?wx_fmt=gif](https://img-blog.csdnimg.cn/img_convert/9212344eb23b90339f372e57fda13daa.gif)
分层调度
TM API允许用户为具有特定实现支持的分层节点选择严格优先级(SP)和加权公平队列(WFQ)。无论在树中的节点级别/位置如何,SP和WFQ算法都可以在调度分层结构的每个节点使用。 SP算法用于在不同优先级的同级节点之间进行调度,而WFQ用于在具有相同优先级的同级节点组之间进行调度。
示例:如图1所示,根节点(节点0)具有三个具有不同优先级的子节点。因此,根节点将根据其优先级使用SP算法调度子节点,其中零(0)作为最高优先级。节点1有三个ID分别为11,12和13的子节点,并且所有子节点具有相同的优先级(即优先级0)。因此,节点1将使用WFQ机制来对它们进行调度。某一子节点的WFQ权重,是相对于具有相同优先级的所有兄弟节点的权重总和而得出的,其中一 (1) 作为最低权重。