# Improving Energy Efficiency on SDN Control-Plane Using Multi-Core Controllers
## 1 Introduction
### SDN on Data Center Networks (DCN)  
New ways to control and manage a DC network emerged to allow its programmability. The SDN is a well-accepted [6] approach to achieve better control of all the equipment on a modern network by separating control from data-planes, as shown in Figure 1. As shown in Figure 2, the control-plane is responsible for forwarding decisions using the southbound interface, as well as providing an API to the applications running on the network using the northbound interface. This way, a controller can change the network behavior (routing, queue policies, sleep states, etc.) according to applications running in the controller and out of the controller connected by the northbound interface. The separation also creates opportunities to understand better and improve each part of the network's energy efficiency. Figure 1: Software-defined network architecture. Figure 2: Software-defined network components roles. The software-defined network paradigm brought programmability to networks, with the capacity to adapt to changes in traffic demand and to add new applications to the network. Many works used this new feature to improve energy-efficiency on data center networks. The current research mainly focuses on data plane efficiency, using novel routing algorithms or virtual machine migration to turn off ports or entire switches during low usage periods. In a recent survey, [PERSON] and [PERSON] [7] categorized energy efficiency on SDN into two groups: hardware and software based. The software-based solutions are divided into three main categories: traffic-aware, end system-aware and rule placement. The traffic-aware solutions consider the global view of the network, enabled by the centralized controller. The controller gathers statistical information from the switches to decide to put in sleep mode or even turn off forwarding ports or entire devices. The end system-aware solutions use the ability to change traffic sources and targets on a data center. In a data center, many end systems are virtual machines running on different servers. The server consolidation allows moving functions from many servers to one considering the load on those platforms. With virtual machines, it is also possible to move between physical devices to coalesce traffic, allowing to turn off physical end systems. The last category on energy efficiency research falls on rule placement. SDN switches work by consulting a dynamic rule table to forward packets. This table is commonly stored on a Ternary Content-Addressable Memory (TCAM) that accounts for the most energy-consuming part of the switch exempting the link ports. To minimize the energy consumption of the TCAM, those works try to put as few as possible rules on each switch's TCAM; this is obtained by using wildcards rules [8]. These rules may force packets to take longer paths but allow switches to be turned off, trading packet delay for energy efficiency. The second group classified by [PERSON] and [PERSON] [7] comprises hardware-based solutions that consist of techniques to reduce the Ternary Content Addressable Memory (TCAM) use on forwarding switches. This is achieved by compressing data on the TCAM or changing the way a flow is represented on the table. Typically, an entry on an openflow switch table has five fields: source, destination, protocol, port and action. The techniques may compress the rules or the content of TCAM. The compression of rules works by detecting different rules with the same action with one bit of difference and merging them or using tags (sequence of bits that acts as a label, smaller than the actual five-field rule) that are added to the packet header and used to forward packets on switches. Other techniques uses dynamic programming to create an optimal decision diagram of paths on the network, and then creating the minimum set of rules to apply this diagram on switches discarding redundant rules. It is important to notice that all of those solutions imply in more processing load on the controller and a need to full knowledge of network topology.