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.