A distributed and robust SDN control plane for transactional network updates

Software-defined networking (SDN) is a novel paradigm that outsources the control of programmable network switches to a set of software controllers. The most fundamental task of these controllers is the correct implementation of the 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 concurrent and 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 consistent composition of concurrent network policy updates (termed the CPC Problem). To anticipate scenarios in which some conflicting policy updates must be rejected, we enable the composition via a natural 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. tags) available to the controllers, and describe a CPC protocol with optimal tag complexity f + 2.

[1]  Arne Ludwig,et al.  Good Network Updates for Bad Packets: Waypoint Enforcement Beyond Destination-Based Routing Policies , 2014, HotNets.

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

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

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

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

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

[7]  Yashar Ganjali,et al.  On scalability of software-defined networking , 2013, IEEE Communications Magazine.

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

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

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

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

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

[13]  Stefan Schmid,et al.  Exploiting locality in distributed SDN control , 2013, HotSDN '13.

[14]  Fang Hao,et al.  Towards an elastic distributed SDN controller , 2013, HotSDN '13.

[15]  2015 IEEE Conference on Computer Communications, INFOCOM 2015, Kowloon, Hong Kong, April 26 - May 1, 2015 , 2015, INFOCOM.

[16]  Rob Sherwood,et al.  The controller placement problem , 2012, HotSDN '12.

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

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

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

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

[21]  Brighten Godfrey,et al.  Towards correct network virtualization , 2014, HotSDN.

[22]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

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

[24]  Martín Casado,et al.  Abstractions for software-defined networks , 2014, Commun. ACM.

[25]  Sam Toueg,et al.  The weakest failure detector for solving consensus , 1992, PODC '92.

[26]  Yashar Ganjali,et al.  Kandoo: a framework for efficient and scalable offloading of control applications , 2012, HotSDN '12.