This repository contains a collection of YANG modules:
This is the preferred method of contribution. With this approach you pick where your models will reside in the directory hierarchy, and manage the files mainly in your own fork of the main repository, submitting a pull request when you wish to make public updated models. All push requests must be reviewed by at least one of the repository's Committers, so when pushing a PR, please assign it to one of the committers.
You can find a tutorial here for how to do push requests. Note that there are at least two different approaches to how to do Pull Requests: using a shell/commandline or using the web interface, so if you do not find what you need below, look elsewhere or ask the committers for pointers.
https://yangsu.github.io/pull-request-tutorial/
By convention, there should also be a check.sh
script provided by the contributors, which should be referenced from the complete_check.yml
file for CI builds. Multiple examples are already in place to copy and modify as required.
Standards bodies or vendors may also provide models to the main repository via a git submodule. Examples of this can be see under standard directory, with the BBF and MEF submodules. By convention, if a submodule is used, there should also be an equivalent check.sh
provided by the contributors, which should be referenced from the complete_check.yml
file for CI builds. An example of this may be found in the BBF's submodule, and a sample invocation here.
Direct contributions to the top level of the repository are not encouraged; instead each "organization" should create a top-level folder as described above.
git submodule add https://github.com/<owner>/<repository>.git <name>
complete_check.yml
file to check your models.check.sh
script provided by the contributors, which should be referenced from the complete_check.yml
file for CI builds. Multiple examples are already in place to copy and modify as required, but in general, one is present at the top-most level of each major submodule area.After you've verified that the submodule addition and module checking is working ok, submit a PR to the main repository. This will take the latest commit from your repository and make it available as a submodule.
Subsequently, when an updated set of models needs to be released, fork, clone, update submodule, commit and submit PR, also ensuring that Github Actions are again enabled on your fork to allow pre-pull request checks.
All Pull Requests must be reviewed and as such one of the repository's Committers must review the request prior to actually committing the request. Changes may be suggested during this process, so patience is requested during this process.
In general, pull requests will not be accepted without check.sh
scripts being in place and a clean Github Actions CI build being achieved. As can be seen from existing check scipts, all of which use pyang
today, the bar is set fairly low. The minimum requirement is that the models contributed compile correctly such that pyang
plugins such as the tree plugin will function correctly, and the schema tree is available for interrogation and tasks such as code generation.
As noted above, the check scripts today depend on pyang
, and, as of writing, this tool does not support validation of content such as regular expressions or XPath constraints. As such, models available in this repository may not be accepted by tools that perform more complete semantic validation. An example of such a tool is the OpenDaylight controller.
To Subscribe and Browse Click Here
The following directories are maintained for YANG models [license note in brackets]:
[1] IETF Trust License (Note Well):
[2] OpenDaylight Eclipse License:
[3] IEEE License:
[4] Vendor Specific License:
[5] Warrantees and Conditions
[6] Broadband Forum License:
The Yang Models Repository follows The CNCF Code of Conduct.