Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Resource identifier, Its list of node key to drive path till the resource, where key is contains the local node name and the corresponding module namespace. 

...

The DataNode derived classes and any other generated code not depend (directly or otherwise) on the ONOS API or other third-party libraries other than the standard Java SDK.

There is Maven and Buck plugins plug-ins made available as minimalistic separate entities that will serve the purpose of shuttling information from the build frameworks to the YANG compiler.

These plugins plug-ins are useful for producing Java source code that can be used to compile applications against various YANG models. 

...

Links the various Intra File/Inter-File/ Inter-JAR YANG constructs dependencies. For ex: grouping and uses linking, typedef and type linking. Import, imclude depencency.

Translator

Generates java Java code corresponding to Data model.

...

In a nutshell, the process takes a set of YANG files and compiles them into a set of Java classes along with the compiled schema metadata meta-data and packages them into a JAR, with manifest annotated as an OSGi bundle and a single-jar ONOS application.

...

The process will be codified as a Maven pluginplug-in, Buck plugin plug-in and a run-time component providing on-the-fly compilation capabilities.

...

Example: RESTCONF, NETCONF, Store

...

Enhancement with YANG 2.0

 

YANG Tools (1.11) + YMS

YANG Tools (2.0) + Dynamic Config

Generated Classes

Tied to YMS; no common basis between models

Common ancestor for all models;

model-agnostic and model-specific access;

friendly API for apps

Storage

Ad hoc; models serialized and stored at the discretion of application

Any and all models in a single store

Protocols

RESTCONF and NETCONF are tightly coupled and integrated with YMS

RESTCONF and NETCONF can be maintained independently;

new protocols (e.g. gNMI are easier to add)

New Models

Applications must be made aware of all models at compilation time;

cannot be stored by YMS

Applications can interact with new models or

augmentations at runtime using the model-agnostic interface

Live Compilation

Not available; introduction of new models requires recompilation

YANG models can be introduced and compiled at runtime (e.g. from a device)

Modularity and Maintainability

YMS and onos-yang-tools are tightly coupled making maintenance

difficult and usage is brittle

YANG tools, dynamic config manager and store are implemented in a modular fashion;

they can be evolved and maintained independently from one another;

generated classes are not tied to the dynamic config store

...