The OpenFlow® Driver Competition
Write the Best OpenFlow® Software Driver and Win US$50,000
The competition closed on September 15, 2013. The OpenFlow® Driver competition has garnered tremendous response from the SDN community and the judges are currently evaluating the software submissions. We expect to announce the Grand Prize of $50,000 by December 10th.
- Overview
- Competition Goals
- Submission Requirements
- Competition and Submission Guidelines
- ONF Commitment
- Judging Criteria
- Prize
Overview
The Open Networking Foundation’s mission is to promote the adoption of software-defined networking (SDN). An important focus of ONF’s work is the OpenFlow® protocol – an open interface that allows the network control plane to be physically separate from the forwarding plane.
To accelerate adoption of the OpenFlow® protocol, ONF is running a competition to create an open-source “OpenFlow® Driver”. ONF intends this driver to be of use to developers of OpenFlow® products by making it easier for them to build value around the OpenFlow® protocol component and to easily keep the OpenFlow® component up to date with current ONF specifications as they evolve. The OpenFlow® Driver is a module that any developer can use in a controller or switch to maintain compatibility among switches and controllers. It is expected that the OpenFlow® Driver is a relatively small fraction of the total code for a controller or switch.
The OpenFlow® Driver insulates the implementation of the OpenFlow® controller logic from the details of the wire protocol and the creation and maintenance of connections to OpenFlow® switches. This is illustrated in Figure 1.
Note that, although the competition is to write a driver for integration into a controller, the resulting driver should be easily integrated into OpenFlow® switch software applications to provide the same benefits for switch development.
Competition Goals
The competition aims to encourage the worldwide development community to create an open-source implementation of the latest OpenFlow® standard in the form of a codebase implementing an OpenFlow® driver that everyone, from network equipment vendors and operators to ISVs and open-source projects, can freely use, reducing the entry cost and time-to-market needed to implement the OpenFlow® protocol. It also aids interoperability between equipment vendors, reducing the time and cycles wasted in troubleshooting different implementations. The winning entry will be provided under both Apache 2.0 and GPL dual-licenses for maximum compatibility with both other open-source projects and commercial ones.
Submission Requirements
Submissions to the competition should adhere to the following guidelines:
Compliance
- The driver must1 be compliant with the ONF core specifications for OpenFlow® v1.3.1, and demonstrate backward compatibility to 1.0, ensuring interoperability with existing equipment and controllers in the market.
- All optional capabilities described in the OpenFlow® protocol should be implemented, unless an explanation is provided as to why a specific optional capability is not implemented.
Demonstrated Functionality
- The submission must include a sample controller demonstrating the integration of the driver.
- The submission must provide learning switch functionality (when connected to an OpenFlow® switch), either integrated with the sample controller, or provided as a separate application.
- The submission must demonstrate the ability to integrate the driver into the OpenFlow® switch agent for a physical switch.
- The submission must demonstrate the ability to integrate the driver into the OpenFlow® switch agent for a virtual switch.
Capabilities
- The driver must be able to operate in a mixed environment against OpenFlow® 1.3- and 1.0-compliant devices simultaneously.
- The driver must be able to support multiple simultaneous connections.
Ownership and rights
- The winning entrant must assign to ONF rights to the code submitted. ONF will distribute the code under free and open-source licenses.
- All entrants must be able to show proof that they can legally assign rights according to the above provision.
- If the submission depends on third party libraries, the license(s) on those libraries must not prevent or limit ONF from distributing the entrant’s code.
Testing – protocol and application
- The submission should demonstrate interoperability with existing OpenFlow® tools such as Mininet and OFTest.
- The entrant is responsible for providing a test harness that exercises the driver including the application of frames in the data plane and the resulting events impinging upon the controller. There is a strong preference for the use of Mininet or a similar simulation environment.
- The submission will be evaluated by test cases (using network testing equipment) as well as integration into example physical and/or virtual network deployments.
Integration and porting
- The submission must demonstrate the ability to be integrated into multiple language environments such as C/C++, Python, Java, and/or Ruby. The submitted code should provide two example bindings using a non-native language (e.g. if the code is written in C++, then examples showing bindings for Python and Ruby need to be provided).
- The driver must run on a standard Linux or Windows operating system.
- The submission should demonstrate the ability of the driver to be compiled for a non-x86 CPU such as an ARM, MIPS, or PowerPC.
- ONF has a preference for code written in C/C++.
Basic Evaluation Criteria
- The driver will be evaluated on performance, scalability, clarity of code, portability of code, extensibility, architecture, and lack of defects.
- The entrant may demonstrate the code in a laboratory other example deployment.
- Specific criteria and evaluation mechanisms will be at the discretion of the judges.
Competition and Submission Guidelines
Announcement and dates
- Competition will be announced at ONS 2013 and will be open the entire summer.
- The due date for all submissions is
August 15September 15, 2013. - The winner will be announced on or before September 30, 2013.
Entrants
- Open to all organizations and individuals worldwide (subject to the limitations described in the detailed stipulations), including for-profit and non-profit entities.
- Joint team efforts will be allowed, but ONF will only pay a legal entity the winning prize and the team will have to decide how to split the winnings. Alternatively, the prize might be designated for a recognized non-profit institution.
Submission methods
- All code (and supporting libraries) must be submitted online by
August 15September 15, 2013, along with appropriate build script. Submit entry →
ONF Commitment
The winning entry will have its ownership transferred to ONF. However, ONF commits that the winning entry will be dual-licensed to the community under the Apache 2.0 license as well as under GPL, ensuring that the winning team will still have the ability to use the code in either an open-source or commercial setting. The dual OSS licenses will allow the code to be used in commercial or other non-GPL open-source projects or as part of GPL projects. ONF intends that the resulting project will be governed by an established open-source foundation.
Judging Criteria
High-level criteria for judging include:
- Correctness of operation with test harness
- Ease with which the submission can be integrated into a controller
- Compliance with the OpenFlow® specification standard
- Completeness of the implementation
- Clarity of the code and architecture
- Memory footprint
- Potential performance and scaling of the architecture
- Portability of the code
- Modularity of the code
- Extensibility and maintainability of the code
- Integration with multiple programming languages
- Performance and scalability of the code.
Prize
One Grand Prize is available: US$50,000. If the quality of the winning submission is particularly high, the judges may, at their discretion, award an additional merit bonus to that particular submission.
The winner is solely responsible for the payment of any taxes that may arise as a result of acceptance of a prize and for all other expenses or costs of the Participant’s project. The prize will be in the form of a single payment to the Participant, regardless whether the Participant is an individual, group of individuals, company or other form of organization. It is up to any Participant/Team receiving the prize to decide how to allocate the prize. In the case of a Team that is a U.S.-based company or organization, the prize will be payable to the company or organization. Any prize awarded to a Team will be made in the name of the Team’s Captain. Prizes cannot be transferred or substituted.
The submission deadline has passed. You may no longer submit an entry.
Footnote
1The use of the term “Shall” or “Must” reflects a mandatory requirement of the submission, and the term “Should” reflects a desirable but not mandatory requirements.