A Balance of Power: Expressive, Analyzable Controller Programming

Tim Nelson, Arjun Guha, Daniel J. Dougherty, Kathi Fisler, and Shriram Krishnamurthi
Workshop on Hot Topics in Software Defined Networking (HotSDN), 2013

Configuration languages for traditional network hardware are often fairly limited and hence easy to analyze. Programmable controllers for software-defined networks are far more flexible, but this flexibility results in more opportunities for mis-configuration and greatly complicates analyses. We propose a new network-programming paradigm that strikes a balance between expressive power and analysis, providing a highly analyzable core language while allowing the re-use of pre-existing code written in more complex production languages.

As the first step we have created FlowLog, a declarative language for programming SDN controllers. We show that FlowLog is expressive enough to build some real controller programs. It is also a finite-state language, and thus amenable to many types of analysis, such as model-checking. In this paper we present FlowLog, show examples of controller programs, and discuss analyzing them.

PDF Slides

  @inproceedings{nelson:flowlog,
    author = "Tim Nelson and Arjun Guha and Daniel~J. Dougherty and
              Kathi Fisler and Shriram Krishnamurthi",
    title = "A Balance of Power: Expressive, Analyzable Controller
             Programming",
    year = 2013,
    booktitle = "ACM SIGCOMM Workshop on Hot Topics in Software Defined
                 Networking (HotSDN)"
  }