Softwarization of UAV Networks: A Survey of Applications and Future Trends

Unmanned Aerial Vehicles (UAVs) have become increasingly important in assisting 5G and beyond 5G (B5G) mobile networks. Indeed, UAVs have all the potentials to both satisfy the ever-increasing mobile data demands of such mobile networks and provide ubiquitous connectivity to different kinds of wireless devices. However, the UAV assistance paradigm faces a set of crucial issues and challenges. For example, the network management of current UAV-assisted systems is time consuming, complicated, and carried out manually, thus causing a multitude of interoperability issues. To efficiently address all these issues, Software-Defined Network (SDN) and Network Function Virtualization (NFV) are two promising technologies to efficiently manage and improve the UAV assistance for the next generation of mobile networks. In the literature, no clear guidelines are describing the different use cases of SDN and NFV in the context of UAV assistance to terrestrial networks, including mobile networks. Motivated by this fact, in this survey, we guide the reader through a comprehensive discussion of the main characteristics of SDN and NFV technologies. Moreover, we provide a thorough analysis of the different classifications, use cases, and challenges related to UAV-assisted systems. We then discuss SDN/NFV-enabled UAV-assisted systems, along with several case studies and issues, such as the involvement of UAVs in cellular communications, monitoring, and routing, to name a few. We furthermore present a set of open research challenges, high-level insights, and future research directions related to UAV-assisted systems.


I. INTRODUCTION
In the last decade, terrestrial networks have witnessed explosive growth in users and services [1]. Indeed, it is expected that in the near future, these networks should support at least 1000-fold traffic volumes, and connect 100 billion wireless devices [2]. It is difficult to accommodate the increasing data demands over the limited capacity of current terrestrial base stations (BSs) [3]. The rise of fifth-generation (5G) mobile networks can provide more resources to meet the exponential increase in traffic demands from various services [4]. Also, Unmanned Aerial Vehicles (UAVs) have recently been deployed to assist terrestrial BSs to extend their capacity in terms of coverage and resource allocation [5]. In fact, UAVs The associate editor coordinating the review of this manuscript and approving it for publication was Kai Li . can provide a scalable and higher chance of obstacle-free wireless communications [6]. UAVs can be easily deployed in the sky and quickly form a flexible aerial platform [7]. Thus, 5G and beyond 5G (B5G) wireless communication systems can leverage the support of aerial communication access platforms [8]. UAVs with such capacities will thus be an integral part of the future generation of mobile networks and will work together as a single system. However, the communication issues of such aerial platforms have generally been overlooked or considered as part of the routing components.

A. MOTIVATION
UAVs have experienced growing research interest due to their unprecedented recent advances in the underlying technologies [9], [10]. In particular, UAVs can serve as aerial BSs to deliver on-demand wireless communication in specific VOLUME 8, 2020 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ areas [11]. Moreover, UAVs can also play the role of aerial User Equipment (UE) to coexist with terrestrial users [12].
The assistance of such devices to terrestrial networks provides many challenges. For instance, features related to different services should be considered, such as extenuating energy consumption [13], ensuring lower latency [14], efficient resource allocation [15], and mobility management policies [16]. Generally, the assistance paradigm of UAVs is ensured through a multitude of decentralized architectures to provide safety, efficiency, and to ensure self-organization of the network. Nevertheless, the growing network traffic calls for the adoption of centralized control architecture [17]. This centralization can provide many essential benefits to address the above-mentioned challenges. Also, it can offer alternative solutions to face the different challenges of the next generation of mobile networks [18]. There are two prevalent technologies to serve as critical enablers for the 5G and B5G. The first is Software-Defined Networking (SDN), where the control plane is separated from the data plane using a controller [19]. The control plane performs the logical processes and all relevant decisions regarding managing network protocols, while the data plane delivers the packets towards the most appropriate interfaces. The separation of these two planes allows to route traffic intelligently and optimally exploit the network resources [20]. The second technology is Network Function Virtualization (NFV), which enables providers to establish many isolated virtual systems while sharing their physical resources [21]. NFV can considerably reduce Operational Expenditure (OPEX) and Capital Expenditure (CAPEX) costs [22]. Moreover, it can enhance time to market new applications and network services. NFV leverages the concept of subnet isolation and network slicing for extreme customizability and flexibility [23]. This technology will be crucial to enable the Quality-of-Service (QoS) for diverse applications in UAV networks.
According to the literature, it turned out that in the last five years, there is much activity in the field of SDN and NFV in UAV networks. To the best of our knowledge, our current survey article is unique. Firstly, because there is no previous detailed survey article that jointly considers SDN and NFV in UAV networks in one single paper, secondly, it is deducted in the sense that it both comprehensively covers the mentioned area of research and provides open research challenges for future investigations.

B. EXISTING SURVEYS AND TUTORIALS
Several surveys are focusing on various aspects of SDN/NFV or UAV networks. However, these survey articles either focus on SDN [50]- [52], NFV [53]- [55], or UAV networks [56]- [58], separately. As depicted in Table 1, most of the related surveys were proposed in the last five years. They are covering multiple components of UAV networks ranging from civilian applications, routing protocols, security aspects, channel modeling, and different UAV-assisted 5G techniques. Earlier in 2015, Kanistras et al. [49] presented a comprehensive survey on UAV-based systems for traffic monitoring and management. Chmaj et al. [48] described the applications of distributed processing systems for UAV swarms. The survey has a particular focus on computer engineering aspects and collaboration mechanisms between UAVs. The survey in [47] addressed practical and theoretical aspects of Public Flying Ubiquitous Sensor Networks. However, all these surveys did not investigate the concepts of SDN and NFV.
In 2016, a comprehensive survey [46] discussed significant UAV networks requirements dedicated to civilian applications. It investigated both experimental results from existing solutions and studied the leading UAV communication technologies. The discussion in [45] investigated the major issues related to UAV networks. Moreover, it presented several comparative studies on routing, SDN, multi-UAV architecture characterization, and seamless handover. A survey on UAV networks in [44] identified the related issues of UAVs. Also, it introduced UAV-based architecture for the delivery of UAV-based value-added IoT services. Nevertheless, these studies are devoted rather to the investigation of the civilian application of UAVs and their most important issues. It should be stressed that the survey in [45] partially studied the concept of SDN in UAV networks.
In 2017, Gonzalez et al. [43] provided a comprehensive review of unmanned aerial systems (UASs) and their subsystems. The authors evaluated different applications related to remote sensing and spraying of liquids, including an overview of the regulatory framework. Oubbati et al. [42] surveyed the most relevant position-based routing protocols dedicated to Flying Ad hoc Networks (FANETs). It presented a global comparative study, including simulation tools and evaluation criteria of the routing protocols in FANETs. Wang et al. [41] discussed different FANET architectures. In addition, they described a variety of distributed gateway selection approaches and presented cloud-based stability control techniques. It also complemented the study by highlighting open challenges. The survey by Altawy et al. [40] presented a deep study on the main security, privacy, and safety aspects related to UAV communications. Moreover, the major physical and cyber threats are identified, and the required security properties are discussed. However, it is worth noting that the works, as mentioned earlier, were focused only on different domains related to security, routing, and other applications, which have no relationship with SDN and NFV concepts.
In 2018, the survey by Cheng et al. [39] proposed an Air-Ground integrated mobile edge network. It investigated the advantages of drone-cells and drone assisted edge caching and computing. In addition, potential research directions were highlighted at the end of the survey. The different 5G techniques based on UAV platforms are investigated in [38]. It provided a categorization of different techniques based on several domains, and identified possible future research challenges. The work in [37] presented a literature survey on optimization techniques to UAV-assisted civilian applications. It also outlined characteristics of aerial drones relevant to 98074 VOLUME 8, 2020 mission planning and concluded with future research directions. A comprehensive review of Space-Air-Ground Integrated Network (SAGIN) is presented in [36]. It discussed various aspects of SAGIN, such as network design, resource allocation, and performance analysis. Another comprehensive study on UAV channel modeling based on low altitude platforms is provided by [35]. It discussed different channel characterization efforts and outlined some future research directions in this domain. The challenges of multi-tier drone networks and drone-assisted cellular networks are investigated in [34]. It reviewed existing innovations in drone-assisted cellular networks. Even if the mentioned works have contributed significantly to different topics related to 5G and B5G, a complete analysis of SDN and NFV dedicated to UAV networks was still missed.
In 2019, the authors of [33] provided a comprehensive discussion on the current trends in 5G standardization and the integration of UAVs from two aspects. The first one is the fundamental system architecture, while the second one is the radio access network. An overview of 5G millimeter wave (mmWave) communications for UAV-assisted wireless networks is presented in [32]. Also, it discussed issues, solutions, and open challenges in this newly emerging topic. The survey in [31] provided a comprehensive review covering several topics on FANETs. For instance, it illustrated the architecture, the existing mobility models, and the majority of FANET routing protocols. Shakhatreh et al. [30] investigated the major current UAV civilian applications and their challenges. Moreover, it discussed future research directions on how these challenges might be addressed. The survey [29] discussed all the potential benefits and challenges of UAVs in wireless communications. In particular, it described the 3-dimensional (3D) deployment, channel modeling, energy efficiency, and different validation frameworks. Fotouhi et al. [28] presented a comprehensive survey that covers several aspects of UAV networks. For instance, it investigated the assistance of UAVs to cellular networks and cyber-physical security aspects. Despite their partial investigation on the concepts of SDN and NFV, the surveys mentioned above lack information details about the integration and the different solutions of these concepts in the context of UAV networks.
Recently, Mehta et al. [24] analyzed the security and privacy issues in 5G-enabled UAV networks. They investigated the integration of Blockchain within UAV networks. In [25], the authors summarized the Internet-of-Every things (IoE) enabling technologies and the opportunities that UAVs can bring to IoE. They also showed different mechanisms to integrate UAVs with the existing IoE's enabling technologies to propose a UAV-enabled IoE solution. The survey in [26] presented the most recent research on UAV and IoT technologies applied to agriculture. It also presented the key role of UAVs in different agricultural applications. Ullah et al. [27] introduced the most recent developments related to UAV integration into 5G and B5G communication networks, and presented recent UAV standardizations and challenges. The VOLUME 8, 2020  current year is witnessing a growing interest on different topics, such as 5G and B5G enabled solutions for UAV networks, Artificial Intelligence (AI) and machine learning, and the different challenges and use cases of the sixth generation (6G) of UAV-assisted mobile networks. Nevertheless, the concepts of SDN and NFV are still neglected in a detailed investigation.
Our current survey article investigates and classifies SDN-based and NFV-enabled solutions for UAV networks. A novel taxonomy is proposed to classify these solutions into several categories. In each category, we provide both a comparative study and a detailed discussion of the evaluation tools and testbeds. In Table 1, we offer a summary comparison of the above-discussed surveys based on many features, such as the coverage degree of SDN and NFV topics, highlighting the evaluation tools related to the considered topic, and outlining the future research challenges. Moreover, a comparison of surveys that are strictly related to SDN/NFV-enabled UAV networks is also presented in Table 2. At the end of this survey, we also outline a set of future research directions by recommending other studies and references in the literature.

C. CONTRIBUTIONS
Several surveys related to UAV networks have been published in the last decade. Indeed, most of these surveys are focusing on UAV-assisted applications and UAV cellular communications for the next generation of mobile networks. However, they have one common limitation: all of them lack discussion on Softwarization (SDN) and Virtualization (NFV). To the best of our knowledge, this work is the first intensive and comprehensive survey on SDN/NFV-enabled schemes in UAV networks, which is delineated by the following contributions: • We describe various aspects of UAV network architecture along with multiple case studies.
• We provide a deep analysis of the SDN/NFV integration in UAV networks. Also, we mention the different motivations behind adopting SDN/NFV in UAV networks.
• We present an in-depth discussion on SDN-based UAV networks along with its different use case scenarios. Moreover, a comprehensive investigation of NFV-based schemes that are adopted in UAV networks have been carried out. • We identify the major simulation tools and testbeds used to evaluate the performance of the discussed schemes. • We outline different open issues, challenges, and future research directions related to UAV networks.

D. SURVEY ORGANIZATION
A list of abbreviations used throughout the paper is presented in Table 3. To draw a full picture of SDN/NFV in UAV networks, this survey article is organized around several sections, as shown in Figure 1. It consists of eight main sections dealing with the following details. • The basics of UAV networks are discussed in Section II, where we provide a classification of different types of UAVs along with their characteristics.
• In Section III, we present the different architectures of UAV networks and the functioning principle of SDN/NFV. We also highlight the motivations for adopting SDN/NFV in UAV networks.
• In Section IV, we provide a deep investigation of the use of SDN in UAV networks along with different case studies of SDN-based UAV networks.
• In Section V, we present a comprehensive discussion on employing NFV in UAV networks and present a survey of different NFV-enabled schemes.
• Section VI provides an overview of the major simulation tools and testbeds that are used to evaluate the performance of the discussed schemes.
• In Section VII, we identify open challenges, issues, and future research directions. We also provide a set of proposed solutions and recommended references for further investigation.
• In Section VIII, we present concluding remarks.
To help readers navigate this paper, Figure 2 provides a detailed structure of the survey.

II. UAVs: BACKGROUND AND DEFINITIONS
UAVs are envisioned to be used in various applications [59]. Developing UAV networks needs the following main requirements: (i) minimizing the energy consumption of UAVs to avoid the disruption of the network, (ii) efficient and flexible interconnection of UAVs, and (iii) integrating reliable and effective communication channel models. To have a clear idea of how UAVs can be exploited, in this section, we restrict our attention to a profound overview of potential and futuristic applications of UAVs. To complement this study, we have added an allegorical figure to depict each use case of UAVs (see Figure 3).

