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核運行不一樣的塊實例來處理不一樣的收包)。函數

相關文章
相關標籤/搜索