ietf-te-topology-preformat.yang   ietf-te-topology.yang 
module ietf-te-topology { module ietf-te-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology";
prefix tet;
prefix "tet";
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-te-types { import ietf-te-types {
prefix "te-types"; prefix te-types;
reference reference
"RFC 8776: Common YANG Data Types for Traffic Engineering"; "RFC 8776: Common YANG Data Types for Traffic Engineering";
} }
import ietf-network { import ietf-network {
prefix "nw"; prefix nw;
reference reference
"RFC 8345: A YANG Data Model for Network Topologies"; "RFC 8345: A YANG Data Model for Network Topologies";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "nt"; prefix nt;
reference reference
"RFC 8345: A YANG Data Model for Network Topologies"; "RFC 8345: A YANG Data Model for Network Topologies";
} }
organization organization
"IETF Traffic Engineering Architecture and Signaling (TEAS) "IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group"; Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/teas/> "WG Web: <https://datatracker.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org> WG List: <mailto:teas@ietf.org>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu.ietf@gmail.com> <mailto:xufeng.liu.ietf@gmail.com>
Editor: Igor Bryskin Editor: Igor Bryskin
<mailto:i_bryskin@yahoo.com> <mailto:i_bryskin@yahoo.com>
skipping to change at line 79 skipping to change at line 73
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8795; see the This version of this YANG module is part of RFC 8795; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision "2020-06-29" { revision 2020-06-29 {
description "Initial revision."; description
"Initial revision.";
reference reference
"RFC 8795: YANG Data Model for Traffic Engineering (TE) "RFC 8795: YANG Data Model for Traffic Engineering (TE)
Topologies"; Topologies";
} }
/* /*
* Features * Features
*/ */
feature nsrlg { feature nsrlg {
description description
"This feature indicates that the system supports NSRLGs "This feature indicates that the system supports NSRLGs
(Non-Shared Risk Link Groups)."; (Non-Shared Risk Link Groups).";
} }
feature te-topology-hierarchy { feature te-topology-hierarchy {
description description
"This feature indicates that the system allows an underlay "This feature indicates that the system allows an underlay
and/or overlay TE topology hierarchy."; and/or overlay TE topology hierarchy.";
skipping to change at line 110 skipping to change at line 106
feature template { feature template {
description description
"This feature indicates that the system supports "This feature indicates that the system supports
template configuration."; template configuration.";
} }
/* /*
* Typedefs * Typedefs
*/ */
typedef geographic-coordinate-degree { typedef geographic-coordinate-degree {
type decimal64 { type decimal64 {
fraction-digits 8; fraction-digits 8;
} }
description description
"Decimal degree (DD) used to express latitude and longitude "Decimal degree (DD) used to express latitude and longitude
geographic coordinates."; geographic coordinates.";
} // geographic-coordinate-degree }
// geographic-coordinate-degree
typedef te-info-source { typedef te-info-source {
type enumeration { type enumeration {
enum unknown { enum unknown {
description "The source is unknown."; description
"The source is unknown.";
} }
enum locally-configured { enum locally-configured {
description "Configured entity."; description
"Configured entity.";
} }
enum ospfv2 { enum ospfv2 {
description "OSPFv2."; description
"OSPFv2.";
} }
enum ospfv3 { enum ospfv3 {
description "OSPFv3."; description
"OSPFv3.";
} }
enum isis { enum isis {
description "IS-IS."; description
"IS-IS.";
} }
enum bgp-ls { enum bgp-ls {
description "BGP-LS."; description
"BGP-LS.";
reference reference
"RFC 7752: North-Bound Distribution of Link-State and "RFC 7752: North-Bound Distribution of Link-State and
Traffic Engineering (TE) Information Using BGP"; Traffic Engineering (TE) Information Using BGP";
} }
enum system-processed { enum system-processed {
description "System-processed entity."; description
"System-processed entity.";
} }
enum other { enum other {
description "Other source."; description
"Other source.";
} }
} }
description description
"Describes the type of source that has provided the "Describes the type of source that has provided the
related information, and the source's credibility."; related information, and the source's credibility.";
} // te-info-source }
// te-info-source
/* /*
* Groupings * Groupings
*/ */
grouping connectivity-matrix-entry-path-attributes { grouping connectivity-matrix-entry-path-attributes {
description description
"Attributes of a connectivity matrix entry."; "Attributes of a connectivity matrix entry.";
leaf is-allowed { leaf is-allowed {
type boolean; type boolean;
description description
"'true' - switching is allowed; "'true' - switching is allowed;
'false' - switching is disallowed."; 'false' - switching is disallowed.";
} }
container underlay { container underlay {
skipping to change at line 166 skipping to change at line 176
grouping connectivity-matrix-entry-path-attributes { grouping connectivity-matrix-entry-path-attributes {
description description
"Attributes of a connectivity matrix entry."; "Attributes of a connectivity matrix entry.";
leaf is-allowed { leaf is-allowed {
type boolean; type boolean;
description description
"'true' - switching is allowed; "'true' - switching is allowed;
'false' - switching is disallowed."; 'false' - switching is disallowed.";
} }
container underlay { container underlay {
if-feature te-topology-hierarchy; if-feature "te-topology-hierarchy";
description "Attributes of the TE link underlay."; description
"Attributes of the TE link underlay.";
reference reference
"RFC 4206: Label Switched Paths (LSP) Hierarchy with "RFC 4206: Label Switched Paths (LSP) Hierarchy with
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Traffic Engineering (TE)"; Traffic Engineering (TE)";
uses te-link-underlay-attributes; uses te-link-underlay-attributes;
} // underlay }
// underlay
uses te-types:generic-path-constraints; uses te-types:generic-path-constraints;
uses te-types:generic-path-optimization; uses te-types:generic-path-optimization;
uses te-types:generic-path-properties; uses te-types:generic-path-properties;
} // connectivity-matrix-entry-path-attributes }
// connectivity-matrix-entry-path-attributes
grouping geolocation-container { grouping geolocation-container {
description description
"Contains a GPS location."; "Contains a GPS location.";
container geolocation{ container geolocation {
config false; config false;
description description
"Contains a GPS location."; "Contains a GPS location.";
leaf altitude { leaf altitude {
type int64; type int64;
units millimeter; units "millimeter";
description description
"Distance above sea level."; "Distance above sea level.";
} }
leaf latitude { leaf latitude {
type geographic-coordinate-degree { type geographic-coordinate-degree {
range "-90..90"; range "-90..90";
} }
description description
"Relative position north or south on the Earth's surface."; "Relative position north or south on the Earth's surface.";
} }
leaf longitude { leaf longitude {
type geographic-coordinate-degree { type geographic-coordinate-degree {
range "-180..180"; range "-180..180";
} }
description description
"Angular distance east or west on the Earth's surface."; "Angular distance east or west on the Earth's surface.";
} }
} // gps-location }
} // geolocation-container // gps-location
}
// geolocation-container
grouping information-source-state-attributes { grouping information-source-state-attributes {
description description
"The attributes identifying the source that has provided the "The attributes identifying the source that has provided the
related information, and the source's credibility."; related information, and the source's credibility.";
leaf credibility-preference { leaf credibility-preference {
type uint16; type uint16;
description description
"The preference value for calculating the Traffic "The preference value for calculating the Traffic
Engineering database credibility value used for Engineering database credibility value used for
tie-break selection between different information-source tie-break selection between different information-source
values. A higher value is preferable."; values. A higher value is preferable.";
} }
leaf logical-network-element { leaf logical-network-element {
type string; type string;
description description
"When applicable, this is the name of a logical network "When applicable, this is the name of a logical network
element from which the information is learned."; element from which the information is learned.";
} // logical-network-element }
// logical-network-element
leaf network-instance { leaf network-instance {
type string; type string;
description description
"When applicable, this is the name of a network instance "When applicable, this is the name of a network instance
from which the information is learned."; from which the information is learned.";
} // network-instance }
} // information-source-state-attributes // network-instance
}
// information-source-state-attributes
grouping information-source-per-link-attributes { grouping information-source-per-link-attributes {
description description
"Per-node container of the attributes identifying the source "Per-node container of the attributes identifying the source
that has provided the related information, and the source's that has provided the related information, and the source's
credibility."; credibility.";
leaf information-source { leaf information-source {
type te-info-source; type te-info-source;
config false; config false;
description description
skipping to change at line 267 skipping to change at line 286
description description
"Contains state attributes related to the information "Contains state attributes related to the information
source."; source.";
uses information-source-state-attributes; uses information-source-state-attributes;
container topology { container topology {
description description
"When the information is processed by the system, "When the information is processed by the system,
the attributes in this container indicate which topology the attributes in this container indicate which topology
is used to generate the result information."; is used to generate the result information.";
uses nt:link-ref; uses nt:link-ref;
} // topology }
} // information-source-state // topology
} // information-source-per-link-attributes }
// information-source-state
}
// information-source-per-link-attributes
grouping information-source-per-node-attributes { grouping information-source-per-node-attributes {
description description
"Per-node container of the attributes identifying the source "Per-node container of the attributes identifying the source
that has provided the related information, and the source's that has provided the related information, and the source's
credibility."; credibility.";
leaf information-source { leaf information-source {
type te-info-source; type te-info-source;
config false; config false;
description description
skipping to change at line 301 skipping to change at line 324
description description
"Contains state attributes related to the information "Contains state attributes related to the information
source."; source.";
uses information-source-state-attributes; uses information-source-state-attributes;
container topology { container topology {
description description
"When the information is processed by the system, "When the information is processed by the system,
the attributes in this container indicate which topology the attributes in this container indicate which topology
is used to generate the result information."; is used to generate the result information.";
uses nw:node-ref; uses nw:node-ref;
} // topology }
} // information-source-state // topology
} // information-source-per-node-attributes }
// information-source-state
}
// information-source-per-node-attributes
grouping interface-switching-capability-list { grouping interface-switching-capability-list {
description description
"List of Interface Switching Capability Descriptors (ISCDs)."; "List of Interface Switching Capability Descriptors (ISCDs).";
list interface-switching-capability { list interface-switching-capability {
key "switching-capability encoding"; key "switching-capability encoding";
description description
"List of ISCDs for this link."; "List of ISCDs for this link.";
reference reference
"RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
skipping to change at line 332 skipping to change at line 359
"Switching capability for this interface."; "Switching capability for this interface.";
} }
leaf encoding { leaf encoding {
type identityref { type identityref {
base te-types:lsp-encoding-types; base te-types:lsp-encoding-types;
} }
description description
"Encoding supported by this interface."; "Encoding supported by this interface.";
} }
uses te-link-iscd-attributes; uses te-link-iscd-attributes;
} // interface-switching-capability }
} // interface-switching-capability-list // interface-switching-capability
}
// interface-switching-capability-list
grouping statistics-per-link { grouping statistics-per-link {
description description
"Statistics attributes per TE link."; "Statistics attributes per TE link.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time of the most recent occasion at which any one or "The time of the most recent occasion at which any one or
more of this interface's counters suffered a more of this interface's counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
skipping to change at line 368 skipping to change at line 398
} }
leaf maintenance-clears { leaf maintenance-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that a link was taken out of maintenance."; "Number of times that a link was taken out of maintenance.";
} }
leaf maintenance-sets { leaf maintenance-sets {
type yang:counter32; type yang:counter32;
description description
"Number of times that a link was put in maintenance."; "Number of times that a link was put in maintenance.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that a link was modified."; "Number of times that a link was modified.";
} }
/* Operational attributes */ /* Operational attributes */
leaf downs { leaf downs {
type yang:counter32; type yang:counter32;
description description
"Number of times that a link was set to an operational state "Number of times that a link was set to an operational state
skipping to change at line 447 skipping to change at line 477
description description
"Number of times that a link experienced restoration "Number of times that a link experienced restoration
reversion start."; reversion start.";
} }
leaf restoration-reversion-successes { leaf restoration-reversion-successes {
type yang:counter32; type yang:counter32;
description description
"Number of times that a link experienced restoration "Number of times that a link experienced restoration
reversion success."; reversion success.";
} }
} // statistics-per-link }
// statistics-per-link
grouping statistics-per-node { grouping statistics-per-node {
description description
"Statistics attributes per TE node."; "Statistics attributes per TE node.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time of the most recent occasion at which any one or "The time of the most recent occasion at which any one or
more of this interface's counters suffered a more of this interface's counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
skipping to change at line 491 skipping to change at line 523
type yang:counter32; type yang:counter32;
description description
"Number of times that a node was taken out of "Number of times that a node was taken out of
maintenance."; maintenance.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that a node was modified."; "Number of times that a node was modified.";
} }
} // node }
// node
container connectivity-matrix-entry { container connectivity-matrix-entry {
description description
"Contains statistics attributes at the level of a "Contains statistics attributes at the level of a
connectivity matrix entry."; connectivity matrix entry.";
leaf creates { leaf creates {
type yang:counter32; type yang:counter32;
description description
"Number of times that a connectivity matrix entry was "Number of times that a connectivity matrix entry was
created."; created.";
reference reference
skipping to change at line 532 skipping to change at line 565
description description
"Number of times that a connectivity matrix entry was "Number of times that a connectivity matrix entry was
enabled."; enabled.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that a connectivity matrix entry was "Number of times that a connectivity matrix entry was
modified."; modified.";
} }
} // connectivity-matrix-entry }
} // statistics-per-node // connectivity-matrix-entry
}
// statistics-per-node
grouping statistics-per-ttp { grouping statistics-per-ttp {
description description
"Statistics attributes per TE TTP (Tunnel Termination Point)."; "Statistics attributes per TE TTP (Tunnel Termination Point).";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time of the most recent occasion at which any one or "The time of the most recent occasion at which any one or
more of this interface's counters suffered a more of this interface's counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
skipping to change at line 602 skipping to change at line 638
description description
"Number of times that a TTP was taken out of service "Number of times that a TTP was taken out of service
(TE tunnel was released)."; (TE tunnel was released).";
} }
leaf in-service-sets { leaf in-service-sets {
type yang:counter32; type yang:counter32;
description description
"Number of times that a TTP was put in service by a TE "Number of times that a TTP was put in service by a TE
tunnel (TE tunnel was set up)."; tunnel (TE tunnel was set up).";
} }
} // tunnel-termination-point }
// tunnel-termination-point
container local-link-connectivity { container local-link-connectivity {
description description
"Contains statistics attributes at the TE LLCL (Local Link "Contains statistics attributes at the TE LLCL (Local Link
Connectivity List) level."; Connectivity List) level.";
leaf creates { leaf creates {
type yang:counter32; type yang:counter32;
description description
"Number of times that an LLCL entry was created."; "Number of times that an LLCL entry was created.";
reference reference
"RFC 6241: Network Configuration Protocol (NETCONF), "RFC 6241: Network Configuration Protocol (NETCONF),
skipping to change at line 639 skipping to change at line 675
leaf enables { leaf enables {
type yang:counter32; type yang:counter32;
description description
"Number of times that an LLCL entry was enabled."; "Number of times that an LLCL entry was enabled.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that an LLCL entry was modified."; "Number of times that an LLCL entry was modified.";
} }
} // local-link-connectivity }
} // statistics-per-ttp // local-link-connectivity
}
// statistics-per-ttp
grouping te-link-augment { grouping te-link-augment {
description description
"Augmentation for a TE link."; "Augmentation for a TE link.";
uses te-link-config; uses te-link-config;
uses te-link-state-derived; uses te-link-state-derived;
container statistics { container statistics {
config false; config false;
description description
"Statistics data."; "Statistics data.";
uses statistics-per-link; uses statistics-per-link;
} // statistics }
} // te-link-augment // statistics
}
// te-link-augment
grouping te-link-config { grouping te-link-config {
description description
"TE link configuration grouping."; "TE link configuration grouping.";
choice bundle-stack-level { choice bundle-stack-level {
description description
"The TE link can be partitioned into bundled links or "The TE link can be partitioned into bundled links or
component links."; component links.";
case bundle { case bundle {
container bundled-links { container bundled-links {
skipping to change at line 679 skipping to change at line 721
list bundled-link { list bundled-link {
key "sequence"; key "sequence";
description description
"Specifies a bundled interface that is "Specifies a bundled interface that is
further partitioned."; further partitioned.";
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"Identifies the sequence in the bundle."; "Identifies the sequence in the bundle.";
} }
} // list bundled-link }
// list bundled-link
} }
} }
case component { case component {
container component-links { container component-links {
description description
"A set of component links."; "A set of component links.";
list component-link { list component-link {
key "sequence"; key "sequence";
description description
"Specifies a component interface that is "Specifies a component interface that is
skipping to change at line 713 skipping to change at line 755
} }
leaf des-interface-ref { leaf des-interface-ref {
type string; type string;
description description
"Reference to a component link interface on the "Reference to a component link interface on the
destination node."; destination node.";
} }
} }
} }
} }
} // bundle-stack-level }
// bundle-stack-level
leaf-list te-link-template { leaf-list te-link-template {
if-feature template; if-feature "template";
type leafref { type leafref {
path "../../../../te/templates/link-template/name"; path "../../../../te/templates/link-template/name";
} }
description description
"The reference to a TE link template."; "The reference to a TE link template.";
} }
uses te-link-config-attributes; uses te-link-config-attributes;
} // te-link-config }
// te-link-config
grouping te-link-config-attributes { grouping te-link-config-attributes {
description description
"Link configuration attributes in a TE topology."; "Link configuration attributes in a TE topology.";
container te-link-attributes { container te-link-attributes {
description "Link attributes in a TE topology."; description
"Link attributes in a TE topology.";
leaf access-type { leaf access-type {
type te-types:te-link-access-type; type te-types:te-link-access-type;
description description
"Link access type, which can be point-to-point or "Link access type, which can be point-to-point or
multi-access."; multi-access.";
} }
container external-domain { container external-domain {
description description
"For an inter-domain link, specifies the attributes of "For an inter-domain link, specifies the attributes of
the remote end of the link, to facilitate the signaling at the remote end of the link, to facilitate the signaling at
skipping to change at line 760 skipping to change at line 805
leaf remote-te-link-tp-id { leaf remote-te-link-tp-id {
type te-types:te-tp-id; type te-types:te-tp-id;
description description
"Remote TE LTP identifier, used together with "Remote TE LTP identifier, used together with
'remote-te-node-id' to identify the remote LTP in a 'remote-te-node-id' to identify the remote LTP in a
different domain."; different domain.";
} }
} }
leaf is-abstract { leaf is-abstract {
type empty; type empty;
description "Present if the link is abstract."; description
"Present if the link is abstract.";
} }
leaf name { leaf name {
type string; type string;
description "Link name."; description
"Link name.";
} }
container underlay { container underlay {
if-feature te-topology-hierarchy; if-feature "te-topology-hierarchy";
description "Attributes of the TE link underlay."; description
"Attributes of the TE link underlay.";
reference reference
"RFC 4206: Label Switched Paths (LSP) Hierarchy with "RFC 4206: Label Switched Paths (LSP) Hierarchy with
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Traffic Engineering (TE)"; Traffic Engineering (TE)";
uses te-link-underlay-attributes; uses te-link-underlay-attributes;
} // underlay }
// underlay
leaf admin-status { leaf admin-status {
type te-types:te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the link."; "The administrative state of the link.";
} }
uses te-link-info-attributes; uses te-link-info-attributes;
} // te-link-attributes }
} // te-link-config-attributes // te-link-attributes
}
// te-link-config-attributes
grouping te-link-info-attributes { grouping te-link-info-attributes {
description description
"Advertised TE information attributes."; "Advertised TE information attributes.";
leaf link-index { leaf link-index {
type uint64; type uint64;
description description
"The link identifier. If OSPF is used, this object "The link identifier. If OSPF is used, this object
represents an ospfLsdbID. If IS-IS is used, this object represents an ospfLsdbID. If IS-IS is used, this object
represents an isisLSPID. If a locally configured link is represents an isisLSPID. If a locally configured link is
skipping to change at line 849 skipping to change at line 896
description description
"Maximum amount of bandwidth that can be reserved in this "Maximum amount of bandwidth that can be reserved in this
direction in this link. Units are in bytes per second."; direction in this link. Units are in bytes per second.";
reference reference
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
Version 2 Version 2
RFC 5305: IS-IS Extensions for Traffic Engineering"; RFC 5305: IS-IS Extensions for Traffic Engineering";
} }
list unreserved-bandwidth { list unreserved-bandwidth {
key "priority"; key "priority";
max-elements "8"; max-elements 8;
description description
"Unreserved bandwidth for priority levels 0-7. Units are in "Unreserved bandwidth for priority levels 0-7. Units are in
bytes per second."; bytes per second.";
reference reference
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
Version 2 Version 2
RFC 5305: IS-IS Extensions for Traffic Engineering"; RFC 5305: IS-IS Extensions for Traffic Engineering";
leaf priority { leaf priority {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description "Priority."; description
"Priority.";
} }
uses te-types:te-bandwidth; uses te-types:te-bandwidth;
} }
leaf te-default-metric { leaf te-default-metric {
type uint32; type uint32;
description description
"Traffic Engineering metric."; "Traffic Engineering metric.";
reference reference
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
Version 2 Version 2
skipping to change at line 894 skipping to change at line 942
"IGP metric used for Traffic Engineering."; "IGP metric used for Traffic Engineering.";
reference reference
"RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a
second MPLS Traffic Engineering (TE) Metric"; second MPLS Traffic Engineering (TE) Metric";
} }
container te-srlgs { container te-srlgs {
description description
"Contains a list of SRLGs."; "Contains a list of SRLGs.";
leaf-list value { leaf-list value {
type te-types:srlg; type te-types:srlg;
description "SRLG value."; description
"SRLG value.";
reference reference
"RFC 4202: Routing Extensions in Support of "RFC 4202: Routing Extensions in Support of
Generalized Multi-Protocol Label Switching (GMPLS)"; Generalized Multi-Protocol Label Switching (GMPLS)";
} }
} }
container te-nsrlgs { container te-nsrlgs {
if-feature nsrlg; if-feature "nsrlg";
description description
"Contains a list of NSRLGs (Non-Shared Risk Link Groups). "Contains a list of NSRLGs (Non-Shared Risk Link Groups).
When an abstract TE link is configured, this list specifies When an abstract TE link is configured, this list specifies
the request that underlay TE paths need to be mutually the request that underlay TE paths need to be mutually
disjoint with other TE links in the same groups."; disjoint with other TE links in the same groups.";
leaf-list id { leaf-list id {
type uint32; type uint32;
description description
"NSRLG ID, uniquely configured within a topology."; "NSRLG ID, uniquely configured within a topology.";
reference reference
"RFC 4872: RSVP-TE Extensions in Support of End-to-End "RFC 4872: RSVP-TE Extensions in Support of End-to-End
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Recovery"; Recovery";
} }
} }
} // te-link-info-attributes }
// te-link-info-attributes
grouping te-link-iscd-attributes { grouping te-link-iscd-attributes {
description description
"TE link ISCD attributes."; "TE link ISCD attributes.";
reference reference
"RFC 4203: OSPF Extensions in Support of Generalized "RFC 4203: OSPF Extensions in Support of Generalized
Multi-Protocol Label Switching (GMPLS), Section 1.4"; Multi-Protocol Label Switching (GMPLS), Section 1.4";
list max-lsp-bandwidth { list max-lsp-bandwidth {
key "priority"; key "priority";
max-elements "8"; max-elements 8;
description description
"Maximum Label Switched Path (LSP) bandwidth at "Maximum Label Switched Path (LSP) bandwidth at
priorities 0-7."; priorities 0-7.";
leaf priority { leaf priority {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description "Priority."; description
"Priority.";
} }
uses te-types:te-bandwidth; uses te-types:te-bandwidth;
} }
} // te-link-iscd-attributes }
// te-link-iscd-attributes
grouping te-link-state-derived { grouping te-link-state-derived {
description description
"Link state attributes in a TE topology."; "Link state attributes in a TE topology.";
leaf oper-status { leaf oper-status {
type te-types:te-oper-status; type te-types:te-oper-status;
config false; config false;
description description
"The current operational state of the link."; "The current operational state of the link.";
} }
skipping to change at line 990 skipping to change at line 1044
description description
"Restoration status."; "Restoration status.";
} }
leaf protection-status { leaf protection-status {
type te-types:te-recovery-status; type te-types:te-recovery-status;
description description
"Protection status."; "Protection status.";
} }
} }
container underlay { container underlay {
if-feature te-topology-hierarchy; if-feature "te-topology-hierarchy";
config false; config false;
description "State attributes for the TE link underlay."; description
"State attributes for the TE link underlay.";
leaf dynamic { leaf dynamic {
type boolean; type boolean;
description description
"'true' if the underlay is dynamically created."; "'true' if the underlay is dynamically created.";
} }
leaf committed { leaf committed {
type boolean; type boolean;
description description
"'true' if the underlay is committed."; "'true' if the underlay is committed.";
} }
} }
} // te-link-state-derived }
// te-link-state-derived
grouping te-link-underlay-attributes { grouping te-link-underlay-attributes {
description "Attributes for the TE link underlay."; description
"Attributes for the TE link underlay.";
reference reference
"RFC 4206: Label Switched Paths (LSP) Hierarchy with "RFC 4206: Label Switched Paths (LSP) Hierarchy with
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Traffic Engineering (TE)"; Traffic Engineering (TE)";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if the underlay is enabled. "'true' if the underlay is enabled.
'false' if the underlay is disabled."; 'false' if the underlay is disabled.";
} }
skipping to change at line 1029 skipping to change at line 1087
description description
"The service path on the underlay topology that "The service path on the underlay topology that
supports this link."; supports this link.";
uses nw:network-ref; uses nw:network-ref;
list path-element { list path-element {
key "path-element-id"; key "path-element-id";
description description
"A list of path elements describing the service path."; "A list of path elements describing the service path.";
leaf path-element-id { leaf path-element-id {
type uint32; type uint32;
description "To identify the element in a path."; description
"To identify the element in a path.";
} }
uses te-path-element; uses te-path-element;
} }
} // primary-path }
// primary-path
list backup-path { list backup-path {
key "index"; key "index";
description description
"A list of backup service paths on the underlay topology that "A list of backup service paths on the underlay topology that
protect the underlay primary path. If the primary path is protect the underlay primary path. If the primary path is
not protected, the list contains zero elements. If the not protected, the list contains zero elements. If the
primary path is protected, the list contains one or more primary path is protected, the list contains one or more
elements."; elements.";
leaf index { leaf index {
type uint32; type uint32;
skipping to change at line 1055 skipping to change at line 1115
"A sequence number to identify a backup path."; "A sequence number to identify a backup path.";
} }
uses nw:network-ref; uses nw:network-ref;
list path-element { list path-element {
key "path-element-id"; key "path-element-id";
description description
"A list of path elements describing the backup service "A list of path elements describing the backup service
path."; path.";
leaf path-element-id { leaf path-element-id {
type uint32; type uint32;
description "To identify the element in a path."; description
"To identify the element in a path.";
} }
uses te-path-element; uses te-path-element;
} }
} // underlay-backup-path }
// underlay-backup-path
leaf protection-type { leaf protection-type {
type identityref { type identityref {
base te-types:lsp-protection-type; base te-types:lsp-protection-type;
} }
description description
"Underlay protection type desired for this link."; "Underlay protection type desired for this link.";
} }
container tunnel-termination-points { container tunnel-termination-points {
description description
"Underlay TTPs desired for this link."; "Underlay TTPs desired for this link.";
skipping to change at line 1086 skipping to change at line 1148
type binary; type binary;
description description
"Destination TTP identifier."; "Destination TTP identifier.";
} }
} }
container tunnels { container tunnels {
description description
"Underlay TE tunnels supporting this TE link."; "Underlay TE tunnels supporting this TE link.";
leaf sharing { leaf sharing {
type boolean; type boolean;
default true; default "true";
description description
"'true' if the underlay tunnel can be shared with other "'true' if the underlay tunnel can be shared with other
TE links; TE links;
'false' if the underlay tunnel is dedicated to this 'false' if the underlay tunnel is dedicated to this
TE link. TE link.
This leaf is the default option for all TE tunnels This leaf is the default option for all TE tunnels
and may be overridden by the per-TE-tunnel value."; and may be overridden by the per-TE-tunnel value.";
} }
list tunnel { list tunnel {
key "tunnel-name"; key "tunnel-name";
skipping to change at line 1117 skipping to change at line 1179
"RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
} }
leaf sharing { leaf sharing {
type boolean; type boolean;
description description
"'true' if the underlay tunnel can be shared with other "'true' if the underlay tunnel can be shared with other
TE links; TE links;
'false' if the underlay tunnel is dedicated to this 'false' if the underlay tunnel is dedicated to this
TE link."; TE link.";
} }
} // tunnel }
} // tunnels // tunnel
} // te-link-underlay-attributes }
// tunnels
}
// te-link-underlay-attributes
grouping te-node-augment { grouping te-node-augment {
description description
"Augmentation for a TE node."; "Augmentation for a TE node.";
uses te-node-config; uses te-node-config;
uses te-node-state-derived; uses te-node-state-derived;
container statistics { container statistics {
config false; config false;
description description
"Statistics data."; "Statistics data.";
uses statistics-per-node; uses statistics-per-node;
} // statistics }
// statistics
list tunnel-termination-point { list tunnel-termination-point {
key "tunnel-tp-id"; key "tunnel-tp-id";
description description
"A termination point can terminate a tunnel."; "A termination point can terminate a tunnel.";
leaf tunnel-tp-id { leaf tunnel-tp-id {
type binary; type binary;
description description
"TTP identifier."; "TTP identifier.";
} }
uses te-node-tunnel-termination-point-config; uses te-node-tunnel-termination-point-config;
leaf oper-status { leaf oper-status {
type te-types:te-oper-status; type te-types:te-oper-status;
config false; config false;
description description
"The current operational state of the TTP."; "The current operational state of the TTP.";
} }
uses geolocation-container; uses geolocation-container;
container statistics { container statistics {
config false; config false;
skipping to change at line 1156 skipping to change at line 1221
config false; config false;
description description
"The current operational state of the TTP."; "The current operational state of the TTP.";
} }
uses geolocation-container; uses geolocation-container;
container statistics { container statistics {
config false; config false;
description description
"Statistics data."; "Statistics data.";
uses statistics-per-ttp; uses statistics-per-ttp;
} // statistics }
// statistics
// Relationship to other TTPs // Relationship to other TTPs
list supporting-tunnel-termination-point { list supporting-tunnel-termination-point {
key "node-ref tunnel-tp-ref"; key "node-ref tunnel-tp-ref";
description description
"Identifies the TTPs on which this TTP depends."; "Identifies the TTPs on which this TTP depends.";
leaf node-ref { leaf node-ref {
type inet:uri; type inet:uri;
description description
"This leaf identifies the node in which the supporting "This leaf identifies the node in which the supporting
TTP is present. TTP is present.
This node is either the supporting node or a node in This node is either the supporting node or a node in
an underlay topology."; an underlay topology.";
} }
leaf tunnel-tp-ref { leaf tunnel-tp-ref {
type binary; type binary;
description description
"Reference to a TTP that is in either the supporting node "Reference to a TTP that is in either the supporting node
or a node in an underlay topology."; or a node in an underlay topology.";
} }
} // supporting-tunnel-termination-point }
} // tunnel-termination-point // supporting-tunnel-termination-point
} // te-node-augment }
// tunnel-termination-point
}
// te-node-augment
grouping te-node-config { grouping te-node-config {
description "TE node configuration grouping."; description
"TE node configuration grouping.";
leaf-list te-node-template { leaf-list te-node-template {
if-feature template; if-feature "template";
type leafref { type leafref {
path "../../../../te/templates/node-template/name"; path "../../../../te/templates/node-template/name";
} }
description description
"The reference to a TE node template."; "The reference to a TE node template.";
} }
uses te-node-config-attributes; uses te-node-config-attributes;
} // te-node-config }
// te-node-config
grouping te-node-config-attributes { grouping te-node-config-attributes {
description "Configuration node attributes in a TE topology."; description
"Configuration node attributes in a TE topology.";
container te-node-attributes { container te-node-attributes {
description "Contains node attributes in a TE topology."; description
"Contains node attributes in a TE topology.";
leaf admin-status { leaf admin-status {
type te-types:te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the link."; "The administrative state of the link.";
} }
uses te-node-connectivity-matrices; uses te-node-connectivity-matrices;
uses te-node-info-attributes; uses te-node-info-attributes;
} // te-node-attributes }
} // te-node-config-attributes // te-node-attributes
}
// te-node-config-attributes
grouping te-node-config-attributes-template { grouping te-node-config-attributes-template {
description description
"Configuration node attributes for a template in a TE "Configuration node attributes for a template in a TE
topology."; topology.";
container te-node-attributes { container te-node-attributes {
description "Contains node attributes in a TE topology."; description
"Contains node attributes in a TE topology.";
leaf admin-status { leaf admin-status {
type te-types:te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the link."; "The administrative state of the link.";
} }
uses te-node-info-attributes; uses te-node-info-attributes;
} // te-node-attributes }
} // te-node-config-attributes-template // te-node-attributes
}
// te-node-config-attributes-template
grouping te-node-connectivity-matrices { grouping te-node-connectivity-matrices {
description "Connectivity matrix on a TE node."; description
"Connectivity matrix on a TE node.";
container connectivity-matrices { container connectivity-matrices {
description description
"Contains a connectivity matrix on a TE node."; "Contains a connectivity matrix on a TE node.";
leaf number-of-entries { leaf number-of-entries {
type uint16; type uint16;
description description
"The number of connectivity matrix entries. "The number of connectivity matrix entries.
If this number is specified in the configuration request, If this number is specified in the configuration request,
the number is the requested number of entries, which may the number is the requested number of entries, which may
not all be listed in the list; not all be listed in the list;
skipping to change at line 1251 skipping to change at line 1333
key "id"; key "id";
description description
"Represents a node's switching limitations, i.e., "Represents a node's switching limitations, i.e.,
limitations in the interconnecting network TE links limitations in the interconnecting network TE links
across the node."; across the node.";
reference reference
"RFC 7579: General Network Element Constraint Encoding "RFC 7579: General Network Element Constraint Encoding
for GMPLS-Controlled Networks"; for GMPLS-Controlled Networks";
leaf id { leaf id {
type uint32; type uint32;
description "Identifies the connectivity matrix entry."; description
"Identifies the connectivity matrix entry.";
} }
} // connectivity-matrix }
} // connectivity-matrices // connectivity-matrix
} // te-node-connectivity-matrices }
// connectivity-matrices
}
// te-node-connectivity-matrices
grouping te-node-connectivity-matrix-attributes { grouping te-node-connectivity-matrix-attributes {
description description
"Termination point references of a connectivity matrix entry."; "Termination point references of a connectivity matrix entry.";
container from { container from {
description description
"Reference to a source LTP."; "Reference to a source LTP.";
leaf tp-ref { leaf tp-ref {
type leafref { type leafref {
path "../../../../../../nt:termination-point/nt:tp-id"; path "../../../../../../nt:termination-point/nt:tp-id";
skipping to change at line 1285 skipping to change at line 1372
leaf tp-ref { leaf tp-ref {
type leafref { type leafref {
path "../../../../../../nt:termination-point/nt:tp-id"; path "../../../../../../nt:termination-point/nt:tp-id";
} }
description description
"Relative reference to a termination point."; "Relative reference to a termination point.";
} }
uses te-types:label-set-info; uses te-types:label-set-info;
} }
uses connectivity-matrix-entry-path-attributes; uses connectivity-matrix-entry-path-attributes;
} // te-node-connectivity-matrix-attributes }
// te-node-connectivity-matrix-attributes
grouping te-node-info-attributes { grouping te-node-info-attributes {
description description
"Advertised TE information attributes."; "Advertised TE information attributes.";
leaf domain-id { leaf domain-id {
type uint32; type uint32;
description description
"Identifies the domain to which this node belongs. "Identifies the domain to which this node belongs.
This attribute is used to support inter-domain links."; This attribute is used to support inter-domain links.";
reference reference
skipping to change at line 1312 skipping to change at line 1401
System (AS) MPLS and GMPLS Traffic Engineering"; System (AS) MPLS and GMPLS Traffic Engineering";
} }
leaf is-abstract { leaf is-abstract {
type empty; type empty;
description description
"Present if the node is abstract; not present if the node "Present if the node is abstract; not present if the node
is actual."; is actual.";
} }
leaf name { leaf name {
type string; type string;
description "Node name."; description
"Node name.";
} }
leaf-list signaling-address { leaf-list signaling-address {
type inet:ip-address; type inet:ip-address;
description "The node's signaling address."; description
"The node's signaling address.";
} }
container underlay-topology { container underlay-topology {
if-feature te-topology-hierarchy; if-feature "te-topology-hierarchy";
description description
"When an abstract node encapsulates a topology, the "When an abstract node encapsulates a topology, the
attributes in this container point to said topology."; attributes in this container point to said topology.";
uses nw:network-ref; uses nw:network-ref;
} }
} // te-node-info-attributes }
// te-node-info-attributes
grouping te-node-state-derived { grouping te-node-state-derived {
description "Node state attributes in a TE topology."; description
"Node state attributes in a TE topology.";
leaf oper-status { leaf oper-status {
type te-types:te-oper-status; type te-types:te-oper-status;
config false; config false;
description description
"The current operational state of the node."; "The current operational state of the node.";
} }
uses geolocation-container; uses geolocation-container;
leaf is-multi-access-dr { leaf is-multi-access-dr {
type empty; type empty;
config false; config false;
skipping to change at line 1359 skipping to change at line 1453
list information-source-entry { list information-source-entry {
key "information-source information-source-instance"; key "information-source information-source-instance";
config false; config false;
description description
"A list of information sources learned, including the source "A list of information sources learned, including the source
that is used."; that is used.";
uses information-source-per-node-attributes; uses information-source-per-node-attributes;
uses te-node-connectivity-matrices; uses te-node-connectivity-matrices;
uses te-node-info-attributes; uses te-node-info-attributes;
} }
} // te-node-state-derived }
// te-node-state-derived
grouping te-node-tunnel-termination-point-config { grouping te-node-tunnel-termination-point-config {
description description
"Termination capability of a TTP on a TE node."; "Termination capability of a TTP on a TE node.";
uses te-node-tunnel-termination-point-config-attributes; uses te-node-tunnel-termination-point-config-attributes;
container local-link-connectivities { container local-link-connectivities {
description description
"Contains an LLCL for a TTP on a TE node."; "Contains an LLCL for a TTP on a TE node.";
leaf number-of-entries { leaf number-of-entries {
type uint16; type uint16;
description description
"The number of LLCL entries. "The number of LLCL entries.
If this number is specified in the configuration request, If this number is specified in the configuration request,
the number is the requested number of entries, which may the number is the requested number of entries, which may
not all be listed in the list; not all be listed in the list;
if this number is reported in the state data, if this number is reported in the state data,
the number is the current number of operational entries."; the number is the current number of operational entries.";
} }
uses te-types:label-set-info; uses te-types:label-set-info;
uses connectivity-matrix-entry-path-attributes; uses connectivity-matrix-entry-path-attributes;
} // local-link-connectivities }
} // te-node-tunnel-termination-point-config // local-link-connectivities
}
// te-node-tunnel-termination-point-config
grouping te-node-tunnel-termination-point-config-attributes { grouping te-node-tunnel-termination-point-config-attributes {
description description
"Configuration attributes of a TTP on a TE node."; "Configuration attributes of a TTP on a TE node.";
leaf admin-status { leaf admin-status {
type te-types:te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the TTP."; "The administrative state of the TTP.";
} }
leaf name { leaf name {
skipping to change at line 1459 skipping to change at line 1557
leaf encoding { leaf encoding {
type identityref { type identityref {
base te-types:lsp-encoding-types; base te-types:lsp-encoding-types;
} }
description description
"Encoding supported by the client-layer adaptation."; "Encoding supported by the client-layer adaptation.";
} }
uses te-types:te-bandwidth; uses te-types:te-bandwidth;
} }
} }
} // te-node-tunnel-termination-point-config-attributes }
// te-node-tunnel-termination-point-config-attributes
grouping te-node-tunnel-termination-point-llc-list { grouping te-node-tunnel-termination-point-llc-list {
description description
"LLCL of a TTP on a TE node."; "LLCL of a TTP on a TE node.";
list local-link-connectivity { list local-link-connectivity {
key "link-tp-ref"; key "link-tp-ref";
description description
"The termination capabilities between the TTP and the LTP. "The termination capabilities between the TTP and the LTP.
This capability information can be used to compute This capability information can be used to compute
the tunnel path. the tunnel path.
skipping to change at line 1476 skipping to change at line 1576
description description
"The termination capabilities between the TTP and the LTP. "The termination capabilities between the TTP and the LTP.
This capability information can be used to compute This capability information can be used to compute
the tunnel path. the tunnel path.
The Interface Adjustment Capability Descriptors (IACDs) The Interface Adjustment Capability Descriptors (IACDs)
(defined in RFC 6001) on each LTP can be derived from (defined in RFC 6001) on each LTP can be derived from
this list."; this list.";
reference reference
"RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN)"; for Multi-Layer and Multi-Region Networks (MLN/MRN)";
leaf link-tp-ref { leaf link-tp-ref {
type leafref { type leafref {
path "../../../../../nt:termination-point/nt:tp-id"; path "../../../../../nt:termination-point/nt:tp-id";
} }
description description
"LTP."; "LTP.";
} }
uses te-types:label-set-info; uses te-types:label-set-info;
uses connectivity-matrix-entry-path-attributes; uses connectivity-matrix-entry-path-attributes;
} // local-link-connectivity }
} // te-node-tunnel-termination-point-config // local-link-connectivity
}
// te-node-tunnel-termination-point-config
grouping te-path-element { grouping te-path-element {
description description
"A group of attributes defining an element in a TE path, "A group of attributes defining an element in a TE path,
such as a TE node, TE link, TE atomic resource, or label."; such as a TE node, TE link, TE atomic resource, or label.";
uses te-types:explicit-route-hop; uses te-types:explicit-route-hop;
} // te-path-element }
// te-path-element
grouping te-termination-point-augment { grouping te-termination-point-augment {
description description
"Augmentation for a TE termination point."; "Augmentation for a TE termination point.";
leaf te-tp-id { leaf te-tp-id {
type te-types:te-tp-id; type te-types:te-tp-id;
description description
"An identifier that uniquely identifies a TE termination "An identifier that uniquely identifies a TE termination
point."; point.";
} }
container te { container te {
must "../te-tp-id"; must '../te-tp-id';
presence "TE support"; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
uses te-termination-point-config; uses te-termination-point-config;
leaf oper-status { leaf oper-status {
type te-types:te-oper-status; type te-types:te-oper-status;
config false; config false;
description description
"The current operational state of the LTP."; "The current operational state of the LTP.";
} }
uses geolocation-container; uses geolocation-container;
} // te }
} // te-termination-point-augment // te
}
// te-termination-point-augment
grouping te-termination-point-config { grouping te-termination-point-config {
description description
"TE termination point configuration grouping."; "TE termination point configuration grouping.";
leaf admin-status { leaf admin-status {
type te-types:te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the LTP."; "The administrative state of the LTP.";
} }
leaf name { leaf name {
skipping to change at line 1558 skipping to change at line 1664
type uint32; type uint32;
description description
"Inter-layer lock ID, used for path computation in a TE "Inter-layer lock ID, used for path computation in a TE
topology covering multiple layers or multiple regions."; topology covering multiple layers or multiple regions.";
reference reference
"RFC 5212: Requirements for GMPLS-Based Multi-Region and "RFC 5212: Requirements for GMPLS-Based Multi-Region and
Multi-Layer Networks (MRN/MLN) Multi-Layer Networks (MRN/MLN)
RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN)"; for Multi-Layer and Multi-Region Networks (MLN/MRN)";
} }
} // te-termination-point-config }
// te-termination-point-config
grouping te-topologies-augment { grouping te-topologies-augment {
description description
"Augmentation for TE topologies."; "Augmentation for TE topologies.";
container te { container te {
presence "TE support"; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
container templates { container templates {
description description
"Configuration parameters for templates used for a TE "Configuration parameters for templates used for a TE
topology."; topology.";
list node-template { list node-template {
if-feature template; if-feature "template";
key "name"; key "name";
leaf name { leaf name {
type te-types:te-template-name; type te-types:te-template-name;
description description
"The name to identify a TE node template."; "The name to identify a TE node template.";
} }
description description
"The list of TE node templates used to define sharable "The list of TE node templates used to define sharable
and reusable TE node attributes."; and reusable TE node attributes.";
uses template-attributes; uses template-attributes;
uses te-node-config-attributes-template; uses te-node-config-attributes-template;
} // node-template }
// node-template
list link-template { list link-template {
if-feature template; if-feature "template";
key "name"; key "name";
leaf name { leaf name {
type te-types:te-template-name; type te-types:te-template-name;
description description
"The name to identify a TE link template."; "The name to identify a TE link template.";
} }
description description
"The list of TE link templates used to define sharable "The list of TE link templates used to define sharable
and reusable TE link attributes."; and reusable TE link attributes.";
uses template-attributes; uses template-attributes;
uses te-link-config-attributes; uses te-link-config-attributes;
} // link-template }
} // templates // link-template
} // te }
} // te-topologies-augment // templates
}
// te
}
// te-topologies-augment
grouping te-topology-augment { grouping te-topology-augment {
description description
"Augmentation for a TE topology."; "Augmentation for a TE topology.";
uses te-types:te-topology-identifier; uses te-types:te-topology-identifier;
container te { container te {
must "../te-topology-identifier/provider-id" must '../te-topology-identifier/provider-id'
+ " and ../te-topology-identifier/client-id" + ' and ../te-topology-identifier/client-id'
+ " and ../te-topology-identifier/topology-id"; + ' and ../te-topology-identifier/topology-id';
presence "TE support"; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
uses te-topology-config; uses te-topology-config;
uses geolocation-container; uses geolocation-container;
} // te }
} // te-topology-augment // te
}
// te-topology-augment
grouping te-topology-config { grouping te-topology-config {
description description
"TE topology configuration grouping."; "TE topology configuration grouping.";
leaf name { leaf name {
type string; type string;
description description
"Name of the TE topology. This attribute is optional and can "Name of the TE topology. This attribute is optional and can
be specified by the operator to describe the TE topology, be specified by the operator to describe the TE topology,
which can be useful when 'network-id' (RFC 8345) is not which can be useful when 'network-id' (RFC 8345) is not
skipping to change at line 1657 skipping to change at line 1769
type identityref { type identityref {
base te-types:objective-function-type; base te-types:objective-function-type;
} }
description description
"Optimization criterion applied to this topology."; "Optimization criterion applied to this topology.";
reference reference
"RFC 3272: Overview and Principles of Internet Traffic "RFC 3272: Overview and Principles of Internet Traffic
Engineering"; Engineering";
} }
list nsrlg { list nsrlg {
if-feature nsrlg; if-feature "nsrlg";
key "id"; key "id";
description description
"List of NSRLGs (Non-Shared Risk Link Groups)."; "List of NSRLGs (Non-Shared Risk Link Groups).";
reference reference
"RFC 4872: RSVP-TE Extensions in Support of End-to-End "RFC 4872: RSVP-TE Extensions in Support of End-to-End
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Recovery"; Recovery";
leaf id { leaf id {
type uint32; type uint32;
description description
"Identifies the NSRLG entry."; "Identifies the NSRLG entry.";
} }
leaf disjointness { leaf disjointness {
type te-types:te-path-disjointness; type te-types:te-path-disjointness;
description description
"The type of resource disjointness."; "The type of resource disjointness.";
} }
} // nsrlg }
} // te-topology-config // nsrlg
}
// te-topology-config
grouping template-attributes { grouping template-attributes {
description description
"Common attributes for all templates."; "Common attributes for all templates.";
leaf priority { leaf priority {
type uint16; type uint16;
description description
"The preference value for resolving conflicts between "The preference value for resolving conflicts between
different templates. When two or more templates specify different templates. When two or more templates specify
values for one configuration attribute, the value from the values for one configuration attribute, the value from the
skipping to change at line 1716 skipping to change at line 1831
"When an attribute changes in this template, the "When an attribute changes in this template, the
configuration object referring to this template applies configuration object referring to this template applies
the new attribute value to the corresponding the new attribute value to the corresponding
configuration."; configuration.";
} }
} }
description description
"This attribute specifies the action taken for a "This attribute specifies the action taken for a
configuration node that has a reference to this template."; configuration node that has a reference to this template.";
} }
} // template-attributes }
// template-attributes
/* /*
* Data nodes * Data nodes
*/ */
augment "/nw:networks/nw:network/nw:network-types" { augment "/nw:networks/nw:network/nw:network-types" {
description description
"Introduces a new network type for a TE topology."; "Introduces a new network type for a TE topology.";
container te-topology { container te-topology {
presence "Indicates a TE topology"; presence "Indicates a TE topology";
description description
"Its presence identifies the TE topology type."; "Its presence identifies the TE topology type.";
} }
} }
skipping to change at line 1738 skipping to change at line 1855
} }
} }
augment "/nw:networks" { augment "/nw:networks" {
description description
"Augmentation parameters for TE topologies."; "Augmentation parameters for TE topologies.";
uses te-topologies-augment; uses te-topologies-augment;
} }
augment "/nw:networks/nw:network" { augment "/nw:networks/nw:network" {
when "nw:network-types/tet:te-topology" { when 'nw:network-types/tet:te-topology' {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for a TE topology."; "Configuration parameters for a TE topology.";
uses te-topology-augment; uses te-topology-augment;
} }
augment "/nw:networks/nw:network/nw:node" { augment "/nw:networks/nw:network/nw:node" {
when "../nw:network-types/tet:te-topology" { when '../nw:network-types/tet:te-topology' {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at the node level."; "Configuration parameters for TE at the node level.";
leaf te-node-id { leaf te-node-id {
type te-types:te-node-id; type te-types:te-node-id;
description description
"The identifier of a node in the TE topology. "The identifier of a node in the TE topology.
A node is specific to a topology to which it belongs."; A node is specific to a topology to which it belongs.";
} }
container te { container te {
must "../te-node-id" { must '../te-node-id' {
description description
"'te-node-id' is mandatory."; "'te-node-id' is mandatory.";
} }
must "count(../nw:supporting-node)<=1" { must 'count(../nw:supporting-node)<=1' {
description description
"For a node in a TE topology, there cannot be more "For a node in a TE topology, there cannot be more
than one supporting node. If multiple nodes are than one supporting node. If multiple nodes are
abstracted, the 'underlay-topology' field is used."; abstracted, the 'underlay-topology' field is used.";
} }
presence "TE support"; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
uses te-node-augment; uses te-node-augment;
} // te }
// te
} }
augment "/nw:networks/nw:network/nt:link" { augment "/nw:networks/nw:network/nt:link" {
when "../nw:network-types/tet:te-topology" { when '../nw:network-types/tet:te-topology' {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at the link level."; "Configuration parameters for TE at the link level.";
container te { container te {
must "count(../nt:supporting-link)<=1" { must 'count(../nt:supporting-link)<=1' {
description description
"For a link in a TE topology, there cannot be more "For a link in a TE topology, there cannot be more
than one supporting link. If one or more link paths are than one supporting link. If one or more link paths are
abstracted, the underlay is used."; abstracted, the underlay is used.";
} }
presence "TE support"; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
uses te-link-augment; uses te-link-augment;
} // te }
// te
} }
augment "/nw:networks/nw:network/nw:node/" augment "/nw:networks/nw:network/nw:node/"
+ "nt:termination-point" { + "nt:termination-point" {
when "../../nw:network-types/tet:te-topology" { when '../../nw:network-types/tet:te-topology' {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at the termination point "Configuration parameters for TE at the termination point
level."; level.";
uses te-termination-point-augment; uses te-termination-point-augment;
} }
augment augment "/nw:networks/nw:network/nt:link/te/bundle-stack-level/"
"/nw:networks/nw:network/nt:link/te/bundle-stack-level/" + "bundle/bundled-links/bundled-link" {
+ "bundle/bundled-links/bundled-link" { when '../../../../nw:network-types/tet:te-topology' {
when "../../../../nw:network-types/tet:te-topology" {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augmentation for a TE bundled link."; "Augmentation for a TE bundled link.";
leaf src-tp-ref { leaf src-tp-ref {
type leafref { type leafref {
path "../../../../../nw:node[nw:node-id = " path "../../../../../nw:node[nw:node-id = "
+ "current()/../../../../nt:source/" + "current()/../../../../nt:source/"
+ "nt:source-node]/" + "nt:source-node]/"
+ "nt:termination-point/nt:tp-id"; + "nt:termination-point/nt:tp-id";
require-instance true; require-instance true;
} }
description description
"Reference to another TE termination point on the "Reference to another TE termination point on the
same source node."; same source node.";
} }
leaf des-tp-ref { leaf des-tp-ref {
type leafref { type leafref {
path "../../../../../nw:node[nw:node-id = " path "../../../../../nw:node[nw:node-id = "
+ "current()/../../../../nt:destination/" + "current()/../../../../nt:destination/"
+ "nt:dest-node]/" + "nt:dest-node]/"
+ "nt:termination-point/nt:tp-id"; + "nt:termination-point/nt:tp-id";
require-instance true; require-instance true;
} }
description description
"Reference to another TE termination point on the "Reference to another TE termination point on the
same destination node."; same destination node.";
} }
} }
augment augment "/nw:networks/nw:network/nw:node/te/"
"/nw:networks/nw:network/nw:node/te/" + "information-source-entry/connectivity-matrices/"
+ "information-source-entry/connectivity-matrices/" + "connectivity-matrix" {
+ "connectivity-matrix" { when '../../../../../nw:network-types/tet:te-topology' {
when "../../../../../nw:network-types/tet:te-topology" {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augmentation for the TE node connectivity matrix."; "Augmentation for the TE node connectivity matrix.";
uses te-node-connectivity-matrix-attributes; uses te-node-connectivity-matrix-attributes;
} }
augment augment "/nw:networks/nw:network/nw:node/te/te-node-attributes/"
"/nw:networks/nw:network/nw:node/te/te-node-attributes/" + "connectivity-matrices/connectivity-matrix" {
+ "connectivity-matrices/connectivity-matrix" { when '../../../../../nw:network-types/tet:te-topology' {
when "../../../../../nw:network-types/tet:te-topology" {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augmentation for the TE node connectivity matrix."; "Augmentation for the TE node connectivity matrix.";
uses te-node-connectivity-matrix-attributes; uses te-node-connectivity-matrix-attributes;
} }
augment augment "/nw:networks/nw:network/nw:node/te/"
"/nw:networks/nw:network/nw:node/te/" + "tunnel-termination-point/local-link-connectivities" {
+ "tunnel-termination-point/local-link-connectivities" { when '../../../../nw:network-types/tet:te-topology' {
when "../../../../nw:network-types/tet:te-topology" {
description description
"Augmentation parameters apply only for networks with a "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augmentation for TE node TTP LLCs (Local Link "Augmentation for TE node TTP LLCs (Local Link
Connectivities)."; Connectivities).";
uses te-node-tunnel-termination-point-llc-list; uses te-node-tunnel-termination-point-llc-list;
} }
} }
 End of changes. 137 change blocks. 
192 lines changed or deleted 313 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/