A Distributed SDN Control Plane for Consistent Policy Updates

Software-defined networking (SDN) is a novel paradigm that out-sources the control of packet-forwarding switches to a set of software controllers. The most fundamental task of these controllers is the correct implementation of the \emph{network policy}, i.e., the intended network behavior. In essence, such a policy specifies the rules by which packets must be forwarded across the network. This paper studies a distributed SDN control plane that enables \emph{concurrent} and \emph{robust} policy implementation. We introduce a formal model describing the interaction between the data plane and a distributed control plane (consisting of a collection of fault-prone controllers). Then we formulate the problem of \emph{consistent} composition of concurrent network policy updates (short: the \emph{CPC Problem}). To anticipate scenarios in which some conflicting policy updates must be rejected, we enable the composition via a natural \emph{transactional} interface with all-or-nothing semantics. We show that the ability of an $f$-resilient distributed control plane to process concurrent policy updates depends on the tag complexity, i. e., the number of policy labels (a.k.a. \emph{tags}) available to the controllers, and describe a CPC protocol with optimal tag complexity $f+2$.

[1]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[2]  Anja Feldmann,et al.  Logically centralized?: state distribution trade-offs in software defined networks , 2012, HotSDN '12.

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

[4]  Sam Toueg,et al.  The weakest failure detector for solving consensus , 1996, JACM.

[5]  Rachid Guerraoui,et al.  Tight failure detection bounds on atomic object implementations , 2010, JACM.

[6]  Chen Liang,et al.  Participatory networking: an API for application control of SDNs , 2013, SIGCOMM.

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

[8]  Martín Casado,et al.  NOX: towards an operating system for networks , 2008, CCRV.

[9]  Nick McKeown,et al.  OpenFlow: enabling innovation in campus networks , 2008, CCRV.

[10]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[11]  Ratul Mahajan,et al.  On consistent updates in software defined networks , 2013, HotNets.

[12]  Petr Kuznetsov,et al.  STN: A Robust and Distributed SDN Control Plane , 2014 .

[13]  Danny Dolev,et al.  On the minimal synchronism needed for distributed consensus , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[14]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[15]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1985, JACM.

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

[17]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

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

[19]  Petr Kuznetsov,et al.  Software transactional networking: concurrent and consistent policy composition , 2013, HotSDN '13.

[20]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[21]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

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

[23]  Yuh-Jzer Joung,et al.  Asynchronous group mutual exclusion , 2000, Distributed Computing.