Links
=====

RFCs
~~~~

-  `RFC 7950 - The YANG 1.1 Data Modeling
   Language <https://tools.ietf.org/html/rfc7950>`__
-  `RFC 7951 - JSON Encoding of Data Modeled with
   YANG <https://tools.ietf.org/html/rfc7951>`__
-  `RFC 8342 - Network Management Datastore Architecture
   (NMDA) <https://tools.ietf.org/html/rfc8342>`__
-  `RFC 6087 - Guidelines for Authors and Reviewers of YANG Data Model
   Documents <https://tools.ietf.org/html/rfc6087>`__
-  `RFC 8340 - YANG Tree
   Diagrams <https://tools.ietf.org/html/rfc8340>`__
-  `RFC 6991 - Common YANG Data
   Types <https://tools.ietf.org/html/rfc6991>`__
-  `RFC 6241 - Network Configuration Protocol
   (NETCONF) <https://tools.ietf.org/html/rfc6241>`__
-  `RFC 8040 - RESTCONF
   Protocol <https://tools.ietf.org/html/rfc8040>`__

YANG models
~~~~~~~~~~~

-  Collection of several YANG models, including models from standards
   organizations such as the IETF and vendor specific models:
   https://github.com/YangModels/yang
-  OpenConfig: https://github.com/openconfig/public

Presentations
~~~~~~~~~~~~~

-  FRR Advanced Northbound API (May 2018)

   -  Slides:
      https://www.dropbox.com/s/zhybthruwocbqaw/netdef-frr-northbound.pdf?dl=1

-  Ok, We Got Data Models, Now What?

   -  Video: https://www.youtube.com/watch?v=2oqkiZ83vAA
   -  Slides:
      https://www.nanog.org/sites/default/files/20161017_Alvarez_Ok_We_Got_v1.pdf

-  Data Model-Driven Management: Latest Industry and Tool Developments

   -  Video: https://www.youtube.com/watch?v=n_oKGJ_jgYQ
   -  Slides:
      https://pc.nanog.org/static/published/meetings/NANOG72/1559/20180219_Claise_Data_Modeling-Driven_Management__v1.pdf

-  Network Automation And Programmability: Reality Versus The Vendor
   Hype When Considering Legacy And NFV Networks

   -  Video: https://www.youtube.com/watch?v=N5wbYncUS9o
   -  Slides:
      https://www.nanog.org/sites/default/files/1_Moore_Network_Automation_And_Programmability.pdf

-  Lightning Talk: The API is the new CLI?

   -  Video: https://www.youtube.com/watch?v=ngi0erGNi58
   -  Slides:
      https://pc.nanog.org/static/published/meetings/NANOG72/1638/20180221_Grundemann_Lightning_Talk_The_v1.pdf

-  Lightning Talk: OpenConfig - progress toward vendor-neutral network
   management

   -  Video: https://www.youtube.com/watch?v=10rSUbeMmT4
   -  Slides:
      https://pc.nanog.org/static/published/meetings/NANOG71/1535/20171004_Shaikh_Lightning_Talk_Openconfig_v1.pdf

-  Getting started with OpenConfig

   -  Video: https://www.youtube.com/watch?v=L7trUNK8NJI
   -  Slides:
      https://pc.nanog.org/static/published/meetings/NANOG71/1456/20171003_Alvarez_Getting_Started_With_v1.pdf

-  Why NETCONF and YANG

   -  Video: https://www.youtube.com/watch?v=mp4h8aSTba8

-  NETCONF and YANG Concepts

   -  Video: https://www.youtube.com/watch?v=UwYYvT7DBvg

-  NETCONF Tutorial

   -  Video: https://www.youtube.com/watch?v=N4vov1mI14U

Whitepapers
~~~~~~~~~~~

-  Automating Network and Service Configuration Using NETCONF and YANG:
   http://www.tail-f.com/wordpress/wp-content/uploads/2013/02/Tail-f-Presentation-Netconf-Yang.pdf
-  Creating the Programmable Network: The Business Case for NETCONF/YANG
   in Network Devices:
   http://www.tail-f.com/wordpress/wp-content/uploads/2013/10/HR-Tail-f-NETCONF-WP-10-08-13.pdf
-  NETCONF/YANG: What’s Holding Back Adoption & How to Accelerate It:
   https://www.oneaccess-net.com/images/public/wp_heavy_reading.pdf
-  Achieving Automation with YANG Modeling Technologies:
   https://www.cisco.com/c/dam/en/us/products/collateral/cloud-systems-management/network-services-orchestrator/idc-achieving-automation-wp.pdf

Blog posts and podcasts
~~~~~~~~~~~~~~~~~~~~~~~

-  OpenConfig and IETF YANG Models: Can they converge? -
   http://rob.sh/post/215/
