天天看点

多核处理器下的快速包处理软件架构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等。

继续阅读