# Adaptable and Automated Small UAV Deployments via Virtualization
## 4 Validation of the Solution
### Prototype Implementation  
The use of open-source technologies was considered one of the basic principles that used throughout the implementation process. In particular, we selected Open Source MANO (OSM) Release FOUR [24] to provide the functionalities corresponding to the orchestration and the lifecycle management of lightweight VNFs. With respect to the VIM, we utilized the set of software tools provided by the well-known cloud computing platform OpenStack Ocata [25]. Both the OSM stack and the VIM provide the MANO system of our design, and were deployed over a virtual machine running in a mini-ITX computer (Intel Core if 2.3 GHz, 16 GB RAM, 128 GB SSD, 4 GbE ports).  
Regarding the SUAV platforms, we used a number of aerial vehicles DJI Phantom 3 [26], each carrying a single board computer Raspberry Pi 3 Model B (RPi). These RPis are used as the compute nodes of our design, supplying the needed resources in terms of computing, storage and networking, and supporting the execution of the lightweight VNFs. We incorporated the RPi boards as compute nodes of the OpenStack VIM, doing the necessary configurations to enable virtual networking through Linux networking bridges. Besides, each RPi includes an integrated Wi-Fi interface, and a number of them also contain a secondary wireless interface provided by a Wi-Fi USB adapter. The first interface enables air-to-air and air-to-ground ad-hoc communications with other SUAVs and with the MANO system, respectively. The second interface is intended for deploying a wireless access point, capable of providing network access connectivity to mobile ground units (in a prior research work [27], we validated the suitability of these multi-interface devices to support multimedia communications).  
With respect to the virtual networks that enable both control and data plane communications that take place in our platform, we used Virtual eXtensible Local Area Networks (VXLAN) [28]. VXLANs present a feasible solution to exchange control and data traffic over a wireless ad-hoc network since: (1) the VXLAN traffic can be sent over the Wi-Fi interface in ad-hoc mode that is available at every compute node (directly sending traffic from a lightweight VNF, deployed over a virtualization container, through a Wi-Fi ad-hoc network is challenging, as this is not currently supported by the Linux kernel of the RPis); (2) they can be dynamically created by the VIM, as instructed by the OSM stack, to interconnect lightweight VNFs hosted by different compute nodes; and (3) the utilization of VXLANs does not require additional network configurations (e.g., network routes) at the intermediate RPi boards that conform the network path between two communicating entities (e.g., between two VNFs).  
Figure 3 details the network configuration that has been done at each compute node. Firstly, a VXLAN interface attached to a Linux bridge (VIM-Mgmt in the figure) enables the control communications required by the VIM to manage the computing, storage and networking resources available at every compute node. Secondly, an additional VXLAN interface allows the MANO system to carry out the lifecycle management of the lightweight VNFs hosted by the SUAVs. In this case, the Linux bridge attached to the VXLAN interface (VNF-Mgmt in the figure) allows communications with every lightweight VNFs running at the same compute node. Note that both VXLANs are statically pre-configured at every compute node to enable the control communications of our system, as presented in Section 3. Finally, the configuration of the compute node allows the dynamic creation of virtual networks for data communications among VNFs (residing at the same, or at different compute nodes), as requested by the VIM and according to the instructions provided by the OSM stack.