Learn YANG! Full Tutorial for Beginners (Yet Another Next Generation)

preview_player
Показать описание
YANG is a data modelling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. In today's tutorial, let's do a deep dive and learn the language from scratch.

Ultra Config:

Ultra Config Generator is an enterprise-grade software application for multi-vendor network automation. The product enables organizations to build robust automation solutions compatible with all major equipment vendors such as Cisco, Juniper and Huawei.

Today's Tutorial:
(Learn YANG in 16 mins)

RFC 7950 - The YANG 1.1 Data Modeling Language:

pyang GitHub:

pyang Command Line Reference:

yang2dsdl Command Line Reference:

IETF YANG Modules:

OpenConfig GitHub:

#yang #ietf #pyang #networkautomation #netconf
Рекомендации по теме
Комментарии
Автор

Thank you for a great overview. FYI, I did encounter few problems for which I've noted the solutions below.
1. One needs to use switch `-x` to ignore yang version error
2. When using python virtual environment, export and export

AshutoshKumar-wyvn
Автор

Excellent tutorial!
Thank you for putting this together.

markkaganovsky
Автор

This makes easy to understand, Thanks mate

bilalsaheli
Автор

Thanks a lot for putting this together!

jebssan
Автор

Really amazing tutorial... demystified

watermanli
Автор

Thanks, can you please share the link of the written blog you are using for explanation

ano-xc
Автор

How yang revisions are supported by yang libraries. AFAIK it is done by maintaining different file for each revision per module such as <module>@<revision-date>.yang files. Any other information I can read about the same?

LifeOfSoftwareEngineer
Автор

yang2dsdl only works with pyang version 1 but not version 2..even if i change to version 1 i am having a problem running the code. Is there another way to to validate the models?

jamalawyonis
Автор

Hi ultra config,

Can you please help me with this?

I want the pattern in leaf to take only 2 strings as input.
The strings are
["IPv4"]
["IPv6"]
Along with the square brackets and quotations. If the address mentioned is ipv4 then they also should mention that they mentioned ipv4 as ["IPv4"] and for ipv6 also the same.
So the pattern for this given is
'((["IPv4"] | ["IPv6"]))' ;
But this didn't work
Also tried
'(([\"IPv4\"] | [\"IPv6\"]))' ; this one is working but it is also taking all kinds of strings which is not the requirement so can you help in getting only ["IPv4"] and ["IPv6"]


Thank you

jackr
Автор

hi. can i omit module-header in yang-module?

derka
Автор

Can you pl give a tutorial of libyang also?

MrChonch
Автор

ok now i have a tree that is based on a cisco xe. How can we put the pieces together in order to form a valid URI that we can use for example at postman???

oscarsalgado
Автор

Ultra Config, how can I validate a yang file in windows or save as file.yang? Or which editor can recognize a yang file? Thanks

Rodrigo_Bodhisava
Автор

Is it possible to send iot sensor data using YANG or is only for network configuration?

zeenatsyed
Автор

Hope you liked our video on YANG! Let me know what you think about the topic.

ultraconfig
Автор

any solution ?
yang-tutorial % yang2dsdl -v data.xml ultraconfig-interfaces.yang
warning: failed to load external entity
cannot parse
== Generating RELAX NG schema './-data.rng'
warning: failed to load external entity "schema-dir"
cannot parse schema-dir

abhisinghal