...
Name | Organization | Email |
---|---|---|
Adarsh M | Huawei Technologies | adarsh.m@huawei.com |
Bharat Saraswal | Huawei Technologies | bharat.saraswal@huawei.com |
Brian O'Connor | OnLab | bocon@onlab.us |
Gaurav Agrawal | Huawei Technologies | gaurav.agrawal@huawei.com |
Janani B | Huawei Technologies | janani.b@huawei.com |
Patrick Liu | Huawei Technologies | Partick.Liu@huawei.com |
Ray Milkey | OnLab | ray@onlab.us |
Sathish Kumar M | Huawei Technologies | sathishkumar.m@huawei.com |
Shankara | Huawei Technologies | |
Sonu Gupta | Huawei Technologies | sonu.gupta@huawei.com |
Suchitra H N | Huawei Technologies | suchitra.hn@huawei.com |
Thomas Vachuska | OnLab | tom@onlab.us |
Vidyashree Rama | Huawei Technologies | vidyashree.rama@huawei.com |
Vinod Kumar S | Huawei Technologies | vinods.kumar@huawei.com |
YANG Tools Overview
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 lacked critical capabilities like being easily read and understood by human implementers, and fell short in providing mechanisms to validate models of configuration data for semantics and syntax.
YANG tools are the basic building block to achieve the final goal of abstracting the language based Syntax/Semantics processing by APPs.
The YANG modeled interfaces need to be implemented by corresponding application component. There are 2 parts in implementing the interface:
- Syntax/semantics processing of the request/response being exchanged.
- Business logic to compute the request.
- Syntax/semantics processing of the request/response being exchanged.
YANG Tools is a infrastructure project aiming to develop necessary tool chain and libraries providing support of NETCONF and YANG for Java(JVM-language based) projects and applications.
We intend to abstract the applications from syntactic processing of information encoding with external world.
We intend to provide a framework in which the applications only need to implement the business logic and seamlessly support any interface language like REST, NETCONF etc.
In ONOS, YANG is being used as a general purpose modeling language.
...
https://wiki.onosproject.org/display/ONOS/YANG+Runtime
Design Considerations
Framework components must be model-agnostic
- e.g. runtime, protocol adapters, information store
- must be capable dealing with any potential model
- cannot be linked with the model-specific objects
- hence must deal with data in a neutral format, i.e. raw tree
Applications should be model-aware
- e.g. applications that implement network services
- must understand the semantics of the model to operate
- raw tree representation not expressive or application friendly
- hence should deal with data in domain-friendly model objects
Model-agnostic Tree View
Consider a simple device model
- device has a number of attributes and a number of ports
- each port has a number of attributes
Spread across several tree layers
- data produced by tree augmentation
- data accessed by tree traversal
Model-specific Object View
Rich data types, e.g. Device, Port
- domain-friendly abstractions
- idiomatic Java usage
Consolidates multiple tree layers
- data created through constructors
- data accessed via accessors
- device.swVersion() or device.getPorts()
Model Object & Tree Views
Toolchain facilitate both model-agnostic tree
view and model-specific object views
Toolchain must allow conversion between them
Model ←→ Tree View
Mutable vs Immutable
Immutable data is safer in multi-threaded apps
- free of side-effects when shared by caller
- memory efficient - a single copy can be shared by many threads
… but apps need to easily mutate data
Model objects are mutable
- modified via idiomatic constructors and setters
Tree views are immutable
- constructed via builders
- immutable once constructed
Configuration of Devices
- Goal is to enable a network operator to seamlessly configure devices from different vendors and to verify the configuration with minimal or no human intervention
- Offers significant OPEX savings and vendor independence for network operators
- Offers vendors faster integration of their products into operator’s networks
Configuration of Services
● Goal is to enable a network operator to seamlessly configure and provision a service on the network comprising many devices from many vendors with minimal or no human intervention
● Provides network operators with agility to deploy new services with reduced OPEX
● Offers vendors opportunity to support many services on their devices
Reference of Applications
Schema Aware Applications:
...