Event-driven network programming
Abstract
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 can 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, give semantics to stateful programs using NESs, and discuss provably-correct strategies for implementing NESs in SDNs. Finally, we evaluate our approach empirically, demonstrating that it gives well-defined consistency guarantees while avoiding expensive synchronization and packet buffering.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Jun 02, 2016
- Source ID
- 10.1145/2980983.2908097
Entities
People
- Hossein Hojjat
- Jedidiah Mcclurg
- Nate Foster
- Pavol Černý
Organizations
- Cornell University
- National Science Foundation
- Office of Naval Research
- University of Colorado Boulder