A. UAV CLASSIFICATION
To establish any aerial communication platforms, the most difficult task is to select the appropriate type of UAVs to deploy [60]. The selected type of UAVs should meet various requirements, such as QoS, energy capacity, environment, and federal regulations [61]. Different features are considered to classify UAVs, such as operational altitude, takeoff weight, ownership, launch method, airspace class, and level of control autonomy [62]. Based on these mentioned features, UAVs can be categorized into three types: (i) Low-Altitude Platforms (LAPs), (ii) High-Altitude Platforms (HAPs), and (iii) Satellites (c.f., Figure 3). In the following sections, we describe each category of UAVs and their different characteristics. Table 4 presents a comparative study between these kinds of UAVs in terms of different criteria, such as altitude, deployment time, endurance, and others. This table allows highlighting dissimilarities and similarities between each category of UAVs.

1) LAP
LAPs are quasi-stationary/highly mobile unmanned aerial platforms (e.g., Quad-copters, Small drones, or Balloons) with highly flexible mobility and an altitude below the stratosphere [63], [64]. The deployment of such devices can be done more quickly and in the easiest way. The flexibility of LAPs makes them very helpful to be combined with the broadband cellular concept [65], such as 3G, 4G, 5G, B5G, and even 6G. Generally, LAPs provide short-range Line-of-Sight (LoS) communication links, which can significantly minimize their energy consumption. Moreover, the mobility of LAPs is adjustable in a flexible way to get the desirable locations that can offer maximum coverage with reduced energy consumption. In the case of LAPs' failure, they can be easily recharged or replaced if it is required.

2) HAP
HAP (e.g., Aircraft or Airships) is another aerial platform, which has also attracted the interest of the wireless world recently. HAPs are considered as unmanned aerial long-endurance platforms with less flexible mobility and an altitude above the stratosphere [66]. HAPs can provide various features, such as wide-scale wireless coverage in geographic areas with large surfaces, low propagation delays, high data rates, incremental deployment, low transmission power, less ground-based infrastructure, and longer landing and takeoff times than LAPs [67]. Their deployments are performed to provide long-term connectivity to regions that are partially connected [68]. However, when adopting HAPs, there are many challenges to address, such as uneconomical cost, complexity, high energy consumption, and large inter-cell interference.

3) SATELLITE
As a special kind of UAVs, satellites are unmanned space probes that are placed into orbit around the Eart [69]. They can be deployed for diverse commercial and scientific purposes, such as satellite phones, Global Positioning Systems (GPS), telescopes, and weather tracking [70]. Actually, there is an important number of satellites, which is orbiting the Earth. However, from the point of view of terrestrial users, the mobility of satellites is considered to be stationary.
Generally, satellites are powered by solar energy or other fossil energies, weigh many tons, and have exorbitant costs [71]. There are different types of satellites, such as remote sensing satellite, LEO (Low Earth Orbit), MEO (Medium Earth Orbit), GEO (Geostationary Earth Orbit), GPS, drone satellite, communication satellite, navigation satellite, and polar satellite.

B. UAV USE CASES
Different use cases of UAVs are distinguished in the literature depending on their applications [72]. In this subsection, we present an overview of the most common use cases of UAVs in a variety of scenarios.

1) UAV BASE STATION (UAV-BS)
When transceivers or BSs are mounted on flying UAVs, they are known as aerial BSs, Drone-BSs, or UAV-BSs [73]. These kinds of UAVs are expected to form flying cells and satisfy the growing data demands of users [74]. UAV-BSs can extend the capacity of the next-generation cellular networks (i.e., 5G, B5G, and 6G) due to their flexible mobility, their rapid deployability, and their LoS communication links [75]. Moreover, due to their promising features, UAV-BSs can also provide a flexible solution to establish multi-tier UAV-cell networks to improve QoS and connectivity wherever it is possible [76]. UAV-BSs can use the latest radio access technologies, such as mmWave, Visible Light Communication (VLC), Free-Space Optical communication (FSO), and light detection and ranging (LiDAR). There are several scenarios where UAV-BSs are deployed, such as supporting congested terrestrial networks, providing temporary connections in disastrous events, and enhancing throughput in crowded areas [77]. In the rest of the survey, we use the term UAV-BSs to designate all kinds of BSs mounted on drones or flying platforms.

2) UAV USER EQUIPMENT (UAV-UE)
Aerial UE or UAV-UE can exploit existing aerial/ground cellular networks in the same way as ground users (GUs) [78]. UAV-UEs can exchange data (e.g., altitude, mobility, flight mode, handover, etc.) with the operator. This can be done under certain restrictions, such as latency, reliability, and throughput, depending on the application requirements [79]. As previously stated, LoS is more probable for UAV-UEs, and thus they suffer from different interference conditions than GUs [80]. Ensuring robust and efficient connectivity for such flying UEs is of major concern for the control and operations of UAV networks. Another challenge is to effectively identify that UAV-UEs have the proper credentials to connect to existing cellular networks. Consequently, designing more advanced and intelligent solutions will lead to the easier management of UAV-UEs. between two or more remote wireless devices without direct communication links [82]. Several works in the literature, such as in [83]- [86] only consider the mobility of UAVs on a fixed or random trajectory. However, as we all know, UAVs can flexibly move in the 3D space to achieve better performance and effectively perform tasks. Therefore, this pushes researchers to study in-depth the trajectory planning and power control of UAVs.

4) UAV DATA COLLECTOR
When there is a need to collect delay-tolerant data from distributed wireless devices on the ground, UAVs are considered as the appropriate solution [87]. UAVs navigate automatically over multiple terrestrial wireless devices to gather data. The collected data is transmitted to a remote control-station/BS after a period of the flight. The aerial data gathering is carried out much quicker than ground data gathering. This is due to several reasons, such as the high and controllable mobility of UAVs, lower latency and higher bandwidth of Air-to-Ground channels [88]. However, the UAV-assisted data gathering still has key challenges to be addressed, such as the optimization of UAV's trajectory under energy limitation constraint.

C. UAV CHALLENGES
Through our investigation, we discovered several UAV challenges that are categorized according to the requirements of applications [89]. In this subsection, we extract the most crucial challenges and we explain why they should be addressed.

1) UAV 3D COVERAGE
Antennas of traditional cellular networks are usually tilted downwards in order to offer satisfactory 2D coverage to GUs [90]. With the appearance of UAV-UEs, the coverage and connectivity in 3D networks have attracted a lot of attention recently [91]. Compared to conventional GUs, UAV-UEs generally have higher altitudes exceeding the antenna's height of terrestrial BSs [92]. 3D communication coverage is required to construct a reliable network in the atmospheric environment. Also, the 3D coverage has to be able to support the different requirements of the future 5G and B5G cellular networks. Despite the few obstacles existing in the sky, LoS channels between UAVs and ground BSs can also suffer from uplink/downlink interference [93]. The 3D ground BS antenna pattern can also impact the performance of the UAV's coverage. As a result, efficient interference management techniques, such as in [94]- [96] should be adopted to address these issues.

2) UAV BACKHAULING
UAV-BSs are considered as a promising assistance solution to extend the coverage of ground cellular networks [97]. The crucial challenge of this assistance is to provide ubiquitous backhaul connectivity to UAV-BSs. This could be carried out through the routing of the traffic to/from the UAV-BSs from/to the existing cellular networks [98]. The backhauling concept is considered as a cost-effective solution allowing operators to get end-to-end control of their network. As a consequence, UAVs can enable reliable and cost-effective backhaul connectivity for terrestrial networks [99]. To establish high data rate wireless backhauling connections, the backhauling solutions can exploit the mmWave spectrum, sub-6 GHz band, and satellite technologies [100]. Therefore, UAV-enabled backhaul networks can enhance the capacity and operation cost of terrestrial network backhauling.
3) UAV mmWave mmWave technology has received a lot of attention from researchers due to its capacity to provide high-throughput wireless communications for UAV networks [101]. mmWave technology has two main advantages as the availability of high bandwidth and the minimization of interference [102]. However, when adopting mmWaves in UAV networks, the performance of the network is affected by several issues, such as blockage, atmospheric attenuation, rapid channel variation, multi-user access, and channel Doppler effect [103]. These issues can be mitigated by developing new intelligent techniques to ensure LoS conditions between the communicating entities. It is necessary to design models to predict weather impacts on UAV communication channels.

4) ENERGY AND FLIGHT TIME
The performance and cruising duration of UAVs are strongly impacted by the limited energy capacity of their embedded batteries [104]. Batteries are often used to power the energy propulsion and on-board electronics of UAVs. The consumed energy of UAVs depends on their movement, circuit power, and transmission power consumption [105], [106]. Also, it was demonstrated in [107] that the energy consumed during the communication process can significantly limit the flying time of UAVs by nearly 16%. To address this crucial issue, two different solutions are envisaged: (i) intelligent energy management by performing tasks with minimum energy consumption and (ii) energy-aware deployment mechanisms for the timely replenishment of energy on board. Even though the last decade has witnessed advanced developments in battery technologies, energy harvesting is also considered as the most advanced charging technology to extend the flying duration of UAVs. The efficiency of energy harvesting is impacted by long-distances and random energy arrivals. As a result, deep investigations on energy delivery technologies are required to enhance the charging efficiency of UAVs.

5) UAV DEPLOYMENT
The deployment of UAVs in a 3D space is considered as a challenging task, and especially when performing real-sensitive tasks or applications [108]. The challenge becomes more complex when the density of UAVs increases. Indeed, UAVs consider the capacities of wireless backhaul of existing terrestrial networks, which are generally time-varying due to the mobility of UAVs [109]. Many other challenges are distinguished in such kinds of UAV aspects, such as the minimization of handovers, avoiding collisions, VOLUME 8, 2020 and reducing the energy consumption of UAVs. All these challenges require significant efforts from researchers to propose efficient solutions for UAV deployment while considering the different constraints of UAVs and environments.

III. SDN AND NFV IN UAV NETWORKS
This section provides an overview of the background, notations, and descriptions related to SDN, NFV, and UAV networks. Recently, UAV networks have integrated the concepts of softwarization and virtualization of network services and components. These concepts should play a major role in the delivery of future telecommunication services [110]. Furthermore, these concepts are also considered as a building block for 5G and B5G mobile networks [111]. On the one hand, SDN aims to minimize the operational costs and enable flexible network configuration. On the other hand, the concept of virtualization or NFV allows easier and faster deployment of network services.
In the following, we provide a deep analysis and description of each of these technologies. Then, we will briefly review the motivations for adopting SDN and NFV in UAV networks.

A. UAV NETWORKS
The first utilizations of UAV were characterized by using just one single UAV and one or more ground nodes to perform a specific task [112]. To perform most military and civilian applications in a timely manner, a set of UAVs is required [113]. Indeed, the self-organized multi-UAV network is considered as highly effective in providing cooperation between UAVs and fairly distribute tasks among them [114]. The coordination between UAVs requires the establishment of a communication network among UAVs. Generally, this kind of network should be coordinated by control stations located on the ground [115]. One of the challenges of UAV networks is to reduce the impact of the mobility of UAVs. In fact, mobility has been frequently responsible for damaging the data delivery and causing significant packet losses and transmission delay [116]. The energy constraint of UAVs also causes UAV failures, which could disrupt the overall network [117]. Both maintenance of the connectivity and reducing energy consumption allow providing a certain degree of reliability and a predefined threshold of QoS [118]. To design a fully cooperative UAV network, a set of rules is required to define how data should be exchanged between UAVs and ground BSs [119]. There are many architectures proposed across the literature, but in this section, we analyze the major architectures that are adopted in most applications. As shown in Figure 4, three different architectures are frequently adopted: (i) Centralized architecture, (ii) Clustering architecture, and (iii) Cellular architecture. In the following subsections, a clear description of each architecture is provided.

1) CENTRALIZED ARCHITECTURE
As indicated by its name, this architecture comprises a group of UAVs that are linked to a single ground BS communicating simultaneously with all UAVs [120]. In the case when UAVs want to establish communication between each other, all data exchanges are routed via the ground BS [121]. Several advantages are distinguished when adopting this centralized architecture, such as the fault tolerance in the case of any UAV failures, task parallelism, and the improvement of computing and storage. However, there exist three major issues, such as the proportional scale of bandwidth with the density of UAVs, the high latency, and the vulnerability of the ground BS against eventual attacks, which can disrupt the overall network.

2) CLUSTERING ARCHITECTURE
To allow UAVs to communicate with each other directly in an ad hoc fashion, this architecture creates multiple groups of UAVs called clusters [122]. Each cluster designates one UAV to play the role of cluster-head (CH) to connect cluster members, and then connect the whole cluster to a specific ground BS [123]. The intra-UAV communications (i.e., the communications with UAVs located in clusters) are achieved without going through ground BSs. Therefore, this architecture can support different UAVs with different flight and communication characteristics. However, the inter-UAV communications (i.e., the communications with UAVs located outside clusters) are achieved through ground BSs, and thus causing the problem of partition in the case of ground BS failures.

3) CELLULAR ARCHITECTURE
The cellular organization of UAVs is considered as the most modern organization of UAVs [124]. It has recently been used for many civilian and military applications [125]. In each cell, a unique frequency band is used to avoid interference with other cells and providing important coverage over a given area [126]. Moreover, this architecture allows UAVs to communicate both with each other through ground BSs and directly without going through ground BSs [127]. However, there are many issues when adopting such architecture, such as the expensive cost of ground BSs and the failure of ground BSs, which all require an in-depth investigation from researchers.

