DPDK Qos之报文处理流水线

原创翻译,转载请注明出处。

 

下面是一个支持Qos的复杂报文处理流水线的图;


流水线是通过DPDP可重用的软件库构建出来的。在流水线里实现QoS主要是如下模块:policer,dropper,shceduler。下面是这些模块的功能性描述。

#模块功能描述
 1 Packet I/O Rx&Tx  从网卡端口接收/发送报文,Intel 1/10GbE轮询模式(PMD)
 2 Packet parser  确定报文的协议栈,检查报文头的完整性
 3 Flow classification 映射输入报文到一个已知的流,使用hash函数(jhash,CRC等)精确匹配表查找和用桶处理冲突。
 4 Policer 报文统计,使用srTCM(RFC2697)或者trTCM(RFC2698)
 5 LoadBalancer 分发报文给每个工作者,并使得每个工作者负载均衡。保持对每个工作者的传输流的亲和性与报文在流的顺序。
 6 Worker threads 特定上层应用程序工作量的代称(比如IP协议栈)
 7 Dropper  使用随机丢弃或者带权随机丢弃算法来拥塞管理。丢包是基于当前调度器队列负载级别和报文优先级,如果拥塞,首先丢弃低优先级报文
 8 Hierarchical Scheduler 5级分层调度(级别是:出端口,子端口,流水线,流分类和队列),有成千上万(典型是64K)的叶子节点(队列)。在子端口和流水线实现了流量整形,在流分类实现严格优先级,在每个流水线的流分类的队列里实现WRR(加权循环)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


下面列出的基础模块始终在整个报文处理流水线中使用

#模块 功能描述
 1 Buffer manager 支持全局缓冲区池和每个线程的私有的缓存
 2 Queue manager  支持在流水线之间传递消息
 3 Power saving 支持在低利用率期间节能

 


在每个特定应用程序需要的性能级别上,流水线块到CPU核的映射是可配置的,并且这些特性对每一个流水线块都是开启的。当其他的块可能映射到同一个CPU核时,有些流水线块可能会消耗多个CPU核(即每个CPU核运行不同的块实例来处理不同的收包)。

转载于:https://www.cnblogs.com/danxi/p/6655468.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值