Frenetic: A Network Programming Language
Modern enterprise and datacenter networks must provide a variety of interrelated services including routing, traffic monitoring, load balancing, and access control. In order to facilitate implementation of these network services, the Open Networking Foundation, a group that includes Microsoft, Facebook, Google, Cisco, IBM and others, have settled on a new set of protocols, based on the OpenFlow platform, for monitoring and controlling network devices. OpenFlow simplifies and improves network programming by making it possible to implement new network functionality from the vantage-point of a general-purpose, centralized controller program. Unfortunately, while OpenFlow now makes it possible to program new network functionality, it does not necessarily make it easy. To remedy this situation, we present our on-going research on Frenetic, a high-level language for programming networks, built on top of OpenFlow and the network operating system NOX. Frenetic provides a declarative query language for classifying and aggregating network traffic as well as a functional, reactive combinatory library for describing high-level packet-forwarding policies. Unlike prior work in this domain, these constructs are designed to enable correct-by-construction network programming, reliable composition of program modules, and effective code reuse. These important properties are made possible by FreneticΓÇÖs novel run-time system which manages all of the details related to installing, uninstalling, and querying low-level packet-processing rules on physical switches. This is joint research at Cornell and Princeton Universities involving Nate Foster, Mike Freedman, Rob Harrison, Christopher Monsanto, Mark Reitblatt, Jennifer Rexford, and Alec Story.
Other Videos By Microsoft Research
2016-08-16 | Security and Software Development |
2016-08-16 | Identifying Peer Effects through Randomized Trials in Networks |
2016-08-16 | Social networks, institutions, and the process of globalization |
2016-08-16 | Keynote - Inside Windows Azure, MicrosoftΓÇÖs Cloud OS |
2016-08-16 | The TPTP World ΓÇô Infrastructure for Automated Reasoning |
2016-08-16 | Competitive Contagion in Networks |
2016-08-16 | Mini-course around Event-B and Rodin, lecture 2 |
2016-08-16 | Applications 2 |
2016-08-16 | Coming to Grips with Complexity in Computer-Aided Verification |
2016-08-16 | Mini-course around Event-B and Rodin |
2016-08-16 | Frenetic: A Network Programming Language |
2016-08-16 | Applications 3 |
2016-08-16 | Co-opetition in network tasks |
2016-08-16 | Phase Transitions for Modified Erdos-Renyi Processes |
2016-08-16 | Applications 1 |
2016-08-16 | PEPSI: Privacy-Enhanced Participatory Sensing Infrastructure |
2016-08-16 | Windows Azure Tutorial, Part 2 |
2016-08-16 | Systems 2 |
2016-08-16 | Systems 1 |
2016-08-16 | Efficient space-variant deconvolution' |
2016-08-16 | Education |