FlexNFV: Flexible Network Service Chaining with Dynamic Scaling

Efficiently processing packets through network service chains requires an instantaneous regulatory mechanism while incorporating traffic fluctuations. We propose FlexNFV, a flexible network service chaining framework designed to provide automatic and efficient Network Function (NF) scaling capabilities on NFV platforms. The FlexNFV framework periodically monitors each NF load on a service chain, which can be accurately measured by the combination of different per-packet processing costs of different NF types, traffic characteristics and queues between NFs. Based on the chain-level information, our proposed FlexNFV performs timely scaling of NFs to evenly distribute the load among available instances, thereby avoiding performance degradation such as packet drops. By abstracting the implementation logic inside the NF runtime, NF scaling can be triggered using efficient and separate message channels for inter-process communication, which only requires minor modifications to existing NFV frameworks. We build and implement FlexNFV upon a DPDK-based NFV framework. Our testbed experiments show that our proposed FlexNFV improves service chain performance by a factor of two via matching the required load, when compared to the existing NFV framework; enables dynamic NF scaling adapting to real-time traffic demand; and achieves 17.5 percent better performance than NFVnice, the stateof- the-art NFV platform, under the same settings.