Participatory Networking

A user-level API for SDNs

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.

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 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.