YANG Tools

Welcome to YANG Tools

Introduction

YANG Tools is a infrastructure project aiming to develop necessary tooling and libraries providing support of NETCONF and YANG for Java (JVM-language based) projects and applications, such as Model Driven SAL for Controller (which uses YANG as its modeling language) and Netconf / OFConfig plugins.

Project Information

Project Proposals:YANG Tools

Name

YANG Tools

Repo Name

yangtools

Description

YANG Tools is a infrastructure project aiming to develop necessary tooling and libraries providing support of  NETCONF  and  YANG  for Java (JVM-language based) projects and applications, such as Model Driven SAL for Controller (which uses YANG as it's modeling language) and Netconf / OFConfig plugins.

Motivatation

We believe that generic functionality related to the YANG should not be a part of Controller project, but should live in separate project and could be reused by various projects and parties without directly depending on Controller project.

Scope

The scope of YANG Tools includes:

  • Parser of YANG files

  • Java meta-model for YANG

  • Java binding for YANG

  • Maven plugin for processing YANG files

  • Infrastructure for code generators based on YANG

  • Validation of instance data (XML) based on YANG to RelaxNG mapping -  RFC6110

  • Proof-of-concept, research and support for new YANG extensions, which are meant to be reused by other projects.

  • IDE related tools to assist in writing, using and developing YANG models

  • Libraries and supporting functionality for  YANG API  (REST APIs defined by the YANG model).

Resources Committed (developers committed to working)

Initial Committers

Vendor Neutral

  • No vendor package names in code

  • No vendor branding present in code or output of build

  • No vendor branding present in documentation

Meets Board Policy (including IPR)

  • No Inbound Code Review required for this project. No substantial contribution of 3rd party code is present {Phil Robb: 07-10-13}

Jenkins

Git Patches &Code Review

Current Release Notes



Logical Subprojects

Concepts

Project defines base concepts and helper classes which are project-agnostic and could be used outside of YANG Tools project scope.

Yang

Project contains YANG related artefacts such as binding specification to Java, YANG parser, semantic model and Maven plugin for processing YANG files.

Code Generator

Projects contains code generator definitions and utility classes to generate Java source files based on parsed yang models.

Model

Project contains base yang modules packaged as maven projects.

Contribute

YANG Tools project is open to contributions and we would appreciate your help with:

  • Generation of DSDL (RelaxNG) based on RFC6110

  • compile time generation of YIN representation (using custom generator for YANG Maven Tools)

  • Implementation of validation of instance data (XML) based on YANG to RelaxNG mapping - RFC6110

  • Bugfixes, code reviews

  • Documentation

  • Example generators

  • Testing with various YANG modules and models

If you are interested feel free to contact as at  yangtools-dev  mailing list or submit a patch for review.







Project Facts

Project Creation Date:  July 18th, 2013
Lifecycle State:  Mature
Type:  Kernel
Primary Contact:  Robert Varga <robert.varga@pantheon.tech>
Project Lead:  Robert Varga <robert.varga@pantheon.tech>
Committers:

IRC:   freenode.net #opendaylight
Mailing List:   yangtools-dev@lists.opendaylight.org
    Archives:   mailing list archives
Meetings:  TBD
Repository:  git clone  https://git.opendaylight.org/gerrit/yangtools
Jenkins:   jenkins silo
Gerrit Patches:   code patches/reviews
Bugs:

Requests: