Welcome to the ONOS Open ROADM application.
This ONOS app consists of the Open ROADM YANG data models compiled to Java, and loads the schema into the YANG runtime where it becomes available to the dynamic config subsystem and the NETCONF/RESTCONF serializers.
Service implementers have access to the complete data model in Java. Alternatively, one can interact with the different data models using RESTCONF / NETCONF northbound APIs. A distributed store for dynamic configuration data is automatically maintained by ONOS. All of this functionality is available for the device, network and service models defined by Open ROADM.
This application supports the latest available version of Open ROADM MSA Version 1.2.1 (released Feb 6th, 2017).
What is the Open ROADM MSA?
The Open ROADM Multi-Source Agreement (MSA) defines interoperability specifications for Reconfigurable Optical Add/Drop Multiplexers (ROADM). Included are the ROADM switch as well as transponders and pluggable optics. The specification covers both optical interoperability as well as YANG data models.
How to Build and Run
Build
For the time being, the openroadm
app needs to be built separately. In the next release we will add it to the list of core ONOS apps so it is built as part of an ONOS build.
$ cd onos/apps/openroadm $ buck build //apps/openroadm:onos-apps-openroadm-oar --show-output
Load
Simply load and activate the application in ONOS, and be sure to use the correct host (localhost
in this case) and path to the oar file (use --show-output
to build).
$ onos-app localhost install! onos/buck-out/gen/apps/openroadm/onos-apps-openroadm-oar/app.oar
The application automatically loads the following dependencies:
org.onosproject.yang
(the new ONOS YANG subsystem)org.onosproject.yms
(this is an older release of the ONOS YANG subsystem and will be removed in an upcoming release)org.onosproject.config
(the dynamic config subsystem)org.onosproject.restconf
(the RESTCONF client)org.onosproject.protocols.restconfserver
(the RESTCONF server)org.onosproject.netconf
(the NETCONF library)org.onosproject.netconfsb
(the NETCONF southbound client)org.onosproject.yang-gui
(to visualize the model in the ONOS UI)
How to Run
At this point, the openroadm
app is loaded and activated. Use RESTCONF on NB to interact with
Use RESTCONF to directly interact with devices (missing the async notifications)
Finally, you can inspect the YANG models using the UI.
Service/Network to device: create a manager component. Look at l3vpn application as an example, in particular the NetL3VpnManager
.
Development Notes
YANG Models
In order to successfully compile the YANG models, standard models were added to the tree, as well as a few changes were introduced.
The standard models that were included are:
We deleted the following YANG model because the YANG parser was not able to deal with the augment block. This will be fixed in an upcoming release.
org-openroadm-optical-multiplex-interfaces.yang
We commented out the following extension definitions, as well as any reference to these extensions. This will also be fixed in an upcoming release.
nc:get-filter-element-attributes
nacm:default-deny-all
nacm:default-deny-write
Finally, we used ONOS YANG tools version 1.12.0-b7.
Service and Device Modeling
Useful Links
To learn more about the Open ROADM MSA, check out http://www.openroadm.org and the GitHub page.
To better understand ONOS' YANG runtime component, please refer to the following page.
Please report bugs or post your questions on one of the ONOS mailing lists or the dynamic configuration brigade.