Have questions? Stuck? Please check our FAQ for some common questions and answers.

 

  1. Purpose

    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. 

    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.  




  2. Contributors    

     

    NameCompanyEmail-d
    AdarshHuawei Technologies

    Adarsh.m@huawei.com

    SathishKumarHuawei Technologies

    Sathishkumar.m@huawei.com

    Chidambar BabuHuawei Technologies

    Chidambar.babu@huawei.com

    Antony SilvesterHuawei Technologies

    Antony.Silvester@huawei.com

     

     

  3. Test Methodology
     

        The below flow diagram, describes the TEST implementation  of Yang Automation. 
     
                        



  4. Test Plan

    The expected output of all cases is that compilation should be successful without any errors and should generate necessary Java code.

    Sl.noStatementyang to java mapping statusStandard Yang file mapping to statements
    1anyxmlnot supported 
    2argumentSupportedietf-complex-types.yang, ietf-yang-smiv2.yang
    3augmentSupportedietf-ip.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-template.yang
    4baseSupportediana-if-type.yang, ietf-complex-types.yang, ietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang,
    5belongs-toSupportedietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang
    6bitSupportediana-if-type.yang, ietf-netconf-acm.yang,
    7caseSupportedietf-netconf-acm.yang, ietf-netconf-notifications.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-system.yang, 
    8choiceSupportedietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-target.yang, ietf-snmp-usm.yang, ietf-system.yang
    9configSupportedietf-interface1s.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-system.yang, ietf-yang-library.yang, 
    10contactSupportedSupported in all Yang Files
    11containerSupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-yang-library.yang
    12defaultSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang,
    13descriptionSupportedSupported in all Yang Files
    14deviatenot supported 
    15deviationnot supported 
    16enumSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-yang-library.yang,
    17error-app-tagsupported ietf-isis.yang
    18error-messagesupportedietf-packet-fields.yang
    19extensionnot supported 
    20featureSupportediana-crypt-hash.yang, ietf-complex-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-system.yang,
    21fraction-digitssupportedietf-te-topology.yang,ietf-ipfix-psamp
    22groupingSupportedietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-snmp-community.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-template.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    23identitySupportediana-if-type.yang, ietf-interfaces.yang, ietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-system.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-smiv2.yang,
    24if-featureSupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-system.yang, ietf-system.yang,
    25importSupportediana-if-type.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-usm.yang,ietf-system.yang, ietf-template.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    26includeSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-ipfix-psamp.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-snmp.yang,
    27inputSupportedietf-netconf-monitoring.yang, ietf-system.yang, ietf-netconf-partial-lock.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-system.yang,
    28keySupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-target.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    29leafSupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-partial-lock.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    30leaf-listSupportedietf-interfaces.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-partial-lock.yang, ietf-snmp-notification.yang, ietf-snmp-target.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-yang-library.yang,
    31lengthSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-snmp-common.yang, ietf-yang-types.yang,
    32listSupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-target.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    33mandatorySupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang,
    34max-elementsSupportedietf-erp.yang
    35min-elementsSupportedietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf-partial-lock.yang, ietf-snmp-vacm.yang
    36moduleSupportedSupported in all Yang Files
    37mustSupportedietf-snmp-usm.yang, ietf-system.yang,
    38namespaceSupportedSupported in all Yang Files
    39notificationSupportedietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-snmp-notification.yang, ietf-yang-library.yang
    40ordered-bynot supported 
    41organizationSupportedSupported in all Yang Files
    42outputSupportedietf-netconf-monitoring.yang, ietf-netconf-partial-lock.yang, ietf-netconf-time.yang, ietf-netconf.yang
    43pathSupportedietf-interfaces.yang, ietf-snmp-notification.yang
    44patternSupportediana-crypt-hash.yang, ietf-inet-types.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-time.yang, ietf-snmp-common.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-types.yang,
    45positionSupportedietf-entity.yang
    46prefixSupportediana-crypt-hash.yang, iana-if-type.yang, ietf-complex-types.yang, ietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-snmp.yang, ietf-system.yang, ietf-template.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang
    47presencesupported ietf-te-topology.yang
    48rangeSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-system.yang,
    49referenceSupportediana-crypt-hash.yang, iana-if-type.yang, ietf-complex-types.yang, ietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-snmp.yang, ietf-system.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang,
    50refinenot supported 
    51require-instancesupportedietf-network-topology.yang
    52revisionSupportedSupported in all Yang Files
    53revision-dateSupportedSupported in all Yang Files
    54rpcSupportedietf-netconf-monitoring.yang, ietf-netconf-partial-lock.yang, ietf-netconf-time.yang, ietf-netconf.yang, ietf-system.yang,
    55statusSupportediana-if-type.yang, ietf-snmp-common.yang
    56submoduleSupportedietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang,
    57typeSupportediana-crypt-hash.yang, iana-if-type.yang, ietf-complex-types.yang, ietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-snmp.yang, ietf-system.yang, ietf-template.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang
    58typedefSupportediana-crypt-hash.yang, iana-if-type.yang, ietf-complex-types.yang, ietf-inet-types.yang, ietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-acm.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-netconf.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-engine.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-ssh.yang, ietf-snmp-target.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-snmp-vacm.yang, ietf-snmp.yang, ietf-system.yang, ietf-template.yang, ietf-x509-cert-to-name.yang, ietf-yang-library.yang, ietf-yang-smiv2.yang, ietf-yang-types.yang
    59uniqueSupportedietf-routing.yang
    60unitsSupportedietf-interfaces.yang, ietf-ip.yang, ietf-ipfix-psamp.yang, ietf-netconf-notifications.yang, ietf-netconf.yang, ietf-snmp-target.yang,
    61usesSupportedietf-ipfix-psamp.yang, ietf-ipfix-psamp.yang, ietf-netconf-monitoring.yang, ietf-netconf-notifications.yang, ietf-netconf-time.yang, ietf-netconf-with-defaults.yang, ietf-snmp-community.yang, ietf-snmp-tls.yang, ietf-snmp-tsm.yang, ietf-snmp-usm.yang, ietf-yang-library.yang,
    62valueSupportedietf-inet-types.yang, ietf-interfaces.yang, ietf-snmp-common.yang, ietf-snmp-community.yang, ietf-snmp-notification.yang, ietf-snmp-proxy.yang, ietf-snmp-vacm.yang,
    63whensupportedietf-ipfix-psamp.yang, ietf-netconf-notifications.yang, ietf-snmp-community.yang, ietf-snmp-proxy.yang, ietf-x509-cert-to-name.yang,
    64yang-versionSupportedSupported in all Yang Files
    65yin-elementnot supported 


    P.S : Java Code reference can be found at YANG Compiler

  5. How Automation tool works

       (star)  With yang utils Rules, generic template for Yang statement can be created. 

       (star)  Using yang files, database can be created.

       (star)  Java code is generated using the database and template. 

       (star)  Comparison is done between the Test framework Java Code and yang utils generated Java code.

       (star)  Summary report is generated highlighting the mismatch's 

       (star)   Find the Yang automation tool link under the reference section.


  6. Reference

              (info)  Standard Yang Files  :  https://github.com/huawei-adarsh/Onos_Standard_yang

             (info)   Yang Automation Tool :  Will be updated shortly

 

 

   

 The following page will be update with YMS details with NBI and SBI app in future. Currently in coding phase. 

 

  • No labels