I. Introduction
Network Functions Virtualization (NFV) [1] is an emerging technology aiming to revolutionize network architecture and operation. According to [2], [3], the service provisioning model of NFV can be divided into three layer: application layer, Virtual Network Function (VNF) layer and underlying network layer, as shown in Fig. 1. NFV provides services to end-users in application layer. The services in NFV are always refer to Service Function Chainings (SFCs) [2], which need to traverse several Network Functions (NFs) of different types with strict order, e.g., a SFC may need to pass an intrusion detection system, then a proxy and finally a firewall [4]. The NFs are undertaken by VNFs in VNF layer, where VNFs are Virtual Machines (VMs) executing software of NFs. By leveraging virtualization technologies, the VNFs can be instantiated dynamically on commodity servers (e.g., x86 based systems) in the underlying network layer.