module openconfig-extensions {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/openconfig-ext";

  prefix "ocext";

  // meta
  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "This module provides extensions to the YANG language to allow
    OpenConfig specific functionality and meta-data to be defined.";

  revision "2015-10-09" {
    description
      "Initial OpenConfig public release";
  }

  revision "2015-10-05" {
    description
      "Initial revision";
    reference "TBD";
  }

  // extension statements
  extension openconfig-version {
    argument "semver" {
      yin-element false;
    }
    description
      "The OpenConfig version number for the module. This is
      expressed as a semantic version number of the form:
        x.y.z
      where:
        * x corresponds to the major version,
        * y corresponds to a minor version,
        * z corresponds to a patch version.
      This version corresponds to the model file within which it is
      defined, and does not cover the whole set of OpenConfig models.
      Where several modules are used to build up a single block of
      functionality, the same module version is specified across each
      file that makes up the module.

      A major version number of 0 indicates that this model is still
      in development (whether within OpenConfig or with industry
      partners), and is potentially subject to change.

      Following a release of major version 1, all modules will
      increment major revision number where backwards incompatible
      changes to the model are made.

      The minor version is changed when features are added to the
      model that do not impact current clients use of the model.

      The patch-level version is incremented when non-feature changes
      (such as bugfixes or clarifications to human-readable
      descriptions that do not impact model functionality) are made
      that maintain backwards compatibility.

      The version number is stored in the module meta-data.";
  }
}