天天看點

多核處理器下的快速包處理軟體架構FastGate

FastGate主要的目标是幫助使用者縮短研發周期,保護已有的代碼,快速開發和靈活部署自己的業務。使用者無需關注多核處理器的硬體細節、無需關注性能和擴充性,隻需專注于自身功能子產品的開發,然後通過和FastGate架構的無縫內建便可以快速形成自己獨有的産品,推出市場,同時又可以根據業務需要,靈活的擴充。

多核處理器下的快速包處理軟體架構FastGate

FastGate架構的的設計和SDN & OpenFlow的思想很吻合。主要特點如下:

(1)控制平面和資料平面分離。控制平面主要包括session、Flow和信令的管理,運作在User Space和Slow Path環境中。資料平面由一精簡的指令集組成,運作在FastPath環境中,專門負責網絡封包的處理和轉發。Application、SlowPath和FastPath三者之間通過MCC(Multi-core Communication)通信,MCC同時支援本地和遠端通信。

(2)通過在FastPath和SlowPath引入ENS Framework,網絡協定棧的功能得以以子產品的方式互聯,子產品可以靜态或動态的插拔,通過配置平面組合成不同的網絡協定棧,以适應不同網絡裝置對協定棧的需求。

(3)Application可以運作在本地,也可以是遠端的信令子產品,并可單獨開發和部署。進而降低系統的耦合性,提高整體的可靠性和擴充性。使用者或第三方的Application可以無縫的和FastGate架構進行內建。

(4)FastPath運作在獨立、高效的多核執行環境中,對網絡封包的處理要求做到Simple and Stupid, 使其得以充分發揮多核并行處理的性能優勢。為此,FastPath中的功能子產品都采用高效的資料結構和算法,并針對多核并行處理進行優化。

(5)SlowPath由優化的Kernel協定棧和ENS Framework組成,主要負責IP協定棧的Session、Flow等的管理,并和FastPath進行資料同步。

多核處理器下的快速包處理軟體架構FastGate

ENS(Extensible/Efficient Network Stack Framework)負責建構網絡協定棧。ENS中的各個功能子產品之間是互相獨立和透明的,子產品之間通過hook的方式互連。子產品可以靜态或動态的添加和删除,這使得協定棧的擴充非常靈活,而又無需擔心性能問題。由于ENS Framework應用在整個協定棧,使得使用者不論是在L2、L3,還是L7都可以很容易的擴充自身的業務,進而使得整個系統兼具軟體的靈活性和硬體的高性能。

以LTE EPC中SGW和PGW為例,使用者的開發也分為控制平面和資料平面。控制平面即符合3GPP規範的SGW和PGW的協定部分,開發完成後,可以部署在FastGate所在的闆卡,也可以根據需要部署在獨立的闆卡上。資料平面即SGW&PGW的封包處理部分,開發完成後作為一個功能子產品插入到Fast Path的ENS Framework中,就形成了SGW&PGW的網絡協定棧。

關于系統的性能,下面給出基于Cavium cn5850(12 Cores, 600Mhz)的IPv4 Unicast Forwarding (8 cores for fastpath)的性能測試資料:

Fib Number 28,892
Memory Occupied(MB): 3.44
Measured in PPS 4,627,408
Measured in Mbps 4,000 (limited by I/O throughput of ispan9210)
Measured in Latercy(μs) 5 ~ 10

 目前FastGate已經在包括ATCA 和Micro-TCA多個平台上應用,所涉及的項目包括Wi-Fi AC, ASN GW, Femto SeGW, LTE EPC PGW, LTE EPC SGW等。

繼續閱讀