Towards test-driven software defined networking

To configure, troubleshoot and operate their networks, operators often have no alternatives than relying on error-prone manual procedures. The emerging Software Defined Networking paradigm opens new possibilities for more structured networking methodologies.We argue that provably-effective practices can be borrowed from more developed engineering fields, especially software engineering. In this paper, we propose an adaptation of test-driven software development methodologies to software defined networks (SDNs). To support our methodological guidelines, we propose an expressive requirement formalization language. Further, we describe a prototype tool able to check the compliance of an SDN controller with requirements expressed in the proposed language. Our evaluation of the prototype shows promising results on the practical viability of our approach.

[1]  Nick McKeown,et al.  Reproducible network experiments using container-based emulation , 2012, CoNEXT '12.

[2]  Minlan Yu,et al.  SIMPLE-fying middlebox policy enforcement using SDN , 2013, SIGCOMM.

[3]  Marco Canini,et al.  FatTire: declarative fault tolerance for software-defined networks , 2013, HotSDN '13.

[4]  David Walker,et al.  Frenetic: a network programming language , 2011, ICFP.

[5]  Min Zhu,et al.  B4: experience with a globally-deployed software defined wan , 2013, SIGCOMM.

[6]  George Varghese,et al.  Header Space Analysis: Static Checking for Networks , 2012, NSDI.

[7]  Ehab Al-Shaer,et al.  Network configuration in a box: towards end-to-end verification of network reachability and security , 2009, 2009 17th IEEE International Conference on Network Protocols.

[8]  Martín Casado,et al.  Practical declarative network management , 2009, WREN '09.

[9]  Axel van Lamsweerde,et al.  Requirements engineering: from craft to discipline , 2008, SIGSOFT '08/FSE-16.

[10]  Andy Sholomon,et al.  Enterprise Network Testing: Testing Throughout the Network Lifecycle to Maximize Availability and Performance , 2011 .

[11]  David A. Maltz,et al.  Towards Systematic Design of Enterprise Networks , 2008, IEEE/ACM Transactions on Networking.

[12]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[13]  David Walker,et al.  Composing Software Defined Networks , 2013, NSDI.

[14]  Vyas Sekar,et al.  Making middleboxes someone else's problem: network processing as a cloud service , 2012, SIGCOMM '12.

[15]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[16]  Marco Canini,et al.  OFTEN Testing OpenFlow Networks , 2012, 2012 European Workshop on Software Defined Networking.

[17]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[18]  Alex X. Liu,et al.  Quantifying and Verifying Reachability for Access Controlled Networks , 2013, IEEE/ACM Transactions on Networking.

[19]  Giuseppe Di Battista,et al.  From Theory to Practice: Efficiently Checking BGP Configurations for Guaranteed Convergence , 2011, IEEE Transactions on Network and Service Management.

[20]  Geoffrey G. Xie,et al.  Modeling complexity of enterprise routing design , 2012, CoNEXT '12.

[21]  Mauro Pezzè,et al.  Software testing and analysis - process, principles and techniques , 2007 .

[22]  Marco Canini,et al.  A NICE Way to Test OpenFlow Applications , 2012, NSDI.

[23]  James D. McCabe Network analysis, architecture, and design , 2003, Network Design, Modelling and Performance Evaluation.

[24]  Brighten Godfrey,et al.  VeriFlow: verifying network-wide invariants in real time , 2012, HotSDN '12.

[25]  Nick McKeown,et al.  Where is the debugger for my software-defined network? , 2012, HotSDN '12.

[26]  George Varghese,et al.  Automatic Test Packet Generation , 2012, IEEE/ACM Transactions on Networking.

[27]  Cole Schlesinger,et al.  Splendid isolation: a slice abstraction for software-defined networks , 2012, HotSDN '12.