Enabling Innovation Inside the Network Jennifer Rexford Computer Science Department Princeton University http://www.frenetic-lang.org/ With Nate Foster (Cornell), Mike Freedman (Princeton), Dave Walker (Princeton)
Traditional Computer Networks Management plane: Configuration Control plane: Distributed algorithms Data plane: Packet streaming Proprietary software and vendor-specific configuration interfaces
Software Defined Networking (SDN) Logically-centralized control Smart, slow Open API to the data plane (e.g., OpenFlow) Dumb, fast Switches
See http://www.openflow.org/videos/ Example Applications Seamless mobility/migration Dynamic access control Server load balancing Using multiple wireless access points Energy-efficient networking Adaptive traffic monitoring Denial-of-Service attack detection Network virtualization See http://www.openflow.org/videos/
Seamless Mobility/Migration See host sending traffic at new location Modify rules to reroute the traffic
Programming OpenFlow Networks OpenFlow makes programming possible Network-wide view at controller Direct control over data plane The APIs do not make it easy Low level of abstraction Challenges Reading network state Composing multiple modules Updating an asynchronous network Controller Switches
Frenetic Language and Run-Time System Frenetic today SQL-like queries of network state Run-time system for composing modules Consistent updates to network configuration P1 P2 Learning Host Location Select(packets) * GroupBy([srcmac]) * SplitWhen([inport]) * Limit(1)
Conclusions Frenetic Ongoing work Programming language and run-time system Raises abstraction for network programming Enables a vibrant software ecosystem for SDN Ongoing work Heterogeneous switches Network virtualization Network appliances Distributed controllers