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.";
  }
}
