Skip to content

GSoC 2014 Project Ideas

Marco Canini edited this page Feb 14, 2014 · 13 revisions

Common background readings:

Integration with OpenStack

OpenStack is a cloud computing platform that orchestrates various compute, storage and network resources in public/private cloud environments. A component of OpenStack called Networking API exposes a networking-as-a-service model via a REST API. Currently Frenetic does not implement the REST API to work as a backend for OpenStack. As part of the GSoC, a student could consider implementing the Neworking REST API for Frenetic.

Support for OF 1.3/1.4

The current Frenetic implementation has partial support for OpenFlow 1.3 and no support for OpenFlow 1.4. As part of the GSoC, a student could consider implementing complete support for these two versions of the protocol.

  • Mentor: Marco Canini
  • Difficulty: medium
  • Programming languages: OCaml and C
  • Recommended reading:

Adding network virtualization layer

The current Frenetic implementation lacks support for network virtualization where a developer can write a policy for a virtual network and a mapping between the virtual and underlying topology and Frenetic takes care of generating the correct set of rules for the underlying network. As part of the GSoC, a student could consider porting the network abstraction primitive implemented in another network programming language to Frenetic.

  • Mentor: Marco Canini
  • Difficulty: medium
  • Programming languages: OCaml and Python
  • Recommended reading:

Compiler optimizations

With Frenetic, developers describe the intended behavior of the network in a high-level language, and the Frenetic compiler and run-time system generate the low-level code needed to execute programs efficiently in hardware switches. The compiler performance of the current implementation could be improved. As part of the GSoC, a student could consider profiling the existing compiler and implementing performance optimizations.

  • Mentor: Spiros Eliopoulos
  • Difficulty: hard
  • Programming languages: OCaml and Python
  • Recommended reading:

Language bindings

To write network programs for Frenetic, currently the developer can only use either the custom syntax exposed by Frenetic or the OCaml API. As part of the GSoC, a student could consider implementing new language bindings to integrate the power of Frenetic to other languages.

  • Mentor: Spiros Eliopoulos
  • Difficulty: easy
  • Programming languages: OCaml and another language for the bindings (e.g., Python, Ruby, etc.)
  • Recommended reading: