diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-isis-lsp.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-isis-lsp.yang | 3592 |
1 files changed, 0 insertions, 3592 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-isis-lsp.yang b/src/plugins/yang/openconfig/openconfig-isis-lsp.yang deleted file mode 100644 index 02f8b79..0000000 --- a/src/plugins/yang/openconfig/openconfig-isis-lsp.yang +++ /dev/null @@ -1,3592 +0,0 @@ -submodule openconfig-isis-lsp { - - belongs-to openconfig-isis { - prefix oc-isis; - } - import openconfig-extensions { prefix "oc-ext"; } - import openconfig-inet-types { prefix "inet"; } - import openconfig-isis-types { prefix "oc-isis-types"; } - import openconfig-isis-lsdb-types { prefix "oc-isis-lsdb-types"; } - import openconfig-types { prefix "oc-types"; } - import openconfig-mpls-types { prefix "oc-mpls-types"; } - // meta - organization - "OpenConfig working group"; - - contact - "OpenConfig working group - www.openconfig.net "; - - description - "This sub-module describes a YANG model for the IS-IS Link State - Database (LSDB). - - Portions of this code were derived from IETF RFCs relating to the - IS-IS protocol. - Please reproduce this note if possible. - IETF code is subject to the following copyright and license: - Copyright (c) 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)."; - - oc-ext:openconfig-version "0.4.0"; - - revision "2018-05-14" { - description - "Update LSDB model to correct Extended IS reach TLV - bug. This change is backwards incompatible due to - adding an additional level of hierarchy to support - multiple instances of the TLV."; - reference "0.4.0"; - } - - 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"; - } - - typedef isis-metric-flags { - type enumeration { - enum INTERNAL { - description - "When this flag is not set, internal metrics are in use."; - } - enum UNSUPPORTED { - description - "When this flag (referred to as the S-bit) is set, then - the metric is unsupported."; - } - } - description - "Type definition for flags used in IS-IS metrics"; - } - - grouping isis-lsdb-link-characteristics-a-bit { - description - "Definition of the A bit, as used in IS-IS link delay TLVs."; - - leaf a-bit { - type boolean; - description - "The A bit is set when the measured value of this parameter - exceeds its configured maximum threshold. The A bit is cleared - when the measured value falls below its configured reuse - threshold."; - } - } - - grouping isis-lsdb-tlv-nlpid-state { - description - "NLP ID parameters for IS-IS."; - - leaf-list nlpid { - type enumeration { - enum IPV4 { - description "IPv4 Address family."; - } - enum IPV6 { - description "IPv6 Address family."; - } - } - description - "Protocol supported. IPv4 is defined as (0xcc) and IPv6 - - (0x8e)"; - reference - "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and - Dual Environments. TLV 129. "; - } - } - - grouping isis-lsdb-subtlv-type-state { - description - "Per-subTLV type operational state parameters for ISIS."; - - leaf type { - type identityref { - base oc-isis-lsdb-types:ISIS_SUBTLV_TYPE; - } - description - "The type of subTLV being described. The type of subTLV is - expressed as a canonical name."; - } - } - - grouping isis-lsdb-tlv-type-state { - description - "Per-subTLV type operational state parameters for ISIS."; - - leaf type { - type identityref { - base oc-isis-lsdb-types:ISIS_TLV_TYPE; - } - description - "The type of TLV being described. The type of TLV is - expressed as a canonical name."; - } - } - - grouping is-reachability-neighbor-state { - description - "This grouping defines is-reachability neighbor."; - - container subtlvs { - description - "This container describes IS Neighbor sub-TLVs."; - - list subtlv { - key "type"; - - description - "List of subTLV types in the LSDB for the specified TLV."; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the sub-TLV type."; - } - - container state { - description - "State parameters of IS neighbor state"; - - uses isis-lsdb-subtlv-type-state; - } - - container admin-group { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_ADMIN_GROUP'" { - description - "Only include the administrative group container when - the sub-TLV is type 3"; - } - description - "This container defines sub-TLV 3."; - - container state { - description - "State parameters of sub-TLV 3."; - - leaf-list admin-group { - type uint32; - description - "The administrative group sub-TLV contains a 4-octet - bit mask assigned by the network administrator. Each - set bit corresponds to one administrative group - assigned to the interface. By convention, the least - significant bit is referred to as group 0, and the - most significant bit is referred to as group 31."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - sub-TLV 3: TLV 22,23,141,222, 223."; - } - } - } - - container link-id { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ID'" { - description - "Only include the link identifier container when the - sub-TLV is type 4"; - } - description - "This container defines sub-TLV 4."; - - container state { - description - "State parameters of sub-TLV 4."; - - leaf local { - type uint32; - description - "The value field of this sub-TLV contains 4 octets of - Link Local Identifier followed by 4 octets of Link - Remote Identifier."; - reference - "RFC5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV - 22,23,141,222, 223."; - } - - leaf remote { - type uint32; - description - "If the Link Remote Identifier is unknown, it is set - to 0."; - reference - "RFC5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV - 22,23,141,222, 223."; - } - } - } - - container ipv4-interface-address { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_INTERFACE_ADDRESS'" { - description - "Only include the IPv4 interface address group container - when the sub-TLV is type 6"; - } - description - "This container defines sub-TLV 6."; - - container state { - description - "State parameters of sub-TLV 6."; - - leaf-list address { - type inet:ipv4-address; - description - "A 4-octet IPv4 address for the interface described by - the (main) TLV. This sub-TLV can occur multiple - times."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - sub-TLV 6: TLV 22,23,41,222,223."; - } - } - } - - container ipv4-neighbor-address { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS'" { - description - "Only include the IPv4 neighbor address container when - the sub-TLV is type 8."; - } - description - "This container defines sub-TLV 8."; - - container state { - description - "State parameters of sub-TLV 8."; - - leaf-list address { - type inet:ipv4-address; - description - "A single IPv4 address for a neighboring router on - this link. This sub-TLV can occur multiple times."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - sub-TLV 8: TLV 22,23, 141,222,223."; - } - } - } - - container max-link-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_LINK_BANDWIDTH'" { - description - "Only include the maximum link bandwidth container when - the sub-TLV is type 9."; - } - description - "This container defines sub-TLV 9."; - - container state { - description - "State parameters of sub-TLV 9."; - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The maximum bandwidth that can be used on this link - in this direction (from the system originating the LSP - to its neighbors). It is encoded in 32 bits in IEEE - floating point format. The units are bytes (not - bits!) per second."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - sub-TLV 9: TLV 22,23,141,222,223."; - } - } - } - - container max-reservable-link-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH'" { - description - "Only include the maximum reservable link bandwidth - container when the sub-TLV type is 10."; - } - description - "This container defines sub-TLV 10."; - - container state { - description - "State parameters of sub-TLV 10."; - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The maximum amount of bandwidth that can be reserved - in this direction on this link. Note that for - oversubscription purposes, this can be greater than - the bandwidth of the link. It is encoded in 32 bits - in IEEE floating point format. The units are bytes - (not bits!) per second."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - Sub-TLV 10: TLV 22,23,141,222,223."; - } - } - } - - container unreserved-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_UNRESERVED_BANDWIDTH'" { - description - "Only include the unreserved bandwidth container when - the sub-TLV type is 11."; - } - description - "This container defines unreserved-bandwidth. The units - are bytes per second."; - - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. sub- - TLV 11: TLV 22,23,141,222,223"; - - list setup-priority { - key "priority"; - - leaf priority { - type leafref { - path "../state/priority"; - } - description - "Reference to the setup priority to which the - unreserved bandwidth corresponds."; - } - - description - "Setup priority (0 through 7) for unreserved - bandwidth."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 11."; - - leaf priority { - type uint8 { - range "0..7"; - } - description - "Setup priority level of 0 through 7 to be used by - Unreserved Bandwidth sub-TLV 11."; - } - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The amount of bandwidth reservable in this - direction on this link. Note that for - oversubscription purposes, this can be greater than - the bandwidth of the link. It contains eight 32-bit - IEEE floating point numbers(one for each priority). - The units are bytes (not bits!) per second. The - values correspond to the bandwidth that can be - reserved with a setup priority of 0 through 7, - arranged in increasing order with priority 0 - occurring at the start of the sub-TLV, and priority - 7 at the end of the sub-TLV."; - } - } - } - } - - container ipv6-interface-address { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_INTERFACE_ADDRESS'" { - description - "Only include the IPv6 interface address when the - sub-TLV type is 12."; - } - description - "This container defines sub-TLV 12."; - - container state { - description - "State parameters of sub-TLV 12."; - - leaf-list address { - type inet:ipv6-address; - description - "Contains a 16-octet IPv6 address for the interface - described by the containing Extended IS Reachability - TLV. This sub-TLV can occur multiple times."; - reference - "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV - 12: TLV 22,23,141,222,223."; - } - } - } - - container ipv6-neighbor-address { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS'" { - description - "Only include the IPv6 neighbor address when the - sub-TLV type is 13."; - } - description - "This container defines sub-TLV 13."; - - container state { - description - "State parameters of sub-TLV 13."; - - leaf-list address { - type inet:ipv6-address; - description - "Contains a 16-octet IPv6 address for a neighboring - router on the link described by the (main) TLV. This - sub-TLV can occur multiple times."; - reference - "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV - 13: ISIS TLV 22,23,141,222,223."; - } - } - } - - container extended-admin-group { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_EXTENDED_ADMIN_GROUP'" { - description - "Only include the extended admin group when the - sub-TLV type is 14."; - } - description - "This container defines sub-TLV 14."; - container state { - description - "State parameters of sub-TLV 14."; - - leaf-list extended-admin-group { - type uint32; - description - "The extended-admin-group sub-TLV is used in addition - to the Administrative Groups when it is desirable to - make more than 32 colors available for advertisement - in a network."; - reference - "RFC7308: Extended Administrative Groups in MPLS - Traffic Engineering (MPLS-TE). sub-TLV 14: TLV - 22,23,141,222,223."; - } - } - } - - container te-default-metric { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_TE_DEFAULT_METRIC'" { - description - "Only include the default traffic engineering metric - container when the sub-TLV type is 18."; - } - description - "This container defines sub-TLV 18."; - container state { - description - "State parameters of sub-TLV 18."; - - leaf metric { - type uint32; - description - "This metric is administratively assigned and can be - used to present a differently weighted topology to - traffic engineering SPF calculations. To preclude - overflow within a traffic engineering SPF - implementation, all metrics greater than or equal to - MAX_PATH_METRIC SHALL be considered to have a metric - of MAX_PATH_METRIC."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. - sub-TLV 18: TLV 22,23,141,222,223."; - } - } - } - - container link-attributes { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ATTRIBUTES'" { - description - "Only include the link attributes container when the - sub-TLV is type 19."; - } - description - "This container defines link-attributes."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 19."; - - leaf-list local-protection { - type enumeration { - enum LOCAL_PROTECTION { - description - "If set, local protection is available for the - link."; - } - enum LINK_EXCLUDED { - description - "If set, the link is excluded from local - protection."; - } - } - description - "Link local-protection attributes."; - - reference - "RFC5029: Definition of an IS-IS Link Attribute Sub- - TLV. TLV 22, sub-TLV 19."; - } - } - } - - container link-protection-type { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_PROTECTION_TYPE'" { - description - "Only include the link protection type container when - the sub-TLV type 20."; - } - description - "ISIS LSDB parameters relating to the type of link - protection offered."; - - container state { - description - "State parameters of sub-TLV 20."; - - leaf-list type { - type enumeration { - enum EXTRA_TRAFFIC { - description - "If set the link has extra traffic protection. If - the link is of type Extra Traffic, it means that - the link is protecting another link or links. The - LSPs on a link of this type will be lost if any of - the links it is protecting fail."; - } - enum UNPROTECTED { - description - "If set, the link is unprotected. If the link is - of type Unprotected, it means that there is no - other link protecting this link. The LSPs on a - link of this type will be lost if the link - fails."; - } - enum SHARED { - description - "If set, the link has shared protection. If the - link is of type Shared, it means that there are - one or more disjoint links of type Extra Traffic - that are protecting this link. These Extra - Traffic links are shared between one or more links - of type Shared."; - } - enum ONE_ONE { - description - "If set, the link has dedicated 1:1 protection. If - the link is of type Dedicated 1:1, it means that - there is one dedicated disjoint link of type Extra - Traffic that is protecting this link."; - } - enum PLUS_ONE { - description - "If set, the link has dedicated 1+1 protection. If - the link is of type Dedicated 1+1, it means that a - dedicated disjoint link is protecting this link. - However, the protecting link is not advertised in - the link state database and is therefore not - available for the routing of LSPs."; - } - enum ENHANCED { - description - "If set the link has enhanced protection. If the - link is of type Enhanced, it means that a - protection scheme that is more reliable than - Dedicated 1+1, e.g., 4 fiber BLSR/MS-SPRING, is - being used to protect this link."; - } - } - description - "Link protection capabilities."; - reference - "RFC5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS). sub-TLV 20: - TLV 22,23,141,222,223."; - } - } - } - - container bandwidth-constraints { - when "../state/type =" + - "'oc-isis-lsdb-types:IS_REACHABILITY_BANDWIDTH_CONSTRAINTS'" { - description - "Only include the bandwidth constraints container when - the sub-TLV is type 22."; - } - description - "This container defines bandwidth-constraints. For DS-TE, - the existing Maximum Reservable link bandwidth parameter - is retained, but its semantics is generalized and - interpreted as the aggregate bandwidth constraint across - all Class-Types"; - - reference - "RFC4124: Protocol Extensions for Support of Diffserv- - aware MPLS Traffic Engineering. sub-TLV 22: TLV 22, 23, - 141, 222,223"; - - list bandwidth-constraint { - key "model-id"; - - description - "List of the Bandwidth Constraints sub-TLV instances - present in the TLV."; - - leaf model-id { - type leafref { - path "../state/model-id"; - } - description - "Reference to the model ID associated with the - instance of the Bandwidth Constraints sub-TLV."; - } - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 22."; - - leaf model-id { - type uint8; - description - "Identifier for the Bandwidth Constraints Model - currently in use by the LSR initiating the IGP - advertisement."; - } - } - - container constraints { - description - "Constraints contained within the Bandwidth - Constraints sub-TLV"; - - list constraint { - key "constraint-id"; - - description - "List of the constraints within the Bandwidth - Constraints sub-TLV. The BC0 level is indicated by - the constraint-id leaf being set to 0, with BCN - being indicated by constraint-id N."; - - leaf constraint-id { - type leafref { - path "../state/constraint-id"; - } - description - "Reference to the unique ID for the BCN level."; - } - - container state { - description - "Operational state parameters of the BCN level"; - - leaf constraint-id { - type uint32; - description - "Unique reference for the bandwidth constraint level. BC0 - is indicated by this leaf being set to zero, with BCN - represented by this leaf being set to N."; - } - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The bandwidth constraint, expressed as a 32-bit IEEE - floating point number expressed in bytes per second."; - } - } - } - } - } - } - - container unconstrained-lsp { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_UNCONSTRAINED_LSP'" { - description - "Only include the unconstrained LSP container when the - sub-TLV is type 23."; - } - description - "This container defines sub-TLV 23."; - container state { - description - "State parameters of sub-TLV 23."; - - uses isis-lsdb-subtlv-type-state; - - leaf count { - type uint16; - description - "Unconstrained TE LSP count(TE Label Switched Paths - (LSPs) signalled with zero bandwidth)."; - 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. sub-TLV - 23: TLV 22,23,141,222,223"; - } - } - } - - container adjacency-sids { - when "../state/type = 'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_SID'" { - description - "Only include the adjacency SIDs container when the - sub-TLV type is 31"; - } - - description - "This container defines segment routing adjacency SIDs."; - - list adjacency-sid { - key "value"; - - description - "Adjacency Segment-IDs List. An IGP-Adjacency Segment is - an IGP segment attached to a unidirectional adjacency or - a set of unidirectional adjacencies. By default, an IGP- - Adjacency Segment is local to the node which advertises - it."; - - leaf value { - type leafref { - path "../state/value"; - } - description - "Reference to the value of the Adjacency-SID."; - } - - container state { - description - "State parameters of Adjacency-SID."; - - leaf value { - type uint32; - description - "Adjacency-SID value."; - } - - leaf-list flags { - type enumeration { - enum ADDRESS_FAMILY { - description - "Address-family flag. When unset, the Adj-SID - refers to an adjacency with outgoing IPv4 - encapsulation. If set then the Adj-SID refers to - an adjacency with outgoing IPv6 encapsulation."; - } - enum BACKUP { - description - "Backup flag. When set, the Adj-SID refers to an - adjacency being protected (e.g.: using IPFRR or - MPLS-FRR)."; - } - enum VALUE { - description - "Value flag. When set, the SID carries a value - (instead of an index). By default the flag is - SET."; - } - enum LOCAL { - description - "Local flag. When set, the value/index carried - by the SID has local significance. By default - the flag is SET."; - } - enum SET { - description - "Set flag. When set, the S-Flag indicates that - the Adj-SID refers to a set of adjacencies."; - } - } - description - "Flags associated with Adj-Segment-ID."; - } - - leaf weight { - type uint8; - description - "Value that represents the weight of the Adj-SID for - the purpose of load balancing."; - } - } - } - - reference - "draft-ietf-isis-segment-routing-extensions. sub-TLV 31: - TLV 22, 222, 223, 141. "; - } - - container lan-adjacency-sids { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_LAN_SID'" { - description - "Only include the LAN adjacency SID container when - the sub-TLV is type 32."; - } - description - "This container defines segment routing LAN adjacency - SIDs"; - - list lan-adjacency-sid { - key "value"; - - description - "Adjacency Segment-IDs List. An IGP-Adjacency Segment is - an IGP segment attached to a unidirectional adjacency or - a set of unidirectional adjacencies. By default, an IGP- - Adjacency Segment is local to the node which advertises - it."; - - leaf value { - type leafref { - path "../state/value"; - } - description - "Reference to the value of the LAN Adjacency-SID."; - } - - container state { - description - "State parameters of LAN Adjacency-SID."; - - leaf value { - type uint32; - description - "LAN Adjacency-SID value."; - } - - leaf-list flags { - type enumeration { - enum ADDRESS_FAMILY { - description - "Address-family flag. When unset, the Adj-SID - refers to an adjacency with outgoing IPv4 - encapsulation. If set then the Adj-SID refers to - an adjacency with outgoing IPv6 encapsulation."; - } - enum BACKUP { - description - "Backup flag. When set, the Adj-SID refers to an - adjacency being protected (e.g.: using IPFRR or - MPLS-FRR)."; - } - enum VALUE { - description - "Value flag. When set, the SID carries a value - (instead of an index). By default the flag is - SET."; - } - enum LOCAL { - description - "Local flag. When set, the value/index carried - by the SID has local significance. By default - the flag is SET."; - } - enum SET { - description - "Set flag. When set, the S-Flag indicates that - the Adj-SID refers to a set of adjacencies."; - } - } - description - "Flags associated with LAN-Adj-Segment-ID."; - } - - leaf weight { - type uint8; - description - "Value that represents the weight of the Adj-SID - for the purpose of load balancing."; - } - - leaf neighbor-id { - type oc-isis-types:system-id; - description - "System ID of the neighbor associated with the LAN- - Adj-Segment-ID value."; - } - } - } - - reference - "draft-ietf-isis-segment-routing-extensions. sub-TLV 32: - TLV 22, 222, 223, 141."; - } - - container link-delay { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY'" { - description - "Include the link delay container only when the sub-TLV - type is type 33."; - } - description - "This container defines unidirectional link delay."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 33: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 33."; - - uses isis-lsdb-link-characteristics-a-bit; - - leaf delay { - type uint32; - units microseconds; - description - "Average link delay value (in microseconds) between - two directly connected IS-IS neighbors over a - configurable interval."; - } - } - } - - container min-max-link-delay { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_MIN_MAX_LINK_DELAY'" { - description - "Only include the min/max link delay container when the - sub-TLV is type 34."; - } - description - "This container defines min/max link delay."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 34: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 34."; - - uses isis-lsdb-link-characteristics-a-bit; - - leaf min-delay { - type uint32; - units microseconds; - description - "Minimum measured link delay value(in microseconds) - between two directly connected IS-IS neighbors over a - configurable interval."; - } - - leaf max-delay { - type uint32; - units microseconds; - description - "Maximum measured link delay value(in microseconds) - between two directly connected IS-IS neighbors over a - configurable interval."; - } - } - } - - container link-delay-variation { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY_VARIATION'" { - description - "Only include the link delay variation container when - the sub-TLV is type 35."; - } - description - "This container defines unidirectional link delay - variation."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 35: TLV 22,23,141,222,223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 35."; - - leaf delay { - type uint32; - units microseconds; - description - "Average link delay between two directly connected IS- - IS neighbors over a configurable interval."; - } - } - } - - container link-loss { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_LOSS'" { - description - "Only include the link loss container when the sub-TLV - is type 36."; - } - description - "This container defines unidirectional link loss delay."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 36: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 36."; - - uses isis-lsdb-link-characteristics-a-bit; - - leaf link-loss { - type uint32; - description - "Link packet loss as a percentage of the total traffic - sent over a configurable interval. The basic unit is - 0.000003%, where (2^24 - 2) is 50.331642%. This value - is the highest packet-loss percentage that can be - expressed (the assumption being that precision is more - important on high-speed links than the ability to - advertise loss rates greater than this, and that high- - speed links with over 50% loss are unusable). - Therefore, measured values that are larger than the - field maximum SHOULD be encoded as the maximum - value."; - } - } - } - - container residual-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_RESIDUAL_BANDWIDTH'" { - description - "Only include the resdiual bandwidth container when the - sub-TLV is type 37."; - } - description - "This container defines unidirectional residual - bandwidth."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 37: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 37."; - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "Residual bandwidth on a link,forwarding adjacency - [RFC4206], or bundled link in IEEE floating-point - format with units of bytes per second. For a link or - forwarding adjacency, residual bandwidth is defined to - be the Maximum Bandwidth [RFC5305] minus the bandwidth - currently allocated to RSVP-TE label switched paths. - For a bundled link, residual bandwidth is defined to - be the sum of the component link residual - bandwidths."; - } - } - } - - container available-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_AVAILABLE_BANDWIDTH'" { - description - "Only include the available bandwdith container when the - sub-TLV is type 38."; - } - description - "This container defines unidirectional lavailable - bandwidth."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 38: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 38."; - - uses isis-lsdb-subtlv-type-state; - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The available bandwidth on a link, forwarding - adjacency, or bundled link in IEEE floating-point - format with units of bytes per second. For a link or - forwarding adjacency, available bandwidth is defined - to be residual bandwidth minus the measured bandwidth - used for the actual forwarding of non-RSVP-TE label - switched path packets. For a bundled link, available - bandwidth is defined to be the sum of the component - link available bandwidths minus the measured bandwidth - used for the actual forwarding of non-RSVP-TE label - switched path packets. For a bundled link, available - bandwidth is defined to be the sum of the component - link available bandwidths."; - } - } - } - - container utilized-bandwidth { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_REACHABILITY_UTILIZED_BANDWIDTH'" { - description - "Only include the utilized bandwidth container when the - TLV is type 39."; - } - description - "This container defines unidirectional utilized - bandwidth."; - - reference - "RFC7810: IS-IS Traffic Engineering (TE) Metric - Extensions. sub-TLV 39: TLV 22, 23, 141, 222, 223."; - - container state { - description - "State parameters of IS Extended Reachability sub-TLV - 39."; - - uses isis-lsdb-subtlv-type-state; - - leaf bandwidth { - type oc-types:ieeefloat32; - units "bytes per second"; - description - "The bandwidth utilization on a link, forwarding - adjacency, or bundled link in IEEE floating-point - format with units of bytes per second. For a link or - forwarding adjacency, bandwidth utilization represents - the actual utilization of the link (i.e., as measured - by the advertising node). For a bundled link, - bandwidth utilization is defined to be the sum of the - component link bandwidth utilizations."; - } - } - } - } - } - - uses isis-lsdb-undefined-subtlv; - } - - grouping isis-lsdb-undefined-tlv { - description - "Grouping for unknown TLVs in the IS-IS LSDB"; - - container undefined-tlvs { - description - "Surrounding container for a list of unknown TLVs."; - - list undefined-tlv { - key "type"; - description - "List of TLVs that are not defined within the model, or are - not recognised by the system."; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the undefined TLV's type"; - } - - container state { - description - "State parameters of the undefined TLV."; - - uses undefined-tlv-state; - } - } - } - } - - grouping isis-lsdb-undefined-subtlv { - description - "Grouping for unknown Sub-TLVs in the IS-IS LSDB."; - - container undefined-subtlvs { - description - "This container describes undefined ISIS TLVs."; - - list undefined-subtlv { - key "type"; - - description - "Sub-TLVs that are not defined in the model or not - recognised by system."; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the type of the undefined sub-TLV"; - } - - container state { - description - "State parameters of the undefined sub-TLV."; - - uses undefined-subtlv-state; - } - } - } - } - - grouping isis-lsdb-prefix-state { - description - "This grouping defines prefix reachability."; - - container subtlvs { - description - "This container describes IS prefix sub-TLVs."; - - list subtlv { - key "type"; - - description - "List of subTLV types in the LSDB for the specified TLV."; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the sub-TLV type"; - } - - container state { - description - "State parameters for a prefix."; - - uses isis-lsdb-subtlv-type-state; - } - - container tag { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_TAG'" { - description - "Only include the tag container when the sub-TLV is type - 1."; - } - description - "This container defines sub-TLV 1."; - - container state { - description - "State parameters of sub-TLV 1."; - - leaf-list tag32 { - type uint32; - description - "List of 32-bit tags associated with the prefix. Example - uses of these tags include carrying BGP standard (or - extended) communities and controlling redistribution - between levels and areas, different routing protocols, - or multiple instances of IS-IS running on the same - router."; - reference - "RFC5130: A Policy Control Mechanism in IS-IS Using - Administrative Tags. sub-TLV 1."; - } - } - } - - container tag64 { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_TAG64'" { - description - "Only include the tag64 container when the sub-TLV is type - 2."; - } - description - "This container defines sub-TLV 2."; - - container state { - description - "State parameters of sub-TLV 2."; - - leaf-list tag64 { - type uint64; - description - "List of 64-bit tags associated with the prefix. Example - uses of these tags include carrying BGP standard (or - extended) communities and controlling redistribution - between levels and areas, different routing protocols, - or multiple instances of IS-IS running on the same - router."; - reference - "RFC5130: A Policy Control Mechanism in IS-IS Using - Administrative Tags. sub-TLV 2."; - } - } - } - - container flags { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_FLAGS'" { - description - "Only include the flags container when the sub-TLV is type - 4."; - } - description - "This container defines sub-TLV 4."; - - container state { - description - "State parameters of sub-TLV 4."; - - uses isis-lsdb-subtlv-type-state; - - leaf-list flags { - type enumeration { - enum EXTERNAL_FLAG { - description - "External prefix flag. Set if the prefix has been - redistributed from another protocol. This includes - the case where multiple virtual routers are - supported and the source of the redistributed prefix - is another IS-IS instance."; - } - enum READVERTISEMENT_FLAG { - description - "Readvertisement flag. Set when the prefix has been - leaked from one level to another (upwards or - downwards)."; - } - enum NODE_FLAG { - description - "Node flag. Set when the prefix identifies the - advertising router, i.e., the prefix is a host - prefix advertising a globally reachable address - typically associated with a loopback address."; - } - } - description - "Additional prefix reachability flags."; - - reference - "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and - IPv6 Reachability. sub-TLV 4."; - } - } - } - - container ipv4-source-router-id { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_IPV4_ROUTER_ID'" { - description - "Only include the IPv4 Source Router ID container when - the sub-TLV is type 11."; - } - description - "This container defines sub-TLV 11."; - - container state { - description - "State parameters of sub-TLV 11."; - - uses isis-lsdb-subtlv-type-state; - - leaf router-id { - type inet:ipv4-address; - description - "IPv4 Source router ID address. In cases where the - advertisement is an identifier for the advertising - router (e.g., with the N-flag set in the Prefix - Attribute Flags sub-TLV), it may be useful for other - routers to know the source of the advertisement. When - reachability advertisement is leaked from one level to - another, Router ID advertised is always the Router ID - of the IS-IS instance that originated the - advertisement. This would be true even if the prefix - had been learned from another protocol."; - reference - "RFC7794: IS-IS Prefix Attributes for Extended IPv4 - and IPv6 Reachability. sub-TLV 11"; - } - } - } - - container ipv6-source-router-id { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_IPV6_ROUTER_ID'" { - description - "Only include the IPv6 Source Router ID container when - the sub-TLV is type 12."; - } - description - "This container defines sub-TLV 12."; - - container state { - description - "State parameters of sub-TLV 12."; - - uses isis-lsdb-subtlv-type-state; - - leaf router-id { - type inet:ipv6-address; - description - "IPv6 Source router ID address. In cases where the - advertisement is an identifier for the advertising - router (e.g., with the N-flag set in the Prefix - Attribute Flags sub-TLV), it may be useful for other - routers to know the source of the advertisement. When - reachability advertisement is leaked from one level to - another, Router ID advertised is always the Router ID - of the IS-IS instance that originated the - advertisement. This would be true even if the prefix - had been learned from another protocol."; - reference - "RFC7794: IS-IS Prefix Attributes for Extended IPv4 - and IPv6 Reachability. sub-TLV 12."; - } - } - } - - uses isis-lsdb-prefix-sid-state; - } - } - - uses isis-lsdb-undefined-subtlv; - } - - grouping isis-lsdb-prefix-sid-state { - description - "This grouping defines ISIS Prefix SID."; - - container prefix-sids { - when "../state/type = " + - "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_SID'" { - description - "Only include the Prefix SID container when - the sub-TLV is type 3."; - } - description - "This container defines segment routing extensions for - prefixes."; - - reference - "draft-ietf-isis-segment-routing-extensions. sub-TLV 3: TLV - 135, 235, 236, 237."; - - list prefix-sid { - key "value"; - - description - "Prefix Segment-ID list. IGP-Prefix Segment is an IGP segment - attached to an IGP prefix. An IGP-Prefix Segment is global - (unless explicitly advertised otherwise) within the SR/IGP - domain."; - - leaf value { - type leafref { - path "../state/value"; - } - description - "Reference to the value of the prefix SID."; - } - - container state { - description - "State parameters for Prefix-SID."; - - leaf value { - type uint32; - description - "IGP Prefix-SID value."; - } - - leaf-list flags { - type enumeration { - enum READVERTISEMENT { - description - "Readvertisment flag. When set, the prefix to which - this Prefix-SID is attached, has been propagated by - the router either from another level or from - redistribution."; - } - enum NODE { - description - "Node flag. When set, the Prefix-SID refers to the - router identified by the prefix. Typically, the - N-Flag is set on Prefix-SIDs attached to a router - loopback address."; - } - enum NO_PHP { - description - "Penultimate-Hop-Popping flag. When set, then the - penultimate hop MUST NOT pop the Prefix-SID before - delivering the packet to the node that advertised - the Prefix-SID."; - } - enum EXPLICIT_NULL { - description - "Explicit-Null flag. When set, any upstream neighbor - of the Prefix-SID originator MUST replace the - Prefix-SID with a Prefix-SID having an Explicit-NULL - value (0 for IPv4 and 2 for IPv6) before forwarding - the packet."; - } - enum VALUE { - description - "Value flag. When set, the Prefix-SID carries a - value (instead of an index). By default the flag is - UNSET."; - } - enum LOCAL { - description - "Local flag. When set, the value/index carried by - the Prefix-SID has local significance. By default - the flag is UNSET."; - } - } - description - "Flags associated with Prefix Segment-ID."; - } - - leaf algorithm { - type uint8; - description - "Prefix-SID algorithm to be used for path computation."; - } - } - } - } - } - - grouping isis-lsdb-common-metric-specification { - description - "Common definitions of the metric in IS-IS."; - - container default-metric { - description - "This container defines ISIS Default Metric."; - - container state { - description - "State parameters for default-metric."; - - leaf flags { - type enumeration { - enum INTERNAL { - description - "When set to zero, indicates internal metrics."; - } - } - description - "ISIS Default-Metric Flags."; - } - - leaf metric { - type oc-isis-types:narrow-metric; - description - "ISIS default metric value. This is a metric understood by - every Intermediate system in the domain. Each circuit - shall have a positive integral value assigned for this - metric. The value may be associated with any objective - function of the circuit, but by convention is intended to - measure the capacity of the circuit for handling traffic, - for example, its throughput in bits-per-second. Higher - values indicate a lower capacity."; - } - } - } - - container delay-metric { - description - "This container defines the ISIS delay metric."; - - container state { - description - "State parameters of delay-metric."; - - leaf metric { - type oc-isis-types:narrow-metric; - description - "ISIS delay metric value. This metric measures the transit - delay of the associated circuit. It is an optional metric, - which if assigned to a circuit shall have a positive - integral value. Higher values indicate a longer transit - delay."; - } - - leaf-list flags { - type isis-metric-flags; - description - "ISIS Delay Metric Flags."; - } - } - } - - container expense-metric { - description - "This container defines the ISIS expense metric."; - - container state { - description - "State parameters of expense-metric."; - - leaf metric { - type oc-isis-types:narrow-metric; - description - "ISIS expense metric value. This metric measures the - monetary cost of utilising the associated circuit. It is - an optional metric, which if assigned to a circuit shall - have a positive integral value1). Higher values indicate a - larger monetary expense."; - } - - leaf-list flags { - type isis-metric-flags; - description - "ISIS Expense Metric Flags."; - } - } - } - - container error-metric { - description - "This container defines the ISIS error metric."; - - container state { - description - "State parameters of error-metric."; - - leaf metric { - type oc-isis-types:narrow-metric; - description - "ISIS error metric value. This metric measures the - residual error probability of the associated circuit. It - is an optional metric, which if assigned to a circuit - shall have a non-zero value. Higher values indicate a - larger probability of undetected errors on the circuit."; - } - - leaf-list flags { - type isis-metric-flags; - description - "IS-IS error metric flags."; - } - } - } - } - - grouping isis-lsdb-neighbor { - description - "This grouping defines attributes of an ISIS standard - neighbor."; - - container state { - description - "State parameters of IS standard neighbor."; - - leaf system-id { - type oc-isis-types:system-id; - description - "System-ID of IS neighbor."; - } - } - - uses isis-lsdb-common-metric-specification; - - } - - grouping ipv4-prefix-attributes-state { - description - "This group defines attributes of an IPv4 standard prefix."; - - container state { - description - "State parameters of IPv4 standard prefix."; - - leaf up-down { - type boolean; - description - "The up/down bit. Set if a prefix is advertised from a - higher level to a lower level (e.g., level 2 to level 1), - indicating that the prefix has traveled down the hierarchy. - Prefixes that have the up/down bit set may only be - advertised down the hierarchy, i.e., to lower levels. When a - prefix is first injected into IS-IS, the bit is UNSET."; - } - - leaf prefix { - type inet:ipv4-prefix; - description - "IPv4 prefix contained within reachability TLVs."; - } - } - - uses isis-lsdb-common-metric-specification; - } - - grouping isis-lsdb-common-mt-id { - description - "Common definition of the multi-topology ID"; - - leaf mt-id { - type uint16 { - range "0..4095"; - } - description - "Multi-topology ID"; - } - } - - grouping ipv4-prefix-extended-state { - description - "This grouping defines attributes of an IPv4 extended prefix."; - - container state { - description - "State parameters of an IPv4 extended prefix."; - uses ipv4-prefix-extended-params-state; - } - - uses isis-lsdb-prefix-state; - } - - grouping ipv4-mt-prefix-extended-state { - description - "State parameters that relate to an IPv4 prefix in a - multi-topology context."; - - container state { - description - "State parameters of an IPv4 extended prefix."; - uses ipv4-prefix-extended-params-state; - uses isis-lsdb-common-mt-id; - } - - uses isis-lsdb-prefix-state; - } - - grouping ipv4-prefix-extended-params-state { - description - "State parameters that relate to an IPv4 prefix"; - - leaf up-down { - type boolean; - description - "The up/down bit. Set if a prefix is advertised from a - higher level to a lower level (e.g., level 2 to level 1), - indicating that the prefix has traveled down the hierarchy. - Prefixes that have the up/down bit set may only be - advertised down the hierarchy, i.e., to lower levels. When a - prefix is first injected into IS-IS, the bit is UNSET."; - } - - leaf s-bit { - type boolean; - description - "The Sub-TLV present bit. If UNSET, the octets of Sub-TLVs - are not present. Otherwise, the bit is set and the octet - following the prefix will contain the length of the Sub-TLV - portion of the structure."; - } - - leaf prefix { - type inet:ipv4-prefix; - description - "IPv4 prefix contained within extended reachability TLVs."; - } - - leaf metric { - type oc-isis-types:wide-metric; - description - "ISIS metric value."; - } - } - - grouping ipv6-prefix-extended-state { - description - "State parameters relating to an IPv6 prefix."; - - container state { - description - "State parameters of IPv6 prefix attributes"; - - uses ipv6-prefix-extended-params-state; - } - - uses isis-lsdb-prefix-state; - } - - grouping ipv6-mt-prefix-extended-state { - description - "State parameters relating to a multi-topology IPv6 - prefix."; - - container state { - description - "State parameters relating an IPv6 prefix attribute"; - uses ipv6-prefix-extended-params-state; - uses isis-lsdb-common-mt-id; - } - - uses isis-lsdb-prefix-state; - } - - grouping ipv6-prefix-extended-params-state { - description - "Common parameters of an IPv6 extended prefix."; - - leaf up-down { - type boolean; - description - "The up/down bit. Set if a prefix is advertised from a - higher level to a lower level (e.g., level 2 to level 1), - indicating that the prefix has traveled down the hierarchy. - Prefixes that have the up/down bit set may only be - advertised down the hierarchy, i.e., to lower levels. When a - prefix is first injected into IS-IS, the bit is UNSET."; - } - - leaf x-bit { - type boolean; - description - "The external bit. Set when the prefix was distributed into - IS-IS from another routing protocol."; - } - - leaf s-bit { - type boolean; - description - "The sub-tlv present bit. If UNSET, the octets of Sub-TLVs - are not present. Otherwise, the bit is set and the octet - following the prefix will contain the length of the Sub-TLV - portion of the structure."; - } - - leaf prefix { - type inet:ipv6-prefix; - description - "IPv6 prefix contained within extended reachability TLVs."; - } - - leaf metric { - type oc-isis-types:wide-metric; - description - "ISIS metric value."; - } - } - - grouping isis-lsdb-common-extisreach-neighbors { - description - "Common structure for the Extended IS Reachability and IS - Reachability Neighbour attributes."; - - container neighbors { - description - "This container describes IS neighbors."; - - list neighbor { - key "system-id"; - description - "This list describes ISIS extended neighbors and - reachability attributes."; - - leaf system-id { - type leafref { - path "../state/system-id"; - } - description - "Reference to the neighboring system's system ID."; - } - - container state { - description - "State parameters corresponding to the extended - neighbour."; - - leaf system-id { - type oc-isis-types:system-id; - description - "System-id of the neighbor."; - } - } - - container instances { - description - "This list contains all instances of an adjacency - between the originating IS and the remote IS. - Multiple instances are used where there are - parallel adjacencies between two systems."; - - list instance { - key "id"; - - description - "Instance of the TLV to the remote IS neighbor."; - - leaf id { - type leafref { - path "../state/id"; - } - description - "Reference to the unique identifier for - the instance of the extended IS - reachability sub-TLV."; - } - - container state { - description - "State parameters of extended neighbor"; - - leaf id { - type uint64; - description - "Unique identifier for the instance of the - TLV for the IS neighbor. The instance - ID is not required to be consistent across - across readvertisements of the LSP."; - } - - leaf metric { - type oc-isis-types:wide-metric; - description - "Metric value."; - } - } - uses is-reachability-neighbor-state; - } - } - } - } - } - - grouping isis-lsdb-mtis-common { - description - "Common grouping for structure used within the multi-topology IS - neighbour and multi-topology IS neighbour attribute TLVs."; - - container neighbors { - description - "MT-IS neigbor attributes."; - - list neighbor { - key "mt-id system-id"; - description - "This container describes IS neighbors."; - - leaf mt-id { - type leafref { - path "../state/mt-id"; - } - description - "Reference to the topology that the neighbor is - within."; - } - - leaf system-id { - type leafref { - path "../state/system-id"; - } - description - "Reference to the System ID of the neighbor."; - } - - container state { - description - "Operational state parameters related to the - MT ISN TLV."; - - uses mt-isis-neighbor-state; - } - - container instances { - description - "This list contains all instances of an adjacency - between the originating and remote IS. Multiple - instances are used to indicate where there are - parallel adjacencies between systems."; - - list instance { - key "id"; - - description - "Instance of TLV-222 between the originating - and remote IS."; - - leaf id { - type leafref { - path "../state/id"; - } - description - "Reference to the unique identifier for the - instance of the multi-topology IS neighbor - TLV instance."; - } - - uses mt-isis-neighbor-instance; - } - } - } - } - } - - grouping mt-isis-neighbor-state { - description - "This grouping defines state parameters that are related to - each neighbour entry for the MT ISN TLV."; - - leaf mt-id { - type uint16 { - range "0..4095"; - } - description - "Identifier of a topology being announced."; - } - - leaf system-id { - type oc-isis-types:system-id; - description - "System-id of the IS neighbor."; - } - } - - grouping mt-isis-neighbor-instance { - description - "This grouping defines list of ISIS multi-topology neighbors for - extended ISIS LSP (multiple system IDs)."; - - container state { - description - "State parameters of MT neighbor."; - - leaf metric { - type oc-isis-types:wide-metric; - description - "ISIS metric value."; - } - - leaf id { - type uint64; - description - "Unique identifier for the TLV instance for the - neighbor. The ID is not required to be consistent - across readvertisements of the LSP."; - } - } - uses is-reachability-neighbor-state; - } - - grouping isis-lsdb-generic-tlv { - description - "Generic TLV encoding grouping."; - - leaf type { - type uint8; - description - "TLV Type."; - } - - leaf length { - type uint8; - description - "TLV length."; - } - - leaf value { - type binary; - description - "TLV value."; - } - } - - grouping undefined-tlv-state { - description - "Generic grouping defining an unknown TLV."; - - uses isis-lsdb-generic-tlv; - } - - grouping undefined-subtlv-state { - description - "Generic grouping defining an unknown sub-TLV."; - - uses isis-lsdb-generic-tlv; - } - - grouping lsp-state { - description - "This grouping defines ISIS LSP state information."; - - leaf lsp-id { - type leafref { - path "../state/lsp-id"; - } - - description - "A reference to the Link State PDU ID."; - } - - container state { - description - "State parameters of Link State PDU."; - - leaf lsp-id { - type oc-isis-types:lsp-id; - description - "LSP ID of the LSP."; - } - - leaf maximum-area-addresses { - type uint8; - description - "Number of area addresses permitted for this ISs area. 0 - indicates the IS only supports three area addresses (by - default). Any number inclusive of 1 and 254 indicates the - number of areas allowed."; - } - - leaf version { - type uint8; - default 1; - description - "PDU version. This is set to 1."; - } - - leaf version2 { - type uint8; - default 1; - description - "PDU version2. This is set to 1"; - } - - leaf id-length { - type uint8; - description - "Length of the ID field of NSAP addresses and NETs used in - this routing domain."; - } - - leaf pdu-type { - type enumeration { - enum LEVEL_1 { - description "This enum describes ISIS level 1 PDU."; - } - enum LEVEL_2 { - description "This enum describes ISIS level 2 PDU."; - } - } - description - "Link State PDU type."; - } - - leaf remaining-lifetime { - type uint16; - units "seconds"; - description - "Remaining lifetime in seconds before the LSP expiration."; - } - - leaf sequence-number { - type uint32; - description - "Sequence number of the LSP."; - } - - leaf checksum { - type uint16; - description - "Checksum of the LSP."; - } - - leaf pdu-length { - type uint16; - description - "Total length of the LSP."; - } - - leaf-list flags { - type enumeration { - enum PARTITION_REPAIR { - description - "When set, the originator supports partition - repair."; - } - enum ATTACHED_ERROR { - description - "When set, the originator is attached to another - area using the referred metric."; - } - enum ATTACHED_EXPENSE { - description - "When set, the originator is attached to another - area using the referred metric."; - } - enum ATTACHED_DELAY { - description - "When set, the originator is attached to another - area using the referred metric."; - } - enum ATTACHED_DEFAULT { - description - "When set, the originator is attached to another - area using the referred metric."; - } - enum OVERLOAD { - description - "When set, the originator is overloaded, and must - be avoided in path calculation."; - } - } - description - "LSP Type-Block flags."; - } - - leaf is-type { - type oc-isis-types:level-number; - description - "Type of neighboring system."; - } - } - - container tlvs { - description - "This container defines Link State PDU State TLVs."; - - list tlv { - key "type"; - - description - "List of TLV types in the LSDB for the specified LSP."; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the TLV's type."; - } - - container state { - config false; - description - "Operational state parameters relating to the specified - LSP"; - - uses isis-lsdb-tlv-type-state; - } - - container area-address { - when "../state/type = 'oc-isis-lsdb-types:AREA_ADDRESSES'" { - description - "Include area address parameters only when the TLV type - is TLV 1."; - } - - description - "This container defines TLV 1."; - - container state { - description - "State parameters of ISIS TLV 1."; - - leaf-list address { - type oc-isis-types:area-address; - description - "Area adress(es) of the IS. Set of manual area - addresses of this IS."; - reference - "ISO 10589 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. TLV 1."; - } - } - } - - container lsp-buffer-size { - when "../state/type = " + - "'oc-isis-lsdb-types:LSP_BUFFER_SIZE'" { - description - "Include the LSP buffer size parameters only when the - TLV type is TLV 14."; - } - - description - "This container defines TLV 14 - the LSP Buffer Size - TLV."; - - container state { - description - "State parameters of TLV 14."; - - leaf size { - type uint16; - units "bytes"; - description - "The maximum MTU that the advertising system can - receive, expressed in bytes."; - reference - "ISO 10589 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. TLV 14."; - } - } - } - - container nlpid { - when "../state/type = 'oc-isis-lsdb-types:NLPID'" { - description - "Include NLPID specification only when the TLV type is - TLV 129."; - } - - description - "This container defines TLV 129."; - - container state { - description - "State parameters of ISIS TLV 129."; - - uses isis-lsdb-tlv-nlpid-state; - } - } - - container hostname { - when "../state/type = 'oc-isis-lsdb-types:DYNAMIC_NAME'" { - description - "Include the dynamic hostname TLV only when the TLV is - type 137."; - } - description - "This container defines TLV 137."; - - container state { - description - "State parameters of ISIS TLV 137."; - - leaf-list hostname { - type string; - description - "Name of the node."; - - reference - "RFC6233: IS-IS Registry Extension for Purges, RFC - 5301: Dynamic Hostname Exchange Mechanism for IS-IS. - TLV 137"; - } - } - } - - container ipv4-interface-addresses { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV4_INTERFACE_ADDRESSES'" { - description - "Include the IPv4 interface addresses TLV only when the - TLV is type 132."; - } - description - "This container defines TLV 132."; - - container state { - description - "State parameters of ISIS TLV 132."; - - leaf-list address { - type inet:ipv4-address; - description - "IPv4 address(es) of the interface corresponding to - the SNPA over which this PDU is to be transmitted."; - reference - "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and - Dual Environments. TLV 132."; - } - } - } - - container ipv6-interface-addresses { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV6_INTERFACE_ADDRESSES'" { - description - "Include the IPv6 interface addresses TLV only when the - TLV is type 232."; - } - description - "This container defines TLV 232."; - - container state { - description - "State parameters of ISIS TLV 232."; - - leaf-list address { - type inet:ipv6-address; - description - "IPv6 interface addresses of the node. MUST contain - only the non-link-local IPv6 addresses assigned to the - IS."; - reference - "RFC5308: Routing IPv6 with IS-IS. TLV 232."; - } - } - } - - container ipv4-te-router-id { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV4_TE_ROUTER_ID'" { - description - "Include the IPv4 traffic engineering router ID TLV only - when the TLV is type 134."; - } - description - "This container defines TLV 134."; - - container state { - description - "State parameters of ISIS TLV 134."; - - leaf-list router-id { - type inet:ipv4-address; - description - "IPv4 Traffic Engineering router ID of the node. For - traffic engineering, it guarantees that we have a - single stable address that can always be referenced in - a path that will be reachable from multiple hops away, - regardless of the state of the node's interfaces."; - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. TLV - 134."; - } - } - } - - container ipv6-te-router-id { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV6_TE_ROUTER_ID'" { - description - "Include the IPv6 traffic engineering router ID TLV only - when the TLV is type 140."; - } - description - "This container defines TLV 140."; - - container state { - description - "State parameters of ISIS TLV 140."; - - leaf-list router-id { - type inet:ipv6-address; - description - "IPv6 Traffic Engineering router ID of the node. For - traffic engineering, it guarantees that we have a - single stable address that can always be referenced in - a path that will be reachable from multiple hops away, - regardless of the state of the node's interfaces."; - reference - "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV - 140."; - } - } - } - - container instance-ids { - when "../state/type = 'oc-isis-lsdb-types:INSTANCE_ID'" { - description - "Include the ISIS Instance Identifier TLV only when the - TLV is type 7."; - } - description - "This container defines ISIS Instance Identifier TLV."; - reference "RFC6822: IS-IS Multi-Instance. TLV 7."; - - list instance-id { - key "instance-id"; - - description - "A list of instance IDs received within TLV 7 within an - IS-IS LSP. In the case that more than one instance of - TLV 7 is included in the LSP, the instance IDs specified - within the instances are concatenated within this - list."; - - leaf instance-id { - type leafref { - path "../state/instance-id"; - } - description - "Reference to the unique instance ID."; - } - container state { - description - "State parameters of ISIS TLV 7."; - - leaf instance-id { - type uint16; - description - "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."; - } - - leaf-list topology-id { - type uint16; - description - "Instance-Specific Topology Identifiers (ITIDs)."; - } - } - } - } - - container ipv4-srlgs { - when "../state/type = 'oc-isis-lsdb-types:IPV4_SRLG'" { - description - "Include the IPv4 SRLG TLV only when the TLV is type - 138."; - } - description - "This container defines ISIS SRLG TLV 138."; - - reference - "RFC5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS). TLV 138."; - - list ipv4-srlg { - key "instance-number"; - - description - "Instance of the IPv4 SRLG TLV"; - - leaf instance-number { - type leafref { - path "../state/instance-number"; - } - description - "Reference to the instance number of TLV 138."; - } - - container state { - description - "State parameters of TLV 138."; - - leaf instance-number { - type uint32; - description - "An arbitrary unsigned 32-bit integer used to - disambiguate the instance of TLV 138. The instance - identifier is synthesised by the system - and may be renumbered for the same SRLG definition - in subsequent advertised LSPs if (and only if) the - entire list of SRLGs is replaced."; - } - - leaf system-id { - type oc-isis-types:system-id; - description - "Neighbor system ID."; - } - - leaf psn-number { - type uint8; - description - "Pseudonode number if the neighbor is on a LAN - interface."; - } - - leaf-list flags { - type enumeration { - enum NUMBERED { - description - "When set, the interface is numbered, whereas if - unset indicates that the interface is - unnumbered."; - } - } - description - "SRLG flags."; - } - - leaf ipv4-interface-address { - type inet:ipv4-address; - description - "IPv4 interface address."; - } - - leaf ipv4-neighbor-address { - type inet:ipv4-address; - description - "IPv4 neighbor address."; - } - - leaf-list srlg-value { - type uint32; - description - "List of SRLG values."; - } - } - } - } - - container ipv6-srlgs { - when "../state/type = 'oc-isis-lsdb-types:IPV6_SRLG'" { - description - "Include the IPv6 SRLG TLV only when the TLV is type - 139."; - } - description - "This container defines ISIS SRLG TLV."; - - reference - "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV 139."; - - list ipv6-srlg { - key "instance-number"; - - description - "Instance of the IPv6 SRLG TLV."; - - leaf instance-number { - type leafref { - path "../state/instance-number"; - } - description - "Reference to the instance number of the IPv6 Shared - Risk Link Group (SRLG) TLV."; - } - - container state { - description - "State parameters of TLV 139."; - - leaf instance-number { - type uint32; - description - "An arbitrary unsigned 32-bit integer used to - disambiguate the instance of TLV 138. The instance - identifier is synthesised by the system - and may be renumbered for the same SRLG definition - in subsequent advertised LSPs if (and only if) the - entire list of SRLGs is replaced."; - } - - leaf system-id { - type oc-isis-types:system-id; - description - "Neighbor system ID."; - } - - leaf psn-number { - type uint8; - description - "Pseudonode number if the neighbor is on a LAN - interface."; - } - - leaf-list flags { - type enumeration { - enum NA { - description - "When set, the IPv6 neighbour address is - included, whereas if unset, it is omitted"; - } - } - description - "IPv6 SRLG flags."; - } - - leaf ipv6-interface-address { - type inet:ipv6-address; - description - "IPv6 interface address or Link Local Identifier."; - } - - leaf ipv6-neighbor-address { - type inet:ipv6-address; - description - "IPv6 neighbor address or Link Remote Identifier."; - } - - leaf-list srlg-value { - type uint32; - description - "SRLG values."; - } - } - } - } - - container purge-oi { - when "../state/type = 'oc-isis-lsdb-types:PURGE_OI'" { - description - "Only include the purge originator identitication TLV - when the TLV type is 13."; - } - description - "This container defines ISIS purge TLV."; - - reference - "RFC6232: Purge Originator Identification TLV for IS-IS. - TLV 13."; - - container state { - description - "State parameters of TLV 13."; - - leaf system-id-count { - type uint8; - description - "Number of system IDs carried in this TLV."; - } - - leaf source-system-id { - type oc-isis-types:system-id; - description - "System ID of the Intermediate System that inserted - this TLV."; - } - - leaf received-system-id { - type oc-isis-types:system-id; - description - "System ID of the Intermediate System from which the - purge was received."; - } - } - } - - container router-capabilities { - when "../state/type = " + - "'oc-isis-lsdb-types:ROUTER_CAPABILITY'" { - description - "Only include the router capability TLV when the TLV is - type 242."; - } - description - "This container defines router capabilities."; - - list capability { - key "instance-number"; - - description - "This list describes IS Router capabilities."; - - reference - "RFC4971: Intermediate System to Intermediate System - (IS-IS) Extensions for Advertising Router Information. - TLV 242."; - - leaf instance-number { - type leafref { - path "../state/instance-number"; - } - description - "Reference to the instance number of the router - capability TLV."; - } - - container state { - description - "State parameters of TLV 242."; - - leaf instance-number { - type uint32; - description - "A unique instance number for the instance of the - router capabilities TLV. The instance number should - be autogenerated by the producer of the data and may - be renumbered if the entire LSP contents are - replaced in subsequent advertisements."; - } - - leaf router-id { - type inet:ipv4-address; - description - "IPv4 router-id."; - } - - leaf-list flags { - type enumeration { - enum FLOOD { - description - "When the S bit is set(1), the IS - IS Router - CAPABILITY TLV MUST be flooded across the entire - routing domain. When the S bit is not set(0), - the TLV MUST NOT be leaked between levels . This - bit MUST NOT be altered during the TLV - leaking."; - } - enum DOWN { - description - "When the IS-IS Router CAPABILITY TLV is leaked - from level - 2 to level-1, the Down bit MUST be - set. Otherwise, this bit MUST be clear. IS - IS - Router capability TLVs with the Down bit set - MUST NOT be leaked from level - 1 to level-2. - This is to prevent TLV looping."; - } - } - description - "Router capability flags."; - } - } - - container subtlvs { - description - "This container describes router capability TLV - sub-TLVs"; - - list subtlv { - key "type"; - description - "List of subTLV types in the LSDB for the specified - TLV"; - - leaf type { - type leafref { - path "../state/type"; - } - description - "Reference to the sub-TLV type"; - } - - container state { - description - "State parameters of IS Router Capabilities"; - - uses isis-lsdb-subtlv-type-state; - } - - container segment-routing-algorithms { - when "../state/type = " + - "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_ALGORITHM'" { - description - "Only include segment routing algorithm when the - sub-TLV is type 19."; - } - description - "This container defines SR algorithm sub-TLV 19."; - - reference - "draft-ietf-isis-segment-routing-extensions. - TLV 242, sub-TLV 19"; - - container state { - description - "State parameters of sub-TLV 19 - Segment - Routing Algorithm."; - - leaf-list algorithm { - type enumeration { - enum SPF { - value 0; - description - "Shortest Path First (SPF) algorithm - based on link metric. This is the - well-known shortest path algorithm as - computed by the IS-IS Decision process. - Consistent with the deployed practice - for link-state protocols, algorithm 0 - permits any node to overwrite the SPF - path with a different path based on - local policy."; - } - enum STRICT_SPF { - value 1; - description - "Strict Shortest Path First (SPF) - algorithm based on link metric. The - algorithm is identical to algorithm 0 - but algorithm 1 requires that all nodes - along the path will honor the SPF - routing decision. Local policy MUST NOT - alter the forwarding decision computed - by algorithm 1 at the node claiming to - support algorithm 1."; - } - } - description - "The Segment Routing algorithm that is - described by the TLV."; - } - } - } - - container segment-routing-capability { - when "../state/type = " + - "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_CAPABILITY'" { - description - "Only include the SR capability sub-TLV when - the sub-TLV type is 2."; - } - description - "This container defines SR Capability sub-TLV 2."; - - reference - "draft-ietf-isis-segment-routing-extensions. TLV - 242, sub-TLV 2."; - - container state { - description - "State parameters of IS SR Router Capability"; - - leaf-list flags { - type enumeration { - enum IPV4_MPLS { - description - "When set, the router is capable of - processing SR MPLS encapsulated IPv4 - packets on all interfaces."; - } - enum IPV6_MPLS { - description - "When set, the router is capable of - processing SR MPLS encapsulated IPv6 - packets on all interfaces."; - } - enum IPV6_SR { - description - "When set, the router is capable of - processing the IPv6 Segment Routing Header - on all interfaces."; - } - } - description - "Segment Routing Capability Flags."; - } - } - - container srgb-descriptors { - description - "SRGB Descriptors included within the SR - capability sub-TLV"; - - list srgb-descriptor { - key "range"; - description - "Descriptor entry within the SR capabilty - sub-TLV"; - - leaf range { - type leafref { - path "../state/range"; - } - description - "Reference to unique SRGB Descriptor."; - } - - container state { - description - "State parameters of the SR range"; - - leaf range { - type uint32; - description - "Number of SRGB elements. The range - value MUST be greater than 0."; - } - - leaf label { - type oc-mpls-types:mpls-label; - description - "The first value of the SRGB when - expressed as an MPLS label."; - } - } - } - } - } - } - } - uses isis-lsdb-undefined-subtlv; - } - } - - container is-reachability { - when "../state/type = 'oc-isis-lsdb-types:IIS_NEIGHBORS'" { - description - "Include IIS_NEIGHBORS sub-TLV when the TLV type is 2."; - } - description - "This container describes list of ISIS neighbors and - attributes."; - - reference - "ISO 10589, 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. TLV 2."; - - container neighbors { - description - "This container describes IS neighbors."; - - list neighbor { - key "system-id"; - description - "IS reachability neighbor attributes."; - - leaf system-id { - type leafref { - path "../state/system-id"; - } - description - "Reference to the system ID of the neighbor."; - } - - uses isis-lsdb-neighbor; - } - } - } - - container ipv4-internal-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV4_INTERNAL_REACHABILITY'" { - description - "Include IPv4 internal reachability TLV when the TLV - type is specified as 128."; - } - description - "This container defines list of IPv4 internal reachability - information."; - - reference - "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302: - Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV - 128"; - - container prefixes { - description - "This container describes IS prefixes."; - - list prefix { - key "prefix"; - - description - "IPv4 prefixes and internal reachability attributes."; - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the IPv4 prefix"; - } - - uses ipv4-prefix-attributes-state; - } - } - } - - container ipv4-external-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV4_EXTERNAL_REACHABILITY'" { - description - "Include IPv4 external reachability when the TLV type - is set to 130."; - } - description - "This container defines list of IPv4 external reachability - information."; - - reference - "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302: - Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV - 130"; - - container prefixes { - description - "This container describes IS neighbors."; - - list prefix { - key "prefix"; - - description - "IPv4 external prefixes and reachability attributes."; - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the IPv4 prefix."; - } - - uses ipv4-prefix-attributes-state; - } - } - } - - container authentication { - when "../state/type = 'oc-isis-lsdb-types:AUTHENTICATION'" { - description - "Only include the authentication TLV when the TLV is - type 10."; - } - description - "This container defines authentication information of the - node."; - - reference - "ISO 10589 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. - TLV 10."; - - container state { - description - "State parameters of TLV 10."; - - leaf crypto-type { - type enumeration { - enum HMAC_MD5 { - description - "HMAC-MD5 Authentication type."; - } - enum CLEARTEXT { - description - "Cleartext Authentication type."; - } - } - description - "Authentication type to be used."; - } - - leaf authentication-key { - type string; - description - "Authentication key to be used."; - } - } - } - - container extended-is-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:EXTENDED_IS_REACHABILITY'" { - description - "Only included the extended IS reachability TLV when the - TLV is type 22."; - } - - description - "This container defines list of ISIS extended reachability - neighbors."; - - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. TLV - 22."; - - uses isis-lsdb-common-extisreach-neighbors; - } - - container extended-ipv4-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:EXTENDED_IPV4_REACHABILITY'" { - description - "Only include the extended IPv4 reachability container - when the TLV type is 135."; - } - description - "This container defines list of IPv4 extended reachability - information."; - - reference - "RFC5305: IS-IS Extensions for Traffic Engineering. TLV - 135"; - - container prefixes { - description - "This container describes IS prefixes."; - - list prefix { - key "prefix"; - - description - "This list describes IPv4 extended prefixes and - attributes."; - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the IPv4 prefix that the TLV describes - the attributes of."; - } - - uses ipv4-prefix-extended-state; - } - } - } - - container ipv6-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:IPV6_REACHABILITY'" { - description - "Only include the IPv6 reachability container when the - TLV type is 236."; - } - description - "This container defines list of IPv6 reachability - information."; - - reference - "RFC5308: Routing IPv6 with IS-IS. TLV 236"; - - container prefixes { - description - "This container describes IS prefixes."; - - list prefix { - key "prefix"; - - description - "This list defines IPv6 extended prefix attributes."; - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the IPv6 prefix that the TLV - corresponds to."; - } - - uses ipv6-prefix-extended-state; - } - } - } - - container multi-topology { - when "../state/type = 'oc-isis-lsdb-types:MULTI_TOPOLOGY'" { - description - "Only include the multi-topology container when the TLV - is type 229."; - } - - description - "This container defines the topology supported."; - - reference - "RFC5120: M-ISIS: Multi Topology (MT) Routing in - Intermediate System to Intermediate Systems (IS-ISs). TLV - 229"; - - container topologies { - description - "This container describes IS topologies."; - - list topology { - key "mt-id"; - - description - "This list describes a topology."; - - leaf mt-id { - type leafref { - path "../state/mt-id"; - } - description - "Reference to the multi-topology ID being described - by the list entry."; - } - - container state { - description - "State parameters of IS multi-topology TLV 229."; - - leaf mt-id { - type uint16 { - range "0 .. 4095"; - } - description - "Multi-topology ID."; - } - - leaf attributes { - type enumeration { - enum OVERLOAD { - description - "When set, node is overloaded, still part of - the topology but cannot be used for transit."; - } - enum ATTACHED { - description - "When set, node is attached to another area - using the referred metric and can be used as - default gateway."; - } - } - description - "Attributes of the LSP for the associated - topology."; - } - } - } - } - } - - container isis-neighbor-attribute { - when "../state/type = " + - "'oc-isis-lsdb-types:IS_NEIGHBOR_ATTRIBUTE'" { - description - "Only include the neighbor attribute container when the - TLV is type 23."; - } - description - "This container defines list of ISIS topology neighbors - for extended ISIS LSP (multiple system IDs). "; - - reference - "RFC5311: Simplified Extension of Link State PDU (LSP) - Space for IS-IS. TLV 23. It is identical in format to the - extended IS reachability TLV 22."; - - uses isis-lsdb-common-extisreach-neighbors; - } - - container is-alias-id { - when "../state/type = 'oc-isis-lsdb-types:ISIS_ALIAS_ID'" { - description - "Only include the ISIS alias ID container when the TLV - is type 24."; - } - - description - "This container defines the IS-Alias TLV which allows - 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 TLV 24."; - - container state { - config false; - description - "State parameters of alias ID."; - - leaf alias-id { - type oc-isis-types:system-id; - description - "List of alias ID(s)."; - } - } - } - - container mt-isn { - when "../state/type = 'oc-isis-lsdb-types:MT_ISN'" { - description - "Only include the MT ISN container when the TLV is type - 222."; - } - description - "This container defines list of ISIS multi-topology - neighbors."; - - reference - "RFC5120: M-ISIS: Multi Topology (MT) Routing in - Intermediate System to Intermediate Systems (IS-ISs). TLV - 222."; - - uses isis-lsdb-mtis-common; - } - - container mt-isis-neighbor-attribute { - when "../state/type = " + - "'oc-isis-lsdb-types:MT_IS_NEIGHBOR_ATTRIBUTE'" { - description - "Only include the MT ISIS neighbor attribute container - when the TLV is type 223."; - } - - description - "This container defines list of ISIS multi-topology - neighbors."; - - reference - "RFC5311: Simplified Extension of Link State PDU (LSP) - Space for IS-IS. TLV 223. It is identical in format to the - MT-ISN TLV 222."; - - uses isis-lsdb-mtis-common; - } - - container mt-ipv4-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:MT_IPV4_REACHABILITY'" { - description - "Only include the multi-topology IPv4 reachability - container when the TLV is type 235."; - } - description - "This container defines list of IPv4 reachability - Information in multi-topology environment."; - - reference - "RFC5120: M-ISIS: Multi Topology (MT) Routing in - Intermediate System to Intermediate Systems (IS-ISs). TLV - 235."; - - container prefixes { - description - "This container describes IS prefixes."; - - list prefix { - key "mt-id prefix"; - - leaf mt-id { - type leafref { - path "../state/mt-id"; - } - description - "Reference to the topology ID of the topology that - the prefix is within."; - } - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the prefix to which reachability is - being advertised."; - } - - description - "IPv4 prefixes that are contained within MT - reachability TLV."; - - uses ipv4-mt-prefix-extended-state; - } - } - } - - container mt-ipv6-reachability { - when "../state/type = " + - "'oc-isis-lsdb-types:MT_IPV6_REACHABILITY'" { - description - "Only include the multi-topology IPv6 reachability - container when the TLV is type 237."; - } - description - "This container defines list of IPv6 reachability - information in multi - topology environment."; - - reference - "RFC5120: M-ISIS: Multi Topology (MT) Routing in - Intermediate System to Intermediate Systems (IS-ISs). TLV - 237."; - - container prefixes { - description - "This container describes IS prefixes."; - - list prefix { - key "prefix mt-id"; - description - "List of IPv6 prefixes contained within MT - reachability TLV."; - - leaf prefix { - type leafref { - path "../state/prefix"; - } - description - "Reference to the IPv6 prefix described by the - TLV."; - } - - leaf mt-id { - type leafref { - path "../state/mt-id"; - } - description - "Reference to the multi-topology ID."; - } - - uses ipv6-mt-prefix-extended-state; - } - } - } - } - } - - uses isis-lsdb-undefined-tlv; - } -} |