The ONOS team is pleased to announce the release of ONOS 2.7.0 (code-named X-Wing). This Long Term Support (LTS) release marks the 24th release of ONOS since its initial 1.0 (Avocet) release in December 2014, 7 years ago. ONOS is a leading open source SDN controller used to build next generation SDN/NFV solutions and is leveraged as part of other ONF projects such as Aether. You can find download links for the release on the project Wiki.
As a brief retrospective, ONOS 1.0 consisted of ~50K lines of code, had only one southbound plugin (for OpenFlow) and had 4 applications. In contrast, the latest release consists of over ~500K lines of code and contains over 180 apps, including southbound plugins and drivers for various control protocols and configuration models.
ONOS v2.7.0 Highlights
- Add truncate instruction and support it with PI framework
- Expanded and enhanced optical intent, optical configuration commands
- Lumentum ROADM and Edgecore Cassini drivers
- BGP monitoring APIs
- Karaf 4.2.14 which definitely solves CVE-2021-44228 and brings other nice improvements
- Several improvements to SONA
- Meter subsystem refactoring
- Completed the support for P4RT indirect meters
- Allow purging flows, groups and meters by device and application ID
- Improve Cluster events by making explicit the node type (ONOS or Storage)
- Optimize several components by reacting only to ONOS Cluster event types
- Optimize the resource usage of the L3 unicast groups
- Unified inconsistent port number format in several subsystems and in the ONOS GUI/GUI2
- Retrieve the architecture type from the P4Info file
- INT REST APIs
- Several mitigations for CVE-2021-44228
- Host monitoring
- Mechanisms to prevent listeners ejection and the stop of the group polling
- Avoid cascade failures at the ONOS startup by unsetting delegate in IOFObjManager
- Fix issue with multiline comment in OSGI properties
- Several bug fixes to the Intent framework
- Device disconnection when an instance rejoins the cluster
- Hardening of OVSDB, P4RT, GNMI and OpenFlow southbounds
- Fix traffic monitoring and traffic highlights in GUI/GUI2
- Resend request for flow removal in case the flow is in PENDING_REMOVE and the stats report it
- Auto-recovery mechanism for failed mastership changes
- Avoid meter map destruction in cluster environment on instance restart
- Processing status of ports in order with mastership and connection/disconnection to avoid inconsistent state
- Missing flow rules in the ECFlowRuleStore
The next release of ONOS will upgrade the SDN platform to use the Atomix cloud-native version of the Atomix libraries. This will provide access to simpler, yet more robust distributed primitives, better client/server protocol, and deployments will be able to use off-the-shelf backing stores, such as Dragonboat, ETCD, Consul, Redis. However, due to this upgrade, the deployment of ONOS as a cluster will only be supported in Kubernetes environments, which represents a form of “incompatibility”. For this reason, the ONOS TST and the core ONOS developers have decided that the next release should be tagged as a major release. Thus the next release, code-named Yellowhammer, will carry version 3.0.0. Since the 2.7.0 is the last in the line of 2.x releases, it will be marked for Long-Term Support.
Note that with 3.0.0, developers will continue to be able to run ONOS locally as a single instance for development and demo purposes, but for clustered deployments only Kubernetes/Helm environments will be supported. While it is possible to make ONOS 3.x run outside of Kubernetes/Helm, this work would have to be done by the greater ONOS community pending sufficient demand.
While the ONOS classic (Java-based platform) continues to evolve and serve as a stable platform for deployments, the ONOS team is also actively working on the implementation of the next generation architecture, called µONOS. This architecture is based on micro-services from the start and relies heavily on gRPC as a basis for platform interconnect and application APIs. The SD-RAN project is based on µONOS and so is the new ONOS configuration subsystem, onos-config. You can find more information about µONOS on GitHub: https://github.com/onosproject
To join the ONOS developer community, subscribe to firstname.lastname@example.org mailing list and visit the project #onos-dev Slack channel.