Subject: [yang-doctors] Fwd: YANG Catalog Latest Developments

From: Benoit Claise <[email-masked]>
Date: Tue, 5 Sep 2017 08:28:59 +0200

FYI.
If interested, Subscribe 
<https://www.marcuscom.com/mailman/listinfo/yangcatalog-announce> to 
[email-masked] to get updates about the YANG Catalog.

Regards, Benoit

-------- Forwarded Message --------
Subject: 	YANG Catalog Latest Developments
Date: 	Tue, 5 Sep 2017 08:15:00 +0200
From: 	Benoit Claise <[email-masked]>
To: 	[email-masked]

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

_______________________________________________
[email-masked] mailing list
https://marcuscom.com/mailman/listinfo/yangcatalog-announce
To unsubscribe, send any mail to "[email-masked]"