Participatory Networking

A user-level API for SDNs

Participatory Networking integrates end-users, hosts and applications in network management by supporting resource requests, traffic hints, and status queries.

Download »

About


PANE is a prototype OpenFlow controller which implements Participatory Networking, an API for end-users, hosts and applications to take part in network management. PANE allows these principals to directly contact the network control-plane to place requests for resources, provide hints about future traffic, or query the state of the network. PANE divides and delegates authority for network management using a hierarchy of “shares,” which are also managed by interacting with the PANE server.

Participatory Networking is designed for networks with a single logical administrator, such as datacenters, enterprise or campus networks, and home networks. The system’s broad design is motivated by multiple scenarios in which applications benefit from network re-configuration including smooth video playback, bulk data transfer, in-network service from middleboxes or software routers, and route setup or flow placement. Our papers include more detailed descriptions of these examples.

A diagram of PANE’s internals is shown at right. User requests enter at the top, where they are first checked against the share tree, which describes the privileges granted to each user. Valid requests are installed for their requested duration in the policy tree, which is then flattened into a single flow table for an idealized network consisting of a single switch. PANE’s runtime system then converts this Network Flow Table into individual tables for the distributed OpenFlow switches, using data about the network topology maintained in the Network Information Base.


Example - Isolating Apache ZooKeeper traffic


Apache ZooKeeper is a coordination service used at Twitter, Yahoo!, Netflix and elsewhere, where it fills a similar role to Google's Chubby service or Paxos quorums. During write operations, servers in the ZooKeeper ensemble must agree to commit each operation, a task which is sensitive to increased network latency. By augmenting ZooKeeper with support for PANE, and granting it the necessary authority, our PANE-enabled ZooKeeper can request guaranteed bandwidth for its traffic, which, in turn, leads to lower latency as flows do not compete in switch queues with other traffic. In the plot on the right, the red line is a CDF of the latency of ZooKeeper CREATE operations when running on an unloaded network, the green line is the increased latency when the links used by ZooKeeper's traffic are heavily loaded, and the blue line represents the return to lower latency when ZooKeeper exercises its authority to isolate its traffic using PANE.

We currently use PANE's client library for Java applications to create and manage the necessary PANE requests. Implementing complete support for PANE in ZooKeeper, including introducing additional configuration parameters required only a few hundred lines of code. Further details of this experiment and its setup can be found in our SIGCOMM 2013 paper below, and we make our ZooKeeper benchmarking tool available for download.


Papers and Presentations


  • Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi. Participatory Networking: An API for Application Control of SDNs. In Proc. ACM SIGCOMM 2013, August 2013. [Paper (pdf)] [Paper (video)] [Talk (key)] [Talk (pdf)] [Talk (ppt, converted)] [BibTeX]
    @inproceedings{Ferguson:2013sigcomm,
    Author = {Ferguson, Andrew and Guha, Arjun and Liang, Chen and Fonseca, Rodrigo and Krishnamurthi, Shriram},
    Title = {{Participatory Networking: An API for Application Control of SDNs}},
    Booktitle = {Proc. ACM SIGCOMM '13},
    Month = {August},
    Year = {2013},
    Address = {Hong Kong, China}}

  • Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi. A Northbound API for Sharing SDNs (Poster). In Open Networking Summit, April 2013. [Poster] [Proposal] [BibTeX]
    @inproceedings{Ferguson:2013ons,
    Author = {Ferguson, Andrew and Guha, Arjun and Liang, Chen and Fonseca, Rodrigo and Krishnamurthi, Shriram},
    Title = {{A Northbound API for Sharing SDNs}},
    Booktitle = {Open Networking Summit '13},
    Month = {April},
    Year = {2013},
    Address = {Santa Clara, CA}}

  • Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi. Hierarchical Policies for Software Defined Networks. In Proc. Workshop on Hot Topics in Software Defined Networks (Hot-SDN), August 2012. [Paper (pdf)] [Paper (video)] [Talk (key)] [Talk (pdf)] [Talk (video)] [BibTeX]
    @inproceedings{Ferguson:2012hft,
    Author = {Ferguson, Andrew and Guha, Arjun and Liang, Chen and Fonseca, Rodrigo and Krishnamurthi, Shriram},
    Title = {{Hierarchical Policies for Software Defined Networks}},
    Booktitle = {Proc. Hot-SDN '12},
    Year = {2012},
    Address = {Helsinki, Finland}}

  • Rodrigo Fonseca. Participatory Networking. Microsoft Research (Redmond); August 8, 2012.

  • Rodrigo Fonseca. Participatory Networking. Universidade Federal de Minas Gerais; May 25, 2012. [Talk (pdf) (in Portuguese)]

  • Rodrigo Fonseca. Participatory Networking. Boston University; May 10, 2012. [Talk (pdf)]

  • Andrew D. Ferguson, Arjun Guha, Jordan Place, Rodrigo Fonseca, and Shriram Krishnamurthi. Participatory Networking. In Proc. Workshop on Hot Topics in Management of Internet, Cloud, and Enterprise Networks and Services (Hot-ICE), April 2012. [Paper (pdf)] [Paper (video)] [Talk (key)] [Talk (pdf)] [Talk (video)] [BibTeX]
    @inproceedings{Ferguson:2012pane,
    Author = {Ferguson, Andrew and Guha, Arjun and Place, Jordan and Fonseca, Rodrigo and Krishnamurthi, Shriram},
    Title = {{Participatory Networking}},
    Booktitle = {Proc. Hot-ICE '12},
    Year = {2012},
    Address = {San Jose, CA}}


  • Demo VM


    To make exploring PANE and its potential use cases simpler, we are providing this demo virtual machine. The VM uses Mininet to create a virtual network topology with PANE functioning as the SDN controller, and can use either Open vSwitch or the OpenFlow 1.0 reference switch as the virtual switches. The VM also includes a PANE-enabled version of ZooKeeper, the ZooKeeper benchmark, and a script which launches the experiment described above. In addition, all of the tools needed to further develop PANE are also included.

    The virtual machine is 64-bit Xubuntu 12.10, and requires Virtual Box to run.

    Download link: PANEdemoVM.tar.gz (1.4 GB)

    SHA1 checksum for VM download: 2481d078fdb3ecc2ffe6476d8e9d62e9498efb56

    Finally, all of the files to create this virtual machine are avilable on Github. If you would like to create your VM for SDN development, check out the INSTALL file.


    Contact


    Members of the Particpatory Networking project include Andrew Ferguson, Arjun Guha, Chen Liang, Betsy Hilliard, Jordan Place, Rodrigo Fonseca, and Shriram Krishnamurthi. Please contact Andrew Ferguson (adf@cs.brown.edu) with any questions or comments.

    The authors wish to thank Carleton Coffrin, Joe Politz, Jennifer Rexford, Scott Shenker, and Andreas Voellmy for helpful discussions, feedback, and assistance with this project. This work is partially supported by grants from the National Science Foundation, including NSF Award #1012060. Andrew Ferguson is supported by an NDSEG fellowship.

    Support


    This work is partially supported by grants from the National Science Foundation, including NSF Awards #1320397 and #1012060. Andrew Ferguson was supported by an NDSEG fellowship.