B. SOFTWARE-DEFINED NETWORK (SDN)
Different schemes and techniques have been proposed in the literature to enhance the flexibility and agility of future wireless networks [128]- [130]. From these proposals, novel technology has become a promising alternative for networks, which is called SDN [131]. As widely known, SDN plays an important role to implement services and applications that tackle the most difficult issues in different kinds of wireless networks. This can be done by monitoring and reconfiguring the network layer and switching functionality [132]. As shown in Figure 5, SDN operates by decoupling the control and data planes of networks. This can provide both network programmability with global visibility and controllability to easily manage a network. Indeed, operating as the brain of the network, the SDN controller(s) can maintain up-to-date the topology and traffic information of the network [133]. To deeply understand the concept of SDN, in the following, we describe the functioning of each of its components.

1) ARCHITECTURE PLANES
Generally, the SDN architecture is composed of three planes with different interfaces and abstraction layers [134]. The different components composing the planes may vary from architecture to another. Figure 5 shall be used as a reference in order to better describe each plane.
• Control Plane (CP): CP is in charge of maintaining the forwarding tables included in network devices (NDs) while considering the topology and other constraints of the network [135]. The functioning of CP is performed by a single or a set of centralized controllers. The aim of CP is to effectively react to any failures or traffic changes and to ensure a reliable functionality of the network [136]. Nevertheless, CP can suffer from processing overload and further costs when the network grows.
• Data Plane (DP): DP is in charge of forwarding data packets transmitted by the end-user via NDs (e.g., routers and switches). Indeed, DP manipulates the forwarding of packets based on the rules and instructions provided by the control plane to change, drop, or correctly send the packets to their intended destinations [137]. While the NDs are responsible for data forwarding to properly ensure their transit over the whole network [138].
• Application Plane (AP): AP is in charge of providing diverse network applications and services (e.g., network security, orchestration, QoS, energy management, load balancing, and mobility). AP is deployed and implemented by the SDN controller [139]. The provided applications and services considerably impact the data traffic on SDN devices when communicating their requirements and instructions [140]. VOLUME 8, 2020

2) ARCHITECTURE INTERFACES
Two main classes of interfaces are used to interconnect the different planes of the SDN architecture (see Figure 5): (i) Southbound Interfaces (SBIs) and (ii) Northbound Interfaces (NBIs) [141]. SBIs connect the data and the control planes by controlling the traffic to NDs (e.g., routers and switches). The interaction between the control and the application planes is ensured through NBIs. Indeed, NBIs perform the control of the traffic of information to/from the application plane. To clearly define these two classes of interfaces, in the following, an accurate description is provided for each kind of interface.
• Southbound Interfaces (SBIs): SBIs allow NDs to exchange state and control information (e.g., event notifications, forwarding operations, and statistics reports) with the SDN controller. The aim of SBIs is to allow a flexible interaction between the control plane and NDs [142]. In addition, it also allows us to easily and quickly create and reconfigure virtual networks. The definition of an SBI is based on the NDs that support it, which imposes to adopt standard SBIs to favor interoperability among different suppliers.
• Northbound Interfaces (NBIs): NBIs allow the exchange of information between the control plane and different applications running on top of the network [143]. The goal of this interface is to provide routing or transmission information from the data plane or controllers to applications and services. Standardization of this kind of interface can adapt the behavior of the application according to the network.

3) ARCHITECTURE ABSTRACTIONS
There is a crucial need for a common abstraction model to separate the different planes of an SDN architecture [144]. This model should enhance efficiency and minimize the complexity of the functioning of both applications and SDN controllers [145]. Consequently, we can say that abstraction allows regulating the amount of control, according to the amount of receiving information. Also, it can play a key role in addressing all the issues of SDN technology [146]. In what follows, we present the two important abstraction layers that always make up all SDN architectures.

• Device and Resource Abstraction Layer (DAL):
DAL is provided by NDs to hide any hardware implementation details (i.e., operation planes and forwarding among NDs are abstracted to the control and management planes) [147]. Also, the abstraction allows providing standard interfaces inside or on top of the data plane in which there exists a similar representation of heterogeneous hardware implementation devices towards SDN controllers.
• Service Abstraction Layer (SAL): To provide a simple graph-based view of the network, SAL uses a set of packet-processing functions [148]. These functions are integrated into applications and controllers. This abstraction layer is also provided by the control plane in order to both gather the current state of the network (e.g., link-state, disconnections, topology, etc.) and hide the complexity of forwarding rules and the data plane configuration [149]. Therefore, the main aim of SAL is to isolate SBIs from NBIs.

4) OpenFlow
OpenFlow [150] is one of the most popular SDN protocols, which is also a trademark of Stanford University [151]. The OpenFlow protocol has been widely adopted by academia and industry for different purposes, such as mobile applications, data centers, and computing. OpenFlow implements the SDN architecture and decouples the data plane from the control plane [152]. The OpenFlow architecture comprises switches, controllers, and flow tables in order to enable full programming capabilities of NDs. Indeed, the OpenFlow switches include flow tables that are checked at each time when a data packet is received (i.e., determining the path where the packet should be transmitted). As for the OpenFlow controllers, they are used to configure flow rules included in the flow tables that are embedded in the OpenFlow switches. Moreover, the OpenFlow controllers gather network topology and statistics from the OpenFlow switches in order to have the latest topology of the network. For instance, in UAV networks, the OpenFlow switches are carried by UAVs, and thus it is crucial to maintain the connectivity between UAVs and the SDN controller. OpenFlow has many issues and challenges as follows: • The vulnerability of OpenFlow controllers against different service attacks.
• Adapting the OpenFlow controllers to the scalability of the network.
• Handling the dynamicity of network topology, and especially for highly mobile networks.
• Adapting the OpenFlow controllers to the amount of receiving data.
• The lack of synchronization between the arrival time of packets and the installation time of the rules.
• The lack of consistency between installing rules in the OpenFlow switches and being able to process other packets.

C. NETWORK FUNCTION VIRTUALIZATION (NFV)
To enable the virtualization of the network infrastructure as building block functions and services, a new technology called NFV has been deployed [153]. Indeed, NFV can manage these virtualized services based on a centralized orchestration entity [154]. NFV is among the outstanding technologies enabling the future generation of mobile networks (i.e., 5G, B5G, and 6G). Moreover, it is actually under intense research by industry and academia [155]. NFV virtualizes network hardware infrastructures (e.g., storage devices, computing servers, network devices, etc.) in order to be run 98084 VOLUME 8, 2020 as software applications on remote commercial servers [156]. NFV allows multiple simultaneous virtual networks to run on shared substrate resources, thus enhancing the resource utilization. The implementation of NFV can be successfully performed without taking into account SDN technology. However, it is also possible to combine both technologies to provide optimal performance output. To clearly understand NFV, it is required to describe each essential component of this technology (c.f., Figure 6). In what follows, we provide the definition of the components that are most relevant for this technology.
• Network Functions Virtualization Infrastructure (NFVI): NFVI can be considered as a cloud data center that consists of all shared hardware and virtual resources [157]. For instance, such physical resources can be in the form of servers, storage devices, or network infrastructures. This kind of resources are all virtualized in order to provide different requirements for Virtual Network Functions (VNFs) (e.g., processing, connectivity, and storage) [158]. In addition, NFVI comprises additionally a virtualization layer that abstracts the physical resources and decouples the software from the underlying hardware platform, and therefore offering standardized interfaces [159]. As a result, all these components help to enable virtualization and build the base environment for NFV.
• Virtual Network Function (VNF): VNFs is a software implementation of the network functions of NDs, which run in one or more containers or in virtual machines [160]. To manage the functionality of VNFs, Element Management System (EMS) is deployed to ensure the synchronization between them [161]. Inside the NFVI, several VNFs can be combined to provide full-scale network communication services, which is called Service Chaining [162].
• Management and Orchestration (MANO): MANO is a crucial and required subsystem that offers access to the full framework administration [163]. This access is ensured by several mechanisms, such as compatibility with heterogeneous platforms, operational automation, dynamic operation, and lifecycle management of VNFs [164]. MANO is composed of three main components: (i) the VNF manager, which is in charge of the full lifecycle management of each VNF instance (i.e., running, initializing, maintaining, querying, scaling, and finishing these instances), (ii) the infrastructure manager, which not only provides virtualization infrastructure, but also controls and manages the interaction of VNFs and NFVI with computing, storage, and network resources, and (iii) the orchestrator, which is in charge of orchestration and automation of NFVI that includes instantiation, performance management, software resources, policy management, and Key Performance Indicator (KPI) [165].
D. SDN VS. NFV SDN and NFV are complementary and closely related to each other [166]. SDN can serve NFV by offering programmable network connectivity between VNFs in order to perform enhanced traffic management. In turn, NFV serves SDN by virtualizing, e.g., SDN controllers (i.e., considering them as VNFs) in order to be executed on the cloud, and thus allowing a dynamic migration of the SDN controllers towards optimal locations [167]. However, there are several differences between SDN and NFV as summarized in Table 5.

E. MOTIVATIONS FOR ADOPTING SDN IN UAV NETWORKS
Integrating SDN in UAV networks is attractive due to the benefits and advantages provided by this technology [168]. The majority of approaches proposed in the literature consider UAVs as SDN switches on the data plane in order to exchange information in a distributed manner [169]. Moreover, the ground BSs are considered as controllers which collect data and perform control decisions VOLUME 8, 2020 on different aspects of networks [170], [171]. Consequently, different requirements and characteristics of UAV networks make SDN the most suitable solution to address the issues in such networks. These issues are summarized as follows: • UAV networks are extremely restricted in terms of communication and resource utilization.
• Traffic demands in specific scenarios are very high, and thus consuming more energy and overloading.
• The high mobility of UAVs makes the connectivity intermittent, and thus causing network fragmentation.
• The deployment of UAVs cannot be ensured in an efficient way without having a global view of the network.
SDN-enabled UAV networks could provide appropriate solutions to these issues by changing the network without reinventing its architecture. In summary, the main solutions for SDN integration include: • The centralized control provided by SDN can increase the utilization resources and provide better QoS. To do so, there is a need to have a permanent update of network topology while ensuring the connectivity between UAVs and the SDN controller.
• The network reconfiguration and allocation of radio resources among a UAV swarm can be performed in a flexible way using the centralized controller(s) located on the ground.
• An SDN-enabled architecture can effectively optimize load balancing between UAVs and ground BSs.
• SDN controllers allow routing traffic information among UAVs without any losses or network congestion.
• The 3D movements of UAVs can be dynamically adjusted using an SDN-enabled architecture in order to optimize location management, polling, and paging.

F. MOTIVATIONS FOR ADOPTING NFV IN UAV NETWORKS
The advent of the next generation of mobile networks (i.e., 5G, B5G, and 6G) will undoubtedly revolutionize the world of telecommunications [172]. Furthermore, when UAVs are integrated to support these mobile networks, they can effectively extend their capacity [173]. Indeed, given their computing, storage, and networking capabilities, UAVs can be considered as a flexible platform to both support cost-effective communications and enable the shared use of resources in the next generation of mobile networks [174]. In this context, the NFV paradigm can be smoothly integrated into UAV networks with the aim to enhance the performance of traffic processing delivered in these mobile networks [175], [176]. However, despite the huge effort that has been put into enhancing resource orchestration, there still exist issues and hurdles that should be efficiently addressed. The major challenges that face the deployment of NFV-enabled UAV networks are listed as follows: • To provide seamless integration of UAVs, there is a need to define exactly which resources should be shared on the network.
• To decrease the OPEX, the virtualization of UAVs as shared resources becomes crucial, and especially when UAVs are among cellular virtual network operators.
• The definition of VNFs' location and how to ensure the control and interconnection between them [177].
• Enhancing the system scalability and resource allocation, and effectively investigate the migration process from hardware resources to software entities.
The NFV concept can be considered as the most adequate solution to solve the above-mentioned problems. A brief summary of the solutions is listed as follows: • An NFV-based architecture could virtualize the basic functions and hardware to offer an abstract view of the whole network.
• NFV can enhance resource allocation and system scalability in a transparent way.
• NFV reduces the costs of deploying more additional hardware devices to perform specific tasks.
• NFV minimizes considerably the energy consumption of UAVs. Consequently, there is a strong need to conduct deep researches to find the appropriate NFV-enabled solutions with less complexity.

IV. SDN-BASED UAV NETWORKS
SDN-based UAV networks have recently attracted the interest of scientific researchers and industry [178]. The SDN architecture aims to flexibly manage UAV networks [179]. The deployment of SDN technology in UAV networks allows them to efficiently perform tasks in a timely manner [180]. In this section, we discuss different SDN-based architectures proposed in the literature for UAV networks. To have a clear picture of the current state of the SDN-based UAV networks, Figure 7 depicts a comprehensive taxonomy of the different approaches classified according to several categories based on the various applications and scenarios in which UAVs are deployed for.

