OVS Orbit

The Faucet SDN Controller, with Josh Bailey from Google and Shivaram Mysore from ONF


Listen Later

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

The episode begins with a description of Faucet's goals. Unlike the
higher profile Open Daylight
and ONOS controllers, which focus
on performance at high scale, Faucet places simplicity, ease of
development, 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, it
targets any OpenFlow 1.3 switches that fulfill its minimum multi-table
and other requirements, using a pipeline of tables designed to be
suitable 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't
have 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 profile
of those being the Open
Networking Foundation deployment at their own offices. See also a map
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 an
actual performance in practice. Shivaram reports that this has worked
out well.

Faucet can control even very low-end switches, such as the Zodiac, 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), which
has actually been deployed as a production controller for enterprise use.

Last summer, the ONF hosted a Faucet hackfest in
Bangalore, where each team was supplied its own “Pizod,” a combination
of a Zodiac and Raspberry Pi, for development. Hackers at the hackfest
were required to have Python experience, but not networking or OpenFlow
experience. 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 but
it 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 heck
out of it.”

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

For more information on Faucet, visit the Faucet blog, read the ACM Queue article on
Faucet, dive into the
Faucet Github repo, or search for “Faucet SDN” on Youtube.

OVS Orbit is produced by Ben Pfaff. The
intro music in this episode is Drive,
featuring cdk and DarrylJ, copyright 2013, 2016 by Alex. The bumper music is
Yeah Ant
featuring Wired Ant and Javolenus, copyright 2013 by Speck. The outro
music is Space
Bazooka featuring Doxen Zsigmond, copyright 2013 by Kirkoid. All content is licensed under a Creative Commons Attribution 3.0
Unported (CC BY 3.0) license.

...more
View all episodesView all episodes
Download on the App Store

OVS OrbitBy Ben Pfaff

  • 5
  • 5
  • 5
  • 5
  • 5

5

1 ratings