Just in case the information hasn’t been around for long enough now: the OpenDaylight project launched its seventh major release, codename Nitrogen. In comparison to the usual release cycle, this one differed in both duration and scope.

In order to turn prior loosely-timed releases into calendar-based releases aligned with OpenStack, the release cycle lasted only three months. Going forward, OpenDaylight will aim to release two major releases each year — one in March and one in September.

This has resulted in a highly-streamlined release plan, with little place left for delivering major new features, the Karaf 4.0.9 upgrade is the primary focus of collaboration across all projects.

This update was critical for the following reasons:

  • It adds proper support for Java 8, allowing the development team to complete upgrades of our other dependencies.
  • It upgrades our packaged web container to be compliant with servlet 3.1.0, at least.
  • It moves us from maintenance to a stable release branch, allowing for upstream changes needed by OpenDaylight to hit our current release trains.

As developers, we have upgraded our Guava dependency to 22.0, which now includes better integration with Java 8. This makes it more seamless to use Guava utilities with Java 8 constructs, such as Predicates with streams.

Aside from these development-visible changes, several other notable changes and upgrades made it into the release, but remained out of the spotlight.

It’s Only Just the Start

YANG Tools has made many interesting changes: improving memory efficiency, fixing a few bugs related to if-feature statements, and improving performance of both JavaScript Object Notation (JSON) and eXtensible Markup Language (XML) codecs. YANG parser has updated its extension support. It will now correctly bind to OpenConfig's version extension and interpret RFC 8040's yang-data extension.

Model-Driven Service Abstraction Layer (MD-SAL) has made major progress on integrating version 2 of the YANG Java binding specification, speeding up the generation process, and introducing runtime services. Version 1 of the binding has seen some improvements in its code generation, leading to about 1% reduction in generated code class size.

The Controller project has focused on the Clustered Data Store and related infrastructure. These efforts have resulted in further improvements:

  • Inter-node raft messages now take priority over application messages, which leads to better stability under load.
  • Tell-based protocol has been stabilized to the point where it can be evaluated for use.
  • When tell-based protocol is used, the CDS will perform message splitting and reassembly, allowing large read/write requests to complete without hitting Akka message and serialization limits. This allows you to use Artery remoting, which should result in better throughput.
  • Transaction pipelining stability has been improved, eliminating transient states, where the leader would think followers are too far behind and need to catch up.

Last, but not least, Network Configuration Protocol (NETCONF) has grown the ability to use public key authentication for southbound devices and Rest-Configuration Protocol (RESTCONF) has seen some fixes and improvements in datastore operations and payload parsing.

With every release, OpenDaylight is becoming more and more interesting. And I can only promise, things are going to get even more interesting soon.