-  OpenConfig: Standardized Models For Networking -
   https://packetpushers.net/openconfig-standardized-models-networking/
-  (Podcast) OpenConfig: From Basics to Implementations -
   https://blog.ipspace.net/2017/02/openconfig-from-basics-to.html
-  (Podcast) How Did NETCONF Start on Software Gone Wild -
   https://blog.ipspace.net/2017/12/how-did-netconf-start-on-software-gone.html
-  YANG Data Models in the Industry: Current State of Affairs (March
   2018) -
   https://www.claise.be/2018/03/yang-data-models-in-the-industry-current-state-of-affairs-march-2018/
-  Why Data Model-driven Telemetry is the only useful Telemetry? -
   https://www.claise.be/2018/02/why-data-model-driven-telemetry-is-the-only-useful-telemetry/
-  NETCONF versus RESTCONF: Capabilitity Comparisons for Data
   Model-driven Management -
   https://www.claise.be/2017/10/netconf-versus-restconf-capabilitity-comparisons-for-data-model-driven-management-2/
-  An Introduction to NETCONF/YANG -
   https://www.fir3net.com/Networking/Protocols/an-introduction-to-netconf-yang.html
-  Network Automation and the Rise of NETCONF -
   https://medium.com/@k.okasha/network-automation-and-the-rise-of-netconf-e96cc33fe28
-  YANG and the Road to a Model Driven Network -
   https://medium.com/@k.okasha/yang-and-road-to-a-model-driven-network-e9e52d47148d

Software
~~~~~~~~

libyang
^^^^^^^

   libyang is a YANG data modelling language parser and toolkit written
   (and providing API) in C.

-  GitHub page: https://github.com/CESNET/libyang
-  Documentaion: https://netopeer.liberouter.org/doc/libyang/master/

pyang
^^^^^

   pyang is a YANG validator, transformator and code generator, written
   in python. It can be used to validate YANG modules for correctness,
   to transform YANG modules into other formats, and to generate code
   from the modules.

-  GitHub page: https://github.com/mbj4668/pyang
-  Documentaion: https://github.com/mbj4668/pyang/wiki/Documentation

ncclient
^^^^^^^^

   ncclient is a Python library that facilitates client-side scripting
   and application development around the NETCONF protocol.

-  GitHub page: https://github.com/ncclient/ncclient
-  Documentaion: https://ncclient.readthedocs.io/en/latest/

YDK
^^^

   ydk-gen is a developer tool that can generate API’s that are modeled
   in YANG. Currently, it generates language binding for Python, Go and
   C++ with planned support for other language bindings in the future.

-  GitHub pages:

   -  Generator: https://github.com/CiscoDevNet/ydk-gen
   -  Python: https://github.com/CiscoDevNet/ydk-py

      -  Python samples: https://github.com/CiscoDevNet/ydk-py-samples

   -  Go: https://github.com/CiscoDevNet/ydk-go
   -  C++: https://github.com/CiscoDevNet/ydk-cpp

-  Documentation:

   -  Python: http://ydk.cisco.com/py/docs/
   -  Go: http://ydk.cisco.com/go/docs/
   -  C++: http://ydk.cisco.com/cpp/docs/

-  (Blog post) Simplifying Network Programmability with Model-Driven
   APIs:
   https://blogs.cisco.com/sp/simplifying-network-programmability-with-model-driven-apis
-  (Video introduction) Infrastructure as a Code Using YANG, OpenConfig
   and YDK: https://www.youtube.com/watch?v=G1b6vJW1R5w

pyangbind
^^^^^^^^^

   A plugin for pyang that creates Python bindings for a YANG model.

-  GitHub page: https://github.com/robshakir/pyangbind
-  Documentation: http://pynms.io/pyangbind/

Sysrepo
^^^^^^^

   Sysrepo is an YANG-based configuration and operational state data
   store for Unix/Linux applications.

-  GitHub page: https://github.com/sysrepo/sysrepo
-  Official webpage: http://www.sysrepo.org/
-  Documentation: http://www.sysrepo.org/static/doc/html/

Netopeer2
^^^^^^^^^

   Netopeer2 is a set of tools implementing network configuration tools
   based on the NETCONF Protocol. This is the second generation of the
   toolset, originally available as the Netopeer project. Netopeer2 is
   based on the new generation of the NETCONF and YANG libraries -
   libyang and libnetconf2. The Netopeer server uses sysrepo as a
   NETCONF datastore implementation.

-  GitHub page: https://github.com/CESNET/Netopeer2

Clixon
^^^^^^

   Clixon is an automatic configuration manager where you generate
   interactive CLI, NETCONF, RESTCONF and embedded databases with
   transaction support from a YANG specification.

-  GitHub page: https://github.com/clicon/clixon
-  Project page: http://www.clicon.org/