A. SDN-BASED ROUTING
During the last decade, the assistance of terrestrial networks by UAVs has attracted increased attention [86]. The use of UAVs has presented a flexible capability to assist terrestrial networks when they suffer from poor connectivity [181]. UAVs have the ability to reach areas where it is difficult for terrestrial networks to cover [182]. Also, UAVs can act as relays between disconnected clusters in intermittently connected networks [183]. Some challenges which are worth mentioning are given below: • Enhancing both the UAV network's formation and communication between UAVs. • Increasing the visibility and availability of UAV network topology.
• Maintaining network coverage and ensuring QoS requirements, and especially for delay-sensitive applications.
• Providing both enhanced route selection and flexible network configuration. In this context, several UAV-assisted routing solutions have been proposed in the literature. Most of them are dedicated to supporting vehicular ad hoc networks (VANETs) and other kinds of terrestrial networks. In this section, we describe the most relevant SDN-based UAV-assisted routing solutions for terrestrial networks. Table 6 shows a summary of the existing major routing contributions involving UAVs along with their objectives, advantages, and drawbacks.
Ramaprasath et al. [184] exploited the SDN-based system to control UAV-to-UAV communications. The main goal of this system is to enhance network resource utilization, delay, and throughput. An SDN controller plays the role of a central hub that monitors storage, processing, and all control information. The priority of the packets is controlled according VOLUME 8, 2020 to different priority levels in order to maintain the stability of the network. The scenario illustrated in Figure 8 depicts the establishment of a communication between UAV 1 and destination (i.e., Internet). The packets have to transit through a series of hops, which are directed by the SDN controller using the control plane to reach the sink or the SDN controller. Then, to complete the transmission of packets, the SDN controller relays them to the destination.
Qi et al. [185] designed a centralized Traffic-Differentiated Routing (TDR) algorithm based on two different controllers: (i) a coordination controller and (ii) SDN Cluster controller. TDR aims to ensure a certain level of QoS for reliability and delay-sensitive services. Indeed, UAVs are organized in the form of several clusters. In each cluster, a cluster SDN controller is guiding data forwarding, scheduling of network resources, and performing interactions with all UAVs in the cluster. An upper stationary airship controls all domains in which all UAVs are supposed to know their positions and speeds. For the availability forecast of the link, it is supposed that the maximum communication range of all UAVs and their respective positions are previously known. As shown in Figure 9, the adopted SDN architecture is composed of three layers: (i) data layer, (ii) control layer, and (iii) application layer. Indeed, the data layer reflects the whole network infrastructure in the form of multiple UAVs grouped into several clusters. This layer is controlled by upper stationary balloons or airships. Each balloon acts as a single domain controller and interacts with other balloons. On the application layer, many network functions are available in the form of a software module manner.
A novel routing solution is proposed in [186] based on a hybrid SDN technology deployed among a team of UAVs and IoT devices. Some UAVs can belong to the SDN network and considering SDN forwarding rules according to the topology of the network. They also have the possibility of migrating from SDN to a distributed traditional routing protocol.
As depicted in Figure 10, there is an SDN controller comprising three modules: (i) Topology discovery module, (ii) Statistics gathering module, and (iii) Route computation 98088 VOLUME 8, 2020  module. The first module periodically gathers the state of the overall links in order to build a global view of the network connectivity. The second module collects statistics about flight features (e.g., bit error rate, delay, etc.) and network connection status (e.g., GPS data, speed, etc.). As for the third module, it is used to calculate optimal communication paths based on the information provided by the other modules.
In harsh environments, there are some difficulties to flexibly deploy terrestrial networks [187]. Therefore, this gives rise to a crucial need to construct a robust airborne backbone network (ABN) to maintain a permanent coverage of the interest area. Chen et al. [188] integrated the SDN paradigm into ABN to exploit the SDN advantages and to enhance traffic management efficiency. Moreover, the authors have designed a traffic scheduling algorithm to ensure real-time performance and reliability of forwarding network flows. Figure 11 shows the different nodes of the SDN-based ABN (or SD-ABN) architecture and how they can interact between them. Indeed, the SD-ABN is composed of three kinds of nodes: (i) Traffic Forwarding Node (TFN), (ii) Gateway Node (GWN), and (iii) Network Control Node (NCN). All these nodes can play the role of TFNs that are responsible for forwarding network flows. GWN is in charge of connecting ABN and different heterogeneous networks. There may be  more than one NCN in ABN, which is responsible for carrying the SD-ABN controller. Furthermore, a multi-reliablepaths based traffic scheduling algorithm is deployed within the SD-ABN. The aim of this algorithm is to improve its network performances while considering all routing constraints, such as the frequent disconnections, signal blockage, and uncontrollable mobility, which may occur during the data delivery.
Secinti et al. [189] proposed an SDN-based multi-path routing framework for UAV networks. An SDN controller is adopted on top of this framework to avoid routes that are subjected to jamming. UAVs operate as software switches and they are able to execute commands under the controller directives. A multi-layer graph model is used to establish separated paths in the 3D space to provide a certain resistance to jamming. To better explain this architecture, we consider the example in Figure 12. In fact, a connectivity layer is attributed to each pair of UAVs if, and only if their positions allow the use of one of radio access technologies. Then, the SDN controller executes the shortest path algorithm in order to explore multiple disjoint routing paths. The SDN controller is composed of four different modules: (i) Data acquisition, VOLUME 8, 2020 (ii) Transmission time calculation, (iii) Multi-layer graph modeling, and (iv) End-to-end resilient multipath routing. The first module builds a distance matrix to have a global view about the connectivity of the whole network. The second module estimates the delivery between each pair of connected UAVs. The third module constructs a weighted graph of the network to show the reachability between UAVs while they are using different radio access technologies. As for the last module, it is based on the Dijkstra algorithm [190] to calculate the most appropriate routing path between a given pair of source and destination UAVs.
As an improvement of the work presented in [189], Secinti et al. [191] proposed a novel SDN-based network architecture to ensure robust end-to-end connectivity among UAVs using a multi-path disjoint routing protocol. This architecture aims to avoid both frequent link failures and the limited processing resources of UAVs. Each UAV is equipped with a WiFi interface and can act as an SDN switch that operates under directives sent by a centralized controller. This routing scheme ensures in some sense the quality of links between UAVs while providing alternative paths in case of link failures.
Yuan et al. [192] proposed an SDN-based mobile sensor network architecture for reliable data communication in UAV swarms. The aim of this architecture is to overcome the constraints of UAV networks, such as computational problems and limited channel resource allocation. The centralized SDN server provides operators and UAV service providers with network management opportunities for large-scale control of UAV swarms. To maintain the global swarm topology, each UAV monitors link conditions and flight speeds of their neighbor UAVs. This information is then sent back to the SDN server for advanced topology change management and network resource planning. These processes considerably reduce the load from the UAVs. In the example shown in Figure 13, the architecture of the proposed system comprises a remote control center achieving several tasks, such as search and rescue, monitoring, emergency communication infrastructure, etc. All UAVs are connected through existing cellular networks and wireless interfaces. Moreover, UAVs are able to accomplish several tasks, such as forwarding data packets and periodically check the status of wireless links and flight statistics and report them back to the SDN controller. All these features allow building a routing path between a communicating UAVs based on a maintained global routing table while considering the limited channel and computing resources.
Iqbal et al. [193] designed an SDN-based architecture for UAV networks, both to predict network disruptions and maximize network availability. In addition, it also aims to both reduce the impact of link failures and configure routing strategies. Indeed, the centralized controller can predict future positions due to their fixed orbits. This allows the proposed architecture to switch the radio links and flow routes beforehand and prior to any network failures. Consequently, the use of predictive SDN maximizes network availability.  In the scenario depicted in Figure 14, there are two kinds of controllers: (i) the SDN controller and (ii) the Radio Network Controller (RNC). The SDN controller is based on the OpenFlow protocol to update flows to the whole aerial system network through embedded virtual switches. As for the RNC, the Simple Network Management Protocol (SNMP) is used to send commands to radio terminals. The RNC executes four modules: (i) Node Position Predictor module, which predicts the future location of UAVs by gathering GPS information from UAVs, (ii) Radio Link Simulator module, which combines UAV location predictions and radio environment to estimate the availability of radio links, (iii) Layer 2 Topology module, which creates a series of time-sequenced link adjacencies, (iv) Radio Interface module, which receives a near-optimal subset of link adjacencies selected by the SDN controller. As for the SDN controller, other four modules are executed as follows: (i) Proactive routing is executed to control the aerial system, (ii) Reactive routing is performed when there are topology change notifications received by the SDN controller in order to calculate and forward flow rules, (iii) Flow Management module, which creates flow rule updates, and (iv) Routing, as well as forwarding control decisions, which are performed based on the SDN controller's network knowledge.
The authors of [194] have designed an SDN-enabled airborne tactical network (ATN) architecture. The aim of this architecture is to ensure that the control plane reliably gathers the monitoring information from the data plane in a real-time way. For these purposes, a communication protocol called MCF-SD-ATN (Monitoring information collection framework for SDN-enabled ATN) is designed to both make the control plane efficiently collects monitoring information from the data plane and ensure a certain level of QoS. As shown in Figure 15, the application plane of the SD-ATN is composed of many network applications formulating several operation policies. Three control hierarchies are included in the control plane of the SD-ATN: (i) Device control hierarchy, (ii) Platform control hierarchy, and (iii) Swarm control hierarchy. As for the data plane, it comprises many transmission systems for different UAVs.
Xiong et al. [195] proposed an SDN and message queue telemetry transport (MQTT) hybrid network structure for a UAV swarm in the context of the battlefield. The aim of this structure is to ensure distributed features that are particularly suitable for UAV swarms, such as flexible data transmission, security, and power-saving friendly. Moreover, a QoS-based multi-path routing protocol is proposed to calculate multiple disjointed paths between a pair of communicating nodes with the aim to improve network performance. Figure 16 shows two swarms of UAVs where each swarm has an elected master and other UAVs are considered to be slaves. Each slave has the same components to be elected in the future as a master. The Master is considered as an SDN controller for each swarm. Therefore, it is responsible to manage the communication between UAVs and define the appropriate wireless links between slaves.

LEARNED LESSONS
The different lessons learned from this subsection are listed as follows: • SDN architecture provides better network performance in terms of delivery ratio, latency, and bandwidth. However, neglecting the energy consumption of UAVs can significantly affect the functioning of UAV networks.
• The failure of SDN controllers can considerably disturb the whole UAV network.
• Lack of standardized SDN-based UAV network solutions in order to be deployed in any scenario.

B. SDN-BASED UAV-ASSISTED WSN
The heterogeneous cooperation between UAVs and ground sensor nodes can provide many kinds of applications, such as remote sensing [196], monitoring [197], agriculture [198], and military operations [199]. This cooperation is based on a predefined network composed of UAVs and wireless sensor network (WSN) while ensuring sufficient stability of this heterogeneous structure [200]. This objective can be achieved by addressing the following issues: • Ensuring an effective creation of this collaborative network while dealing with the frequent topology changes.
• The devices (i.e., UAVs and sensor nodes) composing this cooperative network are restricted in terms of lifetime and energy. Therefore, extending the usage of such devices is of paramount importance.
• Effectively managing data gathering while considering interference and other constraints.
• Dealing with the high mobility of UAVs to ensure a high level of cooperation. In the following, we investigate the major SDN-based contributions proposed to solve all these issues. Table 7 portrays a summary of these contributions.
Kirichek et al. [201] proposed an SDN-based architecture for flying ubiquitous sensor network (FUSN) in which UAVs are deployed as software switches, sensors, and controllers. The aim of this architecture is to establish an efficient data collection with the help of UAVs from mobile sensors located on the ground (i.e., terrestrial segments). There is a set of rules of message interaction between UAVs, which are supervised  by the controller. This work has concluded that the adopted SDN architecture minimizes the amount of routing traffic and enhances its resistance to the topology changes. As exemplified in Figure 17, the proposed SDN-based architecture comprises UAVs playing the role of switches and another specific UAV (i.e., Copter) takes the role of an SDN controller. The copter (i.e., Controller) has several tasks to accomplish, such as the data collection related to the channel quality between UAVs, the analysis of network topology, the definition of traffic routing policies, the transfer of control plane, and the interception of requests from the network. In addition, the UAVs can organize themselves to efficiently collect data from ground nodes.
In [202], a softwarization architecture for the collaboration between UAVs and WSNs is proposed. A controller layer virtualizes the physical nodes (i.e., sensors and UAVs) to higher layers. This can be done by providing APIs for the intermediate orchestration layer to manage both the mission and the cooperation between the physical nodes. Therefore, this kind of architecture facilitates the network reconfiguration, increases the system reliability, and supports the redundancy. For example in Figure 18, the adopted softwarization architecture is illustrated. Four layers are distinguished: (i) The physical layer, which comprises UAVs and sensor nodes providing services and sensed data, respectively, (ii) The controller layer, which comprises two kinds of controllers that are monitoring the physical layer and gathering data from it, (iii) The orchestration layer, which is located in the cloud and provides resources as services to the application layer, and (iv) The application layer, which provides to the user both a user-friendly interface to manipulate the mission and allowing him to receive results during the mission.
Watson et al. [203] designed a technique to use a swarm of UAVs to carry out radar functions. The purpose of this technique is to track passive reflectors and active emitters of RF signals in a highly dynamic network. In fact, a set of SDN-enabled RF IoTs (RIOTs) is created to perform the detection, as well as the geo-localization tasks. Consider the example shown in Figure 19 where there are multiple UAVs organized in the form of two swarms. The UAVs are collecting data from ground sensor nodes and interacting with the SDN controller. In turn, the SDN controller manages and 98092 VOLUME 8, 2020  maintains each UAV network swarm by providing some rules of communication between UAVs while considering different UAV constraints.
A novel data dissemination technique is proposed in [204]. This techniques builds a virtual topology based on the load on WSN nodes using SDN through UAVs. Each UAV acts as a relay and it is equipped with Multiple-Input MultipleOutput (MIMO) antennas to ease the establishment of simultaneous communication with the SDN controller, BS, and sensor nodes. The SDN controller configures the topology formation and maintains sleep timers and counters. Figure 20 depicts a scenario where the architecture comprises many UAVs, sensor nodes, and BSs. The sensor nodes are placed into octagonal cells. In each cell, there are two fixed-wing UAVs (FW-UAVs) and an SDN controller at the center. The FW-UAVs are used for relays and transmission, they are flying autonomously in the same direction clockwise or the opposite, and their velocity and positions are controlled by the SDN controller. Moreover, the SDN controller is in charge of updating the forwarding information base and logical topology formation.

