Scalable Software Defined Network Controllers


Andreas Voellmy, Junchang Wang


Software defined networking (SDN) introduces centralized controllers to dramatically increase network programmability. The simplicity of a logical centralized controller, how- ever, can come at the cost of control-plane scalability. In this demo, we present McNettle, an extensible SDN control system whose control event processing throughput scales with the number of system CPU cores and which supports control algorithms requiring globally visible state changes occurring at flow arrival rates. Programmers extend Mc- Nettle by writing event handlers and background programs in a high-level functional programming language extended with shared state and memory transactions. We implement our framework in Haskell and leverage the multicore facilities of the Glasgow Haskell Compiler (GHC) and runtime system. Our implementation schedules event handlers, allocates memory, optimizes message parsing and serialization, and reduces system calls in order to optimize cache usage, OS processing, and runtime system overhead. Our experiments show that McNettle can serve up to 5000 switches using a single controller with 46 cores, achieving through- put of over 14 million flows per second, near-linear scaling up to 46 cores, and latency under 200 μs for light loads and 10 ms with loads consisting of up to 5000 switches.


 author = {Voellmy, Andreas and Wang, Junchang},
 title = {Scalable software defined network controllers},
 journal = {SIGCOMM Comput. Commun. Rev.},
 issue_date = {October 2012},
 volume = {42},
 number = {4},
 month = aug,
 year = {2012},
 issn = {0146-4833},
 pages = {289--290},
 numpages = {2},
 url = {},
 doi = {10.1145/2377677.2377735},
 acmid = {2377735},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {haskell, multicore, openflow, software-defined networking},