Pyretic Team Places Second in ONUG Hackathon

The Pyretic team recently took second place in a hackathon organized by the Open Networking User Group. We refactored the Pyretic controller infrastructure to support a hierarchical design, enabling control plane decisions that depend on local information to be offloaded closer to (or even directly on to) individual switches. The open source hackathon prototype is currently being prepared for public release. Read on for our motivation in choosing this project.

There is a spectrum with respect to where control-plane decisions are made. Traditional networks represent one end, where each switch makes its own decisions, and global state is propagated via distributed protocols. SDN is the other, where (nearly) all decisions are made at a central controller. We explore a third, where decisions that require global knowledge are made at the controller, and decisions that only need local information are made at the switches.

The nature of the “decision” that can be made depends on the capabilities of the switches. It may be as simple as arithmetic to decrement a TTL or push/pop MPLS tags, as can be done on OpenFlow switches today, or as complicated as general computation, such as maintaining local state and applying a sophisticated heuristic for load balancing, as is possible on a software switch.

Our controller prototype is the first step in orchestrating split control between global and local processing. In our current system, we assume that the switches are capable of general computation (or are paired with an x86 machine acting as a local controller). But it would not be difficult to add other “back ends” targeting the more limited---but more efficient---forms of computation in, say, the Intel FlexPipe architecture.