Addition of common model.

Change-Id: If5fd6bae01a59ebf9d27f8369ac3403c83f70fad
diff --git a/models/common/src/main/yang/ietf-yang-smiv2@2012-06-22.yang b/models/common/src/main/yang/ietf-yang-smiv2@2012-06-22.yang
new file mode 100644
index 0000000..5127e22
--- /dev/null
+++ b/models/common/src/main/yang/ietf-yang-smiv2@2012-06-22.yang
@@ -0,0 +1,146 @@
+module ietf-yang-smiv2 {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-smiv2";
+  prefix "smiv2";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module defines YANG extensions that are used to translate
+    SMIv2 concepts into YANG.
+
+    Copyright (c) 2012 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+
+    This version of this YANG module is part of RFC 6643; see
+    the RFC itself for full legal notices.";
+
+  revision 2012-06-22 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6643: Translation of Structure of Management Information
+      Version 2 (SMIv2) MIB Modules to YANG Modules";
+  }
+
+  identity object-identity {
+    description
+     "Base identity for all SMIv2 OBJECT-IDENTITYs.";
+  }
+
+  typedef opaque {
+    type binary;
+    description
+     "The Opaque type supports the capability to pass arbitrary ASN.1
+      syntax.  A value is encoded using the ASN.1 Basic Encoding Rules
+      into a string of octets.  This, in turn, is encoded as an OCTET
+      STRING, in effect 'double-wrapping' the original ASN.1 value.
+
+      In the value set and its semantics, this type is equivalent to
+      the Opaque type of the SMIv2.  This type exists in the SMIv2
+      solely for backward-compatibility reasons and this is also
+      true for this YANG data type.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+  extension display-hint {
+    argument "format";
+    description
+     "The display-hint statement takes as an argument the DISPLAY-HINT
+      assigned to an SMIv2 textual convention.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  extension max-access {
+    argument "access";
+    description
+     "The max-access statement takes as an argument the MAX-ACCESS
+      assigned to an SMIv2 object definition.
+
+      The MAX-ACCESS value is SMIv2 specific and has no impact on
+      the access provided to YANG objects through protocols such
+      as NETCONF.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+  extension defval {
+    argument "value";
+    description
+     "The defval statement takes as an argument a default value
+      defined by an SMIv2 DEFVAL clause.  Note that the value is in
+      the SMIv2 value space defined by the SMIv2 syntax of the
+      corresponding object and not in the YANG value space
+      defined by the corresponding YANG data type.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+  extension implied {
+    argument "index";
+    description
+     "If an SMIv2 INDEX object is preceded by the IMPLIED keyword, then
+      the implied statement is present in the YANG module and takes as
+      an argument the name of the IMPLIED index object.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+   }
+
+  extension alias {
+    argument "descriptor";
+    description
+     "The alias statement introduces an SMIv2 descriptor.  The body of
+      the alias statement is expected to contain an oid statement that
+      provides the numeric OID associated with the descriptor.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+  extension oid {
+    argument "value";
+    description
+     "The oid statement takes as an argument the object identifier
+      assigned to an SMIv2 definition.  The object identifier value
+      is written in decimal dotted notation.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+  extension subid {
+    argument "value";
+    description
+     "The subid statement takes as an argument the last sub-identifier
+      of the object identifier assigned to an SMIv2 definition.  The
+      sub-identifier value is a single positive decimal natural number.
+      The subid statement may not be used as a substatement to any
+      top-level node in a YANG document.  The subid substatement may
+      be used only as a substatement to a node having a parent node
+      defined with either an smiv2:oid or smiv2:subid substatement.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2 (SMIv2)";
+  }
+
+}