), VM-Ware NSX (VMWare), OpenStack Neutron (OpenStack), TRILL, and even Multi-Protocol Label Switching (MPLS). This opened the door for hardware vendors to create new fabric switches that could natively sup- port these overlay protocols. The new switches, while they do create more network agility, tend to be vendor proprietary and also tightly couple the hardware, software, and control. While this might satisfy the requirements for a single-enterprise data center, it is not robust for a carrier infrastructure that needs to support network functions from many different suppliers. It is the joining of SDN with NFV on a common COTS hardware platform that is the key for implementing an end-to-end net- work for service providers. The decision choice on hardware, software functions, and control needs to be independent and based on open-source architectures with well-defined APIs. DECOMPOSITION OF VNFs Software that implements a network function is either a one-to-one mapping of an existing appli- ance function or alternately some combination of network functions designed for cloud computing. For example, functions designed for cloud computing might be combined or leverage distributed data services to eliminate a set of hardware-based network appliances. In addition, they use soft- ware logic and characteristics of cloud computing to eliminate fault-tolerant or one-for-one failover with spare appliance hardware requirements. Many of the initial opportunities in developing cloud networking are centered around using a network functions virtualization infrastructure (NFVI)- which closely resembles cloud computing infrastructure-and developing new applications that support many of the existing monolithic control plane elements, such as route reflectors (RRs), DNS servers, and Dynamic Host Control Protocol (DHCP) servers. NFVI will be covered in Chapter 4. In this section, we will discuss the virtualization of functions and how to interconnect them over a virtual network. 3.3.1 DECOUPLING VIRTUAL FUNCTIONS Over time, more ne