GSoC/GCI Archive
Google Summer of Code 2014

Frenetic

License: GNU Library or "Lesser" General Public License version 3.0 (LGPLv3)

Web Page: https://github.com/frenetic-lang/frenetic/wiki/GSoC-2014-Project-Ideas

Mailing List: http://lists.frenetic-lang.org/mailman/listinfo/frenetic-ocaml

Frenetic is an open-source software-defined networking controller platform. With Frenetic, a programmer can describe the intended behavior of the network in a high-level language, and the compiler and run-time system generates the low-level code that executes on network devices. As background, software-defined networking (SDN) is an emerging network architecture in which a logically-centralized network-attached controller machine manages the behavior of a collection of programmable switches, such as OpenFlow switches. SDN can simplify many network algorithms, and it also makes it easy to extend the network with new functionality. Most SDN controller platforms provide low-level programming interfaces that closely mirror the capabilities of the underlying hardware. Frenetic is unique in that it provides a high-level and declarative programming interface that abstracts away from the details of the hardware and allows programmers to focus on the essential features of network applications. Frenetic has been in active development since 2010 and version 1.0 was released in June of 2013. The platform is increasingly playing an important role in the research and education process, because of its clean and elegant programming abstractions, as well as advanced features such as a network information base, fast-failover, load-balancing, etc. Multiple tutorials on Frenetic were given in 2013 at several different venues including PLDI, SIGCOMM, and FMCAD, and students at Brown, Princeton, and UPenn have built on the codebase. The project is hosted on GitHub, and has received contributions from over 30 authors. It is actively developed by 15 core hackers, who contribute their work from 5 different sites spanning 2 continents. Development is coordinated on GitHub itself via Issues and Pull Requests to facilitate code reviews. Frenetic is licensed under version 3 of the LGPL, and has received financial support from the National Science Foundation under Grant Numbers CNS-1111698 and CNS-1111520, by the Office of Naval Research under grants N00014-09-1-0770, N00014-12-1-0757, by Google under a Faculty Research Award, and by gifts from Intel and Dell.

Projects

  • OpenFlow 1.3/1.4 integration Implementation of OpenFlow 1.3 and 1.4 specification in OCaml in order to work with Frenetic. It will use a full OCaml approach in an iterative way.