29 Oct 2015

The Design and Implementation of Open vSwitch

… resulting in major design departures from traditional software switching architectures.

Virtualization has changed the way we do computing over the past 15 years; … and further virtualization shows no signs of stopping [1].

In this paper, we describe the design and implementation of Open vSwitch [26, 29]. The key elements of its design, revolve around the performance required by the production environments in which Open vSwitch is commonly deployed, and the programmability demanded by network virtualization. Unlike traditional network appliances, whether software or hardware, which achieve high performance through specialization, Open vSwitch, by contrast, is designed for flexibility and general-purpose usage. It must achieve high performance without the luxury of specialization, adapting to differences in platforms supported, all while sharing resources with the hypervisor and its workloads. Therefore, this paper foremost concerns this tension — how Open vSwitch obtains high performance without sacrificing generality.

2 Design Constraints and Rationale

Resource sharing

The operating environment of a virtual switch is drastically different from the environment of a traditional network appliance. Below we briefly discuss constraints and challenges stemming from these differences, both to reveal the rationale behind the design choices of Open vSwitch and highlight what makes it unique.