# Cluster-Based Control Plane Messages Management in Software-Defined Flying Ad-Hoc Network
## 3 Cluster-Based Control Message Management for FANET
### Control Message Dissemination Operations  
Assuming the SDN architecture, the central controller \(CN\) is aware of every UAV \(v_{i}\) contextual information, such as remaining energy ratio \(E_{ratio_{v_{i}}}(t)\), current location \(L_{i,t}\), mobility trajectory \(traj_{i}\), speed \(s_{i}\), and transmission and receiving ratio [11; 12]. It supports an effective decision-making process to optimize overall FANET operations, for instance, how frequent a UAV disseminates its contextual information, which might change constantly depending on the current mobility and energy predictions calculated by \(CN\). Besides, each UAV \(v_{i}\) flies following a straight trajectory \(traj_{i}\) between its current position \(L_{i,t}\) and a destination position \(L_{i,t+1}\) with a given speed \(s_{i}\). To inform the \(CN\) about its conditions, \(v_{i}\) sends control messages \(msg_{CI}\) with its contextual information, including \(L_{i,t}\), \(L_{i,t+1}\), and \(s_{i}\), to the controller \(CN\) just before leave \(L_{i,t}\) and after arrive at \(L_{i,t+1}\), reducing bandwidth consumption and signaling overhead. In this way, the communication improvement between UAV \(v_{i}\) and controller \(CN\) considers an adaptive sending ratio. The controller node \(CN\) receives the control messages \(msg_{CI}\), and stores the contextual information in a corresponding table. The controller node \(CN\) is able to predict a given UAV location towards the trajectory \(traj_{i}\) without the need of control message for location update, based on the current position \(L_{i,t}\), destination position \(L_{i,t+1}\), and flying speed of a given UAV \(v_{i}\). Similarly, \(CN\) is also able to estimate the required energy for \(v_{i}\) based on the current transmission rate, receiving rate, and speed information, combined with the energy required for such tasks in, as shown in Equation (5). Equation (6) estimates the total energy that will be spent by a node based on the node's current energy and the value calculated in Equation (5). In its turn, Equation (7) represents  
Figure 1: SDN-FANET control plane. the remaining energy ratio estimation of \(v_{i}\) for energy-aware decisions. For instance, UAV death can be detected by the controller \(CN\) based on the remaining energy ratio prediction. \[E_{spent}=E_{fly}(d,s_{i})+E_{tx}+E_{rx} \tag{5}\]  
\[E_{v_{i}}(t+1)=E_{v_{i}}(t)-E_{spent} \tag{6}\]  
\[E_{ratio_{v_{i}}}(t+1)=\frac{E_{v_{i}}(t+1)}{E_{v_{i}}(0)} \tag{7}\]  
However, the control messages \(msg_{CI}\) must be transmitted with reliability and low delay to avoid inaccuracy prediction. For a more reliable transmission, the controller \(CN\) must send an ACK message after receiving the control message \(msg_{CI}\) from a given UAV \(v_{i}\). As soon as this ACK does not arrive at the UAV \(v_{i}\) after time \(t\), which is arbitrarily defined according to test evaluation, then the UAV \(v_{i}\) sends the control message \(msg_{CI}\) again. This process runs until the ACK message arrives at such UAV \(v_{i}\). It is important to highlight that as soon as the controller \(CN\) does not receive a message \(msg_{CI}\) from a given UAV \(u_{i}\) informing that it reaches its destination location, the controller \(CN\) could search for such UAV \(v_{i}\) location in the network by broadcasting a control message or wait for the message \(msg_{CI}\) from the UAV \(v_{i}\), where the former being the most ideal. Figure 2 shows the UAV behavior for control message transmission considering SDN-FANET and CAPONE. As can be seen, a given UAV \(v_{i}\) first sends its status to the controller, and, moves from location \(L_{i,t}\) to location \(L_{i,t+1}\) following the trajectory \(traj_{i}\) after receives a beacon from the controller \(CN\). The exchanged messages might be forwarded by a controller forward \(CN_{fw}\), depending on how distant the UAV is from \(CN\). The main differences between the two protocols are:  
1. In CAPONE, the UAV sends a single control message \(msg_{CI}\) and then waits for the controller acknowledgment.