Learn YANG! Full Tutorial for Beginners (Yet Another Next Generation)
Vložit
- čas přidán 7. 08. 2024
- 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:
ultraconfig.com.au
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)
ultraconfig.com.au/blog/learn...
RFC 7950 - The YANG 1.1 Data Modeling Language:
tools.ietf.org/html/rfc7950
pyang GitHub:
github.com/mbj4668/pyang
pyang Command Line Reference:
www.yang-central.org/twiki/pub...
yang2dsdl Command Line Reference:
www.yang-central.org/twiki/pub...
IETF YANG Modules:
www.netconfcentral.org/modulelist
OpenConfig GitHub:
github.com/openconfig/public
#yang #ietf #pyang #networkautomation #netconf - Věda a technologie
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 PYANG_XSLT_DIR=env/share/yang/xslt and export PYANG_RNG_LIBDIR=env/share/yang/schema
That's great Ashutosh, thanks for the valuable tips
Excellent tutorial!
Thank you for putting this together.
Hope you liked our video on YANG! Let me know what you think about the topic.
Also, check out YANG Explorer - I forgot to mention it in the video. It's a great interactive tool that allows users to browse through YANG models in a very readable way github.com/CiscoDevNet/yang-explorer
Thanks a lot for putting this together!
What a GREAT video!
This makes easy to understand, Thanks mate
Thank you, well explained !
Very well explained. Kudos !!
Very good summary, thank you!
Really amazing tutorial... demystified
Amazing video mate
Thanks Arjunan, I appreciate the feedback
Excellent video
Super clear.
nice video
How yang revisions are supported by yang libraries. AFAIK it is done by maintaining different file for each revision per module such as @.yang files. Any other information I can read about the same?
Thanks, can you please share the link of the written blog you are using for explanation
hi. can i omit module-header in yang-module?
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???
Hi Oscar, check out our blog post linked in this comment where we construct a URI path for a RESTCONF request using the Cisco Native Interface YANG model. Once that example makes sense, check out YANG explorer too which has RESTCONF support. Over time, writing the URI paths will become very easy and can be done just by looking at the YANG model. ultraconfig.com.au/blog/restconf-tutorial-everything-you-need-to-know-about-restconf-in-2020/
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
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?
Hi Jamal, you could try downloading the shell script for yang2dsl directly and see if that works (github.com/mbj4668/pyang/blob/master/bin/yang2dsdl). Alternatively, you could try YANG Explorer or ANX (Advanced Netconf Explorer)
Where did the IP addresses come from?
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
Hey Rodrigo, I recommend Visual Studio Code for an editor. They have a plugin for displaying yang files well. You can still use pyang in Windows, you'll just have to install python first. Hope that helps!
@@ultraconfig9489 Ok :). I will use VSCode. I am working with YANG since a while. Thank you for you video!! Keep the spirit :)
@@Rodrigo_Bodhisava Will do :)
👍
Can you pl give a tutorial of libyang also?
Hi Vishal. Good idea, we'll add it to our backlog of topics to cover
It will be lovely if you could perform a tutorial of libyang with Fedora 33 :)
What does Key means under list?
Hi Nikhil, keys are used to uniquely identify an entry in a list. Check out section 7.8.2 in RFC 7950 for the full definition
Is it possible to send iot sensor data using YANG or is only for network configuration?
Hi Zeenat, Sending sensor data might not be too applicable to YANG but I image it would be possible to build a YANG datastore on IOT devices for managing their configuration
@@ultraconfig9489 Thank you for replying.. I need help on how to send sensor data through SDN network... There was a plugin called iotdm for opendaylight but now I cannot build it anymore...could you help me please?
@@zeenatsyed2498 I haven't too much experience with OpenDaylight but you could try to reach out to the developers for resources github.com/orgs/opendaylight/people
any solution ?
yang-tutorial % yang2dsdl -v data.xml ultraconfig-interfaces.yang
warning: failed to load external entity "/usr/local/share/yang/xslt/basename.xsl"
cannot parse /usr/local/share/yang/xslt/basename.xsl
== Generating RELAX NG schema './-data.rng'
warning: failed to load external entity "schema-dir"
cannot parse schema-dir