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

Sdílet
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

Komentáře • 40

  • @AshutoshKumar-wy3vn
    @AshutoshKumar-wy3vn Před 3 lety +7

    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

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety +1

      That's great Ashutosh, thanks for the valuable tips

  • @markkaganovsky5676
    @markkaganovsky5676 Před 2 lety +1

    Excellent tutorial!
    Thank you for putting this together.

  • @ultraconfig9489
    @ultraconfig9489  Před 4 lety +6

    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

  • @jebssan9
    @jebssan9 Před 2 lety

    Thanks a lot for putting this together!

  • @brunofranca2828
    @brunofranca2828 Před 4 lety +1

    What a GREAT video!

  • @bilalsaheli7505
    @bilalsaheli7505 Před 2 lety

    This makes easy to understand, Thanks mate

  • @IslamJoieDeVivre
    @IslamJoieDeVivre Před 2 lety

    Thank you, well explained !

  • @kaustubhshantanu
    @kaustubhshantanu Před rokem

    Very well explained. Kudos !!

  • @Slavey
    @Slavey Před 10 měsíci

    Very good summary, thank you!

  • @watermanli
    @watermanli Před 2 lety

    Really amazing tutorial... demystified

  • @arjunanranjit452
    @arjunanranjit452 Před 3 lety

    Amazing video mate

  • @ashwinramachandran118

    Excellent video

  • @billmichae
    @billmichae Před rokem

    Super clear.

  • @KalyanPuvvada
    @KalyanPuvvada Před 4 lety

    nice video

  • @LifeOfSoftwareEngineer

    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?

  • @anas6435
    @anas6435 Před 2 lety

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

  • @derka211
    @derka211 Před 3 lety

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

  • @oscarsalgado189
    @oscarsalgado189 Před 4 lety

    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???

    • @ultraconfig9489
      @ultraconfig9489  Před 4 lety

      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/

  • @jackr1162
    @jackr1162 Před rokem

    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

  • @jamalawyonis8603
    @jamalawyonis8603 Před 3 lety +1

    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?

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety

      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)

  • @sloppydoggy9257
    @sloppydoggy9257 Před 2 lety

    Where did the IP addresses come from?

  • @Rodrigo_Bodhisava
    @Rodrigo_Bodhisava Před 3 lety

    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

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety +1

      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!

    • @Rodrigo_Bodhisava
      @Rodrigo_Bodhisava Před 3 lety

      @@ultraconfig9489 Ok :). I will use VSCode. I am working with YANG since a while. Thank you for you video!! Keep the spirit :)

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety

      @@Rodrigo_Bodhisava Will do :)

  • @taoli5497
    @taoli5497 Před 4 lety

    👍

  • @MrChonch
    @MrChonch Před 4 lety +2

    Can you pl give a tutorial of libyang also?

    • @ultraconfig9489
      @ultraconfig9489  Před 4 lety +1

      Hi Vishal. Good idea, we'll add it to our backlog of topics to cover

    • @Rodrigo_Bodhisava
      @Rodrigo_Bodhisava Před 3 lety

      It will be lovely if you could perform a tutorial of libyang with Fedora 33 :)

  • @NikhilSharma-js7ct
    @NikhilSharma-js7ct Před 3 lety

    What does Key means under list?

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety +1

      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

  • @zeenatsyed2498
    @zeenatsyed2498 Před 3 lety

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

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety

      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

    • @zeenatsyed2498
      @zeenatsyed2498 Před 3 lety

      @@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?

    • @ultraconfig9489
      @ultraconfig9489  Před 3 lety

      @@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

  • @abhisinghal3759
    @abhisinghal3759 Před 4 měsíci

    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