LEARNED LESSONS
In summary, the key lessons learned from this study are listed below: • The energy consumption of UAVs and ground sensors should be managed efficiently.
• Defining correctly the density of UAVs to be deployed in order to gather the maximum of data from ground sensors.
• Jointly optimizing the usage of hardware resources and the completion time of missions.

C. SDN-BASED UAV-ASSISTED VANET
UAVs are considered as crucial support to enhance many VANET applications and to extend their functionalities [205].
Moreover, due to their flexibility and practical deployment, UAVs can effectively assist VANETs to improve their routing processes [206]. Also, UAVs can manage the traffic jam [207] and provide road services [208]. Nevertheless, some challenges and issues still remain unsolved or not optimally addressed as follows: • Enhancing the performance of VANETs' services while exploiting UAVs.
• Effectively gathering data from VANETs using UAVs and ensuring its real-time processing.
• Enhancing the energy consumption of UAVs to extend the lifetime of the aerial platform supporting VANETs.
• Ensuring an optimal balance between computation delay and energy consumption of UAVs. In the following, an in-depth discussion of several SDN-based contributions that have tried to solve all these issues is provided. Moreover, these contributions are briefly summarized in Table 8.
Zhang et al. [209] proposed an SDN-enabled space-airground integrated vehicular (SSAGV) network architecture. The main goal of SSAGV is to optimize the connectivity and QoS requirements of VANETs while exploiting network resources from both space and air segments. Indeed, the ground segments provide high data rates to vehicular users. While the satellites and air segments ensure ubiquitous coverage in remote areas and optimize the capacity of areas with a congested or poor terrestrial infrastructure deployment, respectively. This architecture fails to analyze the specific offloading mechanisms. Figure 21 exemplifies a scenario where the proposed architecture is composed of three main segments: ground, air, and space. The SDN controllers are embedded on powerful servers, which managing network resources and regulating the network functioning. Each segment has dedicated control and communication interfaces of SDN controllers. To orchestrate the functioning of each segment, higher-tier SDN controllers are adopted over the SDN controllers in each segment to support the services of vehicular networks.
By using another kind of technique, Alioua et al. [210] proposed a distributed SDN-based UAV-assisted infrastructureless VANETs (dSDiVN) for assisting ground emergency  vehicles in a rescue scenario. A sequential game mechanism to explore how to carry out efficient processing of the data by both the sharing of state information and the offloading of computing tasks. The authors modeled the tradeoff between energy consumption and computational delay as a two-person sequential game problem.
As shown in Figure 22, the SDN paradigm is enabled by dividing the network (i.e., road segments) into equal size virtual segments, with the aim of making it more stable and less dynamic. Each segment represents a virtual SDN domain that contains vehicles moving in the same direction and they are reachable to each other. Moreover, a local controller is assigned to each domain for handling and controlling all the requests of forwarding vehicles inside its domain. A centralized SDN controller (i.e., the emergency vehicle) is exploited to facilitate the management of UAVs by dealing with the installation of the command of UAV missions, such as data gathering and forwarding tasks. Among UAVs, a powerful UAV is selected to play the role of a secondary controller on the set of forwarding UAVs. The secondary controller aims to ensure the monitoring and collection of information related to UAVs (e.g., positions, battery levels, etc.). Also, it can enhance the energy consumption of UAVs and latency of the whole network.
A model for traffic light control and coordination of emergency vehicles is proposed in [211]. A UAV is deployed to play the role of an SDN controller. In this model, the Augmented Reality (AR) is displayed from the camera embedded on the UAV, which is used to visualize the real-time state at the crossroad. The aim of this model is to reduce the risks and distortion induced by emergency vehicles and inform drivers about alternative routes. In the example shown in Figure 23, the UAV acts as an SDN controller and different peripheral modules are embedded in priority vehicles (e.g., emergency and police). Video flows related to priority vehicles are taken by the UAV and they are transmitted to the AR smart glasses of other drivers to allow them to know the speed and other parameters of these priority vehicles.

LEARNED LESSONS
It is worth noting that there are many important lessons learned from this subsection as follows: • Studying accurately the high mobility of UAVs and vehicles.
• Managing the energy consumption of UAVs. 98094 VOLUME 8, 2020 • Positioning appropriately different ground BSs along the roads.

D. SDN-BASED MONITORING
UAVs can act as eyes in the sky, and thus performing a large class of monitoring tasks [212]. In this sense, keeping UAVs in flight for a long period of time, adjusting video quality requirements at acceptable levels, and managing the resources of the UAV network, are of major concern [213]. However, a number of issues should be effectively addressed in order to optimally cover a specific zone: • Decreasing packet losses during video transmission, which is caused by UAV movements. Moreover, optimizing the UAV trajectory to avoid collisions with other obstructions or UAVs.
• Maintaining a certain level of QoS during the video delivery while reducing occasional delays and interruption periods, and especially at critical events.
• Mitigating the impact of the restricted capacity of energy in order to keep the cooperation between UAVs and ground BSs during the mission.
• Efficiently managing inter-UAV communication and ensuring seamless mobility of UAVs among ground BSs. To address these issues, there are four major SDN-based solutions dedicated to monitoring, which have been proposed. These solutions are both discussed in this subsection and briefly summarized in Table 9.
Zhao et al. [214] designed an SDN-based UAV network (SD-UAVNet) on a single centralized SDN controller. The main goal of this network is to provide network programmability by separating the control and data planes and controlling UAVs mission features. The SDN controller takes into account the global UAV context to optimize UAVs' mobility, avoid collisions, and establish a communication path. This can effectively define how to re-plan the position of relay UAVs with the aim of providing a real-time video monitoring service with Quality of Experience (QoE) support.
In the scenario depicted in Figure 24, the SDN-enabled UAV networks are deployed over disaster scenarios in order  to provide real-time video monitoring, and especially when the terrestrial communication infrastructures are not available. This helps the ground control station to inform humans about the actions to take. The SDN controller carries out all control functions to which source UAVs are transmitting video flows to the destination ground station through relay UAVs.
The work proposed in [215] rely on an SDN approach to tackle the high mobility of UAVs that can act as data providers in the context of military mobile networks. This approach aims to provide the best routes to deliver the data, reduce delays in image transmission, and therefore enhances the end-user quality of experience in video streaming. Figure 25 shows an example where each ground vehicle acts as a switch that is controlled by the SDN controller. Moreover, the UAVs are moving around the area where they are performing the monitoring mission, and thus the connection to ground vehicles is not stable. On the one hand, the UAVs can often reconnect to the same vehicle or a different one. On the other hand, the SDN controller has to enhance the network to make the re-connection process as smooth as possible. This helps to improve the quality of video being displayed to the users driving the ground vehicles. VOLUME 8, 2020  A cooperative UAV scheme is proposed in [216] with the goal to enhance video transmission and global energyefficiency. For this purpose, an SDN controller is supposed to be deployed to ensure both a reliable computation of energy-efficient routes and UAV replacement. By achieving these purposes, the SDN controller can avoid an eventual UAV failure, minimize void areas, reduce network disconnections, and thus prevent low-quality video transmission. In addition, the SDN controller allows to provide network flexibility by both separating the control and data plane and controlling operational parameters of UAVs. In the example depicted in Figure 26, UAVs are deployed in disaster areas to monitor and transmit video flows to a ground entity or service to take the appropriate decisions. Indeed, UAVs are connected to a centralized controller that is able to manage the UAV network performance, such as routing, UAVs' replacement, or data forwarding. Moreover, there are multiple local controllers that are in charge to forward control messages to/from the centralized controller. White et al. [217] applied SDN and NFV technologies to deploy some important processing functionalities across the ground BS. The main goals of this architecture are to improve the situational-awareness for payload operators, pilots, and external controllers during UAV missions. Also, this architecture ensures a permanent deployment of services and reduces both the requirements imposed by the existing backbone infrastructure located on the ground (e.g., in case of failures and high latency). Indeed, each ground mobile node operates as a switch and each UAV as a host. In addition, each kind of node can route traffic towards payload operators and pilots based on predefined OpenFlow rules. As for the SDN controller, it is placed in the ground BS or ground control station (GCS) while VNFs are placed in the ground mobile nodes to execute routing functions. To better explain this scheme, we consider the example of Figure 27. In fact, a set of UAVs operating in various areas with different embedded devices (e.g., IR cameras). Moreover, a set of mobile GCS is positioned in different regions and they are connected through satellite links with the aim to connect and provide 98096 VOLUME 8, 2020 control information to UAVs. A centralized control center is deployed to detect any anomaly on data streamed to it. UAVs are transitioning from one mobile GCS to another, and thus a handover phase should be established. As a consequence, UAVs, mobile GCSs, and the centralized control center are all considered to migrating hosts, switches, and a network controller, respectively.

LESSONS LEARNT
The three important lessons that can be extracted from this subsection are summarized as follows: • Orchestrating the inter-UAV communications using an SDN architecture provides better network performance.
• Ensuring the energy efficiency of UAVs during surveillance and monitoring.
• Reducing the overhead that is caused by the exchange of information with controllers.

E. SDN-BASED CELLULAR COMMUNICATIONS
UAV-BSs have the capacity to form UAV cells with the aim to provide extended network coverage for GUs [218], [219]. Also, the deployment of UAV-BSs and their densification in temporary events or unexpected circumstances can be expected to effectively assist existing cellular networks [220]. The main advantages of deploying UAV-BSs are to complement existing terrestrial networks to meet the bursty traffic demands over certain areas [221]. In addition, UAV-BSs can enhance both resource utilization and terrestrial network capacity [222]. To successfully achieve the integration of UAV-BSs with terrestrial networks, it is important to first address the following issues: • Effectively tracking GUs (i.e., regions with high traffic demands) and ensuring seamless handovers of UAVs.
• Handling intermittent connectivity of UAV-BSs with terrestrial networks in order to reliably extend their coverage.
• Optimizing the placement of UAV-BSs while considering the constraints of energy, interference, and connectivity.
• Jointly managing resources of UAVs and terrestrial networks in order to efficiently satisfy the dynamic traffic demands of users. In the following, a deep investigation of different contributions is presented. Furthermore, a brief summary of these contributions is provided in Table 10.
A novel software-defined cellular network (SDCN) paradigm with wireless backhaul is proposed in [223]. This paradigm is based on an air-ground architecture ensuring flexible characteristics for future cellular networks. To top it off, resource allocation and 3D UAV placement algorithms are adopted to ensure a tradeoff between the transmission power of UAVs and the associated number of users while maintaining the QoS requirements above a certain threshold. To do so, the problem of intractable utility maximization is  converted into a two-phase algorithm involving the optimal allocation of resources and the optimal UAV-BS altitude-toradius ratio. In the scenario depicted in Figure 28, a set of ground BSs comprising a large number of antennas existing on a ground cellular network. In the case when such ground BSs will be congested, UAVs can play the role of UAV-BSs to assist the ground cellular network. Indeed, each ground BS provides a wireless backhaul at each UAV-BS serving GUs, thus forming a heterogeneous network and logical data plane. The control of the overall system is ensured through a centralized SDN controller supporting multiple function modules, such as resource allocation (RA), network repository function (NRF), authentication server function (AUSF), mobility management function (AMF), and virtual radio access network information big-base (VRIB).
The authors in [224] developed a software-defined spaceair-ground integrated moving cells or what is called SAGE-CELL. This architecture is based on the concept of SDN to ensure several characteristics. For instance, it has to be scalable, flexible, and a programmable framework in order to integrate different resources, such as space, air, and ground resources in a complementary fashion. SAGECELL can be adapted to dynamic traffic demands in accordance with the network capacity. Figure 29 illustrates a scenario where the infrastructure of SAGECELL comprises three segments: (i) space segment (ii) air segment, and (iii) ground segment. These segments are in charge of collecting data, transmission, storage, and analysis functionalities in terrestrial networks. To virtualize the communications between these segments, a hypervisor is placed between the infrastructure layer and the control layer in order to handle resource allocation and network management. Lower-tier (LT) SDN controllers are linked to the space-air-ground segments through the hypervisor, where each one is able to manage its own virtual small cells. Upper-tier (UP) SDN controllers are connected to LT SDN controllers, which are in charge of coordinating the heterogeneous resources from different segments and ensuring a centralized management of the whole network. As for the application layer, it contains a variety of applications, such as smart city, emergency management, Industry 4.0, and enhanced mobile broadband (eMBB).
Yang et al. [225] proposed heuristic algorithms to design a proactive UAV-cell deployment framework. An SDN architecture is adopted in this framework to integrate and disintegrate UAV-cells by reconfiguring the network in a transparent way. The main purpose of this framework is to assist 5G networks in temporary crowd traffic scenarios (e.g., stadium, parades, and concert) and to disintegrate or integrate UAV-BSs to the 5G networks. The architecture of the proposed framework is composed of a set of small-cells and a set of UAV-BSs to provide internet access for congested GUs (c.f., Figure 30). A given UAV-cell is placed in the center of the cluster to have the possibility to communicate with all cluster members. Indeed, there is a centralized controller that gathers and stores information related to the network and making decisions. Then, it manages UAV-BSs functioning (e.g., deployment, movements, mission time, and coverage), configures the network, and creates new paths between different functions. Also, the controller has the ability to collect real-time information about any GUs and all its parameters of the connection.
A prototype named SkyCore is designed by Moradi et al. [226]. This prototype is based on a two-UAV LTE network to interoperate with smartphones and existing LTE infrastructures on the ground. Different network functions are softwarized and placed in a centralized server that is deployed on a UAV. This architecture supports multi-UAV deployments, hotspot, and provides data plane and superior control performance. The overhead of  inter-UAV communication is significantly reduced by using a segment-based routing. The adopted architecture of Skycore is shown in Figure 31. SkyCore employed the SDN paradigm to configure the mobility and communication between UAVs. This allows to avoid the impact of wireless UAV-to-UAV links and synchronize their states with each other. Also, there exists a Master that is in charge of ensuring communication with other agents.
An SDN framework for UAV networks is proposed in [227], which is called temporospatial SDN (TS-SDN). The main aim of TS-SDN is to proactively adjust the network topology by using physical positions and trajectory through the SDN controller. As an advantage, this TS-SDN has the ability to increase the network performance for GUs by efficiently managing the topology, routing packets proactively, managing radio resources, and scheduling operations. Figure 32 shows the proposed framework comprises three layers: (i) access layer, (ii) distribution layer, and (iii) core layer. The first layer includes an LTE base station (eNodeB) embedded on the aerial platform (e.g., UAV or Satellite) connecting different GUs. Moreover, each eNodeB establishes a connection with the distribution layer. In turn, this layer connects the eNodeB to the core layer of the network   Another SDN-based network framework is proposed in [228], which is dedicated to UAV backbone networks. It comprises two control cores interacting with each other to make optimal decisions. The first control core is a UAV controller, which is responsible for managing UAV information (e.g., flight control, location, battery storage). The second control core is an SDN controller, which is managing network information. The SDN controller includes four modules, such as traffic management, strategy, monitoring display, and link management. To illustrate this framework, we consider the proposed SDN-enabled architecture in Figure 33. This architecture is composed of three entities: (i) UAV-BSs, (ii) GUs, and (iii) an SDN controller. Each GU should be served by at least one UAV-BS to transmit and receive information. The SDN controller is able to communicate with all UAV-BSs by emitting and receiving control packets from them, while UAV-BSs communicate with each other through multi-hop forwarding. Two different controllers are embedded in the SDN controller. First, the UAV controller that is responsible for managing information related to different UAV parameters, such as flight control, battery storage, and geographical location. Second, the SDN controller configures and manages information related to the UAV network and also interacts with the UAV controller.
Verdone et al. [229] have optimized the uplink data rate of GUs and energy-efficiency of UAVs. This is done by adopting an SDN-based architecture, which considers issues related to a joint radio resource management between the GCS and UAVs. Moreover, the parameters related to the UAV network, such as flight parameters are also optimized. Figure 34 illustrates the components and functioning of the proposed framework. A mobile architecture network orchestrator (MANO) interacts with a UAV network controller (UANC). MANO can both gather GU positions and manage their handovers between UAV-BSs and terrestrial BSs. UANC is in charge of defining the missions of UAV-BSs and managing the assignment of radio resources by UAV-BSs. Furthermore, UANC is able to determine all information related to the GUs and how terrestrial BSs are serving them.
The authors of [230] proposed an optimization framework of 3D hovering placement of relay UAVs assisting a ground cellular network. This framework considers both realistic UAV connectivity and inter-UAV interference constraints. The network coverage is also optimized based on the QoS provided by UAVs by using an extremal-optimization algorithm. Moreover, flight routes are also assigned based on Bezier curves, which are very useful for realistic topologies and enhance the coverage over time while UAVs and users are moving. As shown in Figure 35, a set of ground BSs is deployed in a limited geographical area, providing different services to several GUs. To extend the coverage of existing terrestrial BSs, a set of UAV-BSs are deployed acting as relay stations and serving GUs.

