Replace with standard yang

- replace ietf-inet-types and ietf-yang-types with
  publically available standard .yangs

Change-Id: I8999c847551ab8c007fd688415554230ea8b5774
diff --git a/models/common/src/main/yang/ietf-inet-types@2013-07-15.yang b/models/common/src/main/yang/ietf-inet-types@2013-07-15.yang
index eacefb6..2b7ed38 100644
--- a/models/common/src/main/yang/ietf-inet-types@2013-07-15.yang
+++ b/models/common/src/main/yang/ietf-inet-types@2013-07-15.yang
@@ -1,13 +1,17 @@
-module ietf-inet-types {
+  module ietf-inet-types {
 
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
+    yang-version 1;
 
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+    namespace
+      "urn:ietf:params:xml:ns:yang:ietf-inet-types";
 
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    prefix inet;
+
+    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
@@ -19,8 +23,8 @@
     Editor:   Juergen Schoenwaelder
               <mailto:j.schoenwaelder@jacobs-university.de>";
 
-  description
-   "This module contains a collection of generally useful derived
+    description
+      "This module contains a collection of generally useful derived
     YANG data types for Internet addresses and related things.
 
     Copyright (c) 2013 IETF Trust and the persons identified as
@@ -36,95 +40,98 @@
     This version of this YANG module is part of RFC 6991; see
     the RFC itself for full legal notices.";
 
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
+    revision "2013-07-15" {
+      description
+        "This revision adds the following new data types:
       - ip-address-no-zone
       - ipv4-address-no-zone
       - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
+      reference
+        "RFC 6991: Common YANG Data Types";
 
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
     }
-    description
-     "This value represents the version of the IP protocol.
+
+    revision "2010-09-24" {
+      description "Initial revision.";
+      reference
+        "RFC 6021: Common YANG Data Types";
+
+    }
+
+
+    typedef ip-version {
+      type enumeration {
+        enum "unknown" {
+          value 0;
+          description
+            "An unknown or unspecified version of the Internet
+          protocol.";
+        }
+        enum "ipv4" {
+          value 1;
+          description
+            "The IPv4 protocol as defined in RFC 791.";
+        }
+        enum "ipv6" {
+          value 2;
+          description
+            "The IPv6 protocol as defined in RFC 2460.";
+        }
+      }
+      description
+        "This value represents the version of the IP protocol.
 
       In the value set and its semantics, this type is equivalent
       to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
+      reference
+        "RFC  791: Internet Protocol
+         RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
+         RFC 4001: Textual Conventions for Internet Network Addresses";
 
-  typedef dscp {
-    type uint8 {
-      range "0..63";
     }
-    description
-     "The dscp type represents a Differentiated Services Code Point
+
+    typedef dscp {
+      type uint8 {
+        range "0..63";
+      }
+      description
+        "The dscp type represents a Differentiated Services Code Point
       that may be used for marking packets in a traffic stream.
       In the value set and its semantics, this type is equivalent
       to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
+      reference
+        "RFC 3289: Management Information Base for the Differentiated
+        	  Services Architecture
+         RFC 2474: Definition of the Differentiated Services Field
+        	  (DS Field) in the IPv4 and IPv6 Headers
+         RFC 2780: IANA Allocation Guidelines For Values In
+        	  the Internet Protocol and Related Headers";
 
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
     }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
+
+    typedef ipv6-flow-label {
+      type uint32 {
+        range "0..1048575";
+      }
+      description
+        "The ipv6-flow-label type represents the flow identifier or Flow
       Label in an IPv6 packet header that may be used to
       discriminate traffic flows.
 
       In the value set and its semantics, this type is equivalent
       to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
+      reference
+        "RFC 3595: Textual Conventions for IPv6 Flow Label
+         RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
 
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
     }
-    description
-     "The port-number type represents a 16-bit port number of an
+
+    typedef port-number {
+      type uint16 {
+        range "0..65535";
+      }
+      description
+        "The port-number type represents a 16-bit port number of an
       Internet transport-layer protocol such as UDP, TCP, DCCP, or
       SCTP.  Port numbers are assigned by IANA.  A current list of
       all assignments is available from <http://www.iana.org/>.
@@ -134,20 +141,19 @@
       be excluded by subtyping the port-number type.
       In the value set and its semantics, this type is equivalent
       to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
+      reference
+        "RFC  768: User Datagram Protocol
+         RFC  793: Transmission Control Protocol
+         RFC 4960: Stream Control Transmission Protocol
+         RFC 4340: Datagram Congestion Control Protocol (DCCP)
+         RFC 4001: Textual Conventions for Internet Network Addresses";
 
-  /*** collection of types related to autonomous systems ***/
+    }
 
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
+    typedef as-number {
+      type uint32;
+      description
+        "The as-number type represents autonomous system numbers
       which identify an Autonomous System (AS).  An AS is a set
       of routers under a single technical administration, using
       an interior gateway protocol and common metrics to route
@@ -165,40 +171,38 @@
       In the value set and its semantics, this type is equivalent
       to the InetAutonomousSystemNumber textual convention of
       the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
+      reference
+        "RFC 1930: Guidelines for creation, selection, and registration
+        	  of an Autonomous System (AS)
+         RFC 4271: A Border Gateway Protocol 4 (BGP-4)
+         RFC 4001: Textual Conventions for Internet Network Addresses
+         RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
+        	  Number Space";
 
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
     }
-    description
-     "The ip-address type represents an IP address and is IP
+
+    typedef ip-address {
+      type union {
+        type ipv4-address;
+        type ipv6-address;
+      }
+      description
+        "The ip-address type represents an IP address and is IP
       version neutral.  The format of the textual representation
       implies the IP version.  This type supports scoped addresses
       by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
+      reference
+        "RFC 4007: IPv6 Scoped Address Architecture";
 
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
     }
-    description
-      "The ipv4-address type represents an IPv4 address in
+
+    typedef ipv4-address {
+      type string {
+        pattern
+          '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\p{N}\p{L}]+)?';
+      }
+      description
+        "The ipv4-address type represents an IPv4 address in
        dotted-quad notation.  The IPv4 address may include a zone
        index, separated by a % sign.
 
@@ -210,21 +214,17 @@
 
        The canonical format for the zone index is the numerical
        format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
     }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
+
+    typedef ipv6-address {
+      type string {
+        pattern
+          '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\p{N}\p{L}]+)?';
+        pattern
+          '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?';
+      }
+      description
+        "The ipv6-address type represents an IPv6 address in full,
       mixed, shortened, and shortened-mixed notation.  The IPv6
       address may include a zone index, separated by a % sign.
 
@@ -234,77 +234,80 @@
       interface.  If the zone index is not present, the default
       zone of the device will be used.
 
+
+
       The canonical format of IPv6 addresses uses the textual
       representation defined in Section 4 of RFC 5952.  The
       canonical format for the zone index is the numerical
       format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
+      reference
+        "RFC 4291: IP Version 6 Addressing Architecture
+         RFC 4007: IPv6 Scoped Address Architecture
+         RFC 5952: A Recommendation for IPv6 Address Text
+        	  Representation";
 
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
     }
-    description
-     "The ip-address-no-zone type represents an IP address and is
+
+    typedef ip-address-no-zone {
+      type union {
+        type ipv4-address-no-zone;
+        type ipv6-address-no-zone;
+      }
+      description
+        "The ip-address-no-zone type represents an IP address and is
       IP version neutral.  The format of the textual representation
       implies the IP version.  This type does not support scoped
       addresses since it does not allow zone identifiers in the
       address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
+      reference
+        "RFC 4007: IPv6 Scoped Address Architecture";
 
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
     }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
+
+    typedef ipv4-address-no-zone {
+      type ipv4-address {
+        pattern '[0-9\.]*';
+      }
+      description
+        "An IPv4 address without a zone index.  This type, derived from
        ipv4-address, may be used in situations where the zone is
        known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
     }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
+
+    typedef ipv6-address-no-zone {
+      type ipv6-address {
+        pattern '[0-9a-fA-F:\.]*';
+      }
+      description
+        "An IPv6 address without a zone index.  This type, derived from
        ipv6-address, may be used in situations where the zone is
        known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
+      reference
+        "RFC 4291: IP Version 6 Addressing Architecture
+         RFC 4007: IPv6 Scoped Address Architecture
+         RFC 5952: A Recommendation for IPv6 Address Text
+        	  Representation";
 
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
     }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
+
+    typedef ip-prefix {
+      type union {
+        type ipv4-prefix;
+        type ipv6-prefix;
+      }
+      description
+        "The ip-prefix type represents an IP prefix and is IP
       version neutral.  The format of the textual representations
       implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
     }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
+
+    typedef ipv4-prefix {
+      type string {
+        pattern
+          '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))';
+      }
+      description
+        "The ipv4-prefix type represents an IPv4 address prefix.
       The prefix length is given by the number following the
       slash character and must be less than or equal to 32.
 
@@ -315,22 +318,17 @@
       The canonical format of an IPv4 prefix has all bits of
       the IPv4 address set to zero that are not part of the
       IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
     }
 
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
+    typedef ipv6-prefix {
+      type string {
+        pattern
+          '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
+        pattern
+          '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)';
+      }
+      description
+        "The ipv6-prefix type represents an IPv6 address prefix.
       The prefix length is given by the number following the
       slash character and must be less than or equal to 128.
 
@@ -345,23 +343,20 @@
       the IPv6 address set to zero that are not part of the
       IPv6 prefix.  Furthermore, the IPv6 address is represented
       as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
+      reference
+        "RFC 5952: A Recommendation for IPv6 Address Text
+        	  Representation";
 
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
     }
-    description
-     "The domain-name type represents a DNS domain name.  The
+
+    typedef domain-name {
+      type string {
+        length "1..253";
+        pattern
+          '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)|\.';
+      }
+      description
+        "The domain-name type represents a DNS domain name.  The
       name SHOULD be fully qualified whenever possible.
 
       Internet domain names are only loosely specified.  Section
@@ -395,31 +390,32 @@
       Domain-name values use the US-ASCII encoding.  Their canonical
       format uses lowercase US-ASCII characters.  Internationalized
       domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
+      reference
+        "RFC  952: DoD Internet Host Table Specification
+         RFC 1034: Domain Names - Concepts and Facilities
+         RFC 1123: Requirements for Internet Hosts -- Application
+        	  and Support
+         RFC 2782: A DNS RR for specifying the location of services
+        	  (DNS SRV)
+         RFC 5890: Internationalized Domain Names in Applications
+        	  (IDNA): Definitions and Document Framework";
 
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
     }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
 
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
+    typedef host {
+      type union {
+        type ip-address;
+        type domain-name;
+      }
+      description
+        "The host type represents either an IP address or a DNS
+      domain name.";
+    }
+
+    typedef uri {
+      type string;
+      description
+        "The uri type represents a Uniform Resource Identifier
       (URI) as defined by STD 66.
 
       Objects using the uri type MUST be in US-ASCII encoding,
@@ -445,14 +441,14 @@
 
       In the value set and its semantics, this type is equivalent
       to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
+      reference
+        "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
+         RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
+        	  Group: Uniform Resource Identifiers (URIs), URLs,
+        	  and Uniform Resource Names (URNs): Clarifications
+        	  and Recommendations
+         RFC 5017: MIB Textual Conventions for Uniform Resource
+        	  Identifiers (URIs)";
 
-}
+    }
+  }  // module ietf-inet-types
diff --git a/models/common/src/main/yang/ietf-yang-types@2013-07-15.yang b/models/common/src/main/yang/ietf-yang-types@2013-07-15.yang
index ee58fa3..9a543fa 100644
--- a/models/common/src/main/yang/ietf-yang-types@2013-07-15.yang
+++ b/models/common/src/main/yang/ietf-yang-types@2013-07-15.yang
@@ -1,13 +1,17 @@
-module ietf-yang-types {
+  module ietf-yang-types {
 
-  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-  prefix "yang";
+    yang-version 1;
 
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+    namespace
+      "urn:ietf:params:xml:ns:yang:ietf-yang-types";
 
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    prefix yang;
+
+    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
@@ -19,8 +23,8 @@
     Editor:   Juergen Schoenwaelder
               <mailto:j.schoenwaelder@jacobs-university.de>";
 
-  description
-   "This module contains a collection of generally useful derived
+    description
+      "This module contains a collection of generally useful derived
     YANG data types.
 
     Copyright (c) 2013 IETF Trust and the persons identified as
@@ -36,30 +40,30 @@
     This version of this YANG module is part of RFC 6991; see
     the RFC itself for full legal notices.";
 
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
+    revision "2013-07-15" {
+      description
+        "This revision adds the following new data types:
       - yang-identifier
       - hex-string
       - uuid
       - dotted-quad";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
+      reference
+        "RFC 6991: Common YANG Data Types";
 
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
+    }
 
-  /*** collection of counter and gauge types ***/
+    revision "2010-09-24" {
+      description "Initial revision.";
+      reference
+        "RFC 6021: Common YANG Data Types";
 
-  typedef counter32 {
-    type uint32;
-    description
-     "The counter32 type represents a non-negative integer
+    }
+
+
+    typedef counter32 {
+      type uint32;
+      description
+        "The counter32 type represents a non-negative integer
       that monotonically increases until it reaches a
       maximum value of 2^32-1 (4294967295 decimal), when it
       wraps around and starts increasing again from zero.
@@ -82,16 +86,17 @@
 
       In the value set and its semantics, this type is equivalent
       to the Counter32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
+      reference
+        "RFC 2578: Structure of Management Information Version 2
+        	  (SMIv2)";
 
-  typedef zero-based-counter32 {
-    type yang:counter32;
-    default "0";
-    description
-     "The zero-based-counter32 type represents a counter32
+    }
+
+    typedef zero-based-counter32 {
+      type counter32;
+      default "0";
+      description
+        "The zero-based-counter32 type represents a counter32
       that has the defined 'initial' value zero.
 
       A schema node of this type will be set to zero (0) on creation
@@ -108,15 +113,16 @@
 
       In the value set and its semantics, this type is equivalent
       to the ZeroBasedCounter32 textual convention of the SMIv2.";
-    reference
-      "RFC 4502: Remote Network Monitoring Management Information
-                 Base Version 2";
-  }
+      reference
+        "RFC 4502: Remote Network Monitoring Management Information
+        	  Base Version 2";
 
-  typedef counter64 {
-    type uint64;
-    description
-     "The counter64 type represents a non-negative integer
+    }
+
+    typedef counter64 {
+      type uint64;
+      description
+        "The counter64 type represents a non-negative integer
       that monotonically increases until it reaches a
       maximum value of 2^64-1 (18446744073709551615 decimal),
       when it wraps around and starts increasing again from zero.
@@ -139,18 +145,22 @@
 
       In the value set and its semantics, this type is equivalent
       to the Counter64 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
+      reference
+        "RFC 2578: Structure of Management Information Version 2
+        	  (SMIv2)";
 
-  typedef zero-based-counter64 {
-    type yang:counter64;
-    default "0";
-    description
-     "The zero-based-counter64 type represents a counter64 that
+    }
+
+    typedef zero-based-counter64 {
+      type counter64;
+      default "0";
+      description
+        "The zero-based-counter64 type represents a counter64 that
       has the defined 'initial' value zero.
 
+
+
+
       A schema node of this type will be set to zero (0) on creation
       and will thereafter increase monotonically until it reaches
       a maximum value of 2^64-1 (18446744073709551615 decimal),
@@ -165,15 +175,16 @@
 
       In the value set and its semantics, this type is equivalent
       to the ZeroBasedCounter64 textual convention of the SMIv2.";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
+      reference
+        "RFC 2856: Textual Conventions for Additional High Capacity
+        	  Data Types";
 
-  typedef gauge32 {
-    type uint32;
-    description
-     "The gauge32 type represents a non-negative integer, which
+    }
+
+    typedef gauge32 {
+      type uint32;
+      description
+        "The gauge32 type represents a non-negative integer, which
       may increase or decrease, but shall never exceed a maximum
       value, nor fall below a minimum value.  The maximum value
       cannot be greater than 2^32-1 (4294967295 decimal), and
@@ -188,15 +199,16 @@
 
       In the value set and its semantics, this type is equivalent
       to the Gauge32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
+      reference
+        "RFC 2578: Structure of Management Information Version 2
+        	  (SMIv2)";
 
-  typedef gauge64 {
-    type uint64;
-    description
-     "The gauge64 type represents a non-negative integer, which
+    }
+
+    typedef gauge64 {
+      type uint64;
+      description
+        "The gauge64 type represents a non-negative integer, which
       may increase or decrease, but shall never exceed a maximum
       value, nor fall below a minimum value.  The maximum value
       cannot be greater than 2^64-1 (18446744073709551615), and
@@ -212,20 +224,19 @@
       In the value set and its semantics, this type is equivalent
       to the CounterBasedGauge64 SMIv2 textual convention defined
       in RFC 2856";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
+      reference
+        "RFC 2856: Textual Conventions for Additional High Capacity
+        	  Data Types";
 
-  /*** collection of identifier-related types ***/
-
-  typedef object-identifier {
-    type string {
-      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-            + '(\.(0|([1-9]\d*)))*';
     }
-    description
-     "The object-identifier type represents administratively
+
+    typedef object-identifier {
+      type string {
+        pattern
+          '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))(\.(0|([1-9]\d*)))*';
+      }
+      description
+        "The object-identifier type represents administratively
       assigned names in a registration-hierarchical-name tree.
 
       Values of this type are denoted as a sequence of numerical
@@ -252,36 +263,39 @@
       this type SHOULD NOT be used to represent the SMIv2 OBJECT
       IDENTIFIER type; the object-identifier-128 type SHOULD be
       used instead.";
-    reference
-     "ISO9834-1: Information technology -- Open Systems
-      Interconnection -- Procedures for the operation of OSI
-      Registration Authorities: General procedures and top
-      arcs of the ASN.1 Object Identifier tree";
-  }
+      reference
+        "ISO9834-1: Information technology -- Open Systems
+        Interconnection -- Procedures for the operation of OSI
+        Registration Authorities: General procedures and top
+        arcs of the ASN.1 Object Identifier tree";
 
-  typedef object-identifier-128 {
-    type object-identifier {
-      pattern '\d*(\.\d*){1,127}';
     }
-    description
-     "This type represents object-identifiers restricted to 128
+
+    typedef object-identifier-128 {
+      type object-identifier {
+        pattern '\d*(\.\d*){1,127}';
+      }
+      description
+        "This type represents object-identifiers restricted to 128
       sub-identifiers.
 
       In the value set and its semantics, this type is equivalent
       to the OBJECT IDENTIFIER type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
+      reference
+        "RFC 2578: Structure of Management Information Version 2
+        	  (SMIv2)";
 
-  typedef yang-identifier {
-    type string {
-      length "1..max";
-      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
     }
-    description
-      "A YANG identifier string as defined by the 'identifier'
+
+    typedef yang-identifier {
+      type string {
+        length "1..max";
+        pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
+        pattern
+          '.|..|[^xX].*|.[^mM].*|..[^lL].*';
+      }
+      description
+        "A YANG identifier string as defined by the 'identifier'
        rule in Section 12 of RFC 6020.  An identifier must
        start with an alphabetic character or an underscore
        followed by an arbitrary sequence of alphabetic or
@@ -290,20 +304,19 @@
        A YANG identifier MUST NOT start with any possible
        combination of the lowercase or uppercase character
        sequence 'xml'.";
-    reference
-      "RFC 6020: YANG - A Data Modeling Language for the Network
-                 Configuration Protocol (NETCONF)";
-  }
+      reference
+        "RFC 6020: YANG - A Data Modeling Language for the Network
+        	  Configuration Protocol (NETCONF)";
 
-  /*** collection of types related to date and time***/
-
-  typedef date-and-time {
-    type string {
-      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-            + '(Z|[\+\-]\d{2}:\d{2})';
     }
-    description
-     "The date-and-time type is a profile of the ISO 8601
+
+    typedef date-and-time {
+      type string {
+        pattern
+          '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[\+\-]\d{2}:\d{2})';
+      }
+      description
+        "The date-and-time type is a profile of the ISO 8601
       standard for representation of dates and times using the
       Gregorian calendar.  The profile is defined by the
       date-time production in Section 5.6 of RFC 3339.
@@ -337,16 +350,17 @@
       date-and-time values with an unknown time zone (usually
       referring to the notion of local time) uses the time-offset
       -00:00.";
-    reference
-     "RFC 3339: Date and Time on the Internet: Timestamps
-      RFC 2579: Textual Conventions for SMIv2
-      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-  }
+      reference
+        "RFC 3339: Date and Time on the Internet: Timestamps
+         RFC 2579: Textual Conventions for SMIv2
+        XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
 
-  typedef timeticks {
-    type uint32;
-    description
-     "The timeticks type represents a non-negative integer that
+    }
+
+    typedef timeticks {
+      type uint32;
+      description
+        "The timeticks type represents a non-negative integer that
       represents the time, modulo 2^32 (4294967296 decimal), in
       hundredths of a second between two epochs.  When a schema
       node is defined that uses this type, the description of
@@ -354,15 +368,16 @@
 
       In the value set and its semantics, this type is equivalent
       to the TimeTicks type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
+      reference
+        "RFC 2578: Structure of Management Information Version 2
+        	  (SMIv2)";
 
-  typedef timestamp {
-    type yang:timeticks;
-    description
-     "The timestamp type represents the value of an associated
+    }
+
+    typedef timestamp {
+      type timeticks;
+      description
+        "The timestamp type represents the value of an associated
       timeticks schema node at which a specific occurrence
       happened.  The specific occurrence must be defined in the
       description of any schema node defined using this type.  When
@@ -377,98 +392,99 @@
 
       In the value set and its semantics, this type is equivalent
       to the TimeStamp textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
+      reference
+        "RFC 2579: Textual Conventions for SMIv2";
 
-  /*** collection of generic address types ***/
-
-  typedef phys-address {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
     }
 
-    description
-     "Represents media- or physical-level addresses represented
+    typedef phys-address {
+      type string {
+        pattern
+          '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+      }
+      description
+        "Represents media- or physical-level addresses represented
       as a sequence octets, each octet represented by two hexadecimal
       numbers.  Octets are separated by colons.  The canonical
       representation uses lowercase characters.
 
       In the value set and its semantics, this type is equivalent
       to the PhysAddress textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
+      reference
+        "RFC 2579: Textual Conventions for SMIv2";
 
-  typedef mac-address {
-    type string {
-      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
     }
-    description
-     "The mac-address type represents an IEEE 802 MAC address.
+
+    typedef mac-address {
+      type string {
+        pattern
+          '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
+      }
+      description
+        "The mac-address type represents an IEEE 802 MAC address.
       The canonical representation uses lowercase characters.
 
       In the value set and its semantics, this type is equivalent
       to the MacAddress textual convention of the SMIv2.";
-    reference
-     "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                Networks: Overview and Architecture
-      RFC 2579: Textual Conventions for SMIv2";
-  }
+      reference
+        "IEEE 802: IEEE Standard for Local and Metropolitan Area
+        	  Networks: Overview and Architecture
+         RFC 2579: Textual Conventions for SMIv2";
 
-  /*** collection of XML-specific types ***/
+    }
 
-  typedef xpath1.0 {
-    type string;
-    description
-     "This type represents an XPATH 1.0 expression.
+    typedef xpath1.0 {
+      type string;
+      description
+        "This type represents an XPATH 1.0 expression.
 
       When a schema node is defined that uses this type, the
       description of the schema node MUST specify the XPath
       context in which the XPath expression is evaluated.";
-    reference
-     "XPATH: XML Path Language (XPath) Version 1.0";
-  }
+      reference
+        "XPATH: XML Path Language (XPath) Version 1.0";
 
-  /*** collection of string types ***/
-
-  typedef hex-string {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
     }
-    description
-     "A hexadecimal string with octets represented as hex digits
+
+    typedef hex-string {
+      type string {
+        pattern
+          '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+      }
+      description
+        "A hexadecimal string with octets represented as hex digits
       separated by colons.  The canonical representation uses
       lowercase characters.";
-  }
-
-  typedef uuid {
-    type string {
-      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
     }
-    description
-     "A Universally Unique IDentifier in the string representation
+
+    typedef uuid {
+      type string {
+        pattern
+          '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
+      }
+      description
+        "A Universally Unique IDentifier in the string representation
       defined in RFC 4122.  The canonical representation uses
       lowercase characters.
 
       The following is an example of a UUID in string representation:
       f81d4fae-7dec-11d0-a765-00a0c91e6bf6
       ";
-    reference
-     "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                Namespace";
-  }
+      reference
+        "RFC 4122: A Universally Unique IDentifier (UUID) URN
+        	  Namespace";
 
-  typedef dotted-quad {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
     }
-    description
-      "An unsigned 32-bit number expressed in the dotted-quad
+
+    typedef dotted-quad {
+      type string {
+        pattern
+          '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
+      }
+      description
+        "An unsigned 32-bit number expressed in the dotted-quad
        notation, i.e., four octets written as decimal numbers
        and separated with the '.' (full stop) character.";
-  }
-}
+    }
+  }  // module ietf-yang-types
+