1. 程式人生 > >Cisco VPP(1) 簡單介紹

Cisco VPP(1) 簡單介紹

edit man 可擴展 結點 靈活 ng- ovs linux 功能

一、簡單介紹

VPP全稱Vector Packet Processing。是Cisco2002年開發的商用代碼。

2016年2月11號,Linux基金會創建FD.io項目。Cisco將VPP代碼的開源版本號加入該項目。眼下已成為該項目的核心。

VPP執行於用戶空間,支持多種收包方式,經常使用的是DPDK。

VPP主要有兩個主要功能:框架可擴展;成熟的交換/路由功能。

二、擴展性

1、結點操作

VPP平臺是通過graphnode串聯起來處理數據包。相似於freebsd的netgraph。

通過插件的形式引入新的graph node或者又一次排列數據包的gpragh node。將插件加入到插件文件夾中,執行程序的時候就會自己主動載入插件。

另外插件也能夠依據硬件情況通過某個node直接連接硬件進行加速。

VPP平臺能夠用於構建不論什麽類型的數據包處理應用。比方負載均衡、防火墻、IDS、主機棧。也能夠是一個組合,比方給負載均衡加入一個vSwitch。

通過創建插件。能夠隨意擴展例如以下功能:

???????自己定義新的圖結點

???????又一次排列圖結點

???????加入底層API

加入插件例如以下圖所看到的:

技術分享圖片

2、可編程能力

VPP還提供了基於共享內存或者消息隊列的高性能內部API。眼下VPP平臺支持C和JAVAclient進行內部API綁定。

例如以下圖所以,我們完畢一個外部應用對VPP進行操作:

技術分享圖片

以上的編程能力是針對內部API的調用,另外還能夠支持遠程可編程能力。

遠程可編程能力能夠通過Data Plane Management Agent來實現。

通過外部API與Data Plane Management Agent進行通信。

Data Plane Management Agent通過內部API與VPP應用(引擎)進行通信。

這是一個很靈活的方法,不論什麽人能夠加入,可是須要外部API和Data Plane Management Agent匹配。以實現特定需求的VPP應用。

下圖展示Agent對接VPP和外部程序:

技術分享圖片

案例Honeycomb Agent:

HoneycombAgent通過netconf和restconf公布了yang模型的VPP功能。 像OpenDaylight 這樣支持netconf/yang的控制器能夠掛載Honeycomb 管理代理來工作。而OpenDaylight支持OpenStack Neutron。所以例如以下圖所看到的OpenStack Neutron能夠集成到vpp來:

技術分享圖片

三、網絡功能

1、網絡特性

VPP擁有的網絡特性例如以下:

???????高速查找路由表、CAM表

???????隨意n元組分類

???????商用級別的交換/路由功能

?

VPP能提供的全部功能例如以下:

技術分享圖片

2、網絡性能

多核基準性能樣例 (UCS-C240 M3, 3.5gHz,全部內存通道轉發ipv4):

???????1 core: 9 MPPS in+out

???????2 cores: 13.4 MPPS in+out

???????4 cores: 20.0 MPPS in+out

?

以下幾個圖展示的是和OVS+DPDK的性能對照:

技術分享圖片

技術分享圖片

下圖是在Haswell x86 架構的E5-2698v3 2x16C 2.3GHz上測試,圖中顯示了12口10GE,16核。ipv4轉發:

技術分享圖片

資料來源於:https://fd.io/


歡迎加入VPP討論群:417538415

Cisco VPP(1) 簡單介紹