# A Review of the Control Plane Scalability Approaches in Software Defined Networking
## 1 Introduction  
Emerging network services such as, high bandwidth, dynamic management, cloud computing and virtualization have gained enormous attentions in recent years. Software Defined Networking (SDN), is one of the predominant paradigms that aims to tackle limitations in traditional computer networks architectures in order to satisfy today's complex networking needs [1; 2; 3; 4]. Thus, enabling a simplified networks management. One of the main factors affecting this evolution is introducing the concept of separation between network control logic (control plane) from the underlying hardware (data plane) to achieve abstraction of lower-level functionality [5; 6; 7; 8]. As shown in Figure 1, SDN architecture encompasses data, control and application planes. Network devices in the underlying network infrastructure may include forwarding devices such as switches, routers, access points and so forth, which enable data transfer between end-users are placed on the data plane. This plane is programmed and managed by the control plane. Control plane manages flow control and uses control logic to make decisions. The control plane is responsible for setting rules to manage forwarding devices located in the data plane. This communication occurs over the Southbound Application Programming Interface (API). On the other side, the Northbound API is used for the communication between the control plane and application plane. The task of the controller here is to abstract the infrastructure complexity and to enable simplified applications. If multiple controllers are used in an SDN architecture, the communication across these controllers takes place over an east or west API, depending on the direction. Although the separation of control functions addresses traditional networks issues and provides network flexibility, it also imposes several inevitable technical challenges to be addressed by researchers. These challenges are related to the control plane scalability, resilience and data consistency among others issues. Designing a scalable control plane for SDN is one of the most significant challenges [9]. Initially, SDN has been designed with a centralized architecture [10; 11], meaning that a single controller is responsible for managing the entire network. The design lacks scalability and does not fulfil the recent large-scale networks requirements. The main drawbacks of this approach is the high latency and causing bottlenecks around the controller. Additionally, a centralized architecture may form a single point of failure, in this manner affecting the network resilience. Distributed controller's architecture [12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22] is one way to overcome computational load in the centralized design. It distributes the network flows through several controllers according to the topological model. Moreover, this design avoids the single point of failure risk. However, several issues are posed including--latency because of controllers' synchronization; controllers Placement; security issues. Besides the above topological approaches, there are several existing work on improving the control plane scalability in SDN. Some works adopts mechanisms related approaches, one of these mechanisms is the use of the Parallelism-based Optimization [23; 24; 25], in which the performance of the controller is improved through using multi-core systems that uses parallelism multithreading in order to reduce data latency. Another mechanism is the use Routing Scheme-based Optimization [26; 27], where the processed event resulted from routing decisions is reduced. These approaches aim at optimizing the routing scheme in terms of their flow tables. Recently, Machine Learning based Optimization [28; 29; 30; 31] has emerged to enable prediction of the traffic using machine learning in order to take an intelligent decision and optimize routing. Consequently, control plane scalability approaches can be classified into two main categories.