Welcome to YANG Central
YANG? What's YANG?
YANG is a data modeling language used to model configuration and state data manipulated by the NETCONF protocol (
RFC 6241), NETCONF remote procedure calls, and NETCONF notifications.
The YANG language was developed by the IETF NETCONF Data Modeling Language Working Group
(NETMOD), and is defined in
RFC 7950.
YANG News
2016-10-28: Updated the
tools page with new yang-mode emacs mode.
2016-09-01: RFC 7952, Defining and Using Metadata with YANG, has been published, see
documents page.
2016-09-01: RFC 7951, JSON Encoding of Data Modeled with YANG, has been published, see
documents page.
2016-09-01: RFC 7950, YANG 1.1, has been published, see
documents page.
2016-07-01: RFC 7895, YANG Module Library, has been published, see
documents page.
2016-04-04: Updated the
tools page with NETCONF/YANG clients and servers.
2016-02-01: Updated the
tools page with more tools.
2015-09-30: Updated the
tools page.
2014-12-18: RFC 7407, A YANG Data Model for SNMP Configuration, has been published, see
documents page.
2014-08-07: RFC 7317, A YANG Data Model for System Management, has been published, see
documents page.
2014-06-16: RFC 7277, A YANG Data Model for IP Management, has been published, see
documents page.
2014-05-16: RFC 7223, A YANG Data Model for Interface Management, has been published, see
documents page.
2013-12-11: More tutorials available on the
documents page.
2011-10-04: Added a VIM syntax file to the
tools page. Thanks to Matt Parker!
2011-03-26: NETCONF, YANG and DSDL mapping was presented at the
XML Prague 2011 conference. Proceedings are available
online.
2011-02-16: Updated
DSDLMappingTutorial to be in sync with pyang 1.1.
2011-02-15: Updated all
Examples to be RFC 6020 compliant.
2011-02-14: The YANG to DSDL mapping specification is now published as
RFC 6110.
2011-01-31: Guidelines for YANG module authors
RFC 6087.
2010-10-07: The
pyang tool is now released as version 1.0, RFC 6020 compatible.
2010-10-06: The YANG specification is now published as
RFC 6020, and YANG types as
RFC 6021.
2010-06-18: The latest YANG draft (draft-ietf-netmod-yang-13) and YANG types draft (draft-ietf-netmod-yang-types-09) have been accepted and are now in the RFC editor's queue. See
YangDocuments for more info.
2010-04-14: A new updated version (draft-ietf-netmod-yang-12) has been published. See
YangDocuments for more info.
2010-01-12: A new updated version (draft-ietf-netmod-yang-10) has been published. See
YangDocuments for more info.
2009-10-15: Added a new tutorial from IETF75, updated
YangDocuments with pointers to the latest YANG documents.
2009-06-24: Added a link to the jYang Java implementation. See
YangTools for more info.
2009-04-20: A new updated version (draft-ietf-netmod-yang-05) has been published. See
YangDocuments for more info.
2009-01-12: A new updated version (draft-ietf-netmod-yang-03) has been published. See
YangDocuments for more info.
2008-11-04: Added link to the standard YANG types document. See
YangDocuments for more info.
2008-11-04: Updated examples and tutorial so they are compliant with the current spec.
2008-11-03: draft-ietf-netmod-yang-02 published. See
YangDocuments for more info.
2008-04-29: The
IETF NETMOD WG is formed to develop the YANG data modeling language for NETCONF.
2008-03-12: Added a
page comparing YANG to alternatives.
2008-02-18: draft-bjorklund-yang-requirements-00 published. See
YangDocuments for more info.
2008-02-06: draft-bjorklund-netconf-yang-02 published. The
pyang validator is updated to this version.
A quick YANG example
This is a simple example of what a YANG module looks like:
module acme-system {
namespace "http://acme.example.com/system";
prefix "acme";
organization "ACME Inc.";
contact "joe@acme.example.com";
description
"The module for entities implementing the ACME system.";
revision 2007-11-05 {
description "Initial revision.";
}
container system {
leaf host-name {
type string;
description "Hostname for this system";
}
leaf-list domain-search {
type string;
description "List of domain names to search";
}
list interface {
key "name";
description "List of interfaces in the system";
leaf name {
type string;
}
leaf type {
type string;
}
leaf mtu {
type int32;
}
}
}
}