Collaborator-8-3-CTA-banner

OpenDaylight: Open Source Programming to the Software-Defined Network

opendaylight-open-source

As hypervisors changed data-center computing, so software-defined networking will change data-center networking. The open source OpenDaylight project is leading the way.

If you follow networking vendors, you know they get along with one another about as well as a dog whose tail has just been pulled and a cat who’s had a bucket of water dumped on him. That’s why it was more than a little surprising when the Linux Foundation managed to get Brocade, Cisco, Juniper, and many other network powers on the same page when it came to software-defined networking (SDN). More surprising still, it got them to work on SDN together in an open source project: OpenDaylight.

To understand why such long time corporate enemies, as well as such unlikely allies as Red Hat and Microsoft, all joined forces to back SDN in OpenDaylight, you first need to know a little about SDN.

In the simplest terms, SDN brings software programmability to networks. This can be done with the OpenFlow protocol, but other protocols can be used. With these protocols, you use SDN to centrally set up, manage, and monitor your network’s routers and switches. This enables network administrators to create efficient virtual networks that are independent from physical networks.

The result is less-rigid datacenter networks. With the rise of the cloud, datacenters need their networks to be as flexible as their virtual machines. When customers bring up and down thousands of server instances in a day, not being able to connect one bank of servers to another efficiently because switches aren’t connected properly is unacceptable.

The companies behind OpenDaylight can read the IT prophecy tea leaves better than most. They realized that trying to come up with an SDN standard would takes years. Time is precious in a world where efficient cloud applications are becoming ever more important.

The erstwhile competitors also figured out that trying that the tried-and-true method of locking customers into a single vendor’s technology was unlikely to work. Cost-conscious companies are wary of vendor lock-in “deals.”

Even Microsoft, yes Microsoft, is getting it. When I spoke recently with Rajeev Nagar, who oversees Microsoft’s Windows Datacenter Networking & Platforms, he told me that Microsoft sees OpenDaylight as an example of “everyone working together in a virtuous cycle in which both vendors and end-users will benefit.”

So it was that major rivals decided to try creating a set of open source programs, Project Daylight, to deliver SDN to customers. Good news: It’s working.

Today, OpenDaylight is an open source platform for network programmability to enable SDN and create a solid foundation for Network Functions Virtualization (NFV) for networks at any size and scale. OpenDaylight software is a combination of components including a fully pluggable controller, interfaces, protocol plug-ins, and applications. The Northbound (programmatic) and Southbound (implementation) interfaces are meant to be clearly defined and documented APIs for network applications.

At the first OpenDaylight Summit, OpenDaylight’s founders said you should judge their results not by their words but by their code. Their code is impressive.

When OpenDaylight started in April 2013, it only had two open source projects. Now, it has sixteen. By Ohloh‘s count, the Black Duck Software site that tracks open source development, OpenDaylight now has more than a million lines of code. Of those, 461,000 lines of code are in Java, with C++ in second place with 292,000 lines.

OpenDaylight also has 154 developers. “This is one of the largest open source teams in the world, and is in the top 2% of all project teams on Ohloh,” said the Ohloh representative at the conference.

This compares well to far older, popular projects, said Anees Shaikh, formerly the leader of an IBM research group devoted to SDN and now a Google network architect, in a speech during the conference. For comparison, OpenStack has 1.67 million lines of code and 1,974 contributors; Apache CloudStack has 1.5 million lines of code and 250 contributors; and Eclipse has 2.67 million lines of code and 404 developers.

OpenDaylight’s already much larger than some other open source SDN projects such as Apache and Big Switch’s Floodlight OpenFlow controller, which has 97 thousand lines of code and 32 contributors. It’s comparable to Juniper’s Contrail Virtual Router and Contrail Controller with its combined 280 thousand lines of code and 69 developers. In short, OpenDaylight looks like it’s the leading open source SDN program.

OpenDaylight delivered its first developer release, Hydrogen, on February 5th, 2014. Hydrogen comes in three editions with the following features:

Base Edition:

  • Controller: A modular, extensible, scalable, and multi-protocol SDN controller based on OSGi.
  • OpenFlow Plug-in: Integration of OpenFlow protocol library in controller SAL (Service Abstraction Layer).
  • OpenFlow Protocol Library: OpenFlow 1.3 protocol library implementation.
  • OVSDB: Open vSwitch Database configuration and management protocol support, e.g. for Open vSwitch and other OVSDB servers.
  • YANG network data modeling tools: Java-based NETCONF and YANG tooling for OpenDaylight projects.

Virtualization Edition (includes Base Edition):

  • Affinity Metadata Service: APIs to express workload relationships and service levels.
  • Defense4All: Distributed Denial of Service (DDoS) detection and mitigation framework.
  • Open DOVE: Multi-tenant network virtualization based on overlays, including control plane and Open vSwitch-based data plane.
  • Virtual Tenant Network: Multi-tenant network virtualization application using OpenFlow.

Service Provider Edition (includes Base Edition):

  • Affinity Metadata Service: APIs to express workload relationships and service levels.
  • BGP-LS/PCEP: Support for traffic engineering with BGP-LS (BGP protocol library and topology model) and PCEP (path programming model).
  • Defense4All: DDoS detection and mitigation framework.
  • LISP Flow Mapping: Locator/identifier Separation Protocol plug-in, LISP mapping service (which can be used to implement virtual networks).
  • SNMP4SDN: Simple Network Management Protocol (SNMP) support and APIs to manage commodity Ethernet switches.

If you want to try it out for yourself, you can download prebuilt versions for RPM-based Linux distributions and ready-to-run Hydrogen OpenDaylight virtual machines for Fedora and Ubuntu. You can also work with OpenDaylight via the Ericsson-sponsored OpenDaylight testing lab in San Jose, CA.

Sound interesting to you? The project and its many vendors are looking for a few good programmers. Individual developers and technical writers can join the project via the developers page, while companies and organizations can join up from the Join page.

This is a project that I think has many aspects to it and great potential. If you’re serious about Java or C++ and ground-breaking network programming, I’d give it a try. I think you’ll be glad you did.

See also:

subscribe-2