| 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.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"; |
| } |
| |
| 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 mt-isis-neighbor { |
| 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 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."; |
| } |
| |
| leaf metric { |
| type oc-isis-types:wide-metric; |
| description |
| "ISIS metric value."; |
| } |
| } |
| 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."; |
| |
| container neighbors { |
| description |
| "This container describes IS neighbors."; |
| |
| list neighbor { |
| key "system-id"; |
| description |
| "This list describes ISIS extended neigbors 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 of extended neighbor"; |
| |
| leaf system-id { |
| type oc-isis-types:system-id; |
| description |
| "System-id of the neighbor."; |
| } |
| leaf metric { |
| type oc-isis-types:wide-metric; |
| description |
| "Metric value."; |
| } |
| } |
| uses is-reachability-neighbor-state; |
| } |
| } |
| } |
| |
| 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."; |
| |
| container neighbors { |
| description |
| "This container describes IS neighbors."; |
| |
| list neighbor { |
| key "system-id"; |
| |
| leaf system-id { |
| type leafref { |
| path "../state/system-id"; |
| } |
| description |
| "Reference to the neighboring IS"; |
| } |
| |
| container state { |
| description |
| "State parameters of extended neighbor."; |
| |
| leaf system-id { |
| type oc-isis-types:system-id; |
| description |
| "System-id of the neighbor."; |
| } |
| leaf metric { |
| type oc-isis-types:wide-metric; |
| description |
| "Metric value."; |
| } |
| } |
| uses is-reachability-neighbor-state; |
| |
| description |
| "This list defines ISIS extended reachability neighbor |
| attributes."; |
| } |
| } |
| } |
| |
| 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."; |
| |
| 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."; |
| } |
| |
| uses mt-isis-neighbor; |
| } |
| } |
| } |
| |
| 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."; |
| |
| container neighbors { |
| description |
| "This container describes IS neighbors."; |
| |
| list neighbor { |
| key "mt-id system-id"; |
| description |
| "List of multi-topology 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"; |
| } |
| |
| uses mt-isis-neighbor; |
| } |
| } |
| } |
| |
| 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; |
| } |
| } |