LEARNED LESSONS
Various lessons learned from this subsection are listed as follows: • Dynamically deploying UAV-BSs according to the traffic demand of GUs. • Reducing the complexity of the SDN architecture while considering the energy consumption of deployed aerial platforms.
• Satisfying as many as possible of active GUs.

F. SDN-BASED SATELLITE COMMUNICATIONS
Satellite networks can be extended to interconnect aerial platforms and terrestrial networks together to form a single network architecture [231]. The main goal of this integrated network is to perform various services and applications in the next generation of mobile networks [232]. Indeed, this novel architecture has several advantages, such as wide coverage, large bandwidth capability, high data rate, multi-level access, and adaptability to complex environments [233]. However, many challenges are distinguished in such kind of heterogeneous networks, which are listed as follows: • Providing seamless communications with diverse QoS requirements.
• Dealing with complex communication environments to enhance the end-to-end routing mechanism between GUs.
• Enhancing the share of physical networking resources by using virtualization.
• Reducing the complexity of the integrated network by using the SDN concept. To overcome these issues, different SDN-based contributions are proposed across the literature. These contributions are investigated and summarized in Table 11.
An SDN-enabled satellite-terrestrial network is proposed by Qiu et al. [234]. The goal of this integrated network is to dynamically manage networks, computing resources, caching, and jointly orchestrated them. As for the optimization of resource allocation, it is first described as a Markov decision process and then a novel deep Q-learning approach is used to solve this problem.
As shown in Figure 36, the proposed architecture consists of the application layer, the control layer, and the data layer. The application layer provides a set of applications, such as monitoring, navigation, remote sensing, and communicating.  The control layer is responsible for managing the different resources in the data layer by enabling networking, computing, and caching resources and allocating them based on the users' requirements. As for the data later, it comprises three kinds of infrastructure, such as computing infrastructures (e.g., MEC servers), caching infrastructures (e.g., content caches), and networking infrastructures (e.g., LEOs).
An integrated satellite-terrestrial network (ISTN) architecture based on SDN is described in [235]. Moreover, a heuristic service-oriented path computation algorithm for elastic data flows is proposed. This algorithm is based on the considerations of load balancing, capacity, wavelength, latency, and allocated bandwidth, in order to deal with the complex heterogeneity of such integrated networks. Also, this algorithm is designed to address the unified routing problem by handling forwarding and coming data flows. As an illustration, we consider Figure 37, which depicts a terrestrial and LEO satellite network. The terrestrial network is composed of servers, ground stations, and switches, which are all connected through the optical fiber and can be also linked to one or more satellites. The network management is ensured through an SDN technology, thus making the unified management of QoS and routing possible. It is worthy to note that the satellite network is used for service aggregation, data service access, and data flow transport under the low latency constraint. In this architecture, the data flow transport through both the terrestrial and satellite networks is considered.
Bi et al. [236] proposed an SDN-enabled for Space and Terrestrial Integrated Network (SD-STIN). The goal of SD-STIN is to support global seamless communications. The SDN controller has several functionalities, such as monitoring link connections and SDN switches both on the ground and in space and collecting real-time information about the integrated network. Moreover, operating along with SD-STIN, a mobile edge computing (MEC) paradigm is used in a centralized way to enable heterogeneous network convergence, mobility management, routing scalability, topology control, and content delivery. Figure 38 shows that SD-STIN includes VOLUME 8, 2020  various mobile networks and satellite systems and can support several services, such as processing, storage, and big data transmission. Indeed, GEO satellites serve as SDN-enabled switches for incoming packets from either satellites in the same orbit, MEO/LEO satellites, or terrestrial hubs. As for the terrestrial domain, ground hubs serve as gateways between the Internet backbone and satellite networks using a protocol translation. The SDN controllers deployed on the ground to obtain information, including satellite link conditions, resource utilization, and topology changes. In addition, these controllers are also able to define routing policies for both space and terrestrial domains that run SDN protocols (e.g., OpenFlow).
Shi et al. [237] proposed a cross-domain SDN architecture, dividing a multi-layered space and terrestrial integrated network (MLSTIN) into a terrestrial domain, aerial domain, and satellite domain. Unlike existing classical SDN architectures, the proposed architecture enables scalable and flexible system operation by deploying controllers in three different places: (i) in geostationary earth orbit (GEO) satellites, (ii) high altitude platforms (HAPs), and (iii) terrestrial networks.
In addition, the main controller is hosted in the terrestrial networks and it is in charge of handling the control of the whole system as a cross-domain orchestrator (c.f., Figure 39). Also, it allows to communicate with other controllers to exchange collected control information. Moreover, the data plane in the satellite, aerial, and terrestrial domains, consists of SDN-enabled LEO satellites, low altitude platforms (LAPs), and any types of heterogeneous ground networks, respectively. The latter components act as switches to simply carry out flow-based data forwarding. As for the application plane, it provides some specific applications and services for the components performing the data plane.

LEARNED LESSONS
The SDN-based satellite communication study allowed us to list multiple learned lessons as follows: • Considering the mobility of satellites and reducing the latency when the network load of them is very high.
• Minimizing the complexity of the whole satellite integrated system.
• Enhancing the interconnection of satellites with ground terrestrial networks.

G. SDN-BASED SECURITY
Multi-UAV networks provide many services and applications and exchange more and more high-value sensitive and crucial data [238]. Therefore, such kinds of networks become easily targeted by attacks, and thus security measures have to be adopted when deploying such networks [239]. However, there still exist some issues in UAV networks that should be addressed, which are summarized as follows: • Ensuring the correctness of the adopted security paradigm to avoid any failures or vulnerabilities of such systems.
• Protecting UAV networks from any attacks, so that UAVs can successfully accomplish their missions in a timely way.
• Dynamically adapting security schemes from one mission to another.
• Providing the possibility of reprogramming of the adopted security schemes. Consequently, several SDN-based security contributions involving UAVs are proposed these two last years. They are comprehensively discussed and then summarized in Table 12.
An SDN-enabled network architecture is proposed by Li et al. [240]. This architecture is composed of two controllers in order to achieve collaborative decision-making: (i) An SDN controller and (ii) UAV flight controller. Built on the SDN, a Dyna-Q-based reinforcement learning algorithm is designed for power allocation and to efficiently avoid interference attacks with faster convergence. As illustrated in Figure 40, the adopted architecture consists of six kinds of elements, such as mission UAVs, backbone UAVs, GPS, ground station, jamming station, and jamming UAV.
The backbone UAVs are considered to have high capacities compared to mission UAVs in terms of calculations, bandwidth, and coverage. Also, the backbone UAVs constitute the cluster-heads of each cluster formed by a small ad hoc network of a swarm of UAVs. Furthermore, an SDN controller is deployed on the ground station, which is in 98102 VOLUME 8, 2020  charge of data packet forwarding, transmission channel configuration, collaboration with the UAV flight controller, and can refine the UAV track when the network is subjected to a jamming attack. Indeed, there are two different kinds of interference sources: (i) high-mobility jamming UAV and (ii) low-mobility jamming station/vehicle. When it is the case of high-mobility jamming, continuous and uninterrupted jamming can occur and the effect of low-mobility jamming is negligible.
An SDN-enabled architecture for UAV networks to provide innovative security capabilities is proposed in [241]. In this architecture, coming and forwarding flows can be considered as an authorization to go through the network. Statistics about flows and switches can be gathered in the network and implemented through SDN protocols. In the example shown in Figure 41, a hierarchical and hybrid architecture is considered for the proposed scheme. This architecture comprises a medium-range network and some UAVs acting as relays or routers between the rest of UAVs and the ground BS. This kind of architecture allows one to determine multiple SDN controllers (i.e., UAVs or the ground BS) or delegating parts of the responsibility to intermediate UAVs.
An SDN-based secure mobility model for multi-UAV WSN networks is proposed in [242]. In this model, the SDN controller ensures centralized and virtual software-based control. Particularly, the controllers perform authentication and coordination of UAVs and WSNs based on pre-installed flows. The dynamic waypoints generated by the controller both prevent UAVs from moving irregularly and prevent any unidentified transmission based on flow action rules. The pre-installed flow table of the UAV is constantly updated with the evolving topology. As depicted in Figure 42, the overall network is divided into multiple sectors (i.e., block of the matrix). The WSN nodes belonging to a given block are considered to be in the same cluster. The communication between WSN nodes and UAVs is always performed through the CH. Sometimes, UAVs become CHs to facilitate the transfer from both the WSN CHs and from WSN cluster members. The UAVs move from a dense cluster to another one in which the trajectories of UAVs are defined on the basis of distance and topological density. Moreover, the communications are carried out by using techniques exploiting the topological density information.

LEARNED LESSONS
A brief summary of lessons learned regarding SDN-based UAV security are listed below: VOLUME 8, 2020  • Minimizing the energy consumption of UAVs by reducing the processing and calculation carried out by these devices for security purposes.
• Effectively evaluating security applications by fully exploiting the SDN concept.
• Reducing the vulnerability and impacts of the attacks on UAV networks as much as possible by adopting efficient SDN-based countermeasures.

