# Improving Energy Efficiency on SDN Control-Plane Using Multi-Core Controllers
## 3 Materials and Methods
### Energy Consumption on SDN  
Energy consumption on SDN can be divided into three parts: the controllers, the switches and the links on a network. The work of [PERSON] et al. (2010) shows how each part interacts and models this consumption based on packet flows on the network. The comprehensive network energy model:  
\[E=\sum_{i=1}^{n}(e_{1i}*E_{sui}+e_{2i}*E_{ci}+e_{3i}*L)+E_{link} \tag{3}\]  
presented by the authors comprises the controllers \(E_{ci}\), switches \(E_{sui}\) and links \(E_{link}\) energy consumption, along with the queued packets caused by latency \(L\). The \(e_{1},e_{2},e_{3}\) constants are derived from simulation, while the total network \(E\) consumption is defined as the summation of all \(n\) elements (switches, controllers and latency queues) on the network.  
Although the switch and link take the biggest part of the energy consumption of a SDN network, controller consumption can also be minimized to contribute to the aggregated energy efficiency of the network. It is important to notice that those improvements on  
\begin{table}
\begin{tabular}{c c c c c c} \hline
**Description** & **Multi-Controller** & **Controller’s Energy** & **Fault-Tolerant** & **Partial Topology** & **Strategy** \\ \hline
[20] & n & y & y & y & routing \\
[21] & y & y & y & n & load balancing \\
[22] & y & y & y & n & controller-placement \\
[16] & y & n & y & n & application-aware \\
[14] & n & n & n & routing \\
[15] & y & n & y & n & routing \\
[13] & n & n & n & n & routing \\
[10] & y & y & y & n & load balancing \\
[9] & n & n & n & n & routing \\ Our proposal & y & y & y & parallel-processing \\ \hline \end{tabular}
\end{table}
Table 1: SDN energy-efficiency related works.  
controllers energy efficiency can be associated with other techniques for switch and link level energy consumption.  
In this paper, we focus on controller consumption, which is defined as a function of packets processed, as described by:  
\[E_{c}=\beta*E_{c}^{A}+(1-\beta)*E_{c}^{N} \tag{4}\]  
where \(E_{C}\) is total controller energy consumption and \(\beta\) is 1 when the controller is awake and 0 when it is in sleep mode. Thus, \(E_{C}=E_{c}^{A}\) when the controller is awake and \(E_{C}=E_{c}^{N}\) when the controller is in sleep mode, with  
\[E_{c}^{A}=E_{SA}+\sum_{i=1}^{n}W_{i}*CPUutil_{i}+f(T)*E_{s} \tag{5}\]  
and  
\[E_{c}^{N}=E_{SA}+\sum_{i=1}^{n}W_{i}*CPUutil_{i}+E_{beacon} \tag{6}\]  
where \(E_{SA}\) is the conversion energy from sleep to awake state, \(n\) is the number of packets treated by the controller during a time interval, \(W_{i}\) is the weight parameter for the various types of packets and their need for processing power is represented by \(CPUutil_{i}\), \(f(T)\) is a function related to packet arrival during simulation time and \(E_{s}\) is the sensing energy necessary to treat one packet arriving. The expected value of this function \(E(f(T))\) is, assuming an ergodic system, equal to the average packets per time interval of the simulation, which can be estimated by network observation, \(E_{beacon}\) is the energy used to send a beacon packet necessary to show the controller is still available even in sleep mode.