Adding OpenConfig YANG models.

Change-Id: I0a2fdd5826e80933cf4b9ae939ff3051acec02aa
diff --git a/models/openconfig/src/main/yang/isis/openconfig-isis-lsdb-types.yang b/models/openconfig/src/main/yang/isis/openconfig-isis-lsdb-types.yang
new file mode 100644
index 0000000..b645e35
--- /dev/null
+++ b/models/openconfig/src/main/yang/isis/openconfig-isis-lsdb-types.yang
@@ -0,0 +1,677 @@
+module openconfig-isis-lsdb-types {
+
+  yang-version "1";
+
+  // namespace
+  namespace "http://openconfig.net/yang/isis-lsdb-types";
+
+  prefix "oc-isis-lsdb-types";
+
+  import openconfig-extensions { prefix oc-ext; }
+
+  // meta
+  organization "OpenConfig working group";
+
+  contact
+    "OpenConfig working group
+    www.openconfig.net";
+
+  description
+    "This module contains general LSDB type definitions for use in
+    ISIS YANG model. ";
+
+  oc-ext:openconfig-version "0.3.2";
+
+  revision "2017-07-26" {
+    description
+      "Update LSDB and fix bugs.";
+    reference "0.3.2";
+  }
+
+  revision "2017-05-15" {
+    description
+      "Refactor LSDB.";
+    reference "0.3.0";
+  }
+
+  revision "2017-01-13" {
+    description
+      "Remove top-level /isis container";
+    reference "0.2.1";
+  }
+
+  revision "2016-12-15" {
+    description
+      "Add segment routing to IS-IS module";
+    reference "0.2.0";
+  }
+
+  revision "2016-10-18" {
+    description
+      "Initial revision of IS-IS models.";
+    reference "0.1.0";
+  }
+
+  identity ISIS_TLV_TYPE {
+    description
+      "Base identity for an ISIS TLV type.";
+  }
+
+  identity ISIS_SUBTLV_TYPE {
+    description
+      "Base identity for an ISIS SUB-TLV type.";
+  }
+
+  identity IS_REACHABILITY_SUBTLVS_TYPE {
+    base "ISIS_SUBTLV_TYPE";
+    description
+      "Base identity for an ISIS TLV 22, 23, 222, 223, 141 SUB-TLV
+      type.";
+  }
+
+  identity IP_REACHABILITY_SUBTLVS_TYPE {
+    base "ISIS_SUBTLV_TYPE";
+    description
+      "Base identity for an ISIS TLV 135, 235, 236, 237 SUB-TLV
+      type.";
+  }
+
+  identity ROUTER_CAPABILITY_SUBTLVS_TYPE {
+    base "ISIS_SUBTLV_TYPE";
+    description
+      "Base identity for an ISIS TLV 242 SUB-TLV type.";
+  }
+
+  identity AREA_ADDRESSES {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 1. Intermediate System to Intermediate System Intra-
+      Domain Routeing Exchange Protocol for use in Conjunction with
+      the Protocol for Providing the Connectionless-mode Network
+      Service (ISO 8473), International Standard 10589: 2002, Second
+      Edition, 2002.";
+    reference
+      "ISO 10589";
+  }
+
+  identity IIS_NEIGHBORS {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 2. Intermediate System to Intermediate System Intra-
+      Domain Routeing Exchange Protocol for use in Conjunction with
+      the Protocol for Providing the Connectionless-mode Network
+      Service (ISO 8473), International Standard 10589: 2002, Second
+      Edition, 2002.";
+    reference
+      "ISO 10589";
+  }
+
+  identity INSTANCE_ID {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 7. An Instance Identifier (IID) to uniquely
+      identify an IS-IS instance. When the IID = 0, the list of
+      supported ITIDs MUST NOT be present. An IID-TLV with IID = 0
+      MUST NOT appear in an SNP or LSP. When the TLV appears (with a
+      non-zero IID) in an SNP or LSP, exactly one ITID. MUST be
+      present indicating the topology with which the PDU is
+      associated. If no ITIDs or multiple ITIDs are present or the
+      IID is zero, then the PDU MUST be ignored";
+    reference
+      "RFC6822: IS-IS Multi-Instance";
+  }
+
+  identity AUTHENTICATION {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 10.Intermediate System to Intermediate System Intra-
+      Domain Routeing Exchange Protocol for use in Conjunction with
+      the Protocol for Providing the Connectionless-mode Network
+      Service (ISO 8473) International Standard 10589: 2002, Second
+      Edition, 2002.";
+    reference
+      "ISO 10589";
+  }
+
+  identity PURGE_OI {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 13. If an IS generates a purge, it SHOULD include
+      this TLV in the purge with its own system ID.  If an IS
+      receives a purge that does not include this TLV, then it SHOULD
+      add this TLV with both its own system ID and the system ID of
+      the IS from which it received the purge.  This allows ISs
+      receiving purges to log the system ID of the originator, or the
+      upstream source of the purge.";
+    reference
+      "RFC6232: Purge Originator Identification TLV";
+  }
+
+  identity LSP_BUFFER_SIZE {
+   base "ISIS_TLV_TYPE";
+   description
+     "ISIS TLV 14. The maximum MTU that the advertising system can
+     receive, expressed in bytes.";
+   reference
+     "ISO 10589: LSP Buffer Size TLV";
+  }
+
+  identity EXTENDED_IS_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 22. An extended IS reachability TLV that has a
+      different data structure to TLV 2 that introduces the use of
+      sub-TLV object-group.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering";
+  }
+
+  identity IS_NEIGHBOR_ATTRIBUTE {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 23. Identical in format to TLV 22 and included in
+      Original LSPs or Extended LSPs. Regardless of the type of LSP
+      in which the TLVs appear, the information pertains to the
+      neighbor relationship between the Originating System and the IS
+      identified in the TLV";
+    reference
+      "RFC5311: Simplified Extension of Link State PDU (LSP) Space
+      for IS-IS";
+  }
+
+  identity ISIS_ALIAS_ID {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 24. IS-Alias TLV which extension-capable ISs to
+      recognize the Originating System of an Extended LSP set. It
+      identifies the Normal system-id of the Originating System";
+    reference
+      "RFC5311: Simplified Extension of Link State PDU (LSP) Space
+      for IS-IS";
+  }
+
+  identity IPV4_INTERNAL_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 128. TLV defines IP addresses within the routing
+      domain reachable directly via one or more interfaces on this
+      Intermediate system";
+    reference
+      "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
+      Domain-Wide Prefix Distribution with Two-Level IS-IS";
+  }
+
+  identity NLPID {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 129. TLV defines the set Network Layer Protocol
+      Identifiers for Network Layer protocols that this Intermediate
+      System is capable of relaying";
+    reference
+      "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
+      Dual Environments";
+  }
+
+  identity IPV4_EXTERNAL_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 130. TLV defines IP addresses outside the routing
+      domain reachable via interfaces on this Intermediate system.
+      This is permitted to appear multiple times, and in an LSP with
+      any LSP number. However, this field must not appear in
+      pseudonode LSPs";
+    reference "
+      RFC1195: OSI ISIS for IP and Dual Environments.  RFC5302:
+      Domain-Wide Prefix Distribution with Two-Level IS-IS";
+  }
+
+  identity IPV4_INTERFACE_ADDRESSES {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 132. The IP address of one or more interfaces
+      corresponding to the SNPAs enabled on this Intermediate system
+      (i.e., one or more IP addresses of this router). This is
+      permitted to appear multiple times, and in an LSP with any LSP
+      number.";
+    reference
+      "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
+      Environments";
+  }
+
+  identity IPV4_TE_ROUTER_ID {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 134. Traffic Engineering router ID TLV that contains
+      the 4-octet router ID of the router originating the LSP";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering";
+  }
+
+  identity EXTENDED_IPV4_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 135. Extended IP reachability TLV that provides for a
+      32-bit metric and adds one bit to indicate that a prefix has
+      been redistributed _down_ in the hierarchy";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering";
+  }
+
+  identity DYNAMIC_NAME {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 137. The Dynamic hostname TLV is optional.  This TLV
+      may be present in any fragment of a non-pseudonode LSP.  The
+      value field identifies the symbolic name of the router
+      originating the LSP.  This symbolic name can be the FQDN for the
+      router, it can be a subset of the FQDN, or it can be any string
+      operators want to use for the router.";
+    reference
+      "RFC6233: IS-IS Registry Extension for Purges, RFC 5301: Dynamic
+      Hostname Exchange Mechanism for IS-IS.";
+  }
+
+  identity IPV4_SRLG {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 138. IPv4 Shared Risk Link Group TLV";
+    reference
+      "RFC5307: IS-IS Extensions in Support of Generalized
+      Multi-Protocol Label Switching (GMPLS)";
+  }
+
+  identity IPV6_SRLG {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 139. IPv6 Shared Risk Link Group";
+    reference
+      "RFC6119: IPv6 Traffic Engineering in IS-IS";
+  }
+
+  identity IPV6_TE_ROUTER_ID {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 140. The IPv6 TE Router ID TLV contains a 16-octet
+      IPv6 address. A stable global IPv6 address MUST be used, so that
+      the router ID provides a routable address, regardless of the
+      state of a node's interfaces. If a router does not implement
+      traffic engineering, it MAY include or omit the IPv6 TE Router
+      ID TLV.  If a router implements traffic engineering for IPv6, it
+      MUST include this TLV in its LSP.  This TLV MUST NOT be included
+      more than once in an LSP.";
+    reference
+      "RFC6119: IPv6 Traffic Engineering in IS-IS.";
+  }
+
+  identity MT_ISN {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 222. TLV is aligned with extended IS reachability TLV
+      type 22 beside an additional two bytes in front at the beginning
+      of the TLV that. indicate MT membership.";
+    reference
+      "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
+      System to Intermediate Systems (IS-ISs)";
+  }
+
+  identity MT_IS_NEIGHBOR_ATTRIBUTE {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 223. Is is identical in format to TLV 222. In the
+      event that there is a need to advertise in Extended LSPs such
+      information associated with neighbors of the Originating System,
+      it is necessary to define new TLVs to carry the sub-TLV
+      information.";
+    reference
+      "RFC5311: Simplified Extension of Link State PDU (LSP) Space for
+      IS-IS";
+  }
+
+  identity MULTI_TOPOLOGY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 229. This MT TLV can advertise up to 127 MTs.  It is
+      announced in IIHs and LSP fragment 0, and can occur multiple
+      times.  The resulting MT set SHOULD be the union of all the MT
+      TLV occurrences in the packet. Any other IS-IS PDU occurrence of
+      this TLV MUST be ignored.  Lack of MT TLV in hellos and fragment
+      zero LSPs MUST be interpreted as participation of the
+      advertising interface or router in MT ID #0 only.  If a router
+      advertises MT TLV, it has to advertise all the MTs it
+      participates in, specifically including topology ID #0 also.";
+    reference
+      "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
+      System to Intermediate Systems (IS-ISs)";
+  }
+
+  identity IPV6_INTERFACE_ADDRESSES {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 232. IPv6 Interface Address TLV that maps directly to
+      the IP Interface Address TLV in [RFC1195]. We necessarily modify
+      the contents to be 0-15 16-octet IPv6 interface addresses
+      instead of 0-63 4-octet IPv4 interface addresses";
+    reference "RFC5308: Routing IPv6 with IS-IS.";
+  }
+
+  identity MT_IPV4_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 235. TLV is aligned with extended IP reachability TLV
+      type 135 beside an additional two bytes in front to indicate MT
+      membership";
+    reference
+      "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
+      System to Intermediate Systems (IS-ISs)";
+  }
+
+  identity IPV6_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 236. The IPv6 Reachability TLV describes network
+      reachability through the specification of a routing prefix,
+      metric information, a bit to indicate if the prefix is being
+      advertised down from a higher level, a bit to indicate if the
+      prefix is being distributed from another routing protocol, and
+      OPTIONALLY the existence of Sub-TLVs to allow for later
+      extension.";
+    reference
+      "RFC5308: Routing IPv6 with IS-IS";
+  }
+
+  identity MT_IPV6_REACHABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 237. TLV is aligned with IPv6 Reachability TLV type
+      236 beside an additional two bytes in front to indicate MT
+      membership.";
+    reference
+      "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
+      System to Intermediate Systems (IS-ISs).";
+  }
+
+  identity ROUTER_CAPABILITY {
+    base "ISIS_TLV_TYPE";
+    description
+      "ISIS TLV 242. IS-IS TLV named CAPABILITY, formed of multiple
+      sub-TLVs, which allows a router to announce its capabilities
+      within an IS-IS level or the entire routing domain.";
+    reference
+      "RFC4971: Intermediate System to Intermediate System (IS-IS)
+      Extensions for Advertising Router Information.";
+  }
+
+  //sub-TLVs for TLVs 22, 23, 141, 222, 223
+
+  identity IS_REACHABILITY_ADMIN_GROUP {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 3. Administrative group(color).";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering";
+  }
+
+  identity IS_REACHABILITY_LINK_ID {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 4. Link Local/Remote Identifiers.";
+    reference
+      "RFC5307: IS-IS Extensions in Support of Generalized
+      Multi-Protocol Label Switching (GMPLS)";
+  }
+
+  identity IS_REACHABILITY_IPV4_INTERFACE_ADDRESS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 6. IPv4 Interface Address.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 8. IPv4 Neighbor Address.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_MAX_LINK_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 9. Maximum Link Bandwidth.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 10. Maximum Reservable Bandwidth.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_UNRESERVED_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 11. Unreserved bandwidth.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_IPV6_INTERFACE_ADDRESS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 12. IPv6 Interface Address.";
+    reference
+      "RFC6119: IPv6 Traffic Engineering in IS-IS.";
+  }
+
+  identity IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 13. IPv6 Neighbor Address.";
+    reference
+      "RFC6119: IPv6 Traffic Engineering in IS-IS.";
+  }
+
+  identity IS_REACHABILITY_EXTENDED_ADMIN_GROUP {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 14. Extended Administrative Group.";
+    reference
+      "RFC7308: Extended Administrative Groups in MPLS Traffic
+      Engineering (MPLS-TE).";
+  }
+
+  identity IS_REACHABILITY_TE_DEFAULT_METRIC {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 18. TE Default Metric.";
+    reference
+      "RFC5305: IS-IS Extensions for Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_LINK_ATTRIBUTES {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 19. Link Attributes.";
+    reference
+      "RFC5209: Definition of an IS-IS Link Attribute Sub-TLV.";
+  }
+
+  identity IS_REACHABILITY_LINK_PROTECTION_TYPE {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 20. Link Protection Type.";
+    reference
+      "RFC5307: IS-IS Extensions in Support of Generalized
+      Multi-Protocol  Label Switching (GMPLS)";
+  }
+
+  identity IS_REACHABILITY_BANDWIDTH_CONSTRAINTS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 22. Bandwidth Constraints.";
+    reference
+      "RFC4124: Protocol Extensions for Support of Diffserv-aware MPLS
+      Traffic Engineering.";
+  }
+
+  identity IS_REACHABILITY_UNCONSTRAINED_LSP {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 23. Unconstrained LSP.";
+    reference
+      "RFC5330: A Link-Type sub-TLV to Convey the Number of Traffic
+      Engineering Label Switched Paths Signalled with Zero
+      Reserved Bandwidth across a Link.";
+  }
+
+  identity IS_REACHABILITY_ADJ_SID {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 31. Adjacency Segment Identifier.";
+    reference
+      "draft-ietf-isis-segment-routing-extensions.";
+  }
+
+  identity IS_REACHABILITY_ADJ_LAN_SID {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 32. Adjacency LAN Segment Identifier.";
+    reference
+      "draft-ietf-isis-segment-routing-extensions.";
+  }
+
+  identity IS_REACHABILITY_LINK_DELAY {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 33. Unidirectional Link Delay.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_MIN_MAX_LINK_DELAY {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 34. Min/Max Unidirectional Link Delay.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_LINK_DELAY_VARIATION {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 35. Unidirectional Link Delay Variation.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_LINK_LOSS {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 36. Unidirectional Link Loss Delay.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_RESIDUAL_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 37. Unidirectional Residual Bandwidth.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_AVAILABLE_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 38. Unidirectional Available Bandwidth.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  identity IS_REACHABILITY_UTILIZED_BANDWIDTH {
+    base "IS_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 39. Unidirectional Utilized Bandwidth.";
+    reference
+      "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
+  }
+
+  //sub-TLVs for TLVs 135, 235, 236, 237
+  identity IP_REACHABILITY_TAG {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 1. 32-bit Administrative Tag.";
+    reference
+      "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
+      Reachability.";
+  }
+
+  identity IP_REACHABILITY_TAG64 {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 2. 64-bit Administrative Tag.";
+    reference
+      "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
+      Reachability.";
+  }
+
+  identity IP_REACHABILITY_PREFIX_SID {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 3. Prefix Segment Identifier.";
+    reference
+      "draft-ietf-isis-segment-routing-extension.";
+  }
+
+  identity IP_REACHABILITY_PREFIX_FLAGS {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 4. Prefix Attribute Flags.";
+    reference
+      "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
+      Reachability.";
+  }
+
+  identity IP_REACHABILITY_IPV4_ROUTER_ID {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 11. IPv4 Source Router ID.";
+    reference
+      "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
+      Reachability.";
+  }
+
+  identity IP_REACHABILITY_IPV6_ROUTER_ID {
+    base "IP_REACHABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 12. IPv6 Source Router ID.";
+    reference
+      "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
+      Reachability.";
+  }
+
+
+  //sub-TLVs for TLVs 242
+
+  identity ROUTER_CAPABILITY_SR_CAPABILITY {
+    base "ROUTER_CAPABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 2. Segment Routing Capability.";
+    reference
+      "draft-ietf-isis-segment-routing-extensions.";
+  }
+
+  identity ROUTER_CAPABILITY_SR_ALGORITHM {
+    base "ROUTER_CAPABILITY_SUBTLVS_TYPE";
+    description
+      "sub-TLV 19. Segment Routing Algorithm.";
+    reference
+      "draft-ietf-isis-segment-routing-extensions.";
+  }
+
+}