# Improving Energy Efficiency on SDN Control-Plane Using Multi-Core Controllers
## 2 Related Work  
The literature on energy efficiency for the network has many examples of routing algorithms applied to wireless software-defined networks and, more recently, to software-defined networks on DC, Cloud, 5G and Edge-computing. About two decades ago, [PERSON] et al. [20] presented the algorithm called Low-Energy Adaptive Clustering Hierarchy (LEACH), one of the earliest works on energy-efficiency in networks to use routing. It proposes an algorithm to balance energy usage on wireless sensors networks alternating between clusters heads to avoid a single path to consume all energy resources distributing this load over the many nodes on many paths a packet can take to reach the base station. Today, the LEACH algorithm is still used as a benchmark by many works on energy-consumption and routing. Variations of this approach are used to balance energy consumption over the SDN, allowing the routing of packets to change dynamically using the processing capabilities of the controller. The programmability of controllers was explored by [PERSON] et al. [21] to change the network routing after migrating workloads inside the DCN. They created a model to evaluate the best placement of tasks, moving Virtual Machines (VM) intra-DCN or to edge devices. The solution is divided in two steps: First, the model migrates the workloads of VMs evaluating their deadline and demand of computing resources. Second, the SDN controller defines the best path for energy-efficiency. The energy-aware flow-scheduling scheme implemented on the controller increases the energy consumption of the controller, but energy savings on the data-plane counterbalance this. This solution needs full knowledge of the network topology; to overcome this limitation, the authors used one main controller,which has full knowledge of the network topology and creates many virtual controllers to do load balance among them. The controller placement problem (CPP) was tackled by [PERSON] et al. [22] from an energy-savings perspective. A model is defined, and the CPP is modeled as a Binary Integer Program (BIP) to minimize energy consumption. Due to the computational complexity of the BIP model, it cannot be applied to large networks. A heuristic genetic algorithm, called Improved Genetic Controller Placement Algorithm (IGCPA), is used to find a sub-optimal solution for large networks. The combined algorithms, namely BIP and IGCPA, use the GreCo [11] solution to address the allocation of switches to controllers. BIP and IGCPA are offline approaches since both algorithms need previous knowledge of the network controllers, nodes and applications to determine the best placement for energy efficiency. A different approach by [PERSON] et al. [16] uses the ability to migrate virtual machines and virtual network functions to consolidate traffic while lowering SLA violations. It uses the online load to calculate the future need of server and network resources. The strategy is northbound-based and considers that the controller has access to the applications and evaluates its historical traffic patterns to overbook VM based on resource utilization. This solution adds complexity to the control-plane and the northbound applications running, but the paper does not account for this in energy measures. The links usage is the metric used by [PERSON] et al. [14], who developed a routing algorithm to use the maximum bandwidth of available links since switches' energy is not proportional to the traffic but is related to the number of active links. The solution tries to schedule the flows to keep below a maximum delivery time but use the minimum number of links. On the dense 5G SDN, [PERSON] et al. [15] defined network energy-optimal routing as an NP-Hard problem, meaning that computation time grows exponentially with network size. To address this issue, they proposed two heuristics: one offline and one online. The offline one, called SNetCa, models the controller switch connections as a graph and produces the minimum number of links to guarantee connection and some redundancy.