based server platforms used in the data center but with more ports. While CPE devices may look like x86 on the outside it still is much more than a basic server platform on the inside. Technologies such as virtualization along with innovations in software provide the opportunity to transform the simplified hardware platform to develop a next-generation CPE that is capable of running any network function. 10.2.1 VIRTUALIZATION OF NETWORK FUNCTIONS The initial efforts associated with virtual CPE projects were based on simple concepts of virtualiza- tion that have been used by cloud computing since 2010. The basic idea is if one can use an existing x86 server platform and instantiate "a network function" on it (instead of deploying physical appli- ances shipped by vendors), it will provide many benefits from cost, planning, logistics, deployment, and operational point of view. As one delves further, it is easy to discover that theoretically, it is also possible to instantiate multiple virtual network functions on the same platform and service chain them together SO that the traffic can be directed to individual functions based on rules. In the past, this capability could be achieved but acceptable performance required high performance compute platforms that were expensive. The key to enabling this capability is the performance optimizations that have been recently developed and are still emerging to allow multiple functions to run on the same platform, while keeping the platform cost at or below existing costs. The following illustration highlights the difference between the two concepts described above. The diagram on the left represents a limited use of virtualization with single function running on a server appliance. This model has been used by many in the industry for some time now, especially for applications that handle control traffic only, such as call-control application. However, the model on the right (whereby multiple functions are consolidated on the same box) provides the optimum use of hardware resou