Abstract
The emergence of software-defined networking (SDN) raises a set of fundamental questions, including architectural issues like whether control should be centralized or distributed, and whether control and data planes should be separated. Several open problems exist in SDN space, ranging from architectural questions that are fundamental to how networks scale and evolve to implementation issues such as how we build distributed "logically centralized" control planes. Moreover, since SDN is still in its early stage, there is an opportunity to make fault tracking framework a more integral part of the overall design process. Although SDN's goal is to simplify the management of networks, the challenge is that the SDN software stack itself is a complex distributed system, operating in asynchronous, heterogeneous, and failure-prone environments. In this chapter we will focus on three key areas: 1) SDN architecture, 2) scalable SDN systems to understand which pieces of control plane can be run logically centralized fashions, and 3) fault tracking framework to track down the failures in SDN.