Thu 16 Jun 2016 13:30 - 14:00 at Grand Ballroom San Rafael - Software-Defined Networking Chair(s): Todd Millstein

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.