The Faucet SDN Controller, with Josh Bailey from Google and Shivaram Mysore from ONF - a podcast by Ben Pfaff

from 2016-11-13T22:48:19

:: ::

Faucet is an open source SDN controller developed by a community that
includes engineers at Google's New Zealand office, the Open NetworkingFoundation (ONF), and others. This episode is an interview withJosh Baileyfrom Google and Shivaram Mysore from the ONF. It was recorded on Nov. 7,
atOpen vSwitch 2016
Fall Conference
.

The episode begins with a description of Faucet's goals. Unlike thehigher profileOpen DaylightandONOS controllers, which focus
on performance at high scale, Faucet places simplicity, ease ofdevelopment, and small code size as higher purposes.

Also in contrast to most controllers, Faucet does not contain code
specific to individual vendors or models of OpenFlow switch. Rather, ittargets any OpenFlow 1.3 switches that fulfill its minimum multi-table
and other requirements, using a pipeline of tables designed to besuitable for many purposes. In Josh's words, “The most important one
was tables. Once you have tables, you can say `if-then'. If you don'thave tables, you can only go `if-and-and-and-and'.”

Faucet development has focused on deployments. Several Faucet users have
come forward to publicly talk about their use, with the highest profileof those being theOpen
Networking Foundation deployment
at their own offices. See also amap
of public deployments
. Shiva describes a temporary deployment at the
ONF Member Workdays for conference wi-fi use.

Performance is not a focus for Faucet. Instead, developers encourage
users to experiment with deployments and find out whether there is anactual performance in practice. Shivaram reports that this has worked
out well.

Faucet can control even very low-end switches, such as theZodiac, a
4-port switch from Northbound Networks that costs AUD $99 (about USD$75). Faucet itself has low memory and CPU requirements, which mean that
it can run on low-end hardware such as Raspberry Pi (about $30), whichhas actually been deployed as a production controller for enterprise use.

Last summer, the ONF hosted aFaucet hackfestin
Bangalore, where each team was supplied its own “Pizod,” a combinationof a Zodiac and Raspberry Pi, for development. Hackers at the hackfest
were required to have Python experience, but not networking or OpenFlowexperience. Each team of 4, which included a documentation and a UX
person, chose a project from an assigned list of possibilities.

Faucet records the state of the system, over time, to an InfluxDB
database and exposes that for inspection through a Grafana dashboard.

The Faucet code is small, about 2,500 lines of code. About this size,
Josh says, “I'd be surprised if it gets about four times the size,because we've got quite a clear idea of its scope... Think of Faucet as
your autonomic nervous system, a small important part of your brain butit keeps you breathing and it reacts to high-priority threats before your
conscious mind sets in. You keep that code small and you test the heckout of it.”

Josh is working on extending support for distributed switching within
Faucet. Troubleshooting large L2 fabrics is especially frustrating, andJosh aims to make it easier. Shiva is encouraging deployments,
especially feedback from deployments, and control over wi-fi. Otherpriorities are better dashboards and better IPv6 support.

For more information on Faucet, visitthe Faucet blog, read theACM Queue article on
Faucet
, dive intothe
Faucet Github repo
, or search for “Faucet SDN” onYoutube.

OVS Orbit is produced byBen Pfaff. The
intro music in this episode isDrive,
featuring cdk and DarrylJ, copyright 2013, 2016 by Alex. The bumper music isYeah Antfeaturing Wired Ant and Javolenus, copyright 2013 by Speck. The outro
music isSpace
Bazooka
featuring Doxen Zsigmond, copyright 2013 by Kirkoid. All content is licensed under a Creative CommonsAttribution 3.0
Unported (CC BY 3.0)
license.

Further episodes of OVS Orbit

Further podcasts by Ben Pfaff

Website of Ben Pfaff