H. SDN-BASED PLACEMENT
Deploying UAVs in the appropriate locations is considered as one of the most important issues [243]. This issue impacts seriously different network performance metrics (e.g., throughput, delays, and connectivity) [244]. The severity of this issue increases, and especially when UAVs are cooperating with terrestrial networks [245]. To reliably put on the field an efficient placement strategy, several challenges need to be addressed as follows: • Studying the impact of UAV placement in terms of overhead, interference, and other constraints.
• Reducing the completion time of the UAV missions while considering the energy consumption of UAVs.
• Having an accurate vision of the whole topology of UAVs to avoid any collisions with them.
• Providing efficient connectivity of UAVs with terrestrial networks. In Table 13, a set of major SDN-based contributions of UAV placement are briefly summarized as described below.
In the presence of an SDN-enabled architecture, Kalantari et al. [246] designed a backhaul aware 3D placement of UAV-BS protocol. The aim of this SDN-enabled protocol is to serve the maximum number of users having different rate requirements. The deployed aerial platforms have the ability to communicate, control, and signaling information. Also, these aerial platforms hover at different altitudes satisfying different coverage areas, weather conditions, and different other related factors. Particularly, the authors studied how different kinds of wireless backhaul providing various rates will impact the number of served users under the constraint of the limited transmission power of the UAV-BS. In Figure 43, several UAV-BSs are deployed over certain areas (e.g., crowded urban areas) to prevent temporary congestion and to provide additional coverage. It is also beneficial to deploy UAV-BSs when the ground BS is out of order due to several constraints, such as transmission problems or weather conditions. The appropriate 3D placement of UAV-BSs is estimated based on the SDN controller included in the ground BS by combining several techniques.
Ur-Rahman et al. [247] investigated the location adjustment of the SDN controller while considering the delivery delay of control packets and the communication overhead. The aim of this investigation is to limit the transmission power of direct communication between an SDN controller and a set of UAVs. Indeed, a multi-hop communication mechanism is adopted to allow the controller to communicate with non-neighboring UAVs, where the controller is positioned in the middle of the UAV field.
The same authors in [248] have also proposed a tabu search-based mechanism to define the near-optimal position of UAVs and GUs. The aim of this mechanism is to enhance  network throughput. In addition, an SDN controller is used to maintain the traffic demand for all flows and links.
To exemplify the functions of the proposed scheme, an SDN-based disaster UAV network is considered (c.f., Figure 44). Each UAV acts as an SDN switch and provides wireless communication services to its associated GUs. Together, all UAVs form a mesh network that is linked to the SDN controller and the Internet. The proposed scheme is executed exclusively on the SDN controller and it tries to determine the positions of UAVs such that the overall network throughput is optimized. Also, it maintains the traffic demand for all flows and links by having accurate information about UAV positions and those of their associated users.

LEARNED LESSONS
Several SDN-based UAV placement schemes are investigated in this subsection. Therefore, several lessons are learned as follows: • Supporting the high mobility of UAVs and the unpredictable movements of GUs.
• Considering the possibility of failures of deployed SDN controllers.
• Reducing the processing and calculation that are carried to define the appropriate placement of UAVs.

I. OTHER SDN-BASED APPLICATIONS
SDN-based UAV architecture is considered as a suitable solution to deploy a wide range of applications [249]. Indeed, UAVs rely solely on their embedded batteries for performing various tasks that lead to the generation of the huge amount of data that is exchanged among UAVs with ground BSs [250]. Moreover, since UAVs are mobile, it requires to deploy an efficient handover technique to switch between ground BSs [251]. Consequently, multiple other challenges and issues should be considered as follows: • Developing a robust energy management scheme for the reliable operation of UAV networks in critical missions.
• Dynamically reconfiguring policies and plans of UAV networks.
• Preventing network disruptions by reducing latency and link breakage and addressing topology changes and bandwidth issues.
• Optimizing UAV trajectories based on several UAV constraints.
In what follows, a comprehensive description of different other SDN-based contributions. A brief summary of these contributions is included in Table 14.
An SDN architecture is presented by Shukla et al. [252] to reliably allocate processing and computing resources to UAVs connected to the GCS. The UAVs are hovering over a given area with the aim to reduce the energy consumption and the operating delay. More specifically, the SDN controller is based on a greedy algorithm that can be adapted to the offloaded applications and achieve QoS requirements of the offloaded tasks by selecting the optimal cloud server. The adopted architecture consists of a set of UAVs hovering over a given geographical area and controller through the closest BS (see Figure 45). The BS includes different components, such as edge server, UAV control, and SDN services. Additional edge servers can be positioned at different locations (e.g., buildings or other BSs). Indeed, the UAVs and edge servers broadcast their processing capabilities and their willingness to process for the SDN controller located at the BS. Based on these parameters, the SDN controller allocates the servers for requested applications.
Vashisht et al. [253] designed an SDN-enabled opportunistic offloading and charging scheme in UAV networks, named SOOCS. Indeed, two purposes have to be achieved opportunistically: (i) in case of congestion, the data traffic should be offloaded to any available channels and (ii) to extend the lifetime of UAVs, solar charging and wireless charging should be used through solar plates and charging points, respectively. The first purpose uses UAVs as forwarding nodes where the SDN controller finds an optimal flow path for forwarding data and offloading it. As for the second purpose, solar harvesting and grid-based wireless charging schemes are proposed. VOLUME 8, 2020   These schemes are based on charging points placed at the edges of the UAV networks.
In the example shown in Figure 46, the system model is composed of radio towers (e.g., LTE or radio transmitter) that act as decentralized controllers and a set of N UAVs that act as SDN switches and deployed in a typical smart city scenario. A single SDN controller is used to manage the decentralized controllers based on two different managers: (i) Radio network controller to have an overview of the active users' number, their respective locations, and the available networks, and (ii) Status controller to handle the queuing information and the network load. Finally, the application plane provides some specific applications, such as routing, channel access, load balancing, etc. A UAV-based network architecture enabled by an SDN architecture is proposed in [254] to provide a wide range of UAV deployment scenarios. Multiple tasks can be carried out by UAVs, such as sensing, monitoring, or ensuring wireless connectivity access to ground end-users.
As illustrated in Figure 47, the adopted network architecture, comprises a set of UAVs and a Drone Network Management System (DNMS) positioned on the ground. The UAVs form a multi-hop mesh network and they can play multiple roles depending on their capabilities. The first kind of UAVs is task-specific UAVs, which are responsible for different missions, e.g., monitoring, sensing, relaying, and providing wireless access to ground devices. Also, this kind of UAV is managed by the OpenFlow protocol. The second kind of UAVs is UAV controllers to distribute the logically  centralized SDN control functions, which are beneficial when the UAV network is deployed far from the DNMS. As for the DNMS, it collects different information from UAVs according to the demand requested by some areas, which it defines the novel locations of UAVs and adjusts their movements accordingly.
To provide fast handover, Sharma et al. [255] proposed an SDN-based UAV network architecture supporting wireless networks with low handover latency. Each UAV includes a module that can make a decision to adapt the traffic based on the network load and the number of active users. This mechanism is executed only when required to minimize the load of the controller. As exemplified in Figure 48, the SDN-UAV architecture divides the network into three planes: (i) the data plane is composed of network devices that forward the traffic flows, (ii) the control plane comprises UAV and a network control plane, which are responsible for controlling UAVs and managing the whole network, respectively, and (iii) the application plane, which is in charge of achieving dedicated applications that exploit the underlying planes to form a manageable network.
A virtualized edge-computing infrastructure for UAV applications is considered in [256]. It includes a virtualized container running on an edge node, which controls UAVs. Also, an SDN is considered with the aim to provide network connectivity between UAVs and their virtualized controllers. In addition, a novel seamless migration scheme is adopted. On the one hand, it simultaneously exploits the original and migrated containers. On the other hand, it combines their output control data to allow stable UAV control until the controller is migrated successfully and its status is sufficiently updated.
In the scenario depicted in Figure 49, the adopted architecture, comprises an SDN-based network, UAVs, UAV controllers, and a migration controller. The SDN-based network is composed of BSs, an SDN controller, and white-box BSs (WBSs) acting as edge nodes. The BSs and WBSs are acting as SDN switches and the SDN controller is linked to all WBSs and BSs in order to control their routing migration, their forwarding tables, and the control flows of UAVs. Each UAV is associated with the appropriate BS to facilitate the migration decision. For instance, when the migration from WBS 1 to WBS 2 has to be carried out, the container where the controller of WBS 1 is running is migrated to the destination WBS 2 until that the destination WBS 2 to take control of the UAV.

LEARNED LESSONS
Many other unclassified SDN-based UAV applications are also studied in this survey. Therefore, a lot of additional lessons are learned from this subsection and they are listed below: • Considering the unpredictable movements of UAVs, which are due to several causes.
• Deploying several controllers in certain scenarios causes some difficulties to manage them.
• Providing functions over UAVs themselves can effectively provide services to users in a transparent way.

V. NFV-ENABLED UAV NETWORKS
NFV has always been considered as a cost-effective solution for exploiting hardware resources in the form of software implemented for end-users [257]. Therefore, NFV-enabled VOLUME 8, 2020  UAV networks can play a key role to enable the shared use of their resources for the next generation of mobile networks [258]. In this section, we provide a deep investigation of NFV-enabled UAV network approaches that have been proposed in the literature. We also provide a taxonomy of different categories of NFV-enabled architecture for UAV networks (c.f., Figure 50).

A. NFV-ENABLED CELLULAR COMMUNICATION
The flexibility, resilience, and agility of UAV networks can be enhanced by the usage of NFV technology [259]. In addition, UAV networks that are deployed to assist existing terrestrial cellular networks require also innovative management schemes. This can enable the effective use of energy and physical resources [260]. Nevertheless, to put on the field the concept of NFV-enabled UAV cellular communication, several challenges need to be addressed as follows: • Benefiting from NFV for an effective UAV network management.
• Robustly scheduling UAVs to deploy network services.
• Dealing with a low-resource payload of UAV cellular networks.
• Reliably and equitably distributing services among UAVs. In the following, the major NFV-enabled cellular schemes are deeply investigated. Moreover, in Table 15, the NFV-enabled UAV cellular communication contributions are summarized.
The work in [261] designed a novel framework for multi-tier UAV-BS network and complementing heterogeneous networks. This is done by benefiting from the combination of SDN, NFV, and cloud computing. Indeed, the network re-configuration is made by SDN and NFV according to the big data in the cloud. Moreover, the authors studied the 3D placement of UAVs with the aim to maximize the number of served GUs. As a result, UAV-BSs provide coverage where it is required, thus creating new frontiers for the heterogeneity of 5G networks.
The scenario shown in Figure 51 illustrates how the NFV allows a programmable network structure for UAV-BSs as shared resources. Moreover, the SDN concept can also facilitate the interconnection and control of the different VNFs (e.g., data storage, computing power, etc.). Moreover, SDN can enable efficient mobility and radio resource management.
An optimal UAV scheduling scheme is proposed in [262]. This scheme leverages the potential offered by NFV and 5G capabilities to be able to ensure energy-efficient management of resources and for the provision of network services. In this scheme, the 5G technology ensures some connectivity requirements, such as high bandwidth and low latency. This can provide robust communications between the different components in the system. As for NFV, it allows computing the appropriate number of UAVs for providing a certain level of service. Moreover, NFV comprises a scheduling strategy to provide both information related to the UAVs and their sequence of replacement to execute services during a certain period.
As shown in Figure 52, the proposed scheme comprises two components: (i) GCS and (ii) a set of UAVs. The first component is in charge of management and control of network services and resources, and thus playing the role of NFV orchestrator. The second component is responsible for executing different VNFs, and thus constitutes the NFVI. Indeed, the UAVs are battery-powered, and therefore, their lifetime is constrained due to the energy consumption, the restricted power supply, and the services to be executed. To extend each service lifetime, the battery of the UAV that executes a given VNF has to be replaced while ensuring the migration (i.e., transition) of VNFs to other UAVs.

LEARNED LESSONS
Many lessons are learned and can be outlined as follows: • Avoiding the centralization of VNFs in order to avoid the failure of the central entity.
• Providing the possibility to handle large areas in a short time.
• Reducing the complexity of the adopted NFV-enabled architecture in cellular communications [263].

B. OTHER NFV-ENABLED APPLICATIONS
The integration of NFV and SDN technologies in the area of UAV networks is still at its infancy [264]. Indeed, this integration can provide novel support for both the deployment of UAV network services and the increasing business of UAV products [265]. Furthermore, this technology aims to provide high-performance processing of data traffic through the next generation of mobile networks, and especially when they are supported by UAVs [266]. However, a set of issues should be considered before deploying such technology, as follows: • Ensuring the dynamic and flexible connectivity of a set of UAVs in order to reliably provide services.
• Supporting UAV deployment that can be quickly adapted to civilian applications.
• Offering programmable infrastructure that enables the versatile integration of functions and services.
• Considering the requirements specified by the operator. In the following, a description of various NFV-enabled UAV network contributions is provided with a brief summary included in Table 16.
An NFV system dedicated to UAV networks is presented in [267]. The aim of this system is to enable complex network services over a cloud platform provided by a swarm of deployed UAVs. Indeed, UAVs can be placed automatically at different locations over the network executing different VNFs, such as flight control, routing, VoIP, etc. The orchestration of UAVs' placements and their respective VNFs is controlled from the GCS that comprises several components to enable these functions.
In the direct continuity of the work proposed in [267], Nogales et al. [268] presented an improved architecture that uses UAVs in an NFV environment. The aim of this work is to unify functions and services, which is defined by the operator at the deployment of UAVs. Moreover, NFV is adopted to virtualize the infrastructure resources from the higher layers by decoupling the UAV hardware infrastructure from the control layer. In Figure 53, a conceptual vision of the proposed NFV system is illustrated based on three different components: (i) A management framework, (ii) The different VNFs, and (iii) The mission planner. The first component is responsible for both orchestrating software and hardware resources and interconnecting VNFs. The second component is supported by the software and hardware infrastructure embedded in UAVs. The third component is in charge to specify the network services to be deployed and to configure each deployed VNF.
Xilouris et al. [269] discussed the extension of network slicing in the context of UAV-based 5G network and lightweight virtualization. Also, it studies the feasibility of an aerial node backhaul and monitoring the LTE measurement in the sky. The main goal of this work is to achieve two possible scenarios, i.e., increasing network coverage and enhancing network capacity. In the scenario shown in Figure 54, there is an architecture with mobile computing capabilities placed at the edge. This architecture permits to appropriately deploy VNFs either closer to the GUs/user equipment or at the core, thus allowing a good performance according to the slice requirements.
A video monitoring platform as a service (VMPaaS) is proposed in [270]. This platform is based on both a swarm of UAVs deployed in rural areas and SDN/NFV enabled backbone. Indeed, distributed VNFs are used as a network    shows the proposed video monitoring platform, which is composed of a backbone mesh network and a set of video transmitter UAVs. The backbone mesh network comprises a set of backbone UAVs moving based on a regular mobility model in order to cover a given rural area. Each kind of UAVs includes some application and network functions (e.g., video broadcasting, storage, computing, etc.) The video transmission is carried out using fixed wireless IP cameras that are installed on the ground and video transmitter UAVs that are connected to the closest backbone UAVs. Finally, there exists a backbone network orchestrator UAV that is able to communicate with all the components of the platform in order to organize the behavior of all the elements of the NFV infrastructure.

