2016 Poster Sessions : PISCES: A Programmable, Protocol-Independent Software Switch

Student Name : Sean Choi
Advisor : Nick McKeown
Research Areas: Computer Systems
Virtualized data-centers use software hypervisor switches to steer packets to and from virtual machines(VMs). The switch frequently needs upgrading and customization—to support new protocol headers or encapsulations for tunneling or overlays, to improve measurement and debugging features, and even to add middlebox-like functions. Software switches are typically based on a large body of code, including kernel code. Changing the switch is a formidable undertaking requiring domain mastery of network protocol design and developing, testing, and maintaining a large, complex code-base. In this presentation,
we argue that changing how a software switch forwards packets should not require intimate knowledge
of its implementation. Instead, it should be possible to specify how packets are processed and forwarded in a high-level domain-specific language (DSL) such as P4, then compiled down to run on the underlying software switch. We present PISCES, a software switch that is not hard-wired to specific protocols, which
eases adding new features. We also show how the compiler can analyze the high-level specification to optimize forwarding performance. Our evaluation shows that PISCES performs comparably to Open
vSwitch, a hardwired hypervisor switch, and that PISCES programs are about 40 times shorter than
equivalent Open vSwitch programs.

I am a rst year Ph.D. candidate in the electrical engineering department at Stanford University. My research is currently being advised by Professor Nick McKeown. I have also completed a M.S. degree
in computer science at Stanford University and B.S. degree in computer science at California Institute of Technology. After nishing my masters degree and before returning as a Ph.D. student, I worked in LinkedIn and VMWare as a data scientist and software engineer for couple of years.

My research work is about adding programmability to network switches via a domain speci c language called P4. P4 is a protocol-independent and target-independent language, that is capable of quickly and
easily de ning a function of a network object (i.e. a data-center switch). Given this language, my work is
to rst build a software-switch that can take a P4 input and generate the described function dynamically. This would allow for a protocol-independent and easily programmable software switch. Given this, my work also involves showing that this protocol-independent software switch is as performant as the protocol-dependent software switches that are currently being used in the industry.