SDNRacer: Concurrency Analysis for Software-Defined Networks
Abstract
Concurrency violations are an important source of bugs in Software-Defined Networks (SDN), often leading to policy or invariant violations. Unfortunately, concurrency violations are also notoriously difficult to avoid, detect and debug. This paper presents a novel approach and a tool, SDNRacer, for detecting concurrency violations of SDNs. Our approach is enabled by three key ingredients: (i) a precise happens- before model for SDNs that captures when events can happen concurrently; (ii) a set of sound, domain-specific filters that reduce reported violations by orders of magnitude, and; (iii) a sound and complete dynamic analyzer, based on the above, that can ensure the network is free of harmful errors such as data races and per-packet incoherence. We evaluated SDNRacer on several real-world OpenFlow controllers, running both reactive and proactive applications in large networks. We show that SDNRacer is practically effective: it quickly pinpoints harmful concurrency violations without overwhelming the user with false positives.
People
BibTex
@INPROCEEDINGS{el-hassany2016sdnracer,
isbn = {978-1-4503-4261-2},
doi = {10.1145/2908080.2908124},
year = {2016},
booktitle = {Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation},
type = {Conference Paper},
editor = {Krintz, Chandra and Berger, Emery},
author = {El-Hassany, Ahmed and Miserez, Jérémie and Bielik, Pavol and Vanbever, Laurent and Vechev, Martin},
keywords = {Software Defined Networking; OpenFlow; Commutativity Specification; Happens-before; Nondeterminism},
language = {en},
address = {New York, NY},
publisher = {Association for Computing Machinery},
title = {SDNRacer: Concurrency Analysis for Software-Defined Networks},
PAGES = {402 - 415},
Note = {37th ACM SIGPLAN Conference on Programming Language Design and Implementation; Conference Location: Santa Barbara, CA, USA; Conference Date: June 13-17, 2016}
}
Research Collection: 20.500.11850/196973