LEARNED LESSONS
Other NFV-enabled UAV network schemes show many learned lessons that are outlined as follows: • Deploying the NFV-enabled solutions for the long term. • Supporting the various constraints of UAV networks. • Providing to the orchestrator the possibility to manage the whole network.

VI. EVALUATION TOOLS AND TESTBEDS
We turn our attention to the simulation tools and testbeds, which are used to evaluate the performance of the schemes described in sections IV and V. In fact, the softwarization and virtualization of UAV networks are highly interdisciplinary, and thus they require flexible tools to make the evaluation of their performance. Also, these tools should be smoothly adapted to several domains, such as network design, communication schemes, and optimization theory, as well as emerging domains, such as AI and machine learning, game theory, and stochastic geometry [303].

A. STATISTICAL STUDY
On the side of testbeds, rigorous real experiments with real UAVs are highly restricted and inherently difficult due to several reasons, such as the cost, the regulations, the time expenditures, and the need for a large open space [304]. Consequently, researchers are heavily reliant on simulations to evaluate the performance of their UAV-assisted protocols and systems by adopting equivalent or identical channel conditions and UAV mobility [305]- [307]. As depicted in Figure 56, a statistical study is performed considering not only the major used simulation tools, but also the different testbeds carried out to evaluate the concepts of SDN and NFV in UAV networks. From Figure 56, it is clear that the majority of researchers use their self-implemented simulation tools to evaluate their SDN/NFV-based proposals [308]- [310]. In addition, Matlab TM [311], OpenFlow [150], and NS-3 [312] were the secondary choice of most researchers to validate their protocols. From testbed perspective, a number of testbeds have been used to evaluate SDN/NFV-based UAV networks [313]- [316]. These testbeds combine all the features of SDN and NFV concepts to easily test protocols under realistic conditions and extract the results of experimentation. However, there are a number of constraints of using such realistic experiments, which are listed as follows: • Security issues of deploying drones. • Weather conditions. • Communication issues (e.g., interference). • The cost of different infrastructures.
• The difficulty of extracting data from the network. Consequently, there is a need to address all these issues and challenges when using such realistic experiments. Furthermore, another solution is to design other simulation tools for UAVs, which would allow researchers to accurately evaluate different UAVs based on their hardware specifications.

B. A SUMMARY OF SIMULATION TOOLS AND TESTBEDS
In Table 17, we provide a summary of simulation tools and testBeds used for evaluating SDN/NFV UAV network protocols discussed in this survey. Moreover, we present the major evaluation metrics calculated in each experiment and we mention the different references considered during the comparison process.

VII. FUTURE RESEARCH DIRECTIONS
Despite all efforts to design reliable SDN/NFV-enabled solutions, there are still some gaps to be filled. Indeed, the integration of SDN and NFV in UAV networks is still at the infancy stage of development, and thus there is a significant amount of unsolved challenges [317]. These challenges need to be deeply investigated to flexibly and robustly manage UAV networks, and also efficiently allocate the physical resources in UAV networks [318]. In this section, we shed light on a list of areas that need further investigation. To complement this study, we provide future research directions, proposed solutions, and recommended references in Table 18.

A. WIRELESS POWER TRANSFER (WPT)
The bottleneck of any UAV communications is the energy restrictions on UAVs [319]. Significant recent advances in battery technologies have emerged, such as hydrogen fuel cells [320] and enhanced lithium-ion batteries [321]. The paradigm of energy harvesting is considered as the most appropriate technology to provide cost-effective and perpetual energy supplies for UAVs [322]. Recently, the radio frequency (RF) transmission has enabled the new concept of wireless power transfer (WPT) [323]. This concept has been applied in many UAV applications to provide controllable and sustainable energy supply for UAVs [324], [325]. However, the major challenges in the use of WPT technology are the long distances between charging stations and UAVs, the random energy arrivals, and the scalable nature of UAVs [326], [327].
To address these challenges, further investigation in the side WPT deployment should be conducted. For example, in-depth studies should be performed on different topics, such as mmWave communications for UAV networks, energy beamforming, and placement optimization of wireless charging stations. Moreover, a deep investigation should also be carried out on further reducing the distances between UAVs and charging stations to efficiently integrate WPT technology into 5G, B5G, or even 6G.

B. 6G REQUIREMENTS
UAVs will play a key role in future 6G mobile networks by assisting and complementing ground networks [328]. This VOLUME 8, 2020   VOLUME 8, 2020 assistance can be achieved by deploying UAVs to provide connectivity to areas with insufficient infrastructure or suffering from disaster events [329]. Moreover, the assistance of satellites to such systems will be essential for 6G mobile networks [330]. Nevertheless, several challenges need to be addressed, such as privacy, energy constraints, storage, bandwidth, and computing constraints on UAVs. Moreover, the full potential of UAV networks should also be exploited to optimize computing, caching, and energy resources. Also, in 6G mobile networks, since UAVs will play many roles, such as aerial BSs, computing servers, and content providers, artificial intelligence (AI) techniques can be adapted to optimize their features [331]. Leveraging the distributed computing resources over the cloud computing and MEC can be also an interesting issue to analyze [264].

C. UAV OPTICAL COMMUNICATIONS
Optical Wireless Communications (OWC) are expected to play a key role in addressing the different constraints of RF technologies, which are widely adopted in UAV communications [332]. Indeed, OWC technologies have already proven their efficiency in 4G, 5G, and B5G mobile networks [333]. Therefore, these technologies are also expected to be widely used in both 6G mobile networks and within all device-to-access networks [334]. However, several challenges face these technologies, such as the high blockage probability of signals, weather conditions, and high energy consumption. To address these challenges, researchers have been working on different kinds of OWC technologies, such as VLC [335], optical camera communication (OCC) [336], FSO [337], LiDAR [338], and light fidelity (LiFi) [339]. Different requirements should be also ensured to effectively adopt OWC in UAV networks, such as the connectivity to remote places, the high data rates, and the ultra-high bandwidth.

D. QUANTUM COMMUNICATIONS
UAV-assisted 5G, B5G, and 6G mobile networks should ensure higher security requirements while supporting a significant number of applications [340]. Quantum communication is considered as a promising technology, which can provide essential features towards adopting 6G technology while ensuring robust security of information exchange [341]. Quantum communications can easily detect and counter different kinds of attacks (e.g., eavesdropping), which makes it suitable for long-distance communications [342]. However, there is a crucial challenge that faces the adoption of quantum communications, which is signal degradation due to weather conditions. To address this challenge, HAPs and satellites can be leveraged as trusted nodes for key redistribution and regeneration [343]. Furthermore, the combination of quantum communication and AI techniques can also provide more efficient and secure AI algorithms to satisfy the security requirements of 5G, B5G, and 6G [344].

E. AI INTEGRATION
Recently, AI has proven itself as the best solution to achieve high levels of automation within various kinds of networks [345]- [347]. Moreover, it can also optimize both the management of networks and reduce their complexity [348]. Many research directions for UAV-assisted 5G, B5G, and 6G mobile networks involving AI are to be deplored, such as the application of machine learning (ML) [349], reinforcement learning (RL) [350], and deep learning (DL) [351]. These AI techniques are expected to play a crucial role in optimizing UAV-assisted networks in various aspects, such as the optimization of resource allocation and scheduling, enhancing network prediction, and boosting network performance. However, multiple challenges require more investigation, such as high computational processing, high energy consumption, and high latency.

F. FOG AND MOBILE EDGE COMPUTING
When terrestrial BSs not only provide connectivity and communication, but also computing services to end-users, this paradigm is called mobile edge computing (MEC) [410]. Several challenges need an in-depth exploration by researchers when this paradigm is supported by UAV-BSs, such as energy consumption of UAVs, embedding heavy computing platforms, and optimizing the mobility of UAVs to serve the maximum number of GUs [411]. Also, many other issues should be addressed to enhance the performance of computing and considerably reduce latency.
For compute-intensive tasks, a UAV network can form a flying Fog computing platform to provide resilient and flexible services to GUs [412]. Fog computing should also consider several requirements, such as the equitable distribution of computational tasks among UAVs, the robustness of communication systems between UAVs, and the well-regulated energy consumption within UAV networks. All these challenges should be carefully studied and addressed by researchers.

G. BLOCKCHAIN-BASED SECURITY
Blockchain is a technology that can provide an effective solution to UAV privacy and security [413]. With the widespread assistance of UAVs to terrestrial networks and the critical amount of data exchanged between these entities, it is crucial to ensure the privacy and security of information by using blockchain technology as a distributed solution [414]. Integrating the Blockchain-enabled UAV network allows to transparently recording of all data exchanges and permanently establishing the trust between UAVs and ground BSs [415]. However, there is a crucial challenge, such as a trade-off between the simplicity of blockchain and security requirements. Therefore, a careful investigation in this direction is widely required to propose secure robust solutions.

H. 3D BEAMFORMING
To reduce inter-cell interference, the establishment of separate and parallel beams in the 3D space is considered as the appropriate solution [416]. Indeed, this concept has been widely adopted in the next generation of mobile networks, which is called 3D beamforming [417]. Unlike traditional cell sectorization based on 2D directional antennas, 3D beamforming is considered as a flexible solution that can generate high system throughput based the UAV location [11]. Moreover, 3D beamforming provides finer angle resolutions in both azimuth and elevation and leads to a pencil-shaped beam [418]. By leveraging the different elevation angle separations of UAV-BSs, 3D beamforming can significantly mitigate interference [419]. However, several challenges are distinguished during the deployment of such technology, such as the existing obstacles on the ground and the appropriate density of UAV-BSs to be deployed to ensure high coverage of the area. Consequently, researchers are in front of a very complex line of research that requires in-depth investigations to put on the field of effective coverage solutions.

I. CACHING
Caching is the process of saving relevant content in ''fast memory'' that is closer to the end-user for quicker access [420]. Since the demand of users for multimedia data comprising high data volume has considerably increased, aerial caching can offer an appropriate solution to ensure the availability of the contents [421]. Therefore, UAV-assisted caching can provide higher multimedia data throughput and enhance users' QoS [422]. Nevertheless, we should not ignore specific issues and challenges that may arise when adopting UAV caching, such as the frequent handovers of mobile users, the energy consumption constraints, and the contents to cache at UAVs. Consequently, how to effectively adopt UAV caching remains a hot topic for future research.

J. SDN AND NFV FOR UAV NETWORKS
Recently, UAV networks have adopted the concept of SDN and NFV to address their performance issues [423]. SDN and NFV can help to reduce both the complexity of network management [424] and the need to deploy specific network devices for the integration of UAVs [425], respectively. Therefore, we can deduct that virtualization of UAVs as shared resources within cellular operators can decrease OPEX. Moreover, SDN can be also leveraged for the interconnection of different VNFs. However, as already mentioned several times in this survey, several issues remain unsolved, and therefore need a deep understanding and investigation from researchers.

VIII. CONCLUSION
In the next decade, the number of UAVs will be growing very fast to reach millions of flying units in the sky. Therefore, there is a crucial need to develop a broadband communication system supporting the increasing number of UAVs. Moreover, this system should efficiently address the challenges in the 5G and B5G era. To meet all these requirements, such a system should be built on SDN and NFV technologies. These technologies are considered as key drivers to provide efficiency, resiliency, and services to end-users promptly on time. Therefore, future UAV networks require a revolutionary architecture based on these technologies while supporting their smooth integration and evolution.
In this survey, we have comprehensively covered the stateof-the-art of SDN and NFV in UAV networks. Mainly, we provided three major contributions to paint a full picture of this hot topic of research. First, we presented an in-depth discussion related both to the design challenges of UAV networks and their principal use cases. Second, we provided an overview of the SDN and NFV concepts and how they can be seamlessly integrated into UAV networks. Third, we comprehensively reviewed the majority of recent research activities on SDN/NFV-enabled UAV networks. This review is based on different use cases, such as UAV-assisted cellular communications, routing, monitoring, security, and several other applications.
In the end, we have identified and discussed a representative summary of relevant research challenges. Before concluding the paper, we proposed future research directions and recommended references to provide scientists and readers a complete vision on this hot topic of research. Society  ATEF IBRAHIM received the B.Sc. degree in electronics from Mansoura University, the M.Sc. degree in electronics and electrical communications from Cairo University, and the Ph.D. degree in electronics and electrical communications from Cairo University jointly with the University of Victoria, Canada. He is currently an Associate Professor of computer engineering with Prince Sattam Bin Abdulaziz University, Saudi Arabia. He is also an Adjunct Professor with the University of Victoria. VOLUME 8, 2020