Patrick Liu

Huawei Technologies











Kalyan A


Vinod Kumar S


Gaurav Agrawal


Bharat Saraswal


Vidyashree Rama


Janani B




YANG is a data modeling language, used to model configuration & state data.

Modeling languages such as SMI (SNMP), UML, XML Schema, and others already existed. However, none of these languages were specifically targeted to the needs of configuration management. They lack critical capabilities like being easily read and understood by human implementer's, and fell short in providing mechanisms to validate models of configuration data for semantics and syntax.

YANG is a preferred choice to represent interface and behavior semantics (of device/ controller/ component) because of following reason:

YANG modeled interfaces needs to be implemented by corresponding application /component.

There are 2 parts in implementing the interface:

a) Syntax/ Semantics processing of the request/response being exchanged.

b) the business logic to compute the request.

Implementation of syntax/ semantics processing is required. This implementation can be a manual approach wherein the data structures are manually implemented in target language. In this approach there is a scope for human error while implementation also it requires considerable efforts for implementation. Alternatively the implementation can be automated wherein these data structure are automatically generated thereby avoiding manual errors and improving efficiency.

We intend to abstract the applications from syntactical processing of information encoding with external world and provide a framework in which the applications only need to implement the business logic and seamlessly support any interface language like REST, NETCONF etc. As a part of this goal following work is proposed in Falcon and Golden Eye release.

Proposed Work

Proposed Falcon Deliverable:

Proposed Golden Eye Release Deliverable:


YANG Utils Translator Details:


YANG Utils are the basic building block to achieve the final goal of abastracting the language based Syntax/Semantics processing by APPs. These UTILS intend to have following:

  1. YANG Parser for parsing YANG file.
  2. Translator tool for auto-generation of JAVA corresponding to a given YANG.
  3. Metadata generation which will be an input for NBI/SBI automation.



REST NBI Automation Details:


With the current REST mechanism, every APP must perform the Manual Rest Registration and implement the manual CODEC function, thereby slowing down the APP development and increasing chances for manual error. Current REST NBI Mechanism is depicted in below figure:

As a part of this project we intend to model the NBI Interface and augment the REST NBI Framework to Automate the URI Registration and CODEC Implementation, thereby reducing manual error and faster application development. Proposed REST NBI Mechanism is depicted in below figure:

Benefit & Impact Analysis:

Benefit to Service Provider

Benefit to ONOS Developers

Impact on Existing System

Long Term Objective:

Abstraction and Automation of:

  1. NBI framework where in application's can seamlessly support any NBI interface.
  2. NETCONF SBI framework. (Extend support to ONOS NETCONF team with metadata and class generation).
  3. Driver Behavior.

Sample Application