I. Introduction
Software Defined Networks (SDNs) are envisioned as a promising paradigm that decouples the control plane and data plane. The control plane is formed by a set of controllers and each of them manages one or more simplified packet-forwarding switches. The separation simplifies the networking management and improves its scalability [1]. Scalability and robustness should be more carefully considered in SDNs. Since network failures could cause disconnections between the control and data planes, and further disable some of the switches, it is of great importance to improve the robustness of SDNs [2].