Life on the Edge: Unraveling Policies into Configurations

Current frameworks for network programming assume that the network contains a collection of homogenous devices that can be rapidly reconfigured in response to changing policies and network conditions. Unfortunately, these assumptions are incompatible with the realities of modern networks, which contain legacy devices that offer diverse functionality and can only be reconfigured slowly. Additionally, network service providers need to walk a fine line between providing flexibility to users, and maintaining the integrity and reliability of their core networks. These issues are particularly evident in optical networks which are used by ISPs and WANs and provide high bandwidth at the cost of limited flexibility and long reconfiguration times. This paper presents a different approach to implementing high-level policies, by pushing functionality to the edge and using the core merely for transit. Building on the NetKAT framework and leveraging linear programming problem solvers, we develop techniques for analyzing and transforming policies into configurations that can be installed at the edge of the network. Furthermore, our approach is extensible to include constraints crucial to optical networks such as path constraints and fault tolerance. We develop a working implementation using off-the-shelf solvers and evaluate our approach on a set of large-scale optical topologies.

[1]  Nabil Bitar,et al.  Extending software defined network principles to include optical transport , 2013, IEEE Communications Magazine.

[2]  Laurent Vanbever,et al.  Network-Wide Configuration Synthesis , 2016, CAV.

[3]  Arjun Guha,et al.  A fast compiler for NetKAT , 2015, ICFP.

[4]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[5]  David Walker,et al.  A compiler and run-time system for network programming languages , 2012, POPL '12.

[6]  Paparao Palacharla,et al.  Regenerator predeployment in CN-ROADM networks with shared mesh restoration [invited] , 2013, IEEE/OSA Journal of Optical Communications and Networking.

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

[8]  David Walker,et al.  SNAP: Stateful Network-Wide Abstractions for Packet Processing , 2015, SIGCOMM.

[9]  Sheldon B. Akers,et al.  Binary Decision Diagrams , 1978, IEEE Transactions on Computers.

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

[11]  Martín Casado,et al.  Fabric: a retrospective on evolving SDN , 2012, HotSDN '12.

[12]  Paul Hudak,et al.  Maple: simplifying SDN programming using algorithmic policies , 2013, SIGCOMM.

[13]  Paul Hudak,et al.  Nettle: Taking the Sting Out of Programming Network Routers , 2011, PADL.

[14]  Martín Casado,et al.  Onix: A Distributed Control Platform for Large-scale Production Networks , 2010, OSDI.

[15]  Da Yu,et al.  Exodus: toward automatic migration of enterprise network configurations to SDNs , 2015, SOSR.

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

[17]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[18]  Jake Silverman,et al.  Felix: Implementing Traffic Measurement on End Hosts Using Program Analysis , 2016, SOSR.

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

[20]  David Walker,et al.  Optimizing the "one big switch" abstraction in software-defined networks , 2013, CoNEXT.

[21]  Scott Shenker,et al.  Ethane: taking control of the enterprise , 2007, SIGCOMM.

[22]  He Liu,et al.  Circuit Switching Under the Radar with REACToR , 2014, NSDI.

[23]  Wei Xu,et al.  Optimizing Bulk Transfers with Software-Defined Optical WAN , 2016, SIGCOMM.

[24]  Martín Casado,et al.  Network Virtualization in Multi-tenant Datacenters , 2014, NSDI.

[25]  Loris D'Antoni,et al.  Genesis: synthesizing forwarding tables in multi-tenant networks , 2017, POPL.

[26]  Nate Foster,et al.  NetKAT: semantic foundations for networks , 2014, POPL.

[27]  Anja Feldmann,et al.  Panopticon: Reaping the Benefits of Incremental SDN Deployment in Enterprise Networks , 2014, USENIX Annual Technical Conference.

[28]  Shriram Krishnamurthi,et al.  Tierless Programming and Reasoning for Software-Defined Networks , 2014, NSDI.

[29]  Xin Jin,et al.  CoVisor: A Compositional Hypervisor for Software-Defined Networks , 2015, NSDI.

[30]  Arjun Guha,et al.  Machine-verified network controllers , 2013, PLDI.

[31]  Alexandra Silva,et al.  A Coalgebraic Decision Procedure for NetKAT , 2015, POPL.

[32]  Laurent Vanbever,et al.  Central Control Over Distributed Routing , 2015, Comput. Commun. Rev..

[33]  Srikanth Kandula,et al.  Achieving high utilization with software-driven WAN , 2013, SIGCOMM.