YANG Catalog Latest Developments

bclaise at cisco.com (Benoit Claise) Tue, 05 September 2017 06:15 UTC

From: "bclaise at cisco.com"
Date: Tue, 05 Sep 2017 08:15:00 +0200
Subject: YANG Catalog Latest Developments
Message-ID: <d1247165-7950-8a3c-2836-ba56d41aa1fa@cisco.com>

Dear all,

On behalf of the full team of dedicated people, we would like to share 
the latest developments on the yangcatalog.org project. As a reminder, 
this is what we achieved over a month ago 
<http://www.claise.be/2017/07/yang-catalog-latest-development-ietf-99-hackathon/>. 


- We posted a new draft version: YANG module for yangcatalog.org 
<https://datatracker.ietf.org/doc/draft-clacla-netmod-model-catalog/>. 
It's used as the foundation for the APIs for yangcatalog.org.

- As you can see in this YANG module, we added some additional 
per-module metadata.
That is:

leaf generated-from {

type enumeration {

enum mib {

description "Module generated from Structure of Management Information (SMI)

MIB per RFC6643.";

}

enum code {

description "Module generated automatically from code.";

}

enum not-applicable {

description

"Module was not generated but it was authored manually.";

}

enum native {

description "Module generated from platform internal or

proprietary structure.";

}

}

And:

leaf tree-type {

type enumeration {

enum split {

description

"This module uses a split config/operational state layout.";

}

enum nmda-compatible {

description

"This module is compatible with the Network Management Datastores

Architecture (NMDA) and combines config and operational state nodes.";

}

enum transitional-extra {

description

"This module is derived as a '-state' module to allow for transitioning

to a full NMDA-compliant tree structure.";

}

enum openconfig {

description

"This module uses the Openconfig data element layout.";

}

enum unclassified {

description

"This module does not have a data element tree, or it does not belong to 
any category.";

}

enum not-applicable {

description

"This module is submodule.";

}

}

description

"The type of data element tree used by the module as it relates to the

Network Management Datastores Architecture.";

reference

"draft-dsdt-nmda-guidelines Guidelines for YANG Module Authors (NMDA)";

}

And,

leaf module-classification {

type enumeration {

enum network-service {

description

"Network Service YANG Module that describes the configuration, state

data, operations, and notifications of abstract representations of

services implemented on one or multiple network elements.";

}

enum network-element {

description

"Network Element YANG Module that describes the configuration, state

data, operations, and notifications of specific device-centric

technologies or features.";

}

enum unknown {

description

"In case that there is not sufficient information about how to classify 
the module.";

}

enum not-applicable {

description

"The YANG module abstraction type is neither a Network Service YANG Module

nor a Network Element YANG Module.";

}

}

mandatory true;

description

"The high-level classification of the given YANG module.";

reference

"RFC8199 YANG Module Classification";

- The metadata are available for each YANG module.
For example, using the YANG Catalog API, you can retrieve the metadata 
for the ietf-connectionless-oam.yang module at revision 2017-06-09 and 
the "ietf" organization using the GET request: 
https://yangcatalog.org:8443/search/modules/ietf-connectionless-oam.yang,2017-06-09,ietf
This is key to quickly see if a YANG module is NMDA compliant (tree-type 
= "nmda-compatible").

- Full working API to read, delete, and add modules with data caching 
for optimize data retrieval integrated with YANG Catalog search application.

- Created?a logger?with logs for the entire?project.

- Created caching for?fast searching.

- Regarding the YANG W3C Regex Expression Validator, we have a new look 
and feel. The messages are no longer separated by pattern number titles. 
You will only get messages for mis-matches, errors or in case the 
W3CGREP does not match the YANGRE result, making the display cleaner and 
more useful. Colors will still indicate if a certain pattern matches or 
not. Also, Pieter fixed some display bugs (error messages not showing in 
certain conditions) and added an "About" tab.

- In terms of different Standard Development Organizations and Open 
Source projects, we now have YANG modules from the IETF, BBF, MEF, IEEE, 
and Openconfig; with the metadata populated for the IETF, MEF, and MEF. 
In terms of different vendors, we now have YANG modules from Cisco (with 
metadata) and from Huawei. Juniper also participated in the hackathon, 
and the work to add their respective YANG modules is under way.


Regards, Joe and Benoit