Network Function Virtualization (NFV) is the ground-breaking innovation trend in networking, which envisions the implementation of network functions over virtualized infrastructures made of computing, storage, and networking resources. The whole framework forewarns of becoming a complex ecosystem, due to the need to develop, to compose, to publish, to trade, to deploy, to orchestrate, and to manage Virtual Network Functions (VNFs), as witnessed by different initiatives in this field (e.g., the ETSI NFV ISG, the T-Nova and UNIFY projects, etc.).
“Softwarization” has been the buzzing word for NFV since its very beginning; in fact, the main objective has ever been the implementation of VNFs in the computing domain, while the network infrastructure has been largely seen as the dumb substrate that provides mere connectivity between the software instances. However, there has always been the latent awareness that carrying out specific operations over dedicated hardware still could have been convenient for performance and efficiency reasons. As a matter of fact, packet filtering and classification, deep packet inspection, encryption, and QoS enforcement are all intensive packet-processing tasks whose hardware realization outperforms software implementation by orders of magnitude. In this respect, a hybrid implementation made of software components deployed on general purpose CPUs and specialized tasks running on network devices represents the most interesting evolution for more efficient NFV systems.
The challenging vision is the realization of “hybrid” VNFs, which execution is split between standard VMs/containers in the computing domain and dedicated hardware in the networking domain. To this aim, some main aspects must be addressed: i) a tighter integration between the computing and networking domain, which should build a common execution environment, ii) suitable software development paradigms that enable to split the execution on different targets, and iii) proper orchestration over the mixed computing/networking environment.
The tighter integration between computing and networking has been an on-going process for several years. The main target is network programmability, which allows greater flexibility in network behavior than what allowed by legacy communication protocols1. The most relevant effort in this field falls under the concept of Software-Defined Networking (SDN), and envisions
a clear separation between the data plane (aka data-path) and the control plane. The convergence between NVF and SDN has already been advocated by the Open Networking Foundation and recognized by ETSI in recent documents2,3.
Typical SDN architectures envisage the presence of an SDN controller, which provides networking abstraction to applications by means of a Northbound interface and manages network equipment by means of Southbound protocols, like OpenFlow4 and NetConf5. Such protocols implement a very rudimental level of programmability, usually limited to send and retrieve configuration data (NetConf) or to setup simple forwarding rules (OpenFlow), hence they only allow “offloading” very simple tasks to the network infrastructure, typically without the capability to maintain any state. For instance, in a Network Access Control application (NAC), packet classification and filtering could be delegated to an OpenFlow switch, leaving the software function running in a standard VM the lightweight task of user authentication and authorization6 (see Figure 1).
Beyond SDN, an enhanced data plane programmability would enable to realize in-network caching, transcoding, compression, and encryption efficiently. To implement true data plane programmability, interfaces are needed that expose resources of network equipment such as storage (e.g., for in-network caching), processors (e.g., for transcoding and encryption), and packet queues (e.g., dynamic adjustment of queue sizes for specific applications). Data-plane programmability has continued to develop in parallel with control-plane efforts7,8,9, and recent work on SDN is exploring the evolution of SDN protocols such as OpenFlow to support a wider range of data-plane functions10. Once the full paradigm of network (data-path) programmability became available, the boundaries among the traditional compute, storage and network domains will blur, giving the opportunity to run intensive packet processing functions on hardware-accelerated network equipment rather than on general purpose CPUs.
Coming to software development and orchestration aspects, in our opinion the ARCADIA framework could provide an effective solution. The ARCADIA development paradigm is based on micro-services, which are elementary software units that can be composed in service graphs to build complex applications, and a Context Model, which includes requirements, policies, and optimization objectives for orchestrating, deploying and managing ARCADIA applications over multiple IaaS platforms (see ARCADIA D2.3 for details11). The combination of the micro-services approach with a rich Context Model provides a powerful tool to develop, orchestrate and deploy hybrid network functions over programmable infrastructures. For example, specific micro-services instances could be developed to perform packet processing either on general-purpose CPUs or on dedicated hardware, by exposing the same service interface and by making them available in the ARCADIA software repository. Software developers are thus able to specify the function they need when developing their applications, while the most suitable instance (hardware-accelerated or general-purpose) is selected at run time by the orchestration logic (ARCADIA Smart Controller), according to the current execution environment and the service provider policies. Figure 2 shows an indicative example of how an ARCADIA application could be deployed over a mixed computing/networking environment.
We will follow with attention the evolving landscape for network programmability and we are going to integrate such aspects in our framework. Further, we believe that a more rigorous formalization for including network programmability aspects into software development paradigms should be undertaken by relevant standardization bodies in this field; in this respect, our intention is to propose this topic as a further enhancement for TOSCA.
1 Nunes, M. Mendonca, X‐N. Nguyen, K. Obraczka, T. Turletti: “A Survey of Software‐Defined Networking: Past, Present, and Future of Programmable Networks”, IEEE Communications Surveys and Tutorials, 16(3): 1617-1634, 2014.
2 ONF, OpenFlow-enabled SDN and Network Functions Virtualization. ONF Solution Brief. February 17, 2014. [Online] Available: https://www.opennetworking.org/images/stories/downloads/sdn-resources/solution-briefs/sb-sdn-nvf-solution.pdf.
3 ETSI ISG for NFV. ETSI GS NFV-INF 001, Network Functions Virtualisation (NFV); Infrastructure Overview. V1.1.1, January 2015. [Online] Available: http://www.etsi.org/deliver/etsi_gs/NFV-INF/001_099/001/01.01.01_60/gs_nfv-inf001v010101p.pdf.
4 OpenFlow Switch Specification. Version 1.4.0 (Wire Protocol 0x05) October 14, 2013. [Online] Available: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf.
5 R. Enns. NETCONF Configuration Protocol. RFC 4741 (Proposed Standard), December 2006. Obsoleted by RFC 6241.
6 J. Matias, J. Garay, N. Toledo, J. Unzilla, E. Jacob: Toward an SDN-enabled NFV architecture. IEEE Communication Magazine, Vol. 53, Issue 4, April 2015, pages 187-193.
7 B. Anwer, M. Motiwala, M. bin Tariq, and N. Feamster. SwitchBlade: A Platform for Rapid Deployment of Network Protocols on Programmable Hardware. In Proc. ACM SIGCOMM, New Delhi, India, Aug. 2010
8 M. Dobrescu, N. Egi, K. Argyraki, B.-G. Chun, K. Fall, G. Iannaccone, A. Knies, M. Manesh, S. Ratnasamy, RouteBricks: exploiting parallelism to scale software routers, in: Proceedings of the ACM SIGOPS SOSP, 2009, pp. 15–28.
9 UNIFY, Deliverable D5.1. Universal Node functional specification and use case requirements on data plane. August 29, 2014.
10 P. Bosshart, G. Gibb, H.-S. Kim, G. Varghese, N. McKeown, M. Izzard, F. Mujica, M. Horowitz, Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN, in: Proceedings of the ACM SIGCOMM, 2013, pp. 99–110.
11 ARCADIA. D2.3 – Description of the ARCADIA Framework. November 2015. [Online] Available: http://www.arcadia-framework.eu/wp/wp-content/uploads/2015/12/Arcadia-D2.3-final-otxhv.pdf.