The OpenDaylight SDN controller
Bright Future

Several well-known companies are collaborating on the foundations of future SDN products under the umbrella of the OpenDaylight open source project.
The OpenDaylight project [1], founded in April 2013, is a "community-led, open, industry-supported framework for accelerating adoption, fostering new innovation, reducing risk, and creating a more transparent approach to Software-Defined Networking" (SDN). OpenDaylight operates under the auspices of the Linux Foundation and has the support of major players in the networking industry: Brocade, Cisco, Juniper, and Citrix are in the front row, along with Red Hat, IBM, and Microsoft. The project aims to create a foundation on which the members will then build their SDN products. The code is mainly written in Java and Python and is licensed under the Eclipse Public License (EPL) 1.0.
The first tangible result of the collaboration is the Hydrogen release from February 2014. Hydrogen is actually a complete SDN software distribution, because OpenDaylight consists of numerous subprojects that develop individual components. Synchronized semi-annual releases are planned to ensure consistency.
At the core of OpenDaylight is the SDN controller. Its components share a Java Runtime and communicate with each other via function calls. Below this control layer is the southbound interface (as shown in Figure 1), where everything that is more tangible than the control plane resides.

Plugins for several protocols that are used to control the data plane with their network devices dock onto the Service Abstraction Layer (SAL), the controller's and the plugin manager's lowest abstraction layer. This multiprotocol support is an important goal of the project and explains why you will also find other plugins for OpenFlow (versions 1.0 and 1.3), the Netconf standard, and the OVSDB management protocol for Open vSwitch here – after all, the network equipment can also be virtualized.
In the opposite direction lies the northbound interface, which forms the connection to more abstract things: network applications and management and orchestration software. It includes the OpenStack component Neutron, which establishes network connections for the guests of cloud computing frameworks. The controller uses a REST API to communicate with this type of software.
Practical
If you are interested in getting started with OpenDaylight, your best approach is to deploy the software in a simulated network, and the free Mininet software is perfect for this purpose (see the Mininet story in this issue). Conveniently, the project offers Linux virtual appliances with Mininet preinstalled [2]. They can operate with different virtualization technologies; the developers recommend VirtualBox. Recent versions have occasionally shown problems with the OVF files provided, so it is advisable to create an Ubuntu VM manually with 1GB of RAM and assign the downloaded VMDK image to it.
While the virtual machine is booting, the administrator can install the OpenDaylight controller. The prerequisite for doing so is Java 7. You can download RPM packages and ZIP files [3] from the website; the basic edition is fine. Linux virtual appliances and docker containers are also available. In a distribution-neutral installation from the ZIP file, you need to run the startup script from the directory created by unpacking with:
./run.sh
With OpenDaylight running and a Mininet VM ready for action, you can try out a simple forwarding example from the project wiki [4]. On the virtual machine console, the user mininet logs in with mininet as the password. Then, run the following command to create a simple network with a tree-like arrangement of switches at three levels:
sudo mn --controller=remote,ip=<IPaddress> --topo tree,3
Replace the <IPaddress>
wildcard with the externally accessible address of the host on which OpenDaylight is running. The URL for the SDN controller's web interface is http://<IPaddress>:8080; the username and password are both admin.
The graphical representation in the browser (Figure 2) shows the seven emulated switches that look a little messed up. You can simply drag and drop to arrange them more clearly. Under the network diagram, you'll find the blue button Add Gateway IP Address, which you can then populate with an IP address and subnet mask, such as 10.0.0.254/8.

At the Mininet VM console, you can now ping one virtual host from another, for example, using h1 ping h7
. Then, switch back to the web interface and go to the Troubleshoot tab. Under Existing Nodes, you can select a node and then view Flows or Ports for detailed information about its connections.
These examples by no means exhaust OpenDaylight's capabilities. The software can be clustered, and it also supports remote access via the Java Management Extensions (JMX). The Service Provider Edition of the software also adds plugins for the BGP, PCEP, and SNMP4SDN protocols. Also available is a Virtualization Edition with a Virtual Tenant Manager (VTN), which ties in with the Neutron network component in OpenStack.
Future
If you are not part of the developer community of participating companies [5], you will probably find it difficult to come to grips with OpenDaylight. The documentation on the wiki is very fragmentary and often out of date. It remains to be seen whether this situation will improve or whether customers will be forced to rely on polished products by the manufacturers involved.
Infos
- OpenDaylight: http://www.opendaylight.org
- Mininet VMs: http://mininet.org/download/
- OpenDaylight downloads: http://www.opendaylight.org/software/downloads
- Installation and getting started: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Installation
- OpenDaylight Summit: http://events.linuxfoundation.org/events/opendaylight-summit
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
News
-
The GNU Project Celebrates Its 40th Birthday
September 27 marks the 40th anniversary of the GNU Project, and it was celebrated with a hacker meeting in Biel/Bienne, Switzerland.
-
Linux Kernel Reducing Long-Term Support
LTS support for the Linux kernel is about to undergo some serious changes that will have a considerable impact on the future.
-
Fedora 39 Beta Now Available for Testing
For fans and users of Fedora Linux, the first beta of release 39 is now available, which is a minor upgrade but does include GNOME 45.
-
Fedora Linux 40 to Drop X11 for KDE Plasma
When Fedora 40 arrives in 2024, there will be a few big changes coming, especially for the KDE Plasma option.
-
Real-Time Ubuntu Available in AWS Marketplace
Anyone looking for a Linux distribution for real-time processing could do a whole lot worse than Real-Time Ubuntu.
-
KSMBD Finally Reaches a Stable State
For those who've been looking forward to the first release of KSMBD, after two years it's no longer considered experimental.
-
Nitrux 3.0.0 Has Been Released
The latest version of Nitrux brings plenty of innovation and fresh apps to the table.
-
Linux From Scratch 12.0 Now Available
If you're looking to roll your own Linux distribution, the latest version of Linux From Scratch is now available with plenty of updates.
-
Linux Kernel 6.5 Has Been Released
The newest Linux kernel, version 6.5, now includes initial support for two very exciting features.
-
UbuntuDDE 23.04 Now Available
A new version of the UbuntuDDE remix has finally arrived with all the updates from the Deepin desktop and everything that comes with the Ubuntu 23.04 base.