Versions Compared

Key

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

...

Name
Organization
Email
Adarsh MHuawei Technologiesadarsh.m@huawei.com
Bharat Saraswal
Huawei Technologiesbharat.saraswal@huawei.com
Brian O'ConnorOnLabbocon@onlab.us
Gaurav Agrawal Huawei Technologiesgaurav.agrawal@huawei.com
Janani B
Huawei Technologiesjanani.b@huawei.com
Patrick Liu
Huawei Technologies
Partick.Liu@huawei.com
Ray MilkeyOnLabray@onlab.us
Sathish Kumar MHuawei Technologiessathishkumar.m@huawei.com
Shankara
Huawei Technologies

shankara@huawei.com

Sonu GuptaHuawei Technologiessonu.gupta@huawei.com
Suchitra H N
Huawei Technologiessuchitra.hn@huawei.com
Thomas VachuskaOnLabtom@onlab.us
Vidyashree RamaHuawei Technologiesvidyashree.rama@huawei.com
Vinod Kumar SHuawei Technologiesvinods.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:

 

    1. Syntax/semantics processing of the request/response being exchanged. 
    2. Business logic to compute the request. 

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
      Image Removed

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()
      Image Removed

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
     
                  Image Removed

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

                           Image Removed

Reference of Applications

Schema Aware Applications:

...