- Mentor: Andreas Voellmy. email: andreas.voellmy at gmail dot com
- Min-max team size: 2-4
- Expected project hours per week (per team member): 8-10
- Will the project be open source? Yes.
Some experience in one or more of the following is preferred in possible team members:
- Programming competency in both Java and Python.
- OpenStack and Neutron (nice to have).
- OpenDaylight (ODL) (nice to have).
- Familiarity with concepts and protocols of computer networks (Ethernet, IP, transport protocols) and Software-Defined Networking (SDN) in particular (nice to have).
OpenDaylight (ODL) has emerged as one of the leading Software-Defined Network controllers. It is supported by a large number of major vendors (Brocade, Cisco, Citrix, Dell, HP, IBM, Intel, …). This platform is gaining traction and now supports a variety of applications including applications for network virtualization and cloud (OpenStack).
One key limitation in ODL today is the lack of modularity: many important network applications do not play nicely together. Typically, these ODL network applications assume full control over network element configurations and hence do not compose well with other applications.
Recent work in SDN provides network programming abstractions that promise to make it possible to write applications in a modular way, with components written independently and then combined at a semantic -- rather than configuration -- level. In particular, the Maple programming abstraction, allows programs written in ordinary programming language to be transparently deployed onto high-performance switching hardware through a dynamic translation of the program into the OpenFlow switch abstraction.
The goals of this project are to
- Collaborate with a team at Cisco Systems and Yale University to bring the Maple programming abstraction to the ODL controller platform,
- port a significant network application, namely an implementation of the OpenStack Neutron network service onto the Maple service in ODL,
- evaluate various aspects of the resulting system, and
- explore novel network services enabled by integrating this programming abstraction into an OpenStack system.