Controller Placement Algorithms in Software Defined Network-A Review of Trends and Challenges

Abstract. Traditional network architectures are complex to manage, comparatively static, rigid and difficult to make changes for new innovation. The proprietary devices in such architectures are based on manual configuration which are unwieldy and error-prone. Software Defined Network (SDN) which is described as a new network paradigm that decouple the control plane from data plane are capable to solve today’s network issues and improve the network performance. Nevertheless, among so many challenges and research opportunity in SDN, Controller Placement Problem (CPP) is said to be the most important issues which can directly affect the overall network performance. Thus far, the issue regarding the CPP and its challenge has not been completely reviewed and discussed properly in any other papers. In this paper, we provide a comprehensive review on several optimized controller placement problem algorithms in SDN. This paper also highlights some limitations of the reviewed methods and also emphasizes on suitable approach to address the aforementioned problems.


Introduction
Software Defined Network (SDN) is an emerging network architecture which decoupled the control plane from the data plane, make forwarding decisions based on flow rather than destination based [1]. SDN help speed up the innovation process, lower the complexity and the cost on hardware implementation with its open sources features. Accordingly, network management become flexible and programmability compared to those conventional networking. SDN is currently highly implemented in many applications [1], such as data center ( e.g. Google, Facebook etc.), cloud computing environment, Internet-of-thing (IoT) and wireless mesh networks (WSN). Fig. 1 shows the different of conventional and SDN architectures. Referring to the figure, SDN is made up of 3 layers which are data plane, control plane and application layer.
In recent years, Controller Placement Problem (CPP) is one of the hot topics in SDN research fields which can be denoted as NP-hard or known as facility location problem which normally regards the quantity and location of controllers in network [2]. According to the statements in [3][4][5], network performance may be affected due to inefficient controller placement strategy. Example consequences under poor controller selection such as long recovery time after failures. The SDN control plane can be either in centralized or distributed [3]. Nevertheless, SDN deployment with a physically centralized controller has several limitations which may lead to a single point of failure for the entire network. To address these constraints, recent researches have supported implementation of multiple (distributed) SDN controllers. The remainder of this paper is structured as follows. In Section II, we discuss some of the important related works for controller placement in SDN and also provide performance comparisons between those works. Conclusion is pointed out in Section III.

Related Work
Several categories of controller placement approaches found in literature can be shown in Fig. 2. The following subsections describe each of the category in details.

Static Controller Placement
The mathematical formulation (1) is generally used to search for best placement of k controllers and n-node graphs, with the total number of placements: (1) The first research on CPP was done by Heller et al. [2] which highlighted the importance to minimize average and worst case propagation latency in between the switch-to-controller as shows in formulation (2) and (3).
Average latency: Worst case (maximum) latency: However, this approach is a topology-based that is only limited to a certain topology and does not consider the capacity of controllers constraints, make it not really applicable in real network. The Capacitated Control Placement Problem (CCPP) in [4] is considering the additional load of controller. Cervello-Pastor et al. in [5] propose k-Criteria strategy is achieve best minimum number of controllers as compared to methods in [2]. The modified approach in [6] performs a single run time which is faster for clustering and more efficient in large-scale network compared to the iteration-based of capacitated k-Center algorithm in [5].
The works presented in [7][8] are naturalinspired metaheuristic optimization approaches. It is similar to human action in decisions making to solve CPP. Moreover, multiple controllers of hierarchical architecture [9][10] are designed to solve the single point of failure and computational complexity problem in large scale network. On the other hand, there are researches emphasis on the importance of reliability among switch and controller in CPP and several new metrics are proposed as stated in [11][12]. Others heuristic method are also proposed to solve CPP in [13][14][15]. Some methods in [16][17] use mathematical approaches to cater CPP. A new Integer Linear Programming (ILP) formulation is generated in [16] to find the minimum number of active controllers. In [17], a mathematical model named Failure Foresight Capacitated Controller Placement (FFCCP) presented in closest assignment when controller failures occurred.
Initially, dynamic controller provision problem (DCPP) is solved by simply dynamically changing the controller number and their locations as done in [3,18] without load adaptation mechanism. This involves a dynamic adjustment of active controllers based on network conditions and instant switch-to-controller reassignment in case of controller failures. Dixi et al. [18] introduce "Elasticon" to dynamically alter controller resource pool and migrating switches to neighbour controller. Non-zero game theorem approach in [20] which performing load adaptation algorithms added on top of previous work ElastiCon for master controller reflection. The switch migration method as implemented in [19,[21][22][23] are some other enhanced DCPP approaches with load adaptation. Furthermore, the Multi-objective Combinatorial Optimization (MOCO) approaches in [24][25][26] allow trade-off of multiple metrics to achieve overall optimization. Thus, users can decide a more suitable results based on their demands. Pareto-based Optimal Controller placement (POCO) is an exhaustive search actual optimal Pareto frontier which is generally used as reference value. POCO was then extended by using several heuristic algorithms to obtain approximated Pareto optimal placement to compute faster with acceptable accuracy in large network. Table 1 shows the performance summary of the several methods discussed in this paper which is in static controller placement methods [2,[4][5][6][7][8][9][10][11][12][13][14][15][16][17]. Table 2 shows the performance summary of dynamic controller placement methods in [3,[18][19][20][21][22][23][24][25][26]. There are many heuristic algorithms proposed by considering various objective functions to solve controller placement problem.

Discussion
SDN controller placement problem (CPP) can be categorized as static and dynamic methods. There are various performance metrics are discussed in most of the reviewed paper. In general, existing proposed methods are normally have a prior knowledge of the controller numbers to find the suitable placement in order to optimize the network performance. In another way, the optimal controller numbers are usually obtained on the condition as the specific network topology to be implemented are given in advance. Furthermore, the mapping decision based on dynamic traffic condition can be categorized into three types. First is single mapping, then second is multiple mapping where one switch assigns to multiple controllers in the case of any controller failure can distribute the loads to other controllers. Lastly, the third type of mapping decision is dynamic switch assignment to the controller that is periodically triggered by measuring value to avoid the congestion happen.

Conclusion
In conclusion, partition and fairness minimization heuristics give a fairer distribution of switch-to-controller allocation, but the results are limited to certain topologies. This paper discussed most performance metrics as compared to others static controller placement approaches. On the other hand, the flow-based dynamic switch migration algorithm is designed to migrate the boundary switches to its lightweight neighbour controller when there is flow burst. This paper performs most parameters among all others dynamic controller placement approaches. However, this topology only adopted for small and medium network size. Of all the reviewed methods, none have considered topology-aware controller placement based on network conditions that changes automatically. Majority research works just experimented their controller placement designs under particular kinds of network topologies environment. Most of the papers simply assume one controller failures at a time to make the simulation easier. For future works, variety network congestion scenarios should be included in controller placement designed such as multiple controllers, nodes or links are possible to fail at the same time. This is important to increase the accuracy and feasibility of the controller placement algorithm proposed. In addition, packet loss rate as one of the important QoS parameter to evaluate the network performance is also less being concerned in most of the current SDN controller placement.