Simon: scriptable interactive monitoring for SDNs

Although Software-Defined Networking can simplify network management, it also poses new testing and debugging challenges for operators. Debugging is often an interactive process that involves stepping through data- and control-plane events and performing actions in response. Sometimes, however, this interactive process can become highly repetitive; in such cases, we should be able to script the activity to reduce operator overhead and increase reusability. We introduce Simon, a Scriptable Interactive Monitoring system for SDN. With Simon, operators can probe their network behavior by executing scripts for debugging, monitoring, and more. Simon is independent of the controller platform used, and does not require annotations or intimate knowledge of the controller software being run. Operators may compose debugging scripts both offline and interactively at Simon's debugging prompt. In the process, they can take advantage of the rich set of reactive functions Simon provides as well as the full power of Scala. We present the design of Simon and discuss its implementation and use.

[1]  Michael Hicks,et al.  Expositor: Scriptable time-travel debugging with first-class traces , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

[3]  Nick McKeown,et al.  I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks , 2014, NSDI.

[4]  Maciej Kuźniar,et al.  What You Need to Know About SDN Flow Tables , 2015, PAM.

[5]  Anja Feldmann,et al.  OFRewind: Enabling Record and Replay Troubleshooting for Networks , 2011, USENIX Annual Technical Conference.

[6]  Yifei Yuan,et al.  NetEgg: Programming Network Policies by Examples , 2014, HotNets.

[7]  Mabry Tyson,et al.  A security enforcement kernel for OpenFlow networks , 2012, HotSDN '12.

[8]  Marcos Rogério Salvador,et al.  Revisiting routing control platforms with the eyes and muscles of software-defined networking , 2012, HotSDN '12.

[9]  Ramesh Govindan,et al.  A General Approach to Network Configuration Analysis , 2015, NSDI.

[10]  George Varghese,et al.  Real Time Network Policy Checking Using Header Space Analysis , 2013, NSDI.

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

[12]  John B. Carter,et al.  SDN traceroute: tracing SDN forwarding without changing network behavior , 2014, HotSDN.

[13]  Zhi Liu,et al.  Troubleshooting blackbox SDN control software with minimal causal sequences , 2014 .

[14]  Rodrigo Fonseca,et al.  Planck , 2014, SIGCOMM.

[15]  Marco Canini,et al.  OF.CPP: consistent packet processing for openflow , 2013, HotSDN '13.

[16]  David Walker,et al.  Abstractions for network update , 2012, SIGCOMM '12.

[17]  Brighten Godfrey,et al.  Debugging the data plane with anteater , 2011, SIGCOMM.

[18]  Sharad Malik,et al.  An assertion language for debugging SDN applications , 2014, HotSDN.

[19]  Andreas Haeberlen,et al.  Diagnosing missing events in distributed systems with negative provenance , 2014, SIGCOMM.

[20]  Nick McKeown,et al.  A network in a laptop: rapid prototyping for software-defined networks , 2010, Hotnets-IX.

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

[22]  Richard H. Crawford,et al.  Dalek: A GNU, Improved Programmable Debugger , 1990, USENIX Summer.

[23]  Shriram Krishnamurthi,et al.  The design and implementation of a dataflow language for scriptable debugging , 2007, Automated Software Engineering.

[24]  David Walker,et al.  Compiling path queries in software-defined networks , 2014, HotSDN.

[25]  Nick Feamster,et al.  Procera: a language for high-level reactive network control , 2012, HotSDN '12.

[26]  Rob Sherwood,et al.  Can the Production Network Be the Testbed? , 2010, OSDI.