c 2014 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works. The definitive version of this paper has been published in Proc. IEEE NOMS 2014 POCO-Framework for Pareto-Optimal Resilient Controller Placement in SDN-based Core Networks David Hock, Steffen Gebert, Matthias Hartmann, Thomas Zinner, Phuoc Tran-Gia University of Würzburg, Institute of Computer Science {hock,gebert,hartmann,zinner,trangia}@informatik.uni-wuerzburg.de I. I NTRODUCTION AND P ROBLEM D ESCRIPTION Recently, Software Defined Networking (SDN) has gained a lot of attention, even for the use in core communication networks. When deploying SDN in large core networks, the number and location of controllers must be carefully planned. A first study on this topic by Heller et al. [3] was followed by more detailed publications that included resilience or dynamic controller provisioning. In our previous work [2], we provide an overview over related work and include different resilience issues in the controller placement process. We argued that it is not sufficient to look only at node-to-controller latencies but a controller placement should also fulfill certain resilience constraints especially for the control plane. The addressed resilience issues are briefly repeated in the following. Further details can be found in our original paper [2]. • Controller Failures: To make a network resilient against the outage of controllers, more than a single controller is required. This way, nodes can be reassigned to other controllers when their primary controller fails. However, the latencies of the reassigned nodes to their new controller can be significantly higher than those to the primary controller. Therefore, not only the latencies during failurefree routing should be considered, but also worst case latencies during controller failures. • Network Disruption: Not only controllers can fail but also network elements such as links or nodes. Outages of such components often have a higher impact on the network stability, as they alter the topology itself. In the worst case, entire parts of the network might be cut off. This can lead to some nodes being no longer able to connect to any controller as they are cut off from all controllers. These nodes are still working and able to forward traffic, but can no longer request instructions. • Load Imbalance: The more nodes a controller controls, the higher is the load on that controller. If the number of node-to-controller requests in the network increases, so does the chance of additional delays due to queuing at the controller system. Thus, in scenarios where nodes communicate often with their controller, it is necessary that the node-to-controller assignment is well-balanced. • Inter-Controller Latency: If there is more than a single controller in a network, synchronization is necessary to This work has been performed in the framework of the CELTIC EUREKA project SASER-SIEGFRIED (Project ID CPP2011/2-5), and it is partly funded by the BMBF (Project ID 16BP12308). The authors alone are responsible for the content of the paper. maintain a consistent global state. Depending on the frequency of the inter-controller synchronization, the latency between the individual controllers plays an important role and thus should be considered during the controller placement. To determine the best controller placement according to different resilience metrics, we use an exhaustive evaluation of all possible placements in a given topology. We showed that this is computationally feasible for realistic network sizes. The POCO-toolset used to produce the presented results was made available online [4]. In this demo, we present an extended POCO framework including a Graphical User Interface. It provides a simple and convenient way to calculate optimal controller placements, and illustrate and analyze different resilience issues. II. POCO F RAMEWORK The POCO-toolset to compute resilient Pareto-based Optimal COntroller-placements is implemented in MATLAB. With an efficient combined use of CPU and RAM, it can evaluate the entire solution space of all controller placements even when resilience is considered. It calculates all considered objectives for each placement so that the best solutions according to the particular requirements can be selected from the entire range of possible placements. The actual decisions which of the multi-criteria optimization goals is most important can thus be postponed to after the optimization process. A. Program Structure The implementation of POCO as a set of MATLAB scripts and functions makes POCO easy to use and extensible. An overview of the program structure as well as the contained functions is shown in Figure 1. The functions and scripts can be roughly classified into four groups: (1) input, (2) config, (3) calculation, and (4) output. B. Graphical User Interface To facilitate and improve the user experience of POCO, we now provide a GUI to control POCO and to evaluate and illustrate its results. Figure 2 shows a screenshot of the GUI. The upper part shows the network topology and can visualize different scenarios and options. For example, the scenarios discussed in our original paper [2] can be selected directly. The lower part of the GUI allows to compare different placements according to multiple objective functions and to easily select a particular placement. This can be, e.g., the best placement 2 CONFIG Considered scenarios • With or without node weights (population-based) • Considered failure types ( , C, N) • Number of controllers k 3 CALCULATION Calculation functions • Evaluation of all applicable metrics for all placements in selected scenarios • Algorithm to find minimum k such that 4 OUTPUT Visualization functions • Different combinable illustrations for different metrics • Illustration of solution space and Pareto-optimal placements • Placement sliders (All / Only Pareto-optimal placements) • Quick selection of particular placements & scenarios • Configuration and evaluation of individual scenarios • Quick links to predefined illustrations Export functions • Individual node-to-controller assignments OMNeT++ • Multi-dimensional sets of Pareto-optimal values • Placements calculated for particular scenarios for later reuse Fig. 1. APPLICATION CORE Topology • Formats: Internet Topology • City names Zoo, MATLAB, SNDlib • City populations/node • Geographical locations weights (static, dynamic) Graphical User Interface realized as MATLAB Figure 1 INPUT (a) Dynamic placement. Fig. 3. Extensions and additional features of POCO Program structure of POCO. III. according to a chosen metric, any arbitrary placement or one of the Pareto-optimal placements according to given metrics. The lower part also shows an evaluation of all placements according to a selection of two arbitrary metrics as it has been done in [2] and highlights the Pareto-optimal results. All calculations necessary to evaluate different placements for different metrics are performed only once – triggered by a menu item – and the results are locally stored for quick access to speed up the illustration and evaluation process. Screenshot of the POCO GUI. D EMO P RESENTATION The demo presentation provides an overview on POCO. Different capabilities of the tool and its GUI are shown. The new version of POCO is available online [4]. • Evaluation: We demonstrate the different evaluation methods offered by POCO regarding the placement of a variable number of controllers for the failure-free scenario, controller outages, and node outages, each of them with and without node weights. • Visualization: We show how POCO is able to visualize the different resilience issues described in Section I individually, and as combined views including several aspects. Several important placements can be selected quickly, for example the best placement according to a particular metric, or placements that are Pareto-optimal according to any two arbitrary metrics. Furthermore, fast access to possibly interesting scenarios is provided (e.g. worst-case scenarios according to different metrics). • Analysis: By looking at different example use cases similar to the ones presented in our original paper [2], we illustrate how POCO can be used to analyze different placement options and to find the most adequate controller placement for any particular requirement. IV. Fig. 2. (b) Hierarchical placement. ACKNOWLEDGEMENTS We thank our SASER project partners, especially RalfPeter Braun from T-Labs for providing the data for the STRONGEST reference topology and Frank Pfeuffer from Zuse Institute Berlin for calculating the topology coordinates. R EFERENCES C. Future Research Directions Enabled by POCO Figure 3 provides a brief outlook on extensions and features of POCO and its GUI which are currently explored but beyond the scope of this demonstration: controller placements under dynamic network conditions enabled by the POCOPLC extension [1] (see Figure 3(a)) and the placement of controllers in hierarchical networks exemplarily visualized for the STRONGEST network [5] with 1975 total nodes including 24 core nodes (see Figure 3(b)). [1] [2] [3] [4] [5] D. Hock, M. Hartmann, S. Gebert, T. Zinner, and P. Tran-Gia, “POCOPLC: Enabling Dynamic Pareto-Optimal Resilient Controller Placement in SDN Networks,” in INFOCOM, Toronto, Canada, 2014. D. Hock, M. Hartmann, S. Gebert, M. Jarschel, T. Zinner, and P. TranGia, “Pareto-Optimal Resilient Controller Placement in SDN-based Core Networks,” in ITC, Shanghai, China, 2013. B. Heller, R. Sherwood, and N. McKeown, “The Controller Placement Problem,” in ACM SIGCOMM HotSDN, Helsinki, Finland, 2012. http://www3.informatik.uni-wuerzburg.de/poco. “EU Project STRONGEST,” http://www.ict-strongest.eu.