r50 - 2009-10-15 - 09:27:29 - MartinBjoerklundYou are here: TWiki >  Main Web > WebHome

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, NETCONF remote procedure calls, and NETCONF notifications. Today, the NETCONF protocol RFC 4741 lacks a standardized way to create data models. Instead, vendors are forced to use proprietary solutions. In order for NETCONF to be a interoperable protocol, models must be defined in a vendor-neutral way. YANG provides the language and rules for defining such models for use with NETCONF.

The YANG developers believe YANG fills this gap very well. Why Yang documents some of the reasons why we believe YANG is absolutely the right way forward.

The YANG language is currently being developed by the IETF NETCONF Data Modeling Language Working Group (NETMOD).


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";
        "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;
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r71 | r52 < r51 < r50 < r49 | More topic actions...
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback