Cisco VPP(1) 簡單介紹
一、簡單介紹
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) 簡單介紹