mSwitch: A Highly-Scalable, Modular Software Switch


June 17, 2015


Michio Honda, Felipe Huici, Giuseppe Lettieri and Luigi RizzoACM SIGCOMM SYMPOSIUM ON SDN RESEARCH (SOSR)

Software switches have been around for decades, often as a cheap alternative to hardware-based switching. More recently, they have gained renewed prominence as a result of a number of trends, including virtualization technologies, software-defined networks, and consolidated middle- box platforms, among others. To address the requirements arising from these, a number of high performance switches have been proposed in the literature. However, none of these simultaneously provide (1) high throughput, (2) reasonable CPU consumption, (3) high port density and (4) a flexible data plane. 

In this paper we fill the gap by presenting mSwitch, a modular software switch with a strong emphasis on performance, scalability, and extensibility. On commodity hard- ware, mSwitch is able to reach throughput in the hundreds of Gb/s and scale to large numbers of ports while providing a flexible, modular data plane. 

To prove the flexibility of our approach, we use mSwitch to build four distinct modules: a learning bridge consisting of 45 lines of code that outperforms FreeBSD’s bridge by 6 times; an accelerated Open vSwitch module requiring small changes to the code and boosting performance by 2.6-3 times; a protocol demultiplexer for user-space protocol stacks; and a filtering module that can direct packets to virtualized middleboxes.


The definitive version of the paper can be found at: 

Slides used at the conference can be found at: