## 5 Network Function Virtualization (NFV)  
NFV abstracts the hardware resources and embedded software of the network into a single logical entity, i.e., a virtual network [33]. It separates software functions from the hardware and enables the execution of network functions on a processing-based platform, e.g., signal processing in the network's core [46]. There are two common virtualization schemes: internal and external virtualization. Internal virtualization has an on-server single software container to present the functionality of a network. However, external virtualization presents multiple physical resources as a single virtual entity [47]. NFV is one of the greatest developments in the network evolution process that uses a platform of virtualization and commercial hardware to achieve the functionality of a mobile network. It does not depend on hardware devices but uses software modules [48]. The main benefits of NFV are reduced CAPEXs and OPEXs, reduced power consumption, greater flexibility to evolve, scale-up or scale-down services, and deployment of innovation services at minimum risks [49]. NFV does not rely on an SDN (i.e., it can be used alone); however, deploying an SDN with NFV provides wider benefits. It virtualizes and facilitates the dynamic mobility of SDN controllers to the required location [50]. Deploying NFV achieves various benefits, which are summarized as follows [51; 52]:  
* NFV reduces the cost of the network infrastructure by using virtual resources, i.e., virtual machines (VMs), and replacing the hardware boxes. \begin{table}
\begin{tabular}{c c} \hline \hline
**Value Added** & **SDN for Smart Cities** \\ \hline Flexibility and scalability & An SDN allows for centralized network management, making scaling and adapting smart city networks easier as the city’s requirements evolve. Adding or removing network elements can be done quickly and efficiently, ensuring the network remains flexible to accommodate future growth and changing needs. \\ \hline Ensuring QoS & In smart cities, various applications have different network demands, such as traffic management, surveillance, and healthcare. An SDN allows for implementing different QoS. \\ \hline Ease of integration between distributed and centralized clouds & An SDN facilitates seamless integration between cloud and edge computing infrastructures. This integration enables the deployment of edge services closer to the end users, reducing the latency and enhancing the overall performance of smart city applications. \\ \hline Centralized management & An SDN provides a centralized control plane, enabling operators to manage the entire smart city network. Centralized control enhances network visibility, simplifies management, and allows for dynamic and real-time adjustments to optimize the network performance. \\ \hline Cost efficient & An SDN’s simplified network management and resource optimization lead to cost savings regarding operational expenses (OPEXs) and capital expenditures (CAPEXs). Efficient network utilization reduces the need for additional hardware, optimizing infrastructure investments. \\ \hline Rapid service deployment & Smart city services often need to be deployed and updated quickly. An SDN enables rapid service deployment through automated configuration and provisioning, reducing the time and effort required to roll out new applications and features. \\ \hline Network innovation & An SDN allows developers and researchers to innovate and create custom applications and services for smart city systems. The programmability of an SDN fosters a culture of continuous improvement and drives innovation in urban services and applications. \\ \hline Real-time monitoring and management of network traffic & An SDN enables real-time analytics and monitoring of network traffic and performance. These insights help administrators to make data-driven decisions, identify areas for improvement, and enhance the overall smart city system efficiency. \\ \hline \hline \end{tabular}
\end{table}