Software-defined networking (SDN) programs must simultaneously describe static forwarding behavior and dynamic updates in response to events. Event-driven updates are critical to get right, but difficult to implement correctly due to the high degree of concurrency in networks. Existing SDN platforms offer weak guarantees that often break application invariants leading to problems such as dropped packets, degraded performance, security violations, etc. This paper introduces EVENT-DRIVEN CONSISTENT UPDATES that are guaranteed to preserve well-defined behaviors when transitioning between configurations in response to events. We propose NETWORK EVENT STRUCTURES (NESs) to model constraints on updates, such as which events can be enabled simultaneously and causal dependencies between events. We define an extension of the NetKAT language with mutable state and give semantics to stateful programs using NESs. We discuss strategies for implementing NESs using SDN switches and prove them correct. Finally, we evaluate our approach empirically and demonstrate that it gives well-defined consistency guarantees while avoiding expensive synchronization and packet buffering.
Thu 16 JunDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00
|Event-driven Network Programming|
Jedidiah McClurg University of Colorado Boulder, Hossein Hojjat Cornell University, Nate Foster Cornell University, Pavol Cerny University of Colorado BoulderPre-print Media Attached
Ryan Beckett Princeton University, Michael Greenberg Pomona College, David Walker Princeton UniversityMedia Attached
|SDNRacer: Concurrency Analysis for Software-Defined Networks|
Ahmed Elhassany ETH Zürich, Jeremie Miserez ETH Zürich, Pavol Bielik ETH Zurich, Switzerland, Laurent Vanbever ETH Zürich, Martin Vechev ETH ZurichMedia Attached