Runtime YANG linter

In order to increase interoperability  of YANG modules and related implementations, the IETF defined in RFC8407  Guidelines for Authors and Reviewers of Documents Containing YANG Data Models.

The guidelines are optional from YANG point of view, but developer experience shows that RFC8407 complaint YANG data modules decrease debug and integration test times.

Example: canonical order

If a the YANG statement "must" appears after a YANG statement "list" it may happen that the parser for a data tree first processes the "list" statement, runs into an issues, which will be later excluded by the YANG "must" statement.

Example: description

The YANG statement "description" is not needed for machines and algorithms, however it is very useful for development and debugging, avoiding that human users need to search for the right interpretation of the related YANG  statements. In addition the description text can be shown in configuration user interfaces to guide the user. 

Problem statement

Even all new developed and pubic available YANG data models are RFC8407 compliant, some existing YANG data models are not and may never be updated. 

Proposed solution

A µService could read the standard YANG data models and modify them in run-time to provide the result for further code generation. The intent is to ensure or at least to increase the interoperability of different NetConf Server and NetConf Client implementations based in different NetConf frameworks and programming languages. 

Interoperability requirements 



NetConf Client programming language
CC++GOJavaPythonTypeScript
NetConf Server programming languageCXXXXXX
C++XXXXXX
GOXXXXXX
JavaXXXXXX
PythonXXXXXX
Typescript





Runtime Yang Linter Component Diagram