rfc8795xml2.original.xml   rfc8795.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2119.xml">
<!ENTITY RFC3688 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3688.xml">
<!ENTITY RFC3945 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3945.xml">
<!ENTITY RFC6241 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.6241.xml">
<!ENTITY RFC6242 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.6242.xml">
<!ENTITY RFC6991 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.6991.xml">
<!ENTITY RFC7926 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7926.xml">
<!ENTITY RFC7950 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7950.xml">
<!ENTITY RFC8040 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8040.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8174.xml">
<!ENTITY RFC8341 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8341.xml">
<!ENTITY RFC8342 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8342.xml">
<!ENTITY RFC8345 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8345.xml">
<!ENTITY RFC8446 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8446.xml">
<!ENTITY I-D.ietf-teas-yang-te-types SYSTEM "https://xml2rfc.ietf.org/public/rfc
/bibxml3/reference.I-D.draft-ietf-teas-yang-te-types-08.xml">
<!ENTITY RFC1195 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.1195.xml">
<!ENTITY RFC2702 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2702.xml">
<!ENTITY RFC3209 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3209.xml">
<!ENTITY RFC3272 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3272.xml">
<!ENTITY RFC3471 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3471.xml">
<!ENTITY RFC3630 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3630.xml">
<!ENTITY RFC3785 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3785.xml">
<!ENTITY RFC4201 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4201.xml">
<!ENTITY RFC4202 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4202.xml">
<!ENTITY RFC4203 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4203.xml">
<!ENTITY RFC4206 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4206.xml">
<!ENTITY RFC4872 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4872.xml">
<!ENTITY RFC5152 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5152.xml">
<!ENTITY RFC5212 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5212.xml">
<!ENTITY RFC5305 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5305.xml">
<!ENTITY RFC5316 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5316.xml">
<!ENTITY RFC5329 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5329.xml">
<!ENTITY RFC5392 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5392.xml">
<!ENTITY RFC6001 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.6001.xml">
<!ENTITY RFC7308 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7308.xml">
<!ENTITY RFC7471 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7471.xml">
<!ENTITY RFC7579 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7579.xml">
<!ENTITY RFC7752 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7752.xml">
<!ENTITY RFC8340 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8340.xml">
<!ENTITY I-D.ietf-netconf-subscribed-notifications SYSTEM "https://xml2rfc.ietf.
org/public/rfc/bibxml3/reference.I-D.draft-ietf-netconf-subscribed-notifications
-23.xml">
<!ENTITY I-D.ietf-netconf-yang-push SYSTEM "https://xml2rfc.ietf.org/public/rfc/
bibxml3/reference.I-D.draft-ietf-netconf-yang-push-22.xml">
<!ENTITY I-D.liu-netmod-yang-schedule SYSTEM "https://xml2rfc.ietf.org/public/rf
c/bibxml3/reference.I-D.draft-liu-netmod-yang-schedule-05.xml">
<!ENTITY I-D.ietf-ccamp-wson-yang SYSTEM "https://xml2rfc.ietf.org/public/rfc/bi
bxml3/reference.I-D.draft-ietf-ccamp-wson-yang-20.xml">
<!ENTITY I-D.ietf-ccamp-otn-topo-yang SYSTEM "https://xml2rfc.ietf.org/public/rf
c/bibxml3/reference.I-D.draft-ietf-ccamp-otn-topo-yang-06.xml">
<!ENTITY I-D.ietf-teas-yang-l3-te-topo SYSTEM "https://xml2rfc.ietf.org/public/r
fc/bibxml3/reference.I-D.draft-ietf-teas-yang-l3-te-topo-04.xml">
<!ENTITY I-D.ietf-teas-te-topo-and-tunnel-modeling SYSTEM "https://xml2rfc.ietf.
org/public/rfc/bibxml3/reference.I-D.draft-ietf-teas-te-topo-and-tunnel-modeling
-03.xml">
]>
<rfc submissionType="IETF" docName="draft-ietf-teas-yang-te-topo-22" category="s
td" ipr="trust200902">
<!-- Generated by id2xml 1.5.0 on 2019-12-18T20:08:29Z -->
<?rfc compact="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc subcompact="no"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<front>
<title abbrev="YANG - TE Topology">YANG Data Model for Traffic Engineerin
g (TE) Topologies</title>
<author fullname="Xufeng Liu" initials="X." surname="Liu">
<organization>Volta Networks</organization>
<address><email>xufeng.liu.ietf@gmail.com</email>
</address>
</author>
<author fullname="Igor Bryskin" initials="I." surname="Bryskin">
<organization>Huawei Technologies</organization>
<address><email>Igor.Bryskin@huawei.com</email>
</address>
</author>
<author fullname="Vishnu Pavan Beeram" initials="V." surname="Beeram">
<organization>Juniper Networks</organization>
<address><email>vbeeram@juniper.net</email>
</address>
</author>
<author fullname="Tarek Saad" initials="T." surname="Saad">
<organization>Juniper Networks</organization>
<address><email>tsaad@juniper.net</email>
</address>
</author>
<author fullname="Himanshu Shah" initials="H." surname="Shah">
<organization>Ciena</organization>
<address><email>hshah@ciena.com</email>
</address>
</author>
<author fullname="Oscar Gonzalez De Dios" initials="O." surname="Gonzalez <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF"
De Dios"> consensus="true" docName="draft-ietf-teas-yang-te-topo-22" number="8795"
<organization>Telefonica</organization> category="std" ipr="trust200902" obsoletes="" updates="" xml:lang="en"
<address><email>oscar.gonzalezdedios@telefonica.com</email> sortRefs="true" symRefs="true" tocInclude="true" version="3">
</address>
</author>
<date month="January" year="2020"/> <!-- xml2rfc v2v3 conversion 2.38.1 -->
<workgroup>TEAS Working Group</workgroup> <!-- Generated by id2xml 1.5.0 on 2019-12-18T20:08:29Z -->
<front>
<title abbrev="YANG - TE Topologies">YANG Data Model for Traffic Engineering
(TE) Topologies</title>
<!-- [rfced] Please insert any keywords (beyond those that appear inthe title) f <seriesInfo name="RFC" value="8795"/>
or use on https://www.rfc-editor.org/search. --> <author fullname="Xufeng Liu" initials="X." surname="Liu">
<organization>Volta Networks</organization>
<address>
<email>xufeng.liu.ietf@gmail.com</email>
</address>
</author>
<author fullname="Igor Bryskin" initials="I." surname="Bryskin">
<organization>Futurewei Technologies, Inc.</organization>
<address>
<email>i_bryskin@yahoo.com</email>
</address>
</author>
<author fullname="Vishnu Pavan Beeram" initials="V." surname="Beeram">
<organization>Juniper Networks</organization>
<address>
<email>vbeeram@juniper.net</email>
</address>
</author>
<author fullname="Tarek Saad" initials="T." surname="Saad">
<organization>Juniper Networks</organization>
<address>
<email>tsaad@juniper.net</email>
</address>
</author>
<author fullname="Himanshu Shah" initials="H." surname="Shah">
<organization>Ciena</organization>
<address>
<email>hshah@ciena.com</email>
</address>
</author>
<author fullname="Oscar Gonzalez de Dios" initials="O." surname="Gonzalez de
Dios">
<organization>Telefonica</organization>
<address>
<email>oscar.gonzalezdedios@telefonica.com</email>
</address>
</author>
<date month="July" year="2020"/>
<workgroup>TEAS Working Group</workgroup>
<keyword>example</keyword> <keyword>TE topology</keyword>
<keyword>TE topology YANG model</keyword>
<keyword>Abstract TE topology</keyword>
<keyword>Native TE topology</keyword>
<keyword>Customized TE topology</keyword>
<keyword>Underlay TE topology</keyword>
<keyword>Overlay TE topology</keyword>
<abstract><t> <abstract>
This document defines a YANG data model for representing, retrieving <t>
This document defines a YANG data model for representing, retrieving,
and manipulating Traffic Engineering (TE) Topologies. The model and manipulating Traffic Engineering (TE) Topologies. The model
serves as a base model that other technology specific TE Topology serves as a base model that other technology-specific TE topology
models can augment.</t> models can augment.</t>
</abstract>
</abstract> </front>
</front> <middle>
<section anchor="sect-1" numbered="true" toc="default">
<middle> <name>Introduction</name>
<section title="Introduction" anchor="sect-1"><t> <t>
The Traffic Engineering Database (TED) is an essential component of The Traffic Engineering Database (TED) is an essential component of
Traffic Engineered (TE) systems that are based on MPLS-TE <xref target="RFC27 Traffic Engineered (TE) systems that are based on MPLS-TE <xref target="RFC27
02"/> 02" format="default"/>
and GMPLS <xref target="RFC3945"/>. The TED is a collection of all TE informa and GMPLS <xref target="RFC3945" format="default"/>. The TED is a collection
tion of all TE information
about all TE nodes and TE links in the network. The TE Topology is a about all TE nodes and TE links in the network. The TE topology is a
schematic arrangement of TE nodes and TE links present in a given schematic arrangement of TE nodes and TE links present in a given
TED. There could be one or more TE Topologies present in a given TED. There could be one or more TE topologies present in a given
Traffic Engineered system. A TE Topology is the topology on which TE system. A TE topology is the topology on which
path computational algorithms are run to compute Traffic Engineered path computational algorithms are run to compute TE paths.</t>
Paths (TE Paths).</t> <t>
This document defines a YANG data model <xref target="RFC7950"
<t> format="default"/> for representing, retrieving,
This document defines a YANG <xref target="RFC7950"/> data model for represen and manipulating TE topologies. This model contains technology-agnostic TE to
ting pology building blocks that can be augmented and used
and manipulating TE Topologies. This model contains technology by other technology-specific TE topology models.</t>
agnostic TE Topology building blocks that can be augmented and used <section anchor="sect-1.1" numbered="true" toc="default">
by other technology-specific TE Topology models.</t> <name>Terminology</name>
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
<section title="Terminology" anchor="sect-1.1"><t> "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "<bcp14>SHOULD NOT</bcp14>",
"OPTIONAL" in this document are to be interpreted as described in BCP "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
y appear in all are to be interpreted as described in BCP&nbsp;14
capitals, as shown here.</t> <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
when, they appear in all capitals, as shown here.</t>
<t> <t>
The reader is assumed to be familiar with general body of work We assume that the reader is familiar with the general body of work
captured in currently available TE related RFCs. <xref target="RFC7926"/> ser captured in currently available RFCs related to Traffic Engineering. <xref ta
ves as rget="RFC7926" format="default"/> serves as
a good starting point for those who may be less familiar with Traffic a good starting point for those who may be less familiar with RFCs related to
Engineering related RFCs.</t> Traffic Engineering.</t>
<t>
<t> Some of the key terms used in this document are as follows:
Some of the key terms used in this document are:
<list style="hanging" hangIndent="3">
<t hangText="TED:">The Traffic Engineering Database is a collection of all
TE information about all TE nodes and TE links in a given network.</t>
<t hangText="TE-Topology:">The TE Topology is a schematic arrangement of TE </t>
<dl newline="false" spacing="normal" indent="3">
<dt>TED:</dt>
<dd>The Traffic Engineering Database (TED) is a collection of all
TE information about all TE nodes and TE links in a given network.</dd>
<dt>TE topology:</dt>
<dd>The TE topology is a schematic arrangement of TE
nodes and TE links in a given TED. It forms the basis for a graph suitable nodes and TE links in a given TED. It forms the basis for a graph suitable
for TE path computations.</t> for TE path computations.</dd>
<dt>Native TE topology:</dt>
<t hangText="Native TE Topology:"> Native TE Topology is a topology that is <dd>A Native TE topology is a topology that is
native to a given provider network. Native TE topology could be discovered native to a given provider network. A Native TE topology could be discovered
via various routing protocols and/or subscribe/publish techniques. This is via various routing protocols and/or subscribe/publish techniques. This is
the topology on which path computational algorithms are run to compute TE the topology on which path computational algorithms are run to compute TE
Paths.</t> paths.</dd>
<dt>Customized TE topology:</dt>
<t hangText="Customized TE Topology:"> Customized TE Topology is a custom <dd>A Customized TE topology is a custom
topology that is produced by a provider for a given client. This topology topology that is produced by a provider for a given client. This topology
typically makes abstractions on the provider's Native TE Topology, and is typically makes abstractions on the provider's Native TE topology and is
provided to the client. The client receives the Customized TE Topology, and provided to the client. The client receives the Customized TE topology and
merges it into the client's Native TE Topology. The client's path merges it into the client's Native TE topology. The client's path
computational algorithms aren't typically run on the Customized TE computational algorithms aren't typically run on the Customized TE
Topology; they are run on the client's Native TE Topology after the topology; they are run on the client's Native TE topology after the
merge.</t> merge.</dd>
</dl>
</list> </section>
</t>
</section>
<section title="Tree Structure" anchor="sect-1.2"><t> A simplified
graphical representation of the data model is presented in Appendix
A. of this document. The tree format defined in <xref
target="RFC8340"/> is used for the YANG data model tree
representation. </t>
</section>
<section title="Prefixes in Data Node Names" anchor="sect-1.3"><t>In <section anchor="sect-1.2" numbered="true" toc="default">
<name>Tree Structure</name>
<t> A simplified
graphical representation of the data model is presented in
<xref target="append-a"/> of this document. The tree format defined in <
xref target="RFC8340" format="default"/> is used for the YANG data model tree
representation. </t>
</section>
<section anchor="sect-1.3" numbered="true" toc="default">
<name>Prefixes in Data Node Names</name>
<t>In
this document, names of data nodes and other data model objects are this document, names of data nodes and other data model objects are
prefixed using the standard prefix associated with the corresponding prefixed using the standard prefix associated with the corresponding
YANG imported modules, as shown in Table 1.</t> YANG imported modules, as shown in <xref target="tab-prefixes-and-corres
ponding-yang-modules"/>.</t>
<texttable title="Prefixes and corresponding YANG modules" anchor="tab-pr <table anchor="tab-prefixes-and-corresponding-yang-modules" align="cente
efixes-and-corresponding-yang-modules" style="full"><ttcol> Prefix</ttcol> r">
<ttcol> YANG module</ttcol> <name>Prefixes and Corresponding YANG Modules</name>
<ttcol> Reference</ttcol> <thead>
<c>yang</c> <tr>
<c>ietf-yang-types</c> <th align="left"> Prefix</th>
<c>[RFC6991]</c> <th align="left"> YANG Module</th>
<c>inet</c> <th align="left"> Reference</th>
<c>ietf-inet-types</c> </tr>
<c>[RFC6991]</c> </thead>
<c>nw</c> <tbody>
<c>ietf-network</c> <tr>
<c>[RFC6991]</c> <td align="left">yang</td>
<c>nt</c> <td align="left">ietf-yang-types</td>
<c>ietf-network-topology</c> <td align="left"><xref target="RFC6991"/></td>
<c>[RFC8345]</c> </tr>
<c>te-types</c> <tr>
<c>ietf-te-types</c> <td align="left">inet</td>
<c>[I-D.ietf-teas-yang-te</c> <td align="left">ietf-inet-types</td>
<c></c> <td align="left"><xref target="RFC6991"/></td>
<c></c> </tr>
<c>-types]</c> <tr>
</texttable> <td align="left">nw</td>
</section> <td align="left">ietf-network</td>
<td align="left"><xref target="RFC8345"/></td>
</section> </tr>
<tr>
<section title="Characterizing TE Topologies" anchor="sect-2"><t> <td align="left">nt</td>
The data model proposed by this document takes the following <td align="left">ietf-network-topology</td>
characteristics of TE Topologies into account:</t> <td align="left"><xref target="RFC8345"/></td>
</tr>
<t><list style="symbols"><t>TE Topology is an abstract control-plane repr <tr>
esentation of the <td align="left">te-types</td>
data-plane topology. Hence attributes specific to the data-plane <td align="left">ietf-te-types</td>
must make their way into the corresponding TE Topology modeling. <td align="left"><xref target="RFC8776"/></td>
The TE Topology comprises of dynamic auto-discovered data as well </tr>
</tbody>
</table>
</section>
</section>
<section anchor="sect-2" numbered="true" toc="default">
<name>Characterizing TE Topologies</name>
<t>
The data model defined by this document takes the following
characteristics of TE topologies into account:</t>
<ul spacing="normal">
<li>The TE topology is an abstract control-plane representation of the
data-plane topology. Hence, attributes specific to the data plane
must make their way into the corresponding TE topology modeling.
The TE topology is comprised of dynamic autodiscovered data as well
as fairly static data associated with data-plane nodes and links. as fairly static data associated with data-plane nodes and links.
The dynamic data may change frequently, such as unreserved The dynamic data, such as unreserved bandwidth available on data-plane
bandwidth available on data-plane links. The static data rarely links, may change frequently. The static data, such as layer network
changes, such as layer network identification, switching and identification, switching and adaptation capabilities and limitations,
adaptation capabilities and limitations, fate sharing, and fate-sharing, and administrative colors, rarely changes.
administrative colors. It is possible for a single TE Topology to It is possible for a single TE topology to
encompass TE information at multiple switching layers.</t> encompass TE information at multiple switching layers.</li>
<li>TE topologies are protocol independent. Information about
<t>TE Topologies are protocol independent. Information about topological elements may be learned via link-state protocols, but
topological elements may be learnt via link-state protocols, but
the topology can exist without being dependent on any particular the topology can exist without being dependent on any particular
protocol.</t> protocol.</li>
<li>The TE topology may not be congruent with the routing topology in a
<t>TE Topology may not be congruent to the routing topology in a given TE system. The routing topology is constructed based on
given TE System. The routing topology is constructed based on
routing adjacencies. There isn't always a one-to-one association routing adjacencies. There isn't always a one-to-one association
between a TE-link and a routing adjacency. For example, the between a TE link and a routing adjacency. For example, the
presence of a TE link between a pair of nodes doesn't necessarily presence of a TE link between a pair of nodes doesn't necessarily
imply the existence of a routing-adjacency between these nodes. To imply the existence of a routing adjacency between these nodes. To
learn more, see <xref target="I-D.ietf-teas-te-topo-and-tunnel-modeling"/> learn more, see <xref target="I-D.ietf-teas-te-topo-and-tunnel-modeling" fo
and rmat="default"/> and
<xref target="I-D.ietf-teas-yang-l3-te-topo"/>.</t> <xref target="YANG-L3" format="default"/>.</li>
<li>Each TE topological element has at least one information source
<t>Each TE Topological element has at least one information source
associated with it. In some scenarios, there could be more than associated with it. In some scenarios, there could be more than
one information source associated with any given topological one information source associated with any given topological
element.</t> element.</li>
<li>TE topologies can be hierarchical. Each node and link of a given
<t>TE Topologies can be hierarchical. Each node and link of a given TE topology can be associated with a respective underlay topology.
TE Topology can be associated with respective underlay topology. This means that each node and link of a given TE topology can be
This means that each node and link of a given TE Topology can be associated with an independent stack of supporting TE topologies.</li>
associated with an independent stack of supporting TE Topologies.</t> <li>TE topologies can be customized. TE topologies of a given network
<t>TE Topologies can be customized. TE topologies of a given network
presented by the network provider to its client could be presented by the network provider to its client could be
customized on per-client request basis. This customization could customized on a per-client-request basis. This customization could
be performed by provider, by client or by provider/client be performed by the provider, by the client, or by provider&wj;/client
negotiation. The relationship between a customized topology and negotiation. The relationship between a customized topology and the
provider's native topology could be captured as hierarchical provider's native topology could be captured as hierarchical
(overlay-underlay), but otherwise the two topologies are decoupled (overlay/underlay), but otherwise the two topologies are decoupled
from each other. A customized topology is presented to the client, from each other. A customized topology is presented to the client,
while provider's native topology is known in its entirety to the while the provider's native topology is known in its entirety to the
provider itself.</t> provider itself.</li>
</ul>
</list> </section>
</t> <section anchor="sect-3" numbered="true" toc="default">
<name>Modeling Abstractions and Transformations</name>
</section> <section anchor="sect-3.1" numbered="true" toc="default">
<name>TE Topology</name>
<t>
A TE topology is a Traffic Engineering representation of one or more
layers of network topologies. A TE topology is comprised of TE nodes
(TE graph vertices) interconnected via TE links (TE graph edges). A
TE topology is mapped to a TE graph.</t>
</section>
<section anchor="sect-3.2" numbered="true" toc="default">
<name>TE Node</name>
<t>
A TE node is an element of a TE topology, presented as a vertex on a TE
graph. A TE node represents one or several nodes, or a fraction of a
node, which can be a switch or router that is physical or virtual. A TE
node belongs to and is fully defined in exactly one TE topology. A TE
node is assigned a unique ID within the TE topology scope. TE node
attributes include information related to the data&nbhy;plane aspects of
the associated node(s) (e.g., connectivity matrix), as well as
configuration data (such as the TE node name). A given TE node can be
reached on the TE graph over one of the TE links terminated by the TE
node.</t>
<t>
Multi-layer TE nodes providing switching functions at multiple
network layers are an example where a physical node can be decomposed
into multiple logical TE nodes, which are fractions of the physical
node. Some of these (logical) TE nodes may reside in the client-layer
TE topology, while the remaining TE nodes belong to the server-layer
TE topology.</t>
<t>
In <xref target="fig1" format="default"/>, Node-1, Node-2, and Node-3 are
TE nodes.</t>
<section title="Modeling Abstractions and Transformations" anchor="sect-3 <figure anchor="fig1">
"><figure title="TE Topology Modeling Abstractions" anchor="fig1"><artwork><![CD <name>TE Topology Modeling Abstractions</name>
ATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
| +---+ __ | +---+ __
| | | TE Node \/ TTP o LTP | | | TE Node \/ TTP o LTP
| +---+ | +---+
| |
| ----- TE Link | ----- TE Link
| ***** Node Connectivity Matrix, | ***** Node Connectivity Matrix,
| TTP Local Link Connectivity | TTP Local Link Connectivity
| @@@@@ TE Tunnel | @@@@@ TE Tunnel
o---------------------------------- o----------------------------------
Node-1 Node-3 Node-1 Node-3
+------------+ +------------+ +------------+ +------------+
| TTP-1 | | TTP-1 | | TTP-1 | | TTP-1 |
|LTP __ | TE-Tunel-1 | __ | |LTP __ | TE-Tunnel-1 | __ |
|-6 \/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\/ | |-6 \/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\/ |
o * * oLTP-1 Node-2 LTP-6o * * o o * * oLTP-1 Node-2 LTP-6o * * o
| * * | +------------+ | * * | | * * | +------------+ | * * |
| * TTP-2* | | | | * TTP-2* | | * TTP-2* | | | | * TTP-2* |
| * __ * |LTP-2 LTP-6| |LTP-1 LTP-5| * __ * | | * __ * |LTP-2 LTP-6| |LTP-1 LTP-5| * __ * |
o* \/ *o-----------o************o-----------o* \/ *o o* \/ *o-----------o************o-----------o* \/ *o
|LTP * * | Link-12 | * | Link-23 | * * | |LTP * * | Link-12 | * | Link-23 | * * |
|-5 * * | LTP-5| * |LTP-2 | * * | |-5 * * | LTP-5| * |LTP-2 | * * |
+--o------o--+ o************o +--o------o--+ +--o------o--+ o************o +--o------o--+
LTP-4 LTP-3 | * * * | LTP-4 LTP-3 LTP-4 LTP-3 | * * * | LTP-4 LTP-3
| ** * | | ** * |
+--o------o--+ +--o------o--+
LTP-4 LTP-3 LTP-4 LTP-3
]]></artwork>
</figure>
<section title="TE Topology" anchor="sect-3.1"><t>
TE topology is a traffic engineering representation of one or more
layers of network topologies. TE topology is comprised of TE nodes
(TE graph vertices) interconnected via TE links (TE graph edges). A
TE topology is mapped to a TE graph.</t>
</section>
<section title="TE Node" anchor="sect-3.2"><t>
TE node is an element of a TE topology, presented as a vertex on TE
graph. TE node represents one or several nodes, or a fraction of a
node, which can be a switch or router that is physical or virtual. TE
node belongs to and is fully defined in exactly one TE topology. TE
node is assigned a unique ID within the TE topology scope. TE node
attributes include information related to the data plane aspects of
the associated node(s) (e.g. connectivity matrix), as well as
configuration data (such as TE node name). A given TE node can be
reached on the TE graph over one of TE links terminated by the TE
node.</t>
<t> LTP: Link Termination Point
Multi-layer TE nodes providing switching functions at multiple TTP: Tunnel Termination Point]]></artwork>
network layers are an example where a physical node can be decomposed </figure>
into multiple logical TE nodes, which are fractions of the physical </section>
node. Some of these (logical) TE nodes may reside in the client layer <section anchor="sect-3.3" numbered="true" toc="default">
TE topology while the remaining TE nodes belong to the server layer <name>TE Link</name>
TE topology.</t> <t>
A TE link is an element of a TE topology, presented as an edge on a TE
<t>
In <xref target="fig1"/>, Node-1, Node-2, and Node-3 are TE nodes.</t>
</section>
<section title="TE Link" anchor="sect-3.3"><t>
TE link is an element of a TE topology, presented as an edge on TE
graph. The arrows on an edge indicate one or both directions of the graph. The arrows on an edge indicate one or both directions of the
TE link. When there are a pair of parallel links of opposite TE link. When there are a pair of parallel links of opposite
directions, an edge without arrows is also used. TE link represents directions, an edge without arrows is also used. A TE link represents
one or several (physical) links or a fraction of a link. TE link one or several (physical) links or a fraction of a link. A TE link
belongs to and is fully defined in exactly one TE topology. TE link belongs to and is fully defined in exactly one TE topology. A TE link
is assigned a unique ID within the TE topology scope. TE link is assigned a unique ID within the TE topology scope. TE link
attributes include parameters related to the data plane aspects of attributes include parameters related to the data-plane aspects of
the associated link(s) (e.g. unreserved bandwidth, resource the associated link(s) (unreserved bandwidth, resource maps / resource
maps/pools, etc.), as well as the configuration data (such as remote pools, etc.), as well as the configuration data (remote
node/link IDs, SRLGs, administrative colors, etc.). TE link is node&nbsp;IDs / link&nbsp;IDs, Shared Risk Link Groups (SRLGs),
connected to TE node, terminating the TE link via exactly one TE link administrative colors, etc.). A TE link is
termination point (LTP).</t> connected to a TE node, terminating the TE link via exactly one TE Link
Termination Point (LTP).</t>
<t> <t>
In <xref target="fig1"/>, Link-12 and Link-23 are TE links.</t> In <xref target="fig1" format="default"/>, Link-12 and Link-23 are TE links.<
/t>
</section> </section>
<section anchor="sect-3.4" numbered="true" toc="default">
<section title="Transitional TE Link for Multi-Layer Topologies" anchor=" <name>Transitional TE Link for Multi-layer Topologies</name>
sect-3.4"><t> <t>
Networks are typically composed of multiple network layers where one Networks are typically composed of multiple network layers where one
or multiple signals in the client layer network can be multiplexed or multiple signals in the client-layer network can be multiplexed
and encapsulated into a server layer signal <xref target="RFC5212"/> <xref ta and encapsulated into a server-layer signal <xref target="RFC5212" format="de
rget="G.805"/>. The fault"/> <xref target="G.805" format="default"/>. The
server layer signal can be carried in the server layer network across server-layer signal can be carried in the server-layer network across
multiple nodes until the server layer signal is terminated and the multiple nodes until the server-layer signal is terminated and the
client layer signals reappear in the node that terminates the server client-layer signals reappear in the node that terminates the
layer signal. Examples of multi-layer networks are: IP over MPLS over server-layer signal. Examples of multi-layer networks include (1)&nbsp;IP ove
Ethernet, low order Optical Data Unit-k (ODUk) signals multiplexed r MPLS over
into a high order ODUl (l&gt;k) carried over an Optical Channel (OCh) Ethernet and (2)&nbsp;low-order Optical Data Unit-k (ODUk) signals multiplexe
signal in an optical transport network as defined in <xref target="G.872"/> a d
nd into a high-order ODUl (l&gt;k) carried over an Optical Channel (OCh)
<xref target="G.709"/>.</t> signal in an Optical Transport Network (OTN) as defined in <xref target="G.87
2" format="default"/> and
<t> <xref target="G.709" format="default"/>.</t>
TE links as defined in <xref target="sect-3.3"/>. can be used to represent li <t>
nks TE links as defined in <xref target="sect-3.3" format="default"/> can be used
within a network layer. In case of a multi-layer network, TE nodes to represent links
and TE links only allow representation of each network layer as a within a network layer. In the case of a multi-layer network, TE nodes
separate TE topology. Each of these single layer TE topologies would and TE links only allow the representation of each network layer as a
be isolated from their client and their server layer TE topology, if separate TE topology. Each of these single-layer TE topologies would
present. The highest and the lowest network layer in the hierarchy be isolated from their client and their server-layer TE topology, if
present. The highest network layer and the lowest network layer in the hierar
chy
only have a single adjacent layer below or above, respectively. only have a single adjacent layer below or above, respectively.
Multiplexing of client layer signals and encapsulating them into a Multiplexing client-layer signals and encapsulating them into a
server layer signal requires a function that is provided inside a server-layer signal require a function that is provided inside a
node (typically realized in hardware). This function is also called node (typically realized in hardware). This function is also called
layer transition.</t> "layer transition".</t>
<t>
<t>
One of the key requirements for path computation is to be able to One of the key requirements for path computation is to be able to
calculate a path between two endpoints across a multi-layer network calculate a path between two endpoints across a multi-layer network
based on the TE topology representing this multi-layer network. This based on the TE topology representing this multi-layer network. This
means that an additional TE construct is needed that represents means that an additional TE construct is needed that represents
potential layer transitions in the multi-layer TE-topology that potential layer transitions in the multi-layer TE topology that
connects the TE-topologies representing each separate network layer. connects the TE topologies representing each separate network layer.
The so-called transitional TE link is such a construct and it The so-called transitional TE link is such a construct, and it
represents the layer transition function residing inside a node that represents the layer transition function residing inside a node that
is decomposed into multiple logical nodes that are represented as TE is decomposed into multiple logical nodes that are represented as TE
nodes (see also the transitional link definition in <xref target="G.8080"/> f nodes (also see <xref target="G.8080" format="default"/> for the definition o
or the f a transitional link for the OTN). Hence, a transitional TE link connects a
optical transport network). Hence, a transitional TE link connects a client-layer node with a server-layer node. A TE link as defined in
client layer node with a server layer node. A TE link as defined in <xref target="sect-3.3"/> has LTPs of exactly the same kind on each link end,
3.3. has LTPs of exactly the same kind on each link end whereas the whereas the
transitional TE link has client layer LTPs on the client side of the transitional TE link has client-layer LTPs on the client side of the
transitional link and in most cases a single server layer LTP on the transitional link and, in most cases, a single server-layer LTP on the
server side. It should be noted that transitional links are a helper server side. It should be noted that transitional links are a helper
construct in the multi-layer TE topology and they only exist as long construct in the multi-layer TE topology and they only exist as long
as they are not in use, as they represent potential connectivity. as they are not in use, as they represent potential connectivity.
When the server layer trail has been established between the server When the server-layer trail has been established between the
layer LTP of two transitional links in the server layer network, the server-layer LTP of two transitional links in the server-layer network, the
resulting client layer link in the data plane will be represented as resulting client-layer link in the data plane will be represented as
a normal TE link in the client layer topology. The transitional TE a normal TE link in the client-layer topology. The transitional TE
links will re-appear when the server layer trail has been torn down.</t> links will reappear when the server-layer trail has been torn down.</t>
<figure title="Modeling a Multi-Layer Node (Dual-Layer Example)" anchor="fig2"> <figure anchor="fig2">
<artwork><![CDATA[ <name>Modeling a Multi-layer Node (Dual-layer Example)</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
| | | |
| +---+ --- | +---+ ---
| | | TE Node \ / Transitional | | | TE Node \ / Transitional
| +---+ | Link | +---+ | Link
| |
| ----- Client Layer Link | ----- Client-Layer Link
| ===== Server Layer Link | ===== Server-Layer Link
| ***** Layer Boundary | ***** Layer Boundary
o---------------------------------- o----------------------------------
+------------------+ +-------------------+
| +------+ | +------+ | +-------+ | +-------+
| |Layer |---+ | | Layer |Layer | -----|Client-|------+ | Client- -----|Client-|
| +------+ | | | | +------+ | |Layer |---+ | | Layer |Layer |
| | | | | Client | | | -----|Switch |-+ | | | Links -----|Node |
| | | ---_| Layer --- --- | +------ + | | | | +-------+
***|**********|*| \ /*|***************************\ /*\ /**** | | | | | Client | | |
| --- | | Server Transitional | | | | | ---_| Layer --- ---
| Layer \ / | | Layer Links | | ***|***********|*| \ /*|***************************\ /*\ /****
| Term. | | | | | | --- | | Server Transitional | |
| | | | | | | Layer \ / | | Layer Links | |
| +------+ | +------+ | Term. | | | | |
=============|Server|===== Server ====|Server|==== | | | | | |
| |Layer | | Layer |Layer | | +-------+ | +-------+
=============|Switch|===== Links ====|Node |==== =============|Server-|===== Server- ====|Server-|====
| +------+ | +------+ | |Layer | | Layer |Layer |
+------------------+ =============|Switch |===== Links ====|Node |====
| +-------+ | +-------+
Physical Node View TE-Topology View +-------------------+
]]></artwork>
</figure>
</section> Physical Node View TE Topology View]]></artwork>
</figure>
<section title="TE Link Termination Point (LTP)" anchor="sect-3.5"><t> </section>
TE link termination point (LTP) is a conceptual point of connection <section anchor="sect-3.5" numbered="true" toc="default">
<name>TE Link Termination Point (LTP)</name>
<t>
A TE Link Termination Point (LTP) is a conceptual point of connection
of a TE node to one of the TE links, terminated by the TE node. of a TE node to one of the TE links, terminated by the TE node.
Cardinality between an LTP and the associated TE link is 1:0..1.</t> Cardinality between an LTP and the associated TE link is 1:0..1.</t>
<t>
<t> In <xref target="fig1" format="default"/>, Node-2 has six LTPs: LTP-1 through
In <xref target="fig1"/>, Node-2 has six LTPs: LTP-1 to LTP-6.</t> LTP-6.</t>
</section>
</section> <section anchor="sect-3.6" numbered="true" toc="default">
<name>TE Tunnel Termination Point (TTP)</name>
<section title="TE Tunnel Termination Point (TTP)" anchor="sect-3.6"><t> <t>
TE tunnel termination point (TTP) is an element of TE topology A TE Tunnel Termination Point (TTP) is an element of a TE topology
representing one or several of potential transport service representing one or several potential transport service
termination points (i.e. service client adaptation points such as termination points (i.e., service client adaptation points, such as
WDM/OCh transponder). TTP is associated with (hosted by) exactly one a WDM/OCh transponder). ("WDM" stands for "Wavelength Division Multiplexing".
TE node. TTP is assigned a unique ID within the TE node scope. ) A TTP is associated with (hosted by) exactly one
TE node. A TTP is assigned a unique ID within the TE node scope.
Depending on the TE node's internal constraints, a given TTP hosted Depending on the TE node's internal constraints, a given TTP hosted
by the TE node could be accessed via one, several or all TE links by the TE node could be accessed via one, several, or all TE links
terminated by the TE node.</t> terminated by the TE node.</t>
<t>
<t> In <xref target="fig1" format="default"/>, Node-1 has two TTPs: TTP-1 and TTP
In <xref target="fig1"/>, Node-1 has two TTPs: TTP-1 and TTP-2.</t> -2.</t>
</section>
</section> <section anchor="sect-3.7" numbered="true" toc="default">
<name>TE Node Connectivity Matrix</name>
<section title="TE Node Connectivity Matrix" anchor="sect-3.7"><t> <t>
TE node connectivity matrix is a TE node's attribute describing the A TE node connectivity matrix is a TE node's attribute describing the
TE node's switching limitations in a form of valid switching TE node's switching limitations in the form of valid switching
combinations of the TE node's LTPs (see below). From the point of combinations of the TE node's LTPs (see below). From the point of
view of a potential TE path arriving at the TE node at a given view of a potential TE path arriving at the TE node at a given
inbound LTP, the node's connectivity matrix describes valid inbound LTP, the node's connectivity matrix describes valid
(permissible) outbound LTPs for the TE path to leave the TE node (permissible) outbound LTPs from which the TE path can leave the TE node.</t>
from.</t>
<!--[rfced] id2xml converted to artwork, please review -->
<figure><artwork><![CDATA[
In Figure 1, the connectivity matrix on Node-2 is:
{<LTP-6, LTP-1>, <LTP-5, LTP-2>, <LTP-5, LTP-4>, <LTP-4, LTP-1>,
<LTP-3, LTP-2>}
]]></artwork>
</figure>
</section>
<section title="TTP Local Link Connectivity List (LLCL)" anchor="sect-3.8
"><t>
TTP Local Link Connectivity List (LLCL) is a List of TE links
terminated by the TTP hosting TE node (i.e. list of the TE link
LTPs), which the TTP could be connected to. From the point of view of
a potential TE path, LLCL provides a list of valid TE links the TE
path needs to start/stop on for the connection, taking the TE path,
to be successfully terminated on the TTP in question.</t>
<!--[rfced] id2xml converted to artwork, please review -->
<figure><artwork><![CDATA[ <t>In <xref target="fig1"/>, the connectivity matrix on Node-2 is as follows:</t
In Figure 1, the LLCL on Node-1 is: >
{<TTP-1, LTP-5>, <TTP-1, LTP-2>, <TTP-2, LTP-3>, <TTP-2, LTP4>} <t>{&lt;LTP-6, LTP-1&gt;, &lt;LTP-5, LTP-2&gt;, &lt;LTP-5, LTP-4&gt;, &lt;LTP-4,
]]></artwork> LTP-1&gt;,
</figure> &lt;LTP-3, LTP-2&gt;}</t>
</section> </section>
<section anchor="sect-3.8" numbered="true" toc="default">
<name>TTP Local Link Connectivity List (LLCL)</name>
<t>
A TTP Local Link Connectivity List (LLCL) is a list of TE links
terminated by the TE node hosting a TTP, to which the TTP could be connected.
From the point of view of
the potential TE path of a connection, an LLCL provides a list of valid TE li
nks the TE
path needs to start/stop on for the connection to be successfully
terminated on a TTP.</t>
<t>In <xref target="fig1"/>, the LLCL on Node-1 is as follows:</t>
<t>{&lt;TTP-1, LTP-5&gt;, &lt;TTP-1, LTP-2&gt;, &lt;TTP-2, LTP-3&gt;, &lt;TTP-2,
LTP-4&gt;}</t>
<section title="TE Path" anchor="sect-3.9"><t> </section>
TE path is an ordered list of TE links and/or TE nodes on the TE <section anchor="sect-3.9" numbered="true" toc="default">
topology graph, inter-connecting a pair of TTPs to be taken by a <name>TE Path</name>
potential connection. TE paths, for example, could be a product of <t>
A TE path is an ordered list of TE links and/or TE nodes on the TE
topology graph; this path interconnects a pair of TTPs to be used by a potent
ial connection. For example, TE paths could be a product of
successful path computation performed for a given transport service.</t> successful path computation performed for a given transport service.</t>
<t>In <xref target="fig1"/>, the TE path for TE-Tunnel-1 is as follows:</t>
<!--[rfced] id2xml converted to artwork, please review --> <t>{Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP-1}</t>
</section>
<figure><artwork><![CDATA[ <section anchor="sect-3.10" numbered="true" toc="default">
In Figure 1, the TE Path for TE-Tunnel-1 is: <name>TE Inter-layer Lock</name>
{Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} <t>A TE inter-layer lock is a modeling concept describing adaptation
]]></artwork> relationships between the client layer and the server layer
</figure> and hence is important for multi-layer
</section> Traffic Engineering. It is an association of M client-layer LTPs and N
server-layer TTPs, within which data arriving at any of the
<section title="TE Inter-Layer Lock" anchor="sect-3.10"><t> TE client-layer LTPs could be adopted onto any of the server-layer
inter-layer lock is a modeling concept describing client-server layer TTPs. A TE inter-layer lock is identified by an inter-layer lock ID, whi
adaptation relationships and hence important for the multi-layer ch is unique
traffic engineering. It is an association of M client layer LTPs and N across all TE topologies provided by the same provider. The
server layer TTPs, within which data arriving at any of the client client-layer LTPs and the server-layer TTPs associated within a given TE
layer LTPs could be adopted onto any of the server layer TTPs. TE inter-layer lock are annotated with the same inter-layer lock ID
inter-layer lock is identified by inter-layer lock ID, which is unique attribute.</t>
across all TE topologies provided by the same provider. The client <t>
layer LTPs and the server layer TTPs associated within a given TE In <xref target="fig3"/>, a TE inter-layer lock with an ID of IL-1
inter-layer lock are annotated with the same inter-layer lock ID associates six client-layer LTPs (C-LTP-1 through C-LTP-6) with two
attribute.</t> server-layer TTPs (S-TTP-1 and S-TTP-2). They all have the same attribute
-- TE inter-layer lock ID IL-1, which is the only thing that indicates the
<figure title="TE Inter-Layer Lock ID Associations" anchor="fig3"><artwor association. A given LTP may have zero, one, or more inter-layer lock IDs.
k><![CDATA[ In the latter case, this means that the data arriving at the LTP may be
adopted onto any of the TTPs associated with all specified inter-layer
locks. For example, C-LTP-1 could have two inter-layer lock IDs -- IL-1 and
IL-2. This would mean that C-LTP-1 for adaptation purposes could use not
just the TTPs associated with inter-layer lock IL-1 (i.e., S-TTP-1 and
S-TTP-2 in the figure) but any of the TTPs associated with inter-layer lock
IL-2 as well. Likewise, a given TTP may have one or more inter-layer lock
IDs, meaning that it can offer the adaptation service to any of the
client-layer LTPs with an inter-layer lock ID matching one of its
own. Additionally, each TTP has an unreserved adaptation bandwidth
attribute, which announces its remaining adaptation resources that are
sharable between all potential client-layer LTPs.</t>
<figure anchor="fig3">
<name>TE Inter-layer Lock ID Associations</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
| +---+ __ | +---+ __
| | | TE Node \/ TTP o LTP | | | TE Node \/ TTP o LTP
| +---+ | +---+
| |
| ----- TE Link | ----- TE Link
| ***** TTP Local Link Connectivity | ***** TTP Local Link Connectivity
o---------------------------------- o----------------------------------
(IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1) (IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1)
--------O (IL-1) O-------- --------O (IL-1) O--------
(IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1) (IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1)
--------O __ 0-------- --------O __ 0--------
(IL-1) C-LTP-5 | *\/* | C-LTP-5 (IL-1) (IL-1) C-LTP-5 | *\/* | C-LTP-6 (IL-1)
--------O * * O-------- --------O * * O--------
| *(IL-1)* | | *(IL-1)* |
S-LTP-3 | * S-TTP-2* | S-LTP-4 S-LTP-3 | * S-TTP-2* | S-LTP-4
--------o* __ *o-------- --------o* __ *o--------
| *\/* | | *\/* |
| * * | | * * |
+--o------o--+ +--o------o--+
S-LTP-1 | | S-LTP-2 S-LTP-1 | | S-LTP-2]]></artwork>
]]></artwork> </figure>
</figure>
<t>
On the picture above a TE inter-layer lock with IL_1 ID associates 6 client
layer LTPs (C-LTP-1 - C-LTP-6) with two server layer TTPs (S-TTP-1 and
S-TTP-2). They all have the same attribute - TE inter-layer lock ID: IL-1,
which is the only thing that indicates the association. A given LTP may
have 0, 1 or more inter-layer lock IDs. In the latter case this means that
the data arriving at the LTP may be adopted onto any of TTPs associated
with all specified inter-layer locks. For example, C-LTP-1 could have two
inter-layer lock IDs - IL- 1 and IL-2. This would mean that C-LTP-1 for
adaptation purposes could use not just TTPs associated with inter-layer
lock IL-1 (i.e.</t>
<t>
S-TTP-1 and S-TTP-2 on the picture), but any of TTPs associated with
inter-layer lock IL-2 as well. Likewise, a given TTP may have one or
more inter-layer lock IDs, meaning that it can offer the adaptation
service to any of client layer LTPs with inter-layer lock ID matching
one of its own. Additionally, each TTP has an attribute - Unreserved
Adaptation Bandwidth, which announces its remaining adaptation
resources sharable between all potential client LTPs.</t>
<t> <t>
LTPs and TTPs associated within the same TE inter-layer lock may be LTPs and TTPs associated within the same TE inter-layer lock may be
hosted by the same (hybrid, multi-layer) TE node or multiple TE nodes hosted by the same (hybrid, multi-layer) TE node or multiple TE nodes
located in the same or separate TE topologies. The latter is located in the same or separate TE topologies. The latter case is
especially important since TE topologies of different layer networks especially important, since TE topologies of different layer networks
could be modeled by separate augmentations of the basic (common to could be modeled by separate augmentations of the basic (common to
all layers) TE topology model.</t> all layers) TE topology model.</t>
</section>
</section> <section anchor="sect-3.11" numbered="true" toc="default">
<name>Underlay TE Topology</name>
<section title="Underlay TE topology" anchor="sect-3.11"><t> <t>
Underlay TE topology is a TE topology that serves as a base for An underlay TE topology is a TE topology that serves as a base for
constructing of overlay TE topologies</t> the construction of overlay TE topologies.</t>
</section>
</section> <section anchor="sect-3.12" numbered="true" toc="default">
<name>Overlay TE Topology</name>
<section title="Overlay TE topology" anchor="sect-3.12"><t> <t>
Overlay TE topology is a TE topology constructed based on one or more An overlay TE topology is a TE topology that is constructed based on one or m
ore
underlay TE topologies. Each TE node of the overlay TE topology underlay TE topologies. Each TE node of the overlay TE topology
represents an arbitrary segment of an underlay TE topology; each TE represents an arbitrary segment of an underlay TE topology; each TE
link of the overlay TE topology represents an arbitrary TE path in link of the overlay TE topology represents an arbitrary TE path in
one of the underlay TE topologies. The overlay TE topology and the one of the underlay TE topologies. The overlay TE topology and the
supporting underlay TE topologies may represent distinct layer supporting underlay TE topologies may represent distinct layer
networks (e.g. OTN/ODUk and WDM/OCh respectively) or the same layer networks (e.g., OTN/ODUk and WDM/OCh, respectively) or the same layer
network.</t> network.</t>
</section>
</section> <section anchor="sect-3.13" numbered="true" toc="default">
<name>Abstract TE Topology</name>
<section title="Abstract TE topology" anchor="sect-3.13"><t> <t>
Abstract TE topology is a topology that contains abstract topological An abstract TE topology is a topology that contains abstract topological
elements (nodes, links, tunnel termination points). Abstract TE elements (nodes, links, TTPs). An abstract TE
topology is an overlay TE topology created by a topology provider and topology is an overlay TE topology created by a topology provider and
customized for a topology provider's client based on one or more of customized for a topology provider's client based on one or more of
the provider's native TE topologies (underlay TE topologies), the the provider's Native TE topologies (underlay TE topologies), the
provider's policies and the client's preferences. For example, a provider's policies, and the client's preferences. For example, a
first level topology provider (such as Domain Controller) can create first-level topology provider (such as a domain controller) can create
an abstract TE topology for its client (e.g. Multi-Domain Service an abstract TE topology for its client (e.g., a multi-domain service
Coordinator) based on the provider's one or more native TE coordinator) based on one or more of the provider's Native TE
topologies, local policies/profiles and the client's TE topology topologies, local policies/profiles, and the client's TE topology
configuration requests</t> configuration requests.</t>
<t><xref target="fig4" format="default"/> shows an example of an abstrac
<t><xref target="fig4"/> shows an example of abstract TE topology.</t> t TE topology.</t>
<figure anchor="fig4">
<figure title="Abstract TE Topology" anchor="fig4"><artwork><![CDATA[ <name>Abstract TE Topology</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
| +---+ | +---+
| | | TE Node | | | TE Node
| +---+ | +---+
| ----- TE Link | ----- TE Link
o---------------------------------- o----------------------------------
+---+ +---+ +---+ +---+
|s31|--------------|S5 | |S3 | |S5 |
+---+\ / +---+ +---+\ / +---+
\ / \ /
\ / \ /
\+---+/ +---+ \+---+/ +---+
/|AN1|\----------------|S8 | /|AN1|\----------------|S8 |
/ +---+ \ +---+ / +---+ \ +---+
+---+ / \ +---+ +---+ / \ +---+
|S9 |-------------|S11| |S9 | |S11|
+---+ +---+ +---+ +---+
Abstract TE Topology Abstract TE Topology
+---+ +---+ +---+ +---+
|S1 |--------------------|S2 | |S1 |--------------------|S2 |
+---+ +---+ +---+ +---+
/ \ / \
/ \ / \
+---+ / +---+ \ +---+ +---+ / +---+ \ +---+
|s3 |--------------------|S4 |---------|S5 | |S3 |--------------------|S4 |---------|S5 |
+---+\ +---+ +---+ +---+\ +---+ +---+
\ \ \ \ \ \
\ \ \ \ \ \
\+---+ +---+ +---+ \+---+ +---+ +---+
/|S6 |\ |S7 |---------|S8 | /|S6 |\ |S7 |---------|S8 |
/ +---+ \ +---+\ /+---+ / +---+ \ +---+\ /+---+
+---+ / \ +---+ +---+ / +---+ / \ +---+ +---+ /
|S9 |-------------|S10|--------------|S11|/ |S9 |-------------|S10|--------------|S11|/
+---+ +---+ +---+ +---+ +---+ +---+
Native TE Topology Native TE Topology]]></artwork>
]]></artwork> </figure>
</figure> </section>
</section> </section>
<section anchor="sect-4" numbered="true" toc="default">
</section> <name>Model Applicability</name>
<section anchor="sect-4.1" numbered="true" toc="default">
<section title="Model Applicability" anchor="sect-4"><section title="Nati <name>Native TE Topologies</name>
ve TE Topologies" anchor="sect-4.1"><t> <t>
The model discussed in this draft can be used to represent and The model discussed in this document can be used to represent and
retrieve native TE topologies on a given TE system.</t> retrieve Native TE topologies on a given TE system.</t>
<t>
Consider the network topology depicted in <xref target="fig5" format="default
"/>. R1 .. R9
are nodes representing routers. An implementation <bcp14>MAY</bcp14> choose t
o construct a
Native TE topology using all nodes and links present in the given TED as
depicted in <xref target="fig6" format="default"/>. The data model defined in
this document
can be used to represent and retrieve this TE topology.</t>
<figure title="Example Network Topology" anchor="fig5"><artwork><![CDATA[ <figure anchor="fig5">
<name>Example Network Topology</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
| +---+ | +---+
| | | TE Node | | | TE Node
| +---+ | +---+
| ----- TE Link | ----- TE Link
o---------------------------------- o----------------------------------
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| R1|-------| R2|--------| R3|---------| R4|---------| R5| | R1|-------| R2|--------| R3|---------| R4|---------| R5|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| R6|-------------| R7| | R8|---------| R9| | R6|-------------| R7| | R8|---------| R9|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+]]></artwork>
]]></artwork> </figure>
</figure>
<t>
Consider the network topology depicted in <xref target="fig5"/>. R1 .. R9
are nodes representing routers. An implementation MAY choose to construct a
native TE Topology using all nodes and links present in the given TED as
depicted in <xref target="fig6"/>. The data model proposed in this document
can be used to retrieve/represent this TE topology.</t>
<figure title="Native TE Topology as seen on Node R3" anchor="fig6"><artw <figure anchor="fig6">
ork><![CDATA[ <name>Native TE Topology as Seen on Node R3</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
--------------- ---------------
| Native | | [ ] TE Node | Native | | [ ] TE Node
| TE-Topology | | +++ TE Link | TE Topology | | +++ TE Link
--------------- o-------------- --------------- o--------------
[R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5]
+ + + + + + + + + + + +
+ + + + + + + + + + + +
+ + ++ ++ + + ++ ++
[R6] +++++++++ [R7] [R8] ++++ [R9] [R6] +++++++++ [R7] [R8] ++++ [R9]]]></artwork>
]]></artwork> </figure>
</figure> <t>
<t> Consider the case where the topology is split in a way that some nodes
Consider the case of the topology being split in a way that some nodes participate in OSPF-TE while others participate in ISIS-TE (<xref target="fig
participate in OSPF-TE while others participate in ISIS-TE (<xref 7" format="default"/>). An implementation <bcp14>MAY</bcp14> choose to construct
target="fig7"/>). An implementation MAY choose to construct separate TE separate TE
Topologies based on the information source. The native TE Topologies topologies based on the information source. The Native TE topologies
constructed using only nodes and links that were learnt via a specific constructed using only nodes and links that were learned via a specific
information source are depicted in <xref target="fig8"/>. The data model information source are depicted in <xref target="fig8" format="default"/>. Th
proposed in this document can be used to retrieve/represent these TE e data model
defined in this document can be used to represent and retrieve these TE
topologies.</t> topologies.</t>
<figure anchor="fig7">
<t> <name>Example Split Network Topology</name>
Similarly, the data model can be used to represent/retrieve a TE <artwork name="" type="" align="left" alt=""><![CDATA[
Topology that is constructed using only nodes and links that belong
to a particular technology layer. The data model is flexible enough
to retrieve and represent many such native TE Topologies.</t>
<figure title="Example Network Topology" anchor="fig7"><artwork><![CDATA[
: :
TE info distributed via ISIS-TE : TE info distributed via OSPF-TE TE Info Distributed via ISIS-TE : TE Info Distributed via OSPF-TE
: :
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| R1|-------| R2|--------| R3|---------| R4|---------| R5| | R1|-------| R2|--------| R3|---------| R4|---------| R5|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
+---+ +---+ : +---+ +---+ +---+ +---+ : +---+ +---+
| R6|-------------| R7| : | R8|---------| R9| | R6|-------------| R7| : | R8|---------| R9|
+---+ +---+ : +---+ +---+ +---+ +---+ : +---+ +---+
: :]]></artwork>
]]></artwork> </figure>
</figure> <figure anchor="fig8">
<figure title="Native TE Topologies as seen on Node R3" anchor="fig8"><ar <name>Native TE Topologies as Seen on Node R3</name>
twork><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
----------------------- : ----------------------- ----------------------- : -----------------------
|Native TE Topology | : |Native TE Topology | |Native TE Topology | : |Native TE Topology |
|Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE |
----------------------- : ----------------------- ----------------------- : -----------------------
: :
[R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5]
+ + : + + + + + + : + + + +
+ + : + + + + + + : + + + +
+ + : ++ ++ + + : ++ ++
[R6] +++++++++ [R7] : [R8] ++++ [R9] [R6] +++++++++ [R7] : [R8] ++++ [R9]]]></artwork>
]]></artwork> </figure>
</figure> <t>Similarly, the data model can be used to represent and retrieve a TE
</section> topology that is constructed using only nodes and links that belong
to a particular technology layer. The data model is flexible enough
<section title="Customized TE Topologies" anchor="sect-4.2"><t> to represent and retrieve many such Native TE topologies.</t>
Customized TE topology is a topology that was modified by the </section>
<section anchor="sect-4.2" numbered="true" toc="default">
<name>Customized TE Topologies</name>
<t>
A Customized TE topology is a topology that was modified by the
provider to honor a particular client's requirements or preferences. provider to honor a particular client's requirements or preferences.
The model discussed in this draft can be used to represent, retrieve The model discussed in this document can be used to represent, retrieve,
and manipulate customized TE Topologies. The model allows the and manipulate Customized TE topologies. The model allows the
provider to present the network in abstract TE Terms on a per client provider to present the network in abstract TE terms on a per&nbhy;client
basis. These customized topologies contain sufficient information for basis. These customized topologies contain sufficient information for
the path computing client to select paths according to its policies.</t> the client to compute and select paths according to its policies.</t>
<t>
<figure title="Example packet optical topology" anchor="fig9"><artwork><! Consider the network topology depicted in <xref target="fig9" format="default
[CDATA[ "/>. This is a
typical packet optical transport deployment scenario where the WDM-layer
network domain serves as a server network domain providing transport
connectivity to the packet-layer network domain (client network
domain). Nodes R1, R2, R3, and R4 are IP routers that are connected to an
optical WDM transport network. A, B, C, D, E, and F are WDM nodes that
constitute the server network domain.</t>
<figure anchor="fig9">
<name>Example Packet Optical Topology</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
| +---+ /-\ | +---+ /-\
| | | Router ( ) WDM | | | Router ( ) WDM
| +---+ Node \-/ node | +---+ Node \-/ Node
| |
o---------------------------- o----------------------------
+---+ /-\ /-\ /-\ +---+ +---+ /-\ /-\ /-\ +---+
| R1|-------( A )--------( C )---------( E )---------| R3| | R1|-------( A )--------( C )---------( E )---------| R3|
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
+---+ /-\ /-\ /-\ +---+ +---+ /-\ /-\ /-\ +---+
| R2|---------( B )---------( D )---------( F )---------| R4| | R2|---------( B )---------( D )---------( F )---------| R4|
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+]]></artwork>
]]></artwork> </figure>
</figure> <t>
<t> The goal here is to augment the client's TE topology with a Customized TE
Consider the network topology depicted in <xref target="fig9"/>. This is a topology provided by the WDM network. Given the availability of the paths
typical packet optical transport deployment scenario where the WDM layer A-E, B-F, and B-E (<xref target="fig10" format="default"/>), a Customized TE
network domain serves as a Server Network Domain providing transport topology as
connectivity to the packet layer network Domain (Client Network depicted in <xref target="fig11" format="default"/> is provided to the client
Domain). Nodes R1, R2, R3 and R4 are IP routers that are connected to an . This Customized TE
Optical WDM transport network. A, B, C, D, E and F are WDM nodes that topology is merged with the client's Native TE topology, and the resulting
constitute the Server Network Domain.</t> topology is depicted in <xref target="fig12" format="default"/>.</t>
<figure anchor="fig10">
<figure title="Paths within the provider domain" anchor="fig10"><artwork> <name>Paths within the Provider Domain</name>
<![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
| ***** B-F WDM Path | ***** B-F WDM Path
| @@@@@ B-E WDM Path | @@@@@ B-E WDM Path
| $$$$$ A-E WDM Path | $$$$$ A-E WDM Path
o-------------------- o--------------------
+---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+
| R1|-------( A )--------( C )---------( E )---------| R3| | R1|-------( A )--------( C )---------( E )---------| R3|
+---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
+---+ /-\ ********* /-\ ********* /-\ +---+ +---+ /-\ ********* /-\ ********* /-\ +---+
| R2|---------( B )---------( D )---------( F )---------| R4| | R2|---------( B )---------( D )---------( F )---------| R4|
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+]]></artwork>
]]></artwork> </figure>
</figure> <figure anchor="fig11">
<figure title="Customized TE Topology provided to the Client" anchor="fig <name>Customized TE Topology Provided to the Client</name>
11"><artwork><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
++++++++ [A] ++++++++++++++++++++ [E] +++++++++ ++++++++ [A] ++++++++++++++++++++ [E] +++++++++
+++++ +++++
++++ ++++
++++ ++++
++++ ++++
++++ ++++
++++++++ [B] ++++++++++++++++++++ [F] +++++++++ ++++++++ [B] ++++++++++++++++++++ [F] +++++++++]]></artwork>
]]></artwork> </figure>
</figure> <figure anchor="fig12">
<t> <name>Customized TE Topology Merged with the&nbsp;Client's&nbsp;Native
The goal here is to augment the Client TE Topology with a customized TE &nbsp;TE Topology</name>
Topology provided by the WDM network. Given the availability of the paths <artwork name="" type="" align="left" alt=""><![CDATA[
A-E, B-F and B-E (<xref target="fig10"/>), a customized TE Topology as
depicted in <xref target="fig11"/> is provided to the Client. This customized
TE
Topology is merged with the Client's Native TE Topology and the resulting
topology is depicted in <xref target="fig12"/>.</t>
<figure title="Customized TE Topology merged with the Client's Native TE
Topology" anchor="fig12"><artwork><![CDATA[
[R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3]
+++++ +++++
++++ ++++
++++ ++++
++++ ++++
++++ ++++
[R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4]]]></artwork>
]]></artwork> </figure>
</figure> <t>
<t> The data model defined in this document can be used to
The data model proposed in this document can be used to represent, retrieve, and manipulate the Customized TE topology depicted in
retrieve/represent/manipulate the customized TE Topology depicted in <xref target="fig11" format="default"/>.</t>
<xref target="fig11"/>.</t> <t>
A Customized TE topology is not necessarily an abstract TE topology.
<t> The provider may produce, for example, an abstract TE topology of a
A customized TE topology is not necessarily an abstract TE topology. certain type (a single-abstract-node-with-connectivity-matrix
The provider may produce, for example, an abstract TE topology of
certain type (e.g. single-abstract-node-with-connectivity-matrix
topology, a border-nodes-connected-via-mesh-of-abstract-links topology, a border-nodes-connected-via-mesh-of-abstract-links
topology, etc.) and expose it to all/some clients in expectation that topology, etc.) and expose it to all or some clients in the expectation that
the clients will use it without customization. the clients will use it without customization.
On the other hand, a client may request a customized version of the On the other hand, a client may request a customized version of the
provider's native TE topology (e.g. by requesting removal of TE links provider's Native TE topology (e.g., by requesting the removal of TE links
which belong to certain layers, are too slow, not protected and/or that belong to certain layers, are too slow, are not protected, and/or
have a certain affinity). Note that the resulting TE topology will have a certain affinity). Note that the resulting TE topology will
not be abstract (because it will not contain abstract elements), but not be abstract (because it will not contain abstract elements) but will be
customized (modified upon client's instructions).</t> customized (modified upon the client's instructions).</t>
<t>
<t> The client ID field in the TE topology identifier (<xref target="sect-5.4" fo
The client ID field in the TE topology identifier (<xref target="sect-5.4"/>. rmat="default"/>)
)
indicates which client the TE topology is customized for. Although an indicates which client the TE topology is customized for. Although an
authorized client MAY receive a TE topology with the client ID field authorized client <bcp14>MAY</bcp14> receive a TE topology with the client ID field
matching some other client, the client can customize only TE matching some other client, the client can customize only TE
topologies with the client ID field either 0 or matching the ID of topologies with the client ID field either set to 0 or matching the ID of
the client in question. If the client starts reconfiguration of a the client in question. If the client starts the reconfiguration of a
topology its client ID will be automatically set in the topology ID topology, its client ID will be automatically set in the topology ID
field for all future configurations and updates wrt. the topology in field for all future configurations and updates with regard to the topology i
n
question.</t> question.</t>
<t>
<t> The provider, by setting its own ID in the client ID field of the topology
The provider MAY tell the client that a given TE topology cannot be ID, <bcp14>MAY</bcp14> tell the client that a given TE topology
re-negotiated, by setting its own (provider's) ID in the client ID cannot be renegotiated.</t>
field of the topology ID.</t> <t>
Even though this data model allows the access of TE topology information
<t> across clients, implementations <bcp14>MAY</bcp14> restrict access for partic
Even though this data model allows to access TE topology information ular
across clients, implementations MAY restrict access for particular clients to particular data fields. The Network Configuration Access Control M
clients to particular data fields. The Network Configuration Access odel (NACM) <xref target="RFC8341" format="default"/> provides such a mechanism.
Control Model (NACM) <xref target="RFC8341"/> provides such a mechanism.</t> </t>
</section>
</section> <section anchor="sect-4.3" numbered="true" toc="default">
<name>Merging TE Topologies Provided by Multiple Providers</name>
<section title="Merging TE Topologies Provided by Multiple Providers" anc <t>
hor="sect-4.3"><t>
A client may receive TE topologies provided by multiple providers, A client may receive TE topologies provided by multiple providers,
each of which managing a separate domain of multi-domain network. In each of which manages a separate domain of a multi-domain network. In
order to make use of said topologies, the client is expected to merge order to make use of said topologies, the client is expected to merge
the provided TE topologies into one or more client's native TE the provided TE topologies into one or more of its own Native TE
topologies, each of which homogeneously representing the multi-domain topologies, each of which homogeneously represents the multi-domain
network. This makes it possible for the client to select end-to-end network. This makes it possible for the client to select end-to-end
TE paths for its services traversing multiple domains.</t> TE paths for its services traversing multiple domains.</t>
<t>
<t>
In particular, the process of merging TE topologies includes:</t> In particular, the process of merging TE topologies includes:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>Identifying neighboring domains and locking their topologies
<t>Identifying neighboring domains and locking their topologies horizontally by connecting their inter-domain open-ended TE links.</li>
horizontally by connecting their inter-domain open-ended TE links;</t> <li>Renaming TE node IDs, link IDs, and SRLG IDs to IDs allocated from
a
<t>Renaming TE node, link, and SRLG IDs to ones allocated from a separate namespace; this is necessary because all TE topologies
separate name space; this is necessary because all TE topologies are considered to be, generally speaking, independent, and clashes among
are considered to be, generally speaking, independent with a TE node IDs, link IDs, or SRLG IDs are possible.</li>
possibility of clashes among TE node, link or SRLG IDs;</t> <li>Locking, vertically, TE topologies associated with different layer
networks, according to provided topology inter-layer locks; this is done
<t>Locking, vertically, TE topologies associated with different layer
networks, according to provided topology inter-layer locks; this is
to facilitate inter-layer path computations across multiple TE to facilitate inter-layer path computations across multiple TE
topologies provided by the same topology provider.</t> topologies provided by the same topology provider.</li>
</ul>
</list> <t>
</t> <xref target="fig13" format="default"/> illustrates the process whereby the
client merges the TE topologies furnished by its providers.</t>
<figure title="Merging Domain TE Topologies" anchor="fig13"><artwork><![C <figure anchor="fig13">
DATA[ <name>Merging Domain TE Topologies: An Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
/---\ +---+ +---+ +---+ +---+ /---\ /---\ +---+ +---+ +---+ +---+ /---\
|s3 |------|S13|----|S15|------|S23|----|S25|------|C21| |C11|------|S13|----|S15|------|S23|----|S25|------|C21|
\---/ +---+\ +---+ +---+ /+---+ \---/ \---/ +---+\ +---+ +---+ /+---+ \---/
\ / \ /
\ / \ /
\+---+ +---+/ +---+ /---\ \+---+ +---+/ +---+ /---\
|S18|------|S24| |S28|------|C22| |S18|------|S24| |S28|------|C22|
+---+ +---+\ /+---+ \---/ +---+ +---+\ /+---+ \---/
\/ \/
/\ /\
/---\ +---+ +---+ +---+/ \+---+ /---\ /---\ +---+ +---+ +---+/ \+---+ /---\
|C12|------|S19|----|S17|------|S29|----|S27|------|C23| |C12|------|S19|----|S17|------|S29|----|S27|------|C23|
\---/ +---+ +---+ +---+ +---+ \---/ \---/ +---+ +---+ +---+ +---+ \---/
Domain 1 TE Topology Domain 2 TE Topology Domain 1 TE Topology Domain 2 TE Topology
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
-----|S13|----|S15|---- ----|S23|----|S25|---- -----|S13|----|S15|---- ----|S23|----|S25|----
+---+\ +---+ +---+ /+---+ +---+\ +---+ +---+ /+---+
\ / \ /
\ / \ /
\+---+ +---+/ +---+ \+---+ +---+/ +---+
|S18|---- ----|S24| |S28|---- |S18|---- ----|S24| |S28|----
+---+ +---+\ /+---+ +---+ +---+\ /+---+
\/ \/
/\ /\
+---+ +---+ +---+/ \+---+ +---+ +---+ +---+/ \+---+
-----|S19|----|S17|---- ----|S29|----|S27|---- -----|S19|----|S17|---- ----|S29|----|S27|----
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+]]></artwork>
]]></artwork> </figure>
</figure> <t>In <xref target="fig13"/>, each of
<t> the two providers caters to the client (abstract or Native) TE
<xref target="fig13"/> illustrates the process of merging, by the client, of
TE
topologies provided by the client's providers. In the Figure, each of
the two providers caters to the client (abstract or native) TE
topology, describing the network domain under the respective topology, describing the network domain under the respective
provider's control. The client, by consulting the attributes of the provider's control. The client, by consulting such attributes of the
inter-domain TE links - such as inter-domain plug IDs or remote TE inter-domain TE links as inter-domain plug IDs or remote TE
node/link IDs (as defined by the TE Topology model) - is able to node&nbsp;IDs / link&nbsp;IDs (as defined by the TE topology model), is able
to
determine that:</t> determine that:</t>
<ol spacing="normal" type="1">
<t><list style="format (%c)"> <li>the two domains are adjacent and are interconnected via three
inter-domain TE links, and</li>
<t>the two domains are adjacent and are inter-connected via three <li> each domain is connected to a separate customer site, connecting
inter-domain TE links, and; </t> the domain on the left in the figure to customer devices C11 and C12, an
d
<t> each domain is connected to a separate customer site, connecting the domain on the right to customer devices C21, C22, and C23.</li>
the left domain in the Figure to customer devices C-11 and C-12, and </ol>
the right domain to customer devices C-21, C-22 and C-23. <t>
</t> Therefore, the client interconnects the open-ended TE links, as
shown on the upper part of the figure.</t>
</list> <t>
</t> As mentioned previously, one way to interconnect the open-ended inter-domain
TE links
<t> of neighboring domains is to mandate that the providers specify a remote
Therefore, the client inter-connects the open-ended TE links, as node&nbsp;ID / link&nbsp;ID attribute in the provided inter-domain TE
shown on the upper part of the Figure.</t> links. However, this may prove not to be flexible. For example, the providers
may not
<t> know the respective remote node&nbsp;IDs / link&nbsp;IDs. More importantly, t
As mentioned, one way to inter-connect the open-ended inter-domain TE links his option
of neighboring domains is to mandate the providers to specify remote does not allow the client to mix and match multiple topologies (more than
nodeID/linkID attribute in the provided inter-domain TE links. This, one topology) catered by the same providers (see below). Another option
however, may prove to be not flexible. For example, the providers may not (which is more flexible) for resolving the open-ended inter-domain TE links i
know the respective remote nodeIDs/ linkIDs. More importantly, this option s to
does not allow for the client to mix-n-match multiple (more than one) annotate them with the inter-domain plug ID attribute. The inter-domain plug
topologies catered by the same providers (see below). Another, more
flexible, option to resolve the open-ended inter-domain TE links is by
annotating them with the inter-domain plug ID attribute. Inter-domain plug
ID is a network-wide unique number that identifies on the network a ID is a network-wide unique number that identifies on the network a
connectivity supporting a given inter-domain TE link. Instead of specifying connection that supports a given inter-domain TE link. Instead of specifying
remote node ID/link ID, an inter-domain TE link may provide a non-zero a remote node ID / link ID, an inter-domain TE link may provide a non-zero
inter-domain plug ID. It is expected that two neighboring domain TE inter-domain plug ID. It is expected that two neighboring domain TE
topologies (provided by separate providers) will have each at least one topologies (provided by separate providers) will each have at least one
open-ended inter-domain TE link with an inter-domain plug ID matching to open-ended inter-domain TE link with an inter-domain plug ID matching
one provided by its neighbor. For example, the inter-domain TE link an ID provided by its neighbor. For example, the inter-domain TE link
originating from node S15 of the Domain 1 TE topology (<xref originating from node S15 of the Domain 1 TE topology (<xref target="fig13"
target="fig13"/>) and the inter-domain TE link coming from node S23 of format="default"/>) and the inter-domain TE link coming from node S23 of the
Domain 2 TE topology may specify matching inter-domain plug ID Domain 2 TE topology may specify a matching inter-domain plug ID
(e.g. 175344). This allows for the client to identify adjacent nodes in the (e.g., 175344). This allows the client to identify adjacent nodes in the
separate neighboring TE topologies and resolve the inter-domain TE links separate neighboring TE topologies and resolve the inter-domain TE links
connecting them regardless of their respective nodeIDs/linkIDs (which, as connecting them, regardless of their respective node&nbsp;IDs / link&nbsp;IDs
mentioned, could be allocated from independent name spaces). Inter-domain (which, as
mentioned previously, could be allocated from independent namespaces). Inter-
domain
plug IDs may be assigned and managed by a central network authority. plug IDs may be assigned and managed by a central network authority.
Alternatively, inter-domain plug IDs could be dynamically auto-discovered Alternatively, inter-domain plug IDs could be dynamically autodiscovered
(e.g. via LMP protocol).</t> (e.g., via the Link Management Protocol (LMP)).</t>
<t>
<t> Furthermore, the client renames the TE nodes, links, and SRLGs offered
Furthermore, the client renames the TE nodes, links and SRLGs offered
in the abstract TE topologies by assigning to them IDs allocated from in the abstract TE topologies by assigning to them IDs allocated from
a separate name space managed by the client. Such renaming is a separate namespace managed by the client. Such renaming is
necessary, because the two abstract TE topologies may have their own necessary, because the two abstract TE topologies may have their own
name spaces, generally speaking, independent one from another; hence, namespaces, generally speaking, independent one from another; hence,
ID overlaps/clashes are possible. For example, both TE topologies ID overlaps/clashes are possible. For example, both TE topologies
have TE nodes named S7, which, after renaming, appear in the merged have TE nodes named S7, which, after renaming, appear in the merged
TE topology as S17 and S27, respectively.</t> TE topology as S17 and S27, respectively.</t>
<t>
<t>
Once the merging process is complete, the client can use the merged Once the merging process is complete, the client can use the merged
TE topology for path computations across both domains, for example, TE topology for path computations across both domains -- for example,
to compute a TE path connecting C-11 to C-23.</t> to compute a TE path connecting C11 to C23.</t>
</section>
</section> <section anchor="sect-4.4" numbered="true" toc="default">
<name>Dealing with Multiple Abstract TE Topologies Provided by the Same
<section title="Dealing with Multiple Abstract TE Topologies Provided by Provider</name>
the Same Provider" anchor="sect-4.4"> <t>
Based on local configuration, templates, and/or policies pushed by the
<figure title="Merging Domain TE Topologies" anchor="fig14"><artwork><![C client, a given provider may expose more than one abstract TE
DATA[ topology to the client. For example, one abstract TE topology could
be optimized based on a lowest-cost criterion, while another one
could be based on best possible delay metrics, while yet another one
could be based on maximum bandwidth availability for the client
services. Furthermore, the client may request all or some providers
to expose additional abstract TE topologies, possibly of a different
type and/or optimized differently, as compared to already-provided TE
topologies. In any case, the client should be prepared for a provider
to offer to the client more than one abstract TE topology.</t>
<t>
It should be up to the client (based on the client's local configuration
and/or policies conveyed to the client by the client's clients) to decide
how to mix and match multiple abstract TE topologies provided by each or
some of the providers, as well as how to merge them into the client's
Native TE topologies. The client also decides how many such merged TE
topologies it needs to produce and maintain. For example, in addition to
the merged TE topology depicted in the upper part of <xref target="fig13" for
mat="default"/>, the client may merge the abstract TE topologies received
from the two providers, as shown in <xref target="fig14" format="default"/>,
into the client's additional
Native TE topologies, as shown in <xref target="fig15"
format="default"/>.</t>
<figure anchor="fig14">
<name>Merging Domain TE Topologies: Another Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
-----|S13|----|S15|---- ----|S23|----|S25|---- -----|S13|----|S15|---- ----|S23|----|S25|----
+---+\ +---+ +---+ /+---+ +---+\ +---+ +---+ /+---+
\ / \ /
\ / \ /
\+---+ +---+/ +---+ \+---+ +---+/ +---+
|S18|---- ----|S24| |S28|---- |S18|---- ----|S24| |S28|----
+---+ +---+\ /+---+ +---+ +---+\ /+---+
\/ \/
/\ /\
+---+ +---+ +---+/ \+---+ +---+ +---+ +---+/ \+---+
-----|S19|----|S17|---- ----|S29|----|S27|---- -----|S19|----|S17|---- ----|S29|----|S27|----
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 Domain 1 Abstract TE Topology 2 Domain 2 Abstract TE Topology 2
+------------+ +------------+ +------------+ +------------+
-----| |---- ----| |---- -----| |---- ----| |----
| | | | | | | |
| AN1 |---- ----| AN1 |---- | AN1 |---- ----| AN1 |----
| | | | | | | |
-----| |---- ----| |---- -----| |---- ----| |----
+------------+ +------------+ +------------+ +------------+]]></artwork>
]]></artwork> </figure>
</figure>
<t>
Based on local configuration, templates and/or policies pushed by the
client, a given provider may expose more than one abstract TE
topology to the client. For example, one abstract TE topology could
be optimized based on a lowest-cost criterion, while another one
could be based on best possible delay metrics, while yet another one
could be based on maximum bandwidth availability for the client
services. Furthermore, the client may request all or some providers
to expose additional abstract TE topologies, possibly of a different
type and/or optimized differently, as compared to already-provided TE
topologies. In any case, the client should be prepared for a provider
to offer to the client more than one abstract TE topology.</t>
<t>
It should be up to the client (based on the client's local configuration
and/or policies conveyed to the client by the client's clients) to decide
how to mix-and-match multiple abstract TE topologies provided by each or
some of the providers, as well as how to merge them into the client's
native TE topologies. The client also decides how many such merged TE
topologies it needs to produce and maintain. For example, in addition to
the merged TE topology depicted in the upper part of <xref
target="fig13"/>, the client may merge the abstract TE topologies received
from the two providers, as shown in <xref target="fig14"/>, into the client's
additional
native TE topologies, as shown in <xref target="fig15"/>.</t>
<t>
Note that allowing for the client mix-n-matching of multiple TE
topologies assumes that inter-domain plug IDs (rather than remote
nodeID/linkID) option is used for identifying neighboring domains and
inter-domain TE link resolution.</t>
<figure title="Multiple Native (Merged) Client's TE Topologies" anchor="f
ig15"><artwork><![CDATA[
<figure anchor="fig15">
<name>Multiple Native (Merged) Client's TE Topologies</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Client's Merged TE Topology 2 Client's Merged TE Topology 2
/---\ +------------+ +------------+ /---\ /---\ +------------+ +------------+ /---\
|s3 |------| |------| |------|C21| |C11|------| |------| |------|C21|
\---/ | | | | \---/ \---/ | | | | \---/
| | | | | | | |
| | | | | | | |
| | | | /---\ | | | | /---\
| AN11 |------| AN21 |------|C22| | AN11 |------| AN21 |------|C22|
| | | | \---/ | | | | \---/
| | | | | | | |
| | | | | | | |
/---\ | | | | /---\ /---\ | | | | /---\
|C12|------| |------| |------|C23| |C12|------| |------| |------|C23|
\---/ +------------+ +------------+ \---/ \---/ +------------+ +------------+ \---/
Client's Merged TE Topology 3 Client's Merged TE Topology 3
/---\ +------------+ +---+ +---+ /---\ /---\ +------------+ +---+ +---+ /---\
|s3 |------| |------|S23|----|S25|------|C21| |C11|------| |------|S23|----|S25|------|C21|
\---/ | | +---+ /+---+ \---/ \---/ | | +---+ /+---+ \---/
| | / | | /
| | / | | /
| | +---+/ +---+ /---\ | | +---+/ +---+ /---\
| AN11 |------|S24| |S28|------|C22| | AN11 |------|S24| |S28|------|C22|
| | +---+\ /+---+ \---/ | | +---+\ /+---+ \---/
| | \/ | | \/
| | /\ | | /\
/---\ | | +---+/ \+---+ /---\ /---\ | | +---+/ \+---+ /---\
|C12|------| |------|S29|----|S27|------|C23| |C12|------| |------|S29|----|S27|------|C23|
\---/ +------------+ +---+ +---+ \---/ \---/ +------------+ +---+ +---+ \---/]]></artwork>
]]></artwork> </figure>
</figure>
<t>
It is important to note that each of the three native (merged) TE
topologies could be used by the client for computing TE paths for any
of the multi-domain services. The choice as to which topology to use
for a given service depends on the service parameters/requirements
and the topology's style, optimization criteria and the level of
details.</t>
</section>
</section>
<section title="Modeling Considerations" anchor="sect-5"><section title="
Network topology building blocks" anchor="sect-5.1"><t>
The network topology building blocks are discussed in <xref target="RFC8345"/
>. The
TE Topology model proposed in this document augments and uses the
ietf-network-topology module defined in <xref target="RFC8345"/>.</t>
<figure title="Augmenting the Network Topology Model" anchor="fig16"><art
work><![CDATA[
+------------------------+
| |
| Network Topology Model |
| (ietf-network-topology)|
+------------------------+
|
|
|
V
+------------------------+
| TE Topology |
| Model |
| |
+------------------------+
]]></artwork>
</figure>
</section>
<section title="Technology agnostic TE Topology model" anchor="sect-5.2">
<t>
The TE Topology model proposed in this document is meant to be
network technology agnostic. Other technology specific TE Topology
models can augment and use the building blocks provided by the
proposed model.</t>
<figure title="Augmenting the Technology agnostic TE Topology model" anch <t>
or="fig17"><artwork><![CDATA[ Note that allowing the client to mix and match multiple TE
+-----------------------------+ topologies assumes that inter-domain plug IDs (rather than a remote
| TE Topology Model | node&nbsp;ID / link&nbsp;ID) are used as the option for identifying neighbori
| (Defined in This Document) | ng domains and
+-----------------------------+ inter-domain TE link resolution.</t>
| <t>
+-------------+-------------+-------------+ It is important to note that each of the three Native (merged) TE
| | | | topologies could be used by the client for computing TE paths for any
V V V V of the multi-domain services. The choice of which topology to use
+------------+ +------------+ for a given service depends on the service parameters/requirements,
| Technology | | Technology | the topology's style and optimization criteria, and the level of
| Specific | ...................... | Specific | detail.</t>
| TE Topology| | TE Topology| </section>
| Model 1 | | Model n | </section>
+------------+ +------------+ <section anchor="sect-5" numbered="true" toc="default">
]]></artwork> <name>Modeling Considerations</name>
</figure> <section anchor="sect-5.1" numbered="true" toc="default">
</section> <name>Network Topology Building Blocks</name>
<t>
The network topology building blocks are discussed in <xref target="RFC8345"
format="default"/>. The
TE topology model defined in this document augments and uses the
"ietf-network-topology" module defined in <xref target="RFC8345" format="defa
ult"/>.</t>
<figure anchor="fig16">
<name>Augmenting the Network Topology Model</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
+------------------------+
| Network Topology Model |
| (ietf-network-topology)|
+------------------------+
|
|
|
V
+------------------------+
| TE Topology |
| Model |
+------------------------+]]></artwork>
</figure>
</section>
<section anchor="sect-5.2" numbered="true" toc="default">
<name>Technology-Agnostic TE Topology Model</name>
<t>
The TE topology model defined in this document is meant to be
network technology agnostic. Other technology-specific TE topology
models can augment and use the building blocks provided by this model,
as illustrated in <xref target="fig17"/>.</t>
<figure anchor="fig17">
<name>Augmenting the Technology-Agnostic TE Topology Model</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
+-----------------------------+
| TE Topology Model |
+-----------------------------+
|
+-------------+-------------+-------------+
| | | |
V V V V
+-------------+ +-------------+
| Technology- | | Technology- |
| Specific | ...................... | Specific |
| TE Topology | | TE Topology |
| Model 1 | | Model n |
+-------------+ +-------------+]]></artwork>
</figure>
</section>
<section anchor="sect-5.3" numbered="true" toc="default">
<name>Model Structure</name>
<section title="Model Structure" anchor="sect-5.3"><t> <t>
The high-level model structure proposed by this document is as shown The high-level model structure defined by this document is as shown
below:</t> below:</t>
<sourcecode name="" type="yangtree"><![CDATA[
<figure><artwork><![CDATA[
module: ietf-te-topology module: ietf-te-topology
augment /nw:networks/nw:network/nw:network-types: augment /nw:networks/nw:network/nw:network-types:
+--rw te-topology! +--rw te-topology!
augment /nw:networks:
+--rw te!
+--rw templates
+--rw node-template* [name] {template}?
| ............
+--rw link-template* [name] {template}?
............
augment /nw:networks/nw:network:
+--rw te-topology-identifier
| +--rw provider-id? te-global-id
| +--rw client-id? te-global-id
| +--rw topology-id? te-topology-id
+--rw te!
| ............
augment /nw:networks/nw:network/nw:node:
+--rw te-node-id? te-types:te-node-id
+--rw te!
| ............
+--rw tunnel-termination-point* [tunnel-tp-id]
+--rw tunnel-tp-id binary
| ............
+--rw supporting-tunnel-termination-point* [node-ref tunnel-
tp-ref]
| ............
augment /nw:networks/nw:network/nt:link:
+--rw te!
| ..........
augment /nw:networks/nw:network/nw:node/nt:termination-point: augment /nw:networks:
+--rw te-tp-id? te-types:te-tp-id +--rw te!
+--rw te! +--rw templates
| ............ +--rw node-template* [name] {template}?
]]></artwork> | ............
</figure> +--rw link-template* [name] {template}?
</section> ............
<section title="Topology Identifiers" anchor="sect-5.4"><t> augment /nw:networks/nw:network:
The TE-Topology is uniquely identified by a key that has 3 +--rw te-topology-identifier
constituents - topology-id, provider-id and client-id. The | +--rw provider-id? te-global-id
combination of provider-id and topology-id uniquely identifies a | +--rw client-id? te-global-id
native TE Topology on a given provider. The client-id is used only | +--rw topology-id? te-topology-id
when Customized TE Topologies come into play; a value of "0" is used +--rw te!
as the client-id for native TE Topologies.</t> | ............
<figure><artwork><![CDATA[ augment /nw:networks/nw:network/nw:node:
augment /nw:networks/nw:network: +--rw te-node-id? te-types:te-node-id
+--rw te-topology-identifier +--rw te!
| +--rw provider-id? te-global-id | ............
| +--rw client-id? te-global-id +--rw tunnel-termination-point* [tunnel-tp-id]
| +--rw topology-id? te-topology-id +--rw tunnel-tp-id binary
+--rw te! | ............
| ............ +--rw supporting-tunnel-termination-point*
]]></artwork> [node-ref tunnel-tp-ref]
</figure> | ............
</section>
<section title="Generic TE Link Attributes" anchor="sect-5.5"><t> augment /nw:networks/nw:network/nt:link:
The model covers the definitions for generic TE Link attributes - +--rw te!
bandwidth, admin groups, SRLGs, switching capabilities, TE metric | ..........
extensions etc.</t>
<figure><artwork><![CDATA[ augment /nw:networks/nw:network/nw:node/nt:termination-point:
+--rw te-tp-id? te-types:te-tp-id
+--rw te!
| ............]]></sourcecode>
</section>
<section anchor="sect-5.4" numbered="true" toc="default">
<name>Topology Identifiers</name>
<t>
The TE topology is uniquely identified by a key that has three
constituents -- "topology-id", "provider-id", and "client-id". The
combination of "provider-id" and "topology-id" uniquely identifies a
Native TE topology on a given provider. &nbsp;"client-id" is used only
when Customized TE topologies come into play; a "client-id" value of "0" is
used for Native TE topologies.</t>
<sourcecode name="" type="yangtree"><![CDATA[
augment /nw:networks/nw:network:
+--rw te-topology-identifier
| +--rw provider-id? te-global-id
| +--rw client-id? te-global-id
| +--rw topology-id? te-topology-id
+--rw te!
| ............]]></sourcecode>
</section>
<section anchor="sect-5.5" numbered="true" toc="default">
<name>Generic TE Link Attributes</name>
<t>
The model covers the definitions for generic TE link attributes --
bandwidth, administrative groups, SRLGs, switching capabilities, TE metric
extensions, etc.</t>
<sourcecode name="" type="yangtree"><![CDATA[
+--rw te-link-attributes +--rw te-link-attributes
..................... .....................
+--rw admin-status? te-admin-status +--rw admin-status? te-admin-status
| ..................... | .....................
+--rw link-index? uint64 +--rw link-index? uint64
+--rw administrative-group? te-types:admin-groups +--rw administrative-group? te-types:admin-groups
+--rw link-protection-type? enumeration +--rw link-protection-type? enumeration
+--rw max-link-bandwidth? te-bandwidth +--rw max-link-bandwidth? te-bandwidth
+--rw max-resv-link-bandwidth? te-bandwidth +--rw max-resv-link-bandwidth? te-bandwidth
+--rw unreserved-bandwidth* [priority] +--rw unreserved-bandwidth* [priority]
| ..................... | .....................
+--rw te-default-metric? uint32 +--rw te-default-metric? uint32
| ..................... | .....................
+--rw te-srlgs +--rw te-srlgs
+--rw te-nsrlgs {nsrlg}? ..................... +--rw te-nsrlgs {nsrlg}? .....................]]></sourcecode>
]]></artwork> </section>
</figure> <section anchor="sect-5.6" numbered="true" toc="default">
</section> <name>Generic TE Node Attributes</name>
<t>
<section title="Generic TE Node Attributes" anchor="sect-5.6"><t> The model covers the definitions for generic TE node attributes.</t>
The model covers the definitions for generic TE Node attributes.</t> <t>The definition of a generic connectivity matrix is shown below:</t>
<sourcecode name="" type="yangtree"><![CDATA[
<t>The definition of a generic connectivity matrix is shown below:</t>
<figure><artwork><![CDATA[
+--rw te-node-attributes +--rw te-node-attributes
........... ...........
+--rw connectivity-matrices +--rw connectivity-matrices
........... ...........
| +--rw connectivity-matrix* [id] | +--rw connectivity-matrix* [id]
| | +--rw id uint32 | | +--rw id uint32
| | +--rw from | | +--rw from
| | | +--rw tp-ref? leafref | | | +--rw tp-ref? leafref
| | | +--rw label-restrictions | | | +--rw label-restrictions
| | +--rw to | | +--rw to
skipping to change at line 1293 skipping to change at line 1215
| | | +--rw label-restrictions | | | +--rw label-restrictions
| | +--rw is-allowed? boolean | | +--rw is-allowed? boolean
........... ...........
| | +--rw underlay! {te-topology-hierarchy}? | | +--rw underlay! {te-topology-hierarchy}?
........... ...........
| | +--rw path-constraints | | +--rw path-constraints
........... ...........
| | +--rw optimizations | | +--rw optimizations
........... ...........
| | +--ro path-properties | | +--ro path-properties
........... ...........]]></sourcecode>
]]></artwork> <t>The definition of a TTP Local Link Connectivity List is shown below:<
</figure> /t>
<sourcecode name="" type="yangtree"><![CDATA[
<t>The definition of a TTP Local Link Connectivity List is shown below:</t>
<figure><artwork><![CDATA[
+--rw tunnel-termination-point* [tunnel-tp-id] +--rw tunnel-termination-point* [tunnel-tp-id]
+--rw tunnel-tp-id binary +--rw tunnel-tp-id binary
+--rw admin-status? te-types:te-admin-status +--rw admin-status? te-types:te-admin-status
+--rw name? string +--rw name? string
+--rw switching-capability? identityref +--rw switching-capability? identityref
+--rw encoding? identityref +--rw encoding? identityref
+--rw inter-layer-lock-id* uint32 +--rw inter-layer-lock-id* uint32
+--rw protection-type? Identityref +--rw protection-type? identityref
+--rw client-layer-adaptation +--rw client-layer-adaptation
........... ...........
+--rw local-link-connectivities +--rw local-link-connectivities
........... ...........
| +--rw local-link-connectivity* [link-tp-ref] | +--rw local-link-connectivity* [link-tp-ref]
| +--rw link-tp-ref leafref | +--rw link-tp-ref leafref
| +--rw label-restrictions | +--rw label-restrictions
........... ...........
| +--rw is-allowed? boolean | +--rw is-allowed? boolean
| +--rw underlay {te-topology-hierarchy}? | +--rw underlay {te-topology-hierarchy}?
........... ...........
| +--rw path-constraints | +--rw path-constraints
........... ...........
| +--rw optimizations | +--rw optimizations
........... ...........
| +--ro path-properties | +--ro path-properties
........... ...........
+--rw supporting-tunnel-termination-point* [node-ref tunnel-tp- +--rw supporting-tunnel-termination-point*
ref] [node-ref tunnel-tp-ref]
+--rw node-ref inet:uri +--rw node-ref inet:uri
+--rw tunnel-tp-ref binary +--rw tunnel-tp-ref binary]]></sourcecode>
]]></artwork>
</figure>
<t>
The attributes directly under container connectivity-matrices are the
default attributes for all connectivity-matrix entries when the per entry
corresponding attribute is not specified. When a per entry attribute is
specified, it overrides the corresponding attribute directly under the
container connectivity-matrices. The same rule applies to the attributes
directly under container local-link-connectivities.</t>
<t> <t>
Each TTP (Tunnel Termination Point) MAY be supported by one or more The attributes directly under container "connectivity-matrices" are the
default attributes for all connectivity matrix entries when the per&nbhy;entr
y
corresponding attribute is not specified. When a per-entry attribute is
specified, it overrides the corresponding attribute directly under the
container "connectivity-matrices". The same rule applies to the attributes
directly under container "local&nbhy;link&nbhy;connectivities".</t>
<t>
Each TTP <bcp14>MAY</bcp14> be supported by one or more
supporting TTPs. If the TE node hosting the TTP in question refers to supporting TTPs. If the TE node hosting the TTP in question refers to
a supporting TE node, then the supporting TTPs are hosted by the a supporting TE node, then the supporting TTPs are hosted by the
supporting TE node. If the TE node refers to an underlay TE topology, supporting TE node. If the TE node refers to an underlay TE topology,
the supporting TTPs are hosted by one or more specified TE nodes of the supporting TTPs are hosted by one or more specified TE nodes of
the underlay TE topology.</t> the underlay TE topology.</t>
</section>
</section> <section anchor="sect-5.7" numbered="true" toc="default">
<name>TED Information Sources</name>
<section title="TED Information Sources" anchor="sect-5.7"><t> <t>
The model allows each TE topological element to have multiple TE The model allows each TE topological element to have multiple TE
information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, information sources (OSPF-TE, ISIS-TE, Border Gateway Protocol - Link State
System-Processed, Other). Each information source is associated with (BGP-LS), user-configured,
system-processed, other). Each information source is associated with
a credibility preference to indicate precedence. In scenarios where a a credibility preference to indicate precedence. In scenarios where a
customized TE Topology is merged into a Client's native TE Topology, Customized TE topology is merged into a client's Native TE topology,
the merged topological elements would point to the corresponding the merged topological elements would point to the corresponding
customized TE Topology as its information source.</t> Customized TE topology as its information source.</t>
<sourcecode name="" type="yangtree"><![CDATA[
<figure><artwork><![CDATA[ augment /nw:networks/nw:network/nw:node:
augment /nw:networks/nw:network/nw:node: +--rw te!
+--rw te! ...........
........... +--ro information-source? te-info-source
+--ro information-source? te-info-source +--ro information-source-instance? string
+--ro information-source-instance? string +--ro information-source-state
+--ro information-source-state | +--ro credibility-preference? uint16
| +--ro credibility-preference? uint16 | +--ro logical-network-element? string
| +--ro logical-network-element? string | +--ro network-instance? string
| +--ro network-instance? string | +--ro topology
| +--ro topology | +--ro node-ref? leafref
| +--ro node-ref? leafref | +--ro network-ref? leafref
| +--ro network-ref? leafref +--ro information-source-entry*
+--ro information-source-entry* | [information-source information-source-instance]
| [information-source information-source-instance] | +--ro information-source te-info-source
| +--ro information-source te-info-source | +--ro information-source-instance string
| +--ro information-source-instance string ............
............
augment /nw:networks/nw:network/nt:link:
+--rw te!
...........
+--ro information-source? te-info-source
+--ro information-source-instance? string
+--ro information-source-state
| +--ro credibility-preference? uint16
| +--ro logical-network-element? string
| +--ro network-instance? string
| +--ro topology
| +--ro link-ref? leafref
| +--ro network-ref? leafref
+--ro information-source-entry*
| [information-source information-source-instance]
| +--ro information-source te-info-source
| +--ro information-source-instance string
............
]]></artwork>
</figure>
</section>
<section title="Overlay/Underlay Relationship" anchor="sect-5.8"><t> augment /nw:networks/nw:network/nt:link:
The model captures overlay and underlay relationship for TE +--rw te!
nodes/links. For example - in networks where multiple TE Topologies ...........
+--ro information-source? te-info-source
+--ro information-source-instance? string
+--ro information-source-state
| +--ro credibility-preference? uint16
| +--ro logical-network-element? string
| +--ro network-instance? string
| +--ro topology
| +--ro link-ref? leafref
| +--ro network-ref? leafref
+--ro information-source-entry*
| [information-source information-source-instance]
| +--ro information-source te-info-source
| +--ro information-source-instance string
............]]></sourcecode>
</section>
<section anchor="sect-5.8" numbered="true" toc="default">
<name>Overlay/Underlay Relationship</name>
<t>
The model captures the overlay and underlay relationship for TE
nodes/links. For example, in networks where multiple TE topologies
are built hierarchically, this model allows the user to start from a are built hierarchically, this model allows the user to start from a
specific topological element in the top most topology and traverse specific topological element in the topmost topology and traverse
all the way down to the supporting topological elements in the bottom all the way down to the supporting topological elements in the
most topology.</t> bottommost topology.</t>
<t>
<t>
This relationship is captured via the "underlay-topology" field for This relationship is captured via the "underlay-topology" field for
the node and via the "underlay" field for the link. The use of these the node and via the "underlay" field for the link. The use of these
fields is optional and this functionality is tagged as a "feature" fields is optional, and this functionality is tagged as a "feature"
("te-topology-hierarchy").</t> ("te-topology-hierarchy").</t>
<sourcecode name="" type="yangtree"><![CDATA[
augment /nw:networks/nw:network/nw:node:
+--rw te-node-id? te-types:te-node-id
+--rw te!
+--rw te-node-template* leafref {template}?
+--rw te-node-attributes
| +--rw admin-status? te-types:te-admin-status
| | ....................
| +--rw underlay-topology {te-topology-hierarchy}?
| +--rw network-ref? leafref
<figure><artwork><![CDATA[ augment /nw:networks/nw:network/nt:link:
augment /nw:networks/nw:network/nw:node: +--rw te!
+--rw te-node-id? te-types:te-node-id +--rw te-link-attributes
+--rw te! | ....................
+--rw te-node-template* leafref {template}? | +--rw underlay {te-topology-hierarchy}?
+--rw te-node-attributes | | +--rw enabled? boolean
| +--rw admin-status? te-types:te-admin-status | | +--rw primary-path
| | .................... | | | +--rw network-ref? leafref
| +--rw underlay-topology {te-topology-hierarchy}? | | | ....................
| +--rw network-ref? leafref | | +--rw backup-path* [index]
| | | +--rw index uint32
augment /nw:networks/nw:network/nt:link: | | | +--rw network-ref? leafref
+--rw te! | | | ....................
+--rw te-link-attributes | | +--rw protection-type? identityref
| .................... | | +--rw tunnel-termination-points
| +--rw underlay {te-topology-hierarchy}? | | | +--rw source? binary
| | +--rw enabled? boolean | | | +--rw destination? binary
| | +--rw primary-path | | +--rw tunnels
| | | +--rw network-ref? leafref | | | ....................]]></sourcecode>
| | | .................... </section>
| | +--rw backup-path* [index] <section anchor="sect-5.9" numbered="true" toc="default">
| | | +--rw index uint32 <name>Templates</name>
| | | +--rw network-ref? leafref <t>
| | | .................... The data model provides users with the ability to define
| | +--rw protection-type? identityref
| | +--rw tunnel-termination-points
| | | +--rw source? binary
| | | +--rw destination? binary
| | +--rw tunnels
| | | ....................
]]></artwork>
</figure>
</section>
<section title="Templates" anchor="sect-5.9"><t>
The data model provides the users with the ability to define
templates and apply them to link and node configurations. The use of templates and apply them to link and node configurations. The use of
"template" configuration is optional and this functionality is tagged the "template" configuration is optional, and this functionality is tagged
as a "feature" ("template").</t> as a "feature" ("template").</t>
<sourcecode name="" type="yangtree"><![CDATA[
augment /nw:networks/nw:network/nw:node:
+--rw te-node-id? te-types:te-node-id
+--rw te!
+--rw te-node-template*
| -> ../../../../te/templates/node-template/name
| {template}?
<figure><artwork><![CDATA[ augment /nw:networks/nw:network/nt:link:
augment /nw:networks/nw:network/nw:node: +--rw te!
+--rw te-node-id? te-types:te-node-id +--rw te-link-template*
+--rw te! | -> ../../../../te/templates/link-template/name
+--rw te-node-template* | {template}?
| -> ../../../../te/templates/node-template/name
| {template}?
augment /nw:networks/nw:network/nt:link:
+--rw te!
+--rw te-link-template*
| -> ../../../../te/templates/link-template/name
| {template}?
augment /nw:networks: augment /nw:networks:
+--rw te! +--rw te!
+--rw templates +--rw templates
+--rw node-template* [name] {template}? +--rw node-template* [name] {template}?
| +--rw name | +--rw name
| | te-types:te-template-name | | te-types:te-template-name
| +--rw priority? uint16 | +--rw priority? uint16
| +--rw reference-change-policy? enumeration | +--rw reference-change-policy? enumeration
| +--rw te-node-attributes | +--rw te-node-attributes
.......... ..........
+--rw link-template* [name] {template}? +--rw link-template* [name] {template}?
+--rw name +--rw name
| te-types:te-template-name | te-types:te-template-name
+--rw priority? uint16 +--rw priority? uint16
+--rw reference-change-policy? enumeration +--rw reference-change-policy? enumeration
+--rw te-link-attributes +--rw te-link-attributes
.......... ..........]]></sourcecode>
]]></artwork> <t>
</figure> Multiple templates can be specified for a configuration element. When
<t>
Multiple templates can be specified to a configuration element. When
two or more templates specify values for the same configuration two or more templates specify values for the same configuration
field, the value from the template with the highest priority is used. field, the value from the template with the highest priority is used.
The range of the priority is from 0 to 65535, with a lower number The range of the priority is from 0 to 65535, with a lower number
indicating a higher priority. The reference-change-policy specifies indicating a higher priority. The "reference-change-policy" parameter specifi es
the action that needs to be taken when the template changes on a the action that needs to be taken when the template changes on a
configuration element that has a reference to this template. The configuration element that has a reference to this template. The
choices of action include taking no action, rejecting the change to choices of action include taking no action, rejecting the change to
the template and applying the change to the corresponding the template, and applying the change to the corresponding
configuration.</t> configuration.</t>
</section>
</section> <section anchor="sect-5.10" numbered="true" toc="default">
<name>Scheduling Parameters</name>
<section title="Scheduling Parameters" anchor="sect-5.10"><t> <t>
The model allows time scheduling parameters to be specified for each The model allows time-scheduling parameters to be specified for each
topological element or for the topology as a whole. These parameters topological element or for the topology as a whole. These parameters
allow the provider to present different topological views to the allow the provider to present different topological views to the
client at different time slots. The use of "scheduling parameters" is client at different time slots. The use of time-scheduling parameters is
optional.</t> optional.</t>
<t>
<t> The YANG data model for configuration scheduling is defined in <xref target="
The YANG data model for configuration scheduling is defined in <xref YANG-CFG-SCHED" format="default"/>, which allows specifying
target="I-D.liu-netmod-yang-schedule"/>, which allows specifying
configuration schedules without altering this data model.</t> configuration schedules without altering this data model.</t>
</section>
</section> <section anchor="sect-5.11" numbered="true" toc="default">
<name>Notifications</name>
<section title="Notifications" anchor="sect-5.11"><t> <t>
Notifications are a key component of any topology data model.</t> Notifications are a key component of any topology data model.</t>
<t>
<t> <xref target="RFC8639" format="default"/> and <xref target="RFC8641"/>
<xref target="I-D.ietf-netconf-subscribed-notifications"/> and <xref define a subscription mechanism and a push
target="I-D.ietf-netconf-yang-push"/> define a subscription and push mechanism for YANG datastores. These mechanisms currently allow the user
mechanism for YANG datastores. This mechanism currently allows the user
to:</t> to:</t>
<ul spacing="normal">
<t><list style="symbols"><t>Subscribe notifications on a per client basis <li>Subscribe to notifications on a per-client basis.</li>
</t> <li>Specify subtree filters or XML Path Language (XPath) filters so th
at only
<t>Specify subtree filters or xpath filters so that only interested contents of interest will be sent.</li>
contents will be sent.</t> <li>Specify either periodic or on-demand notifications.</li>
</ul>
<t>Specify either periodic or on-demand notifications.</t> </section>
</section>
</list> <section anchor="sect-6" numbered="true" toc="default">
</t> <name>Guidance for Writing Technology-Specific TE Topology Augmentations</
name>
</section> <t>
The TE topology model defined in this document is technology agnostic,
</section> as it defines concepts, abstractions, and attributes that are common
<section title="Guidance for Writing Technology Specific TE Topology Augm
entations" anchor="sect-6"><t>
The TE topology model defined in this document is technology agnostic
as it defines concepts, abstractions and attributes that are common
across multiple network technologies. It is envisioned that this base across multiple network technologies. It is envisioned that this base
model will be widely used when defining technology specific TE model will be widely used when defining technology-specific TE
topology models for various layer networks. topology models for various layer networks.
<xref target="I-D.ietf-ccamp-wson-yang"/>, <xref target="I-D.ietf-ccamp-otn-t <xref target="YANG-WSON" format="default"/>, <xref target="YANG-OTN" format="
opo-yang"/>, and default"/>, and
<xref target="I-D.ietf-teas-yang-l3-te-topo"/> are some examples of technolog <xref target="YANG-L3" format="default"/> are some examples of
y technology-specific TE topology models. Writers of such models are encouraged
specific TE Topology models. Writers of such models are encouraged to to
augment the basic TE topology model's containers, such as TE augment the basic TE topology model's containers, such as those for TE
Topology, TE Node, TE Link, Link Termination Point (LTP), Tunnel topologies, TE nodes, TE links, Link Termination Points (LTPs), Tunnel
Termination Point (TTP), Bandwidth and Label with the layer specific Termination Points (TTPs), bandwidth, and labels, with the layer-specific
attributes instead of defining new containers.</t> attributes instead of defining new containers.</t>
<t>
Consider the following technology-specific example-topology model:</t>
<t> <sourcecode name="" type="yangtree"><![CDATA[
Consider the following technology specific example-topology model:</t>
<figure><artwork><![CDATA[
module: example-topology module: example-topology
augment /nw:networks/nw:network/nw:network-types/tet:te-topology: augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
+--rw example-topology! +--rw example-topology!
augment /nw:networks/nw:network/tet:te: augment /nw:networks/nw:network/tet:te:
+--rw attributes +--rw attributes
+--rw attribute-1? uint8 +--rw attribute-1? uint8
augment /nw:networks/nw:network/nw:node/tet:te augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes: /tet:te-node-attributes:
+--rw attributes +--rw attributes
+--rw attribute-2? uint8 +--rw attribute-2? uint8
skipping to change at line 1583 skipping to change at line 1484
/tet:tunnel-termination-point: /tet:tunnel-termination-point:
+--rw attributes +--rw attributes
+--rw attribute-4? uint8 +--rw attribute-4? uint8
augment /nw:networks/nw:network/nw:node/nt:termination-point augment /nw:networks/nw:network/nw:node/nt:termination-point
/tet:te: /tet:te:
+--rw attributes +--rw attributes
+--rw attribute-5? uint8 +--rw attribute-5? uint8
augment /nw:networks/nw:network/nt:link/tet:te augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes: /tet:te-link-attributes:
+--rw attributes +--rw attributes
+--rw attribute-6? uint8 +--rw attribute-6? uint8]]></sourcecode>
]]></artwork> <t>
</figure> The technology-specific TE bandwidth for this example topology can be
<t>
The technology specific TE bandwidth for this example topology can be
specified using the following augment statements:</t> specified using the following augment statements:</t>
<sourcecode name="" type="yangtree"><![CDATA[
<figure><artwork><![CDATA[
augment /nw:networks/tet:te/tet:templates/tet:link-template augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes /tet:te-link-attributes
/tet:interface-switching-capability/tet:max-lsp-bandwidth /tet:interface-switching-capability/tet:max-lsp-bandwidth
/tet:te-bandwidth/tet:technology: /tet:te-bandwidth/tet:technology:
+--:(example) +--:(example)
+--rw example +--rw example
+--rw bandwidth-1? uint32 +--rw bandwidth-1? uint32
augment /nw:networks/tet:te/tet:templates/tet:link-template augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:max-link-bandwidth /tet:te-link-attributes/tet:max-link-bandwidth
/tet:te-bandwidth/tet:technology: /tet:te-bandwidth/tet:technology:
skipping to change at line 1714 skipping to change at line 1611
/tet:information-source-entry/tet:unreserved-bandwidth /tet:information-source-entry/tet:unreserved-bandwidth
/tet:te-bandwidth/tet:technology: /tet:te-bandwidth/tet:technology:
+--:(example) +--:(example)
+--ro example +--ro example
+--ro bandwidth-1? uint32 +--ro bandwidth-1? uint32
augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te
/tet:interface-switching-capability/tet:max-lsp-bandwidth /tet:interface-switching-capability/tet:max-lsp-bandwidth
/tet:te-bandwidth/tet:technology: /tet:te-bandwidth/tet:technology:
+--:(example) +--:(example)
+--rw example +--rw example
+--rw bandwidth-1? uint32 +--rw bandwidth-1? uint32]]></sourcecode>
]]></artwork> <t>
</figure> The technology-specific TE label for this example topology can be
<t>
The technology specific TE label for this example topology can be
specified using the following augment statements:</t> specified using the following augment statements:</t>
<sourcecode name="" type="yangtree"><![CDATA[
<figure><artwork><![CDATA[
augment /nw:networks/tet:te/tet:templates/tet:link-template augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:underlay/tet:primary-path /tet:te-link-attributes/tet:underlay/tet:primary-path
/tet:path-element/tet:type/tet:label/tet:label-hop /tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology: /tet:te-label/tet:technology:
+--:(example) +--:(example)
+--rw example +--rw example
+--rw label-1? uint32 +--rw label-1? uint32
augment /nw:networks/tet:te/tet:templates/tet:link-template augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:underlay/tet:backup-path /tet:te-link-attributes/tet:underlay/tet:backup-path
/tet:path-element/tet:type/tet:label/tet:label-hop /tet:path-element/tet:type/tet:label/tet:label-hop
skipping to change at line 2061 skipping to change at line 1954
/tet:technology: /tet:technology:
+--:(example) +--:(example)
+--ro example +--ro example
+--ro label-1? uint32 +--ro label-1? uint32
augment /nw:networks/nw:network/nt:link/tet:te augment /nw:networks/nw:network/nt:link/tet:te
/tet:information-source-entry/tet:label-restrictions /tet:information-source-entry/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label /tet:label-restriction/tet:label-end/tet:te-label
/tet:technology: /tet:technology:
+--:(example) +--:(example)
+--ro example +--ro example
+--ro label-1? uint32 +--ro label-1? uint32]]></sourcecode>
]]></artwork> <t>
</figure> The example YANG module that implements the above example topology is
<t> provided in <xref target="append-c"/>.</t>
The YANG module to implement the above example topology can be seen </section>
in Appendix C.</t> <section anchor="sect-7" numbered="true" toc="default">
<name>TE Topology YANG Module</name>
</section> <t>
<section title="TE Topology YANG Module" anchor="sect-7"><t>
This module references [<xref target="RFC1195"/>], [<xref target="RFC3209"/>], This module references <xref target="RFC1195" format="default"/>, <xref
[<xref target="RFC3272"/>], [<xref target="RFC3471"/>], [<xref target="RFC3209" format="default"/>, <xref target="RFC3272"
target="RFC3630"/>], [<xref target="RFC3785"/>], [<xref target="RFC4201"/>], format="default"/>, <xref target="RFC3471" format="default"/>, <xref
[<xref target="RFC4202"/>], [<xref target="RFC4203"/>], [<xref target="RFC3630" format="default"/>, <xref target="RFC3785"
target="RFC4206"/>], [<xref target="RFC4872"/>], [<xref target="RFC5152"/>], format="default"/>, <xref target="RFC4201" format="default"/>, <xref
[<xref target="RFC5212"/>], [<xref target="RFC5305"/>], [<xref target="RFC4202" format="default"/>, <xref target="RFC4203"
target="RFC5316"/>], [<xref target="RFC5329"/>], [<xref target="RFC5392"/>], format="default"/>, <xref target="RFC4206" format="default"/>, <xref
[<xref target="RFC6001"/>], [<xref target="RFC6241"/>], [<xref target="RFC4872" format="default"/>, <xref target="RFC5152"
target="RFC6991"/>], [<xref target="RFC7308"/>], [<xref target="RFC7471"/>], format="default"/>, <xref target="RFC5212" format="default"/>, <xref
[<xref target="RFC7579"/>], [<xref target="RFC7752"/>], [<xref target="RFC5305" format="default"/>, <xref target="RFC5316"
target="RFC8345"/>], and [<xref target="I-D.ietf-teas-yang-te-types"/>].</t> format="default"/>, <xref target="RFC5392" format="default"/>, <xref
target="RFC6001" format="default"/>, <xref target="RFC6241"
format="default"/>, <xref target="RFC6991" format="default"/>, <xref
target="RFC7308" format="default"/>, <xref target="RFC7471"
format="default"/>, <xref target="RFC7579" format="default"/>, <xref
target="RFC7752" format="default"/>, <xref target="RFC8345"
format="default"/>, and <xref target="RFC8776"/>.</t>
<figure><artwork><![CDATA[ <sourcecode name="ietf-te-topology@2020-06-29.yang" type="yang" markers="true"><
<CODE BEGINS> file "ietf-te-topology@2019-02-07.yang" ![CDATA[
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 "RFC 6991: Common YANG Data Types"; reference
"RFC 6991: Common YANG Data Types";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix inet;
reference "RFC 6991: Common YANG Data Types"; reference
"RFC 6991: Common YANG Data Types";
} }
import ietf-te-types { import ietf-te-types {
prefix "te-types"; prefix te-types;
reference reference
"I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG "RFC 8776: Common YANG Data Types for Traffic Engineering";
Types";
} }
import ietf-network { import ietf-network {
prefix "nw"; prefix nw;
reference "RFC 8345: A YANG Data Model for Network Topologies"; reference
"RFC 8345: A YANG Data Model for Network Topologies";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "nt"; prefix nt;
reference "RFC 8345: A YANG Data Model for Network Topologies"; reference
"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: <http://tools.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:Igor.Bryskin@huawei.com> <mailto:i_bryskin@yahoo.com>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Oscar Gonzalez De Dios Editor: Oscar Gonzalez de Dios
<mailto:oscar.gonzalezdedios@telefonica.com>"; <mailto:oscar.gonzalezdedios@telefonica.com>";
description description
"TE topology model for representing and manipulating technology "This YANG module defines a TE topology model for representing,
agnostic TE Topologies. retrieving, and manipulating technology-agnostic TE topologies.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
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
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; 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 "2019-02-07" { revision 2020-06-29 {
description "Initial revision"; description
reference "RFC XXXX: YANG Data Model for TE Topologies"; "Initial revision.";
// RFC Ed.: replace XXXX with actual RFC number and remove reference
// this note "RFC 8795: YANG Data Model for Traffic Engineering (TE)
Topologies";
} }
/* /*
* Features * Features
*/ */
feature nsrlg { feature nsrlg {
description description
"This feature indicates that the system supports NSRLG "This feature indicates that the system supports NSRLGs
(Not Sharing Risk Link Group)."; (Non-Shared Risk Link Groups).";
} }
feature te-topology-hierarchy { feature te-topology-hierarchy {
description description
"This feature indicates that the system allows underlay "This feature indicates that the system allows an underlay
and/or overlay TE topology hierarchy."; and/or overlay TE topology hierarchy.";
} }
feature template { feature template {
description description
"This feature indicates that the system supports "This feature indicates that the system supports
template configuration."; template configuration.";
} }
/* /*
skipping to change at line 2192 skipping to change at line 2087
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 "ISIS."; 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
"Describining the type of source that has provided the "Describes the type of source that has provided the
related information, and the source 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 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 }
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
"A container containing a GPS location."; "Contains a GPS location.";
container geolocation{ container geolocation {
config false; config false;
description description
"A container containing a GPS location."; "Contains a GPS location.";
leaf altitude { leaf altitude {
type int64; type int64;
units millimeter; units "millimeters";
description description
"Distance above the 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 // geolocation
}
// geolocation-container
grouping information-source-state-attributes { grouping information-source-state-attributes {
description description
"The attributes identifying source that has provided the "The attributes identifying the source that has provided the
related information, and the source credibility."; related information, and the source's credibility.";
leaf credibility-preference { leaf credibility-preference {
type uint16; type uint16;
description description
"The preference value to calculate 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 tie-break selection between different information-source
information-source values. values. A higher value is preferable.";
Higher value is more 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 }
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 }
// 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 source that "Per-node container of the attributes identifying the source
has provided the related information, and the source 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
"Indicates the type of the information source."; "Indicates the type of information source.";
} }
leaf information-source-instance { leaf information-source-instance {
type string; type string;
config false; config false;
description description
"The name indicating the instance of the information "The name indicating the instance of the information
source."; source.";
} }
container information-source-state { container information-source-state {
config false; config false;
description description
"The container contains state attributes related to "Contains state attributes related to the information
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 process to generate the result information."; is used to generate the result information.";
uses nt:link-ref; uses nt:link-ref;
} // topology }
} // information-source-state }
} // information-source-per-link-attributes }
// 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 source that "Per-node container of the attributes identifying the source
has provided the related information, and the source 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
"Indicates the type of the information source."; "Indicates the type of information source.";
} }
leaf information-source-instance { leaf information-source-instance {
type string; type string;
config false; config false;
description description
"The name indicating the instance of the information "The name indicating the instance of the information
source."; source.";
} }
container information-source-state { container information-source-state {
config false; config false;
description description
"The container contains state attributes related to "Contains state attributes related to the information
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 process to generate the result information."; is used to generate the result information.";
uses nw:node-ref; uses nw:node-ref;
} // topology }
} // information-source-state }
} // information-source-per-node-attributes }
// information-source-per-node-attributes
grouping interface-switching-capability-list { grouping interface-switching-capability-list {
description description
"List of Interface Switching Capabilities Descriptors (ISCD)"; "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 Interface Switching Capabilities Descriptors (ISCD) "List of ISCDs for this link.";
for this link.";
reference reference
"RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
Signaling Functional Description. Signaling Functional Description
RFC 4203: OSPF Extensions in Support of Generalized RFC 4203: OSPF Extensions in Support of Generalized
Multi-Protocol Label Switching (GMPLS)."; Multi-Protocol Label Switching (GMPLS)";
leaf switching-capability { leaf switching-capability {
type identityref { type identityref {
base te-types:switching-capabilities; base te-types:switching-capabilities;
} }
description description
"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 on 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
since the last re-initialization of the local management since the last re-initialization of the local management
subsystem, then this node contains the time the local subsystem, then this node contains the time the local
management subsystem re-initialized itself."; management subsystem re-initialized itself.";
} }
/* Administrative attributes */ /* Administrative attributes */
leaf disables { leaf disables {
type yang:counter32; type yang:counter32;
description description
"Number of times that link was disabled."; "Number of times that a link was disabled.";
} }
leaf enables { leaf enables {
type yang:counter32; type yang:counter32;
description description
"Number of times that link was enabled."; "Number of times that a link was enabled.";
} }
leaf maintenance-clears { leaf maintenance-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that link was put 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 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 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 link was set to operational down."; "Number of times that a link was set to an operational state
of 'down'.";
} }
leaf ups { leaf ups {
type yang:counter32; type yang:counter32;
description description
"Number of times that link was set to operational up."; "Number of times that a link was set to an operational state
of 'up'.";
} }
/* Recovery attributes */ /* Recovery attributes */
leaf fault-clears { leaf fault-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced fault clear event."; "Number of times that a link experienced a fault-clear
event.";
} }
leaf fault-detects { leaf fault-detects {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced fault detection."; "Number of times that a link experienced fault detection.";
} }
leaf protection-switches { leaf protection-switches {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced protection "Number of times that a link experienced protection
switchover."; switchover.";
} }
leaf protection-reverts { leaf protection-reverts {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced protection "Number of times that a link experienced protection
reversion."; reversion.";
} }
leaf restoration-failures { leaf restoration-failures {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration "Number of times that a link experienced restoration
failure."; failure.";
} }
leaf restoration-starts { leaf restoration-starts {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration "Number of times that a link experienced restoration
start."; start.";
} }
leaf restoration-successes { leaf restoration-successes {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration "Number of times that a link experienced restoration
success."; success.";
} }
leaf restoration-reversion-failures { leaf restoration-reversion-failures {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration reversion "Number of times that a link experienced restoration
failure."; reversion failure.";
} }
leaf restoration-reversion-starts { leaf restoration-reversion-starts {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration reversion "Number of times that a link experienced restoration
start."; reversion start.";
} }
leaf restoration-reversion-successes { leaf restoration-reversion-successes {
type yang:counter32; type yang:counter32;
description description
"Number of times that link experienced restoration reversion "Number of times that a link experienced restoration
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 on 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
since the last re-initialization of the local management since the last re-initialization of the local management
subsystem, then this node contains the time the local subsystem, then this node contains the time the local
management subsystem re-initialized itself."; management subsystem re-initialized itself.";
} }
container node { container node {
description description
"Containing TE node level statistics attributes."; "Contains statistics attributes at the TE node level.";
leaf disables { leaf disables {
type yang:counter32; type yang:counter32;
description description
"Number of times that node was disabled."; "Number of times that a node was disabled.";
} }
leaf enables { leaf enables {
type yang:counter32; type yang:counter32;
description description
"Number of times that node was enabled."; "Number of times that a node was enabled.";
} }
leaf maintenance-sets { leaf maintenance-sets {
type yang:counter32; type yang:counter32;
description description
"Number of times that node was put in maintenance."; "Number of times that a node was put in maintenance.";
} }
leaf maintenance-clears { leaf maintenance-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that node was put out of maintenance."; "Number of times that a node was taken out of
maintenance.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that node was modified."; "Number of times that a node was modified.";
} }
} // node }
// node
container connectivity-matrix-entry { container connectivity-matrix-entry {
description description
"Containing connectivity matrix entry level statistics "Contains statistics attributes at the level of a
attributes."; 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
"RFC 6241. Section 7.2 for 'create' operation. "; "RFC 6241: Network Configuration Protocol (NETCONF),
Section 7.2, 'create' operation";
} }
leaf deletes { leaf deletes {
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
deleted."; deleted.";
reference reference
"RFC 6241. Section 7.2 for 'delete' operation. "; "RFC 6241: Network Configuration Protocol (NETCONF),
Section 7.2, 'delete' operation";
} }
leaf disables { leaf disables {
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
disabled."; disabled.";
} }
leaf enables { leaf enables {
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
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 on 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
since the last re-initialization of the local management since the last re-initialization of the local management
subsystem, then this node contains the time the local subsystem, then this node contains the time the local
management subsystem re-initialized itself."; management subsystem re-initialized itself.";
} }
container tunnel-termination-point { container tunnel-termination-point {
description description
"Containing TE TTP (Tunnel Termination Point) level "Contains statistics attributes at the TE TTP level.";
statistics attributes.";
/* Administrative attributes */ /* Administrative attributes */
leaf disables { leaf disables {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was disabled."; "Number of times that a TTP was disabled.";
} }
leaf enables { leaf enables {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was enabled."; "Number of times that a TTP was enabled.";
} }
leaf maintenance-clears { leaf maintenance-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was put out of maintenance."; "Number of times that a TTP was taken out of maintenance.";
} }
leaf maintenance-sets { leaf maintenance-sets {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was put in maintenance."; "Number of times that a TTP was put in maintenance.";
} }
leaf modifies { leaf modifies {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was modified."; "Number of times that a TTP was modified.";
} }
/* Operational attributes */ /* Operational attributes */
leaf downs { leaf downs {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was set to operational down."; "Number of times that a TTP was set to an operational state
of 'down'.";
} }
leaf ups { leaf ups {
type yang:counter32; type yang:counter32;
description description
"Number of times that TTP was set to operational up."; "Number of times that a TTP was set to an operational state
of 'up'.";
} }
leaf in-service-clears { leaf in-service-clears {
type yang:counter32; type yang:counter32;
description description
"Number of times that 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 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
"Containing TE LLCL (Local Link Connectivity List) level "Contains statistics attributes at the TE LLCL (Local Link
statistics attributes."; 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. Section 7.2 for 'create' operation."; "RFC 6241: Network Configuration Protocol (NETCONF),
Section 7.2, 'create' operation";
} }
leaf deletes { leaf deletes {
type yang:counter32; type yang:counter32;
description description
"Number of times that an LLCL entry was deleted."; "Number of times that an LLCL entry was deleted.";
reference reference
"RFC 6241. Section 7.2 for 'delete' operation."; "RFC 6241: Network Configuration Protocol (NETCONF),
Section 7.2, 'delete' operation";
} }
leaf disables { leaf disables {
type yang:counter32; type yang:counter32;
description description
"Number of times that an LLCL entry was disabled."; "Number of times that an LLCL entry was disabled.";
} }
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 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 }
// 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 "The TE link can be partitioned into bundled links or
links, or component links."; component links.";
case bundle { case bundle {
container bundled-links { container bundled-links {
description description
"A set of bundled links."; "A set of bundled links.";
reference reference
"RFC 4201: Link Bundling in MPLS Traffic Engineering "RFC 4201: Link Bundling in MPLS Traffic
(TE)."; Engineering (TE)";
list bundled-link { list bundled-link {
key "sequence"; key "sequence";
description description
"Specify 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
"Identify the sequence in the bundle."; "Identifies the sequence in the bundle.";
} }
} // 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
"Specify a component interface that is "Specifies a component interface that is
sufficient to unambiguously identify the sufficient to unambiguously identify the
appropriate resources"; appropriate resources.";
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"Identify the sequence in the bundle."; "Identifies the sequence in the bundle.";
} }
leaf src-interface-ref { leaf src-interface-ref {
type string; type string;
description description
"Reference to component link interface on the "Reference to a component link interface on the
source node."; source node.";
} }
leaf des-interface-ref { leaf des-interface-ref {
type string; type string;
description description
"Reference to component link interface on the "Reference to a component link interface on the
destinatioin 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, specify the attributes of "For an inter-domain link, specifies the attributes of
the remote end of link, to facilitate the signalling at the remote end of the link, to facilitate the signaling at
local end."; the local end.";
uses nw:network-ref; uses nw:network-ref;
leaf remote-te-node-id { leaf remote-te-node-id {
type te-types:te-node-id; type te-types:te-node-id;
description description
"Remote TE node identifier, used together with "Remote TE node identifier, used together with
remote-te-link-id to identify the remote link 'remote-te-link-tp-id' to identify the remote Link
termination point in a different domain."; Termination Point (LTP) in a different domain.";
} }
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 link termination point identifier, used "Remote TE LTP identifier, used together with
together with remote-te-node-id to identify the remote 'remote-te-node-id' to identify the remote LTP in a
link termination point 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 }
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 represents an "The link identifier. If OSPF is used, this object
ospfLsdbID. If IS-IS is used, this represents an isisLSPID. represents an ospfLsdbID. If IS-IS is used, this object
If a locally configured link is used, this object represents represents an isisLSPID. If a locally configured link is
a unique value, which is locally defined in a router."; used, this object represents a unique value, which is
locally defined in a router.";
} }
leaf administrative-group { leaf administrative-group {
type te-types:admin-groups; type te-types:admin-groups;
description description
"Administrative group or color of the link. "Administrative group or color of the link.
This attribute covers both administrative group (defined in This attribute covers both administrative groups (defined
RFC 3630, RFC 5305 and RFC 5329), and extended in RFCs 3630 and 5305) and Extended Administrative Groups
administrative group (defined in RFC 7308)."; (defined in RFC 7308).";
reference
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
Version 2
RFC 5305: IS-IS Extensions for Traffic Engineering
RFC 7308: Extended Administrative Groups in MPLS Traffic
Engineering (MPLS-TE)";
} }
uses interface-switching-capability-list; uses interface-switching-capability-list;
uses te-types:label-set-info; uses te-types:label-set-info;
leaf link-protection-type { leaf link-protection-type {
type identityref { type identityref {
base te-types:link-protection-type; base te-types:link-protection-type;
} }
description description
"Link Protection Type desired for this link."; "Link Protection Type desired for this link.";
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 max-link-bandwidth { container max-link-bandwidth {
uses te-types:te-bandwidth; uses te-types:te-bandwidth;
description description
"Maximum bandwidth that can be seen on this link in this "Maximum bandwidth that can be seen on this link in this
direction. Units in bytes per second."; direction. 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";
} }
container max-resv-link-bandwidth { container max-resv-link-bandwidth {
uses te-types:te-bandwidth; uses te-types:te-bandwidth;
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 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 0-7 priority levels. Units 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
RFC 5305: IS-IS Extensions for Traffic Engineering."; RFC 5305: IS-IS Extensions for Traffic Engineering";
} }
leaf te-delay-metric { leaf te-delay-metric {
type uint32; type uint32;
description description
"Traffic engineering delay metric."; "Traffic Engineering delay metric.";
reference reference
"RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions."; "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions";
} }
leaf te-igp-metric { leaf te-igp-metric {
type uint32; type uint32;
description description
"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
"Containing a list of SLRGs."; "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
"Containing a list of NSRLGs (Not Sharing Risk Link "Contains a list of NSRLGs (Non-Shared Risk Link Groups).
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 (Interface Switching Capability Descriptor) "TE link ISCD attributes.";
attributes.";
reference reference
"Sec 1.4, 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 LSP Bandwidth at priorities 0-7."; "Maximum Label Switched Path (LSP) bandwidth at
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.";
} }
leaf is-transitional { leaf is-transitional {
type empty; type empty;
config false; config false;
description description
"Present if the link is transitional, used as an "Present if the link is transitional; used as an
alternative approach in lieu of inter-layer-lock-id alternative approach in lieu of 'inter-layer-lock-id'
for path computation in a TE topology covering multiple for path computation in a TE topology covering multiple
layers or multiple regions."; 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)";
} }
uses information-source-per-link-attributes; uses information-source-per-link-attributes;
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 one "A list of information sources learned, including the source
used."; that is used.";
uses information-source-per-link-attributes; uses information-source-per-link-attributes;
uses te-link-info-attributes; uses te-link-info-attributes;
} }
container recovery { container recovery {
config false; config false;
description description
"Status of the recovery process."; "Status of the recovery process.";
leaf restoration-status { leaf restoration-status {
type te-types:te-recovery-status; type te-types:te-recovery-status;
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 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 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 3098 skipping to change at line 3042
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;
description description
"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 }
// 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 TTP(Tunnel Termination Points) desired for this "Underlay TTPs desired for this link.";
link.";
leaf source { leaf source {
type binary; type binary;
description description
"Source tunnel termination point identifier."; "Source TTP identifier.";
} }
leaf destination { leaf destination {
type binary; type binary;
description description
"Destination tunnel termination point 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";
description description
"Zero, one or more underlay TE tunnels that support this TE "Zero, one, or more underlay TE tunnels that support this
link."; TE link.";
leaf tunnel-name { leaf tunnel-name {
type string; type string;
description description
"A tunnel name uniquely identifies an underlay TE tunnel, "A tunnel name uniquely identifies an underlay TE tunnel,
used together with the source-node of this link. used together with the 'source-node' value for this
The detailed information of this tunnel can be retrieved link.";
from the ietf-te model."; reference
reference "RFC 3209"; "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 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 }
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
"Tunnel termination point 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 tunnel "The current operational state of the TTP.";
termination point.";
} }
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 }
// Relationship to other TTPs
// Relations to other tunnel termination points
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 tunnel termination points, that this "Identifies the TTPs on which this TTP depends.";
tunnel termination point is depending on.";
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
tunnel termination point 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 tunnel terminiation point, which is "Reference to a TTP that is in either the supporting node
either in the supporting node or a node in an or a node in an underlay topology.";
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 "Containing 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-config-attributes
grouping te-node-config-attributes-template { grouping te-node-config-attributes-template {
description description
"Configuration node attributes for template in a TE topology."; "Configuration node attributes for a template in a TE
topology.";
container te-node-attributes { container te-node-attributes {
description "Containing 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-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
"Containing 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 requested number of entries, which may not the number is the requested number of entries, which may
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;
list connectivity-matrix { list connectivity-matrix {
key "id"; key "id";
description description
"Represents node's switching limitations, i.e. limitations "Represents a node's switching limitations, i.e.,
in interconnecting network TE links across the node."; limitations in the interconnecting network TE links
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 source link termination point."; "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";
} }
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;
} }
container to { container to {
description description
"Reference to destination link termination point."; "Reference to a destination 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";
} }
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 that 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
"RFC 5152: A Per-Domain Path Computation Method for "RFC 5152: A Per-Domain Path Computation Method for
Establishing Inter-Domain Traffic Engineering (TE) Establishing Inter-Domain Traffic Engineering (TE)
Label Switched Paths (LSPs). Label Switched Paths (LSPs)
RFC 5392: OSPF Extensions in Support of Inter-Autonomous
System (AS) MPLS and GMPLS Traffic Engineering.
RFC 5316: ISIS Extensions in Support of Inter-Autonomous RFC 5316: ISIS Extensions in Support of Inter-Autonomous
System (AS) MPLS and GMPLS Traffic Engineering."; System (AS) MPLS and GMPLS Traffic Engineering
RFC 5392: OSPF Extensions in Support of Inter-Autonomous
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 "Node 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, "When an abstract node encapsulates a topology, the
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;
description description
"The presence of this attribute indicates that this TE node "The presence of this attribute indicates that this TE node
is a pseudonode elected as a designated router."; is a pseudonode elected as a designated router.";
reference reference
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF "RFC 1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
Version 2. Environments
RFC 1195: Use of OSI IS-IS for Routing in TCP/IP and Dual RFC 3630: Traffic Engineering (TE) Extensions to OSPF
Environments."; Version 2";
} }
uses information-source-per-node-attributes; uses information-source-per-node-attributes;
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 one "A list of information sources learned, including the source
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 tunnel termination point on a "Termination capability of a TTP on a TE node.";
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
"Containing local link connectivity list for "Contains an LLCL for a TTP on a TE node.";
a tunnel termination point on a TE node.";
leaf number-of-entries { leaf number-of-entries {
type uint16; type uint16;
description description
"The number of local link connectivity list 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 requested number of entries, which may not the number is the requested number of entries, which may
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 }
// 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 tunnel termination point on a "Configuration attributes of a TTP on a TE node.";
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 tunnel termination point."; "The administrative state of the TTP.";
} }
leaf name { leaf name {
type string; type string;
description description
"A descriptive name for the tunnel termination point."; "A descriptive name for the TTP.";
} }
leaf switching-capability { leaf switching-capability {
type identityref { type identityref {
base te-types:switching-capabilities; base te-types:switching-capabilities;
} }
description description
"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.";
} }
leaf-list inter-layer-lock-id { leaf-list inter-layer-lock-id {
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)";
} }
leaf protection-type { leaf protection-type {
type identityref { type identityref {
base te-types:lsp-protection-type; base te-types:lsp-protection-type;
} }
description description
"The protection type that this tunnel termination point "The protection type that this TTP is capable of.";
is capable of.";
} }
container client-layer-adaptation { container client-layer-adaptation {
description description
"Containing capability information to support a client layer "Contains capability information to support a client-layer
adaption in multi-layer topology."; adaptation in a multi-layer topology.";
list switching-capability { list switching-capability {
key "switching-capability encoding"; key "switching-capability encoding";
description description
"List of supported switching capabilities"; "List of supported switching capabilities.";
reference reference
"RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions "RFC 4202: Routing Extensions in Support of
for Multi-Layer and Multi-Region Networks (MLN/MRN). Generalized Multi-Protocol Label Switching (GMPLS)
RFC 4202: Routing Extensions in Support of RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
Generalized Multi-Protocol Label Switching (GMPLS)."; for Multi-Layer and Multi-Region Networks (MLN/MRN)";
leaf switching-capability { leaf switching-capability {
type identityref { type identityref {
base te-types:switching-capabilities; base te-types:switching-capabilities;
} }
description description
"Switching Capability for the client layer adaption."; "Switching capability for the client-layer adaptation.";
} }
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 adaption."; "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
"Local link connectivity list of a tunnel termination "LLCL of a TTP on a TE node.";
point 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 termination capabilities between the TTP and the LTP.
tunnel-termination-point and link termination-point. This capability information can be used to compute
The capability information can be used to compute
the tunnel path. the tunnel path.
The Interface Adjustment Capability Descriptors (IACD) The Interface Adjustment Capability Descriptors (IACDs)
(defined in RFC 6001) on each link-tp can be derived from (defined in RFC 6001) on each LTP can be derived from
this local-link-connectivity 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
"Link termination point."; "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 }
// te-node-tunnel-termination-point-llc-list
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 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 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 to uniquely identify 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 link termination "The current operational state of the LTP.";
point.";
} }
uses geolocation-container; uses geolocation-container;
} // te }
} // te-termination-point-augment }
// 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 link termination point."; "The administrative state of the LTP.";
} }
leaf name { leaf name {
type string; type string;
description description
"A descriptive name for the link termination point."; "A descriptive name for the LTP.";
} }
uses interface-switching-capability-list; uses interface-switching-capability-list;
leaf inter-domain-plug-id { leaf inter-domain-plug-id {
type binary; type binary;
description description
"A topology-wide unique number that identifies on the "A network-wide unique number that identifies on the
network a connectivity supporting a given inter-domain network a connection that supports a given inter-domain
TE link. This is more flexible alternative to specifying TE link. This is a more flexible alternative to specifying
remote-te-node-id and remote-te-link-tp-id on a TE link, 'remote-te-node-id' and 'remote-te-link-tp-id' on a TE link
when the provider does not know remote-te-node-id and when the provider either does not know 'remote-te-node-id'
remote-te-link-tp-id or need to give client the and 'remote-te-link-tp-id' or needs to give the client the
flexibility to mix-n-match multiple topologies."; flexibility to mix and match multiple topologies.";
} }
leaf-list inter-layer-lock-id { leaf-list inter-layer-lock-id {
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 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 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-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 is not descriptive which can be useful when 'network-id' (RFC 8345) is not
and not modifiable because of being generated by the descriptive and not modifiable because of being generated
system."; by the system.";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
} }
leaf preference { leaf preference {
type uint8 { type uint8 {
range "1..255"; range "1..255";
} }
description description
"Specifies a preference for this topology. A lower number "Specifies a preference for this topology. A lower number
indicates a higher preference."; indicates a higher preference.";
} }
leaf optimization-criterion { leaf optimization-criterion {
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 (Not Sharing 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
"Identify 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 to resolve conflicts between different "The preference value for resolving conflicts between
templates. When two or more templates specify values for different templates. When two or more templates specify
one configuration attribute, the value from the template values for one configuration attribute, the value from the
with the highest priority is used. template with the highest priority is used.
A lower number indicates a higher priority. The highest A lower number indicates a higher priority. The highest
priority is 0."; priority is 0.";
} }
leaf reference-change-policy { leaf reference-change-policy {
type enumeration { type enumeration {
enum no-action { enum no-action {
description description
"When an attribute changes in this template, the "When an attribute changes in this template, the
configuration node referring to this template does configuration node referring to this template does
not take any action."; not take any action.";
} }
skipping to change at line 3789 skipping to change at line 3757
} }
enum cascade { enum cascade {
description description
"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 to a configuration "This attribute specifies the action taken for a
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
"Introduce new network type for TE topology."; "Introduces a new network type for a TE topology.";
container te-topology { container te-topology {
presence "Indicates TE topology."; presence "Indicates a TE topology";
description description
"Its presence identifies the TE topology type."; "Its presence identifies the TE topology type.";
} }
} }
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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for 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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at 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 1 supporting node. If multiple nodes are abstracted, than one supporting node. If multiple nodes are
the underlay-topology 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 }
} }
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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at 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 1 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 }
} }
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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at termination point level."; "Configuration parameters for TE at the termination point
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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment TE link 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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment 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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment 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 "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment TE node tunnel termination point LLCs "Augmentation for TE node TTP LLCs (Local Link
(Local Link Connectivities)."; Connectivities).";
uses te-node-tunnel-termination-point-llc-list; uses te-node-tunnel-termination-point-llc-list;
} }
} }]]></sourcecode>
<CODE ENDS>
]]></artwork>
</figure>
</section>
<section title="Security Considerations" anchor="sect-8"><t> </section>
<section anchor="sect-8" numbered="true" toc="default">
<name>Security Considerations</name>
<t>
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer as NETCONF <xref target="RFC6241" format="default"/> or RESTCONF <xref target ="RFC8040" format="default"/>. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer transport is Secure Shell (SSH) <xref target="RFC6242" format="default"/>. Th e lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
<xref target="RFC8446"/>.</t> <xref target="RFC8446" format="default"/>.</t>
<t>
<t> The Network Configuration Access Control Model (NACM) <xref target="RFC8341"
The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ format="default"/>
>
provides the means to restrict access for particular NETCONF or provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t> RESTCONF protocol operations and content.</t>
<t>
<t>
There are a number of data nodes defined in this YANG module that are There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., config true, which is the writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., edit-config) to in some network environments. Write operations (e.g., edit-config) to
these data nodes without proper protection can have a negative effect these data nodes without proper protection can have a negative effect
on network operations. These are the subtrees and data nodes and on network operations. These are the subtrees and data nodes and
their sensitivity/vulnerability:</t> their sensitivity/vulnerability:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>/nw:networks/nw:network/nw:network-types/tet:te-topology
<t>/nw:networks/nw:network/nw:network-types/tet:te-topology </t>
<vspace /> <t>
This subtree specifies the TE topology type. Modifying the This subtree specifies the TE topology type. Modifying the
configurations can make TE topology type invalid. By such configurations can render the TE topology type invalid. By making such
modifications, a malicious attacker may disable the TE modifications, a malicious attacker may disable the TE
capabilities on the related networks and cause traffic disrupted capabilities on the related networks and cause traffic to be disrupted
or misrouted.</t> or misrouted.</t>
</li>
<t>/nw:networks/tet:te <li>
<vspace /> <t>/nw:networks/tet:te
</t>
<t>
This subtree specifies the TE node templates and TE link This subtree specifies the TE node templates and TE link
templates. Modifying the configurations in this subtree will change the templates. Modifying the configurations in this subtree will change the
related future TE configurations. By such modifications, a malicious related future TE configurations. By making such modifications, a
attacker may change the TE capabilities scheduled at a future time, to malicious attacker may change TE capabilities scheduled at a
cause traffic disrupted or misrouted.</t> future time and cause traffic to be disrupted or misrouted.</t>
</li>
<t>/nw:networks/nw:network <li>
<vspace /> <t>/nw:networks/nw:network
</t>
<t>
This subtree specifies the topology-wide configurations, including This subtree specifies the topology-wide configurations, including
the TE topology ID and topology-wide policies. Modifying the the TE topology ID and topology-wide policies. Modifying the
configurations in this subtree can add, remove, or modify TE configurations in this subtree can add, remove, or modify TE
topologies. By adding a TE topology, a malicious attacker may topologies. By adding a TE topology, a malicious attacker may
create an unauthorized traffic network. By removing or modifying a create an unauthorized traffic network. By removing or modifying a
TE topology, a malicious attacker may cause traffic disabled or TE topology, a malicious attacker may cause traffic to be disabled or
misrouted in the specified TE topology. Such traffic changes may misrouted in the specified TE topology. Such traffic changes may
also affect the traffic in the connected TE topologies.</t> also affect the traffic in the connected TE topologies.</t>
</li>
<t>/nw:networks/nw:network/nw:node <li>
<vspace /> <t>/nw:networks/nw:network/nw:node
</t>
<t>
This subtree specifies the configurations for TE nodes. Modifying This subtree specifies the configurations for TE nodes. Modifying
the configurations in this subtree can add, remove, or modify TE the configurations in this subtree can add, remove, or modify TE
nodes. By adding a TE node, a malicious attacker may create an nodes. By adding a TE node, a malicious attacker may create an
unauthorized traffic path. By removing or modifying a TE node, a unauthorized traffic path. By removing or modifying a TE node, a
malicious attacker may cause traffic disabled or misrouted in the malicious attacker may cause traffic to be disabled or misrouted in the
specified TE node. Such traffic changes may also affect the specified TE node. Such traffic changes may also affect the
traffic on the surrounding TE nodes and TE links in this TE traffic on the surrounding TE nodes and TE links in this TE
topology and the connected TE topologies.</t> topology and the connected TE topologies.</t>
</li>
<t>/nw:networks/nw:network/nt:link/tet:te <li>
<vspace /> <t>/nw:networks/nw:network/nt:link/tet:te
</t>
<t>
This subtree specifies the configurations for TE links. Modifying This subtree specifies the configurations for TE links. Modifying
the configurations in this subtree can add, remove, or modify TE the configurations in this subtree can add, remove, or modify TE
links. By adding a TE link, a malicious attacker may create an links. By adding a TE link, a malicious attacker may create an
unauthorized traffic path. By removing or modifying a TE link, a unauthorized traffic path. By removing or modifying a TE link, a
malicious attacker may cause traffic disabled or misrouted on the malicious attacker may cause traffic to be disabled or misrouted on the
specified TE link. Such traffic changes may also affect the specified TE link. Such traffic changes may also affect the
traffic on the surrounding TE nodes and TE links in this TE traffic on the surrounding TE nodes and TE links in this TE
topology and the connected TE topologies.</t> topology and the connected TE topologies.</t>
</li>
<t>/nw:networks/nw:network/nw:node/nt:termination-point <li>
<vspace /> <t>/nw:networks/nw:network/nw:node/nt:termination-point
This subtree specifies the configurations of TE link termination </t>
points. Modifying the configurations in this subtree can add, <t>
remove, or modify TE link termination points. By adding a TE link This subtree specifies the configurations of TE LTPs.
termination point, a malicious attacker may create an unauthorized Modifying the configurations in this subtree can add,
traffic path. By removing or modifying a TE link termination remove, or modify TE LTPs. By adding a TE LTP, a malicious
point, a malicious attacker may cause traffic disabled or attacker may create an unauthorized traffic path. By removing
misrouted on the specified TE link termination point. Such traffic or modifying a TE LTP, a malicious attacker may cause traffic to be
disabled or misrouted on the specified TE LTP. Such traffic
changes may also affect the traffic on the surrounding TE nodes changes may also affect the traffic on the surrounding TE nodes
and TE links in this TE topology and the connected TE topologies.</t> and TE links in this TE topology and the connected TE topologies.</t>
</li>
</list> </ul>
</t> <t>
<t>
Some of the readable data nodes in this YANG module may be considered Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. These are the subtrees and data notification) to these data nodes. These are the subtrees and data
nodes and their sensitivity/vulnerability:</t> nodes and their sensitivity/vulnerability:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>/nw:networks/nw:network/nw:network-types/tet:te-topology
<t>/nw:networks/nw:network/nw:network-types/tet:te-topology </t>
<vspace /> <t>
Unauthorized access to this subtree can disclose the TE topology Unauthorized access to this subtree can disclose the TE topology
type.</t> type.</t>
</li>
<t>/nw:networks/tet:te <li>
<vspace /> <t>/nw:networks/tet:te
</t>
<t>
Unauthorized access to this subtree can disclose the TE node Unauthorized access to this subtree can disclose the TE node
templates and TE link templates.</t> templates and TE link templates.</t>
</li>
<t>/nw:networks/nw:network <li>
<vspace /> <t>/nw:networks/nw:network
</t>
<t>
Unauthorized access to this subtree can disclose the topology-wide Unauthorized access to this subtree can disclose the topology-wide
configurations, including the TE topology ID, the topology-wide configurations, including the TE topology ID, the topology-wide
policies, and the topology geolocation.</t> policies, and the topology geolocation.</t>
</li>
<t>/nw:networks/nw:network/nw:node <li>
<vspace /> <t>/nw:networks/nw:network/nw:node
</t>
<t>
Unauthorized access to this subtree can disclose the operational Unauthorized access to this subtree can disclose the operational
state information of TE nodes.</t> state information of TE nodes.</t>
</li>
<t>/nw:networks/nw:network/nt:link/tet:te <li>
<vspace /> <t>/nw:networks/nw:network/nt:link/tet:te
</t>
<t>
Unauthorized access to this subtree can disclose the operational Unauthorized access to this subtree can disclose the operational
state information of TE links.</t> state information of TE links.</t>
</li>
<t>/nw:networks/nw:network/nw:node/nt:termination-point <li>
<vspace /> <t>/nw:networks/nw:network/nw:node/nt:termination-point
</t>
<t>
Unauthorized access to this subtree can disclose the operational Unauthorized access to this subtree can disclose the operational
state information of TE link termination points.</t> state information of TE LTPs.</t>
</li>
</list> </ul>
</t> </section>
<section anchor="sect-9" numbered="true" toc="default">
</section> <name>IANA Considerations</name>
<t>
<section title="IANA Considerations" anchor="sect-9"><t> IANA has registered the following URIs in the "ns" subregistry within the
This document registers the following URIs in the IETF XML registry "IETF XML Registry" <xref target="RFC3688" format="default"/>.
<xref target="RFC3688"/>. Following the format in <xref target="RFC3688"/>, t </t>
he following
registration is requested to be made.</t>
<figure><artwork><![CDATA[
URI: urn:ietf:params:xml:ns:yang:ietf-te-topology
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.
URI: urn:ietf:params:xml:ns:yang:ietf-te-topology-state
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.
]]></artwork>
</figure>
<t>
This document registers a YANG module in the YANG Module Names
registry <xref target="RFC7950"/>.</t>
<figure><artwork><![CDATA[ <dl newline="false" spacing="compact">
name: ietf-te-topology <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-te-topology</dd>
namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology <dt>Registrant Contact:</dt><dd>The IESG.</dd>
prefix: tet <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd>
reference: RFC XXXX </dl>
name: ietf-te-topology-state <dl newline="false" spacing="compact">
namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology-state <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-te-topology-state</dd>
prefix: tet-s <dt>Registrant Contact:</dt><dd>The IESG.</dd>
reference: RFC XXXX <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd>
]]></artwork> </dl>
</figure>
</section>
</middle> <t>
IANA has registered the following YANG modules in the "YANG Module Names"
subregistry <xref target="RFC6020" format="default"/> within the "YANG
Parameters" registry.
<back> </t>
<references title="Normative References">
&RFC2119;
&RFC3688;
&RFC3945;
&RFC6241;
&RFC6242;
&RFC6991;
&RFC7926;
&RFC7950;
&RFC8040;
&RFC8174;
&RFC8341;
&RFC8342;
&RFC8345;
&RFC8446;
&I-D.ietf-teas-yang-te-types;
</references>
<references title="Informative References">
<reference anchor="G.709"><front>
<title>Interfaces for the optical transport network</title>
<author>
<organization>ITU-T</organization>
</author>
<date month="June" year="2016"/> <dl newline="false" spacing="compact">
</front> <dt>Name:</dt><dd>ietf-te-topology</dd>
<dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-te-topology</dd>
<dt>Prefix:</dt><dd>tet</dd>
<dt>Reference:</dt><dd>RFC 8795</dd>
</dl>
<seriesInfo name="ITU-T" value="Recommendation G.709"/> <dl newline="false" spacing="compact">
</reference> <dt>Name:</dt><dd>ietf-te-topology-state</dd>
<reference anchor="G.805"><front> <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-te-topology-state</dd
<title>Generic functional architecture of transport networks</title> >
<author> <dt>Prefix:</dt><dd>tet-s</dd>
<organization>ITU-T</organization> <dt>Reference:</dt><dd>RFC 8795</dd>
</author> </dl>
<date month="March" year="2000"/> </section>
</front> </middle>
<back>
<displayreference target="I-D.ietf-teas-te-topo-and-tunnel-modeling" to="TEAS-TO
PO"/>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3688.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3945.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6020.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6241.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6242.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6991.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7926.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7950.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8040.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8341.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8342.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8345.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8446.xml"/>
<seriesInfo name="ITU-T" value="Recommendation G.805"/> <!-- draft-ietf-teas-yang-te-types (RFC 8776) (PUB 6/10/2020) -->
</reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8776.
<reference anchor="G.872"><front> xml"/>
<title>Architecture of optical transport networks</title> </references>
<author> <references>
<organization>ITU-T</organization> <name>Informative References</name>
</author> <reference anchor="G.709" target="https://www.itu.int/rec/T-REC-G.709/">
<front>
<title>Interfaces for the optical transport network</title>
<seriesInfo name="ITU-T" value="Recommendation G.709"/>
<author>
<organization>ITU-T</organization>
</author>
<date month="June" year="2020"/>
</front>
</reference>
<reference anchor="G.805" target="https://www.itu.int/rec/T-REC-G.805/en
">
<front>
<title>Generic functional architecture of transport networks</title>
<seriesInfo name="ITU-T" value="Recommendation G.805"/>
<author>
<organization>ITU-T</organization>
</author>
<date month="March" year="2000"/>
</front>
</reference>
<reference anchor="G.872" target="https://www.itu.int/rec/T-REC-G.872/en
">
<front>
<title>Architecture of optical transport networks</title>
<seriesInfo name="ITU-T" value="Recommendation G.872"/>
<author>
<organization>ITU-T</organization>
</author>
<date month="December" year="2019"/>
</front>
</reference>
<reference anchor="G.8080" target="https://www.itu.int/rec/T-REC-G.8080/
en">
<front>
<title>Architecture for the automatically switched optical network</
title>
<seriesInfo name="ITU-T" value="Recommendation G.8080"/>
<author>
<organization>ITU-T</organization>
</author>
<date month="February" year="2012"/>
</front>
</reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.1195.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2702.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3209.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3272.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3471.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3630.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3785.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4201.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4202.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4203.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4206.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4872.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5152.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5212.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5305.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5316.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5392.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6001.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7308.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7471.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7579.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7752.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8340.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8639
.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8641.
xml"/>
<date month="January" year="2017"/> <!-- draft-liu-netmod-yang-schedule (Expired) -->
</front> <!-- Long way; surname for "Gonzalez de Dios" in repository is wrong. -->
<reference anchor="YANG-CFG-SCHED" target="https://tools.ietf.org/html/draft-liu
-netmod-yang-schedule-05">
<front>
<title>A YANG Data Model for Configuration Scheduling</title>
<author initials='X' surname='Liu' fullname='Xufeng Liu'>
<organization />
</author>
<author initials='I' surname='Bryskin' fullname='Igor Bryskin'>
<organization />
</author>
<author initials='V' surname='Beeram' fullname='Vishnu Beeram'>
<organization />
</author>
<author initials='T' surname='Saad' fullname='Tarek Saad'>
<organization />
</author>
<author initials='H' surname='Shah' fullname='Himanshu Shah'>
<organization />
</author>
<author initials='O' surname='Gonzalez de Dios' fullname='Oscar Gonzalez de Dios
'>
<organization />
</author>
<date month='March' day='1' year='2018' />
</front>
<seriesInfo name='Work in Progress, Internet-Draft,' value='draft-liu-netmod-yan
g-schedule-05' />
</reference>
<seriesInfo name="ITU-T" value="Recommendation G.872"/> <!-- draft-ietf-ccamp-wson-yang (I-D Exists) -->
</reference> <!-- Long way; surname for V. Lopez in repository file is different from
<reference anchor="G.8080"><front> how it's listed in the document itself. -->
<title>Architecture for the automatically switched optical network</title <reference anchor='YANG-WSON' target="https://tools.ietf.org/html/draft-ietf-cca
> mp-wson-yang-25">
<author> <front>
<organization>ITU-T</organization> <title>A YANG Data Model for WSON (Wavelength Switched Optical Networks)</title>
</author> <author initials='H' surname='Zheng' fullname='Haomian Zheng'>
<organization />
</author>
<author initials='Y' surname='Lee' fullname='Young Lee'>
<organization />
</author>
<author initials='A' surname='Guo' fullname='Aihua Guo'>
<organization />
</author>
<author initials='V' surname='Lopez' fullname='Victor Lopez'>
<organization />
</author>
<author initials='D' surname='King' fullname='Daniel King'>
<organization />
</author>
<date month='May' day='19' year='2020' />
</front>
<seriesInfo name='Work in Progress, Internet-Draft,' value='draft-ietf-ccamp-wso
n-yang-25' />
</reference>
<date month="February" year="2012"/> <!-- draft-ietf-ccamp-otn-topo-yang (I-D Exists) -->
</front> <!-- Long way; surname for "Gonzalez de Dios" in repository is wrong. -->
<reference anchor='YANG-OTN' target="https://tools.ietf.org/html/draft-ietf-ccam
p-otn-topo-yang-10">
<front>
<title>A YANG Data Model for Optical Transport Network Topology</title>
<author initials='H' surname='Zheng' fullname='Haomian Zheng'>
<organization />
</author>
<author initials='I' surname='Busi' fullname='Italo Busi'>
<organization />
</author>
<author initials='X' surname='Liu' fullname='Xufeng Liu'>
<organization />
</author>
<author initials='S' surname='Belotti' fullname='Sergio Belotti'>
<organization />
</author>
<author initials='O' surname='Gonzalez de Dios' fullname='Oscar Gonzalez de Dios
'>
<organization />
</author>
<date month='March' day='9' year='2020' />
</front>
<seriesInfo name='Work in Progress, Internet-Draft,' value='draft-ietf-ccamp-otn
-topo-yang-10' />
</reference>
<seriesInfo name="ITU-T" value="Recommendation G.8080"/> <!-- draft-ietf-teas-yang-l3-te-topo (I-D Exists) -->
</reference> <!-- Long way; surname for "Gonzalez de Dios" in repository is wrong. -->
&RFC1195; <reference anchor="YANG-L3" target="https://tools.ietf.org/html/draft-ietf-teas-
&RFC2702; yang-l3-te-topo-08">
&RFC3209; <front>
&RFC3272; <title>YANG Data Model for Layer 3 TE Topologies</title>
&RFC3471; <author initials='X' surname='Liu' fullname='Xufeng Liu'>
&RFC3630; <organization />
&RFC3785; </author>
&RFC4201; <author initials='I' surname='Bryskin' fullname='Igor Bryskin'>
&RFC4202; <organization />
&RFC4203; </author>
&RFC4206; <author initials='V' surname='Beeram' fullname='Vishnu Beeram'>
&RFC4872; <organization />
&RFC5152; </author>
&RFC5212; <author initials='T' surname='Saad' fullname='Tarek Saad'>
&RFC5305; <organization />
&RFC5316; </author>
&RFC5329; <author initials='H' surname='Shah' fullname='Himanshu Shah'>
&RFC5392; <organization />
&RFC6001; </author>
&RFC7308; <author initials='O' surname='Gonzalez de Dios' fullname='Oscar Gonzalez de Dios
&RFC7471; '>
&RFC7579; <organization />
&RFC7752; </author>
&RFC8340; <date month='July' day='12' year='2020' />
&I-D.ietf-netconf-subscribed-notifications; </front>
&I-D.ietf-netconf-yang-push; <seriesInfo name='Work in Progress, Internet-Draft,' value='draft-ietf-teas-yang
&I-D.liu-netmod-yang-schedule; -l3-te-topo-08' />
&I-D.ietf-ccamp-wson-yang; </reference>
&I-D.ietf-ccamp-otn-topo-yang;
&I-D.ietf-teas-yang-l3-te-topo;
&I-D.ietf-teas-te-topo-and-tunnel-modeling;
</references>
<section title="Complete Model Tree Structure" anchor="append-a"><figure> <!-- draft-ietf-teas-te-topo-and-tunnel-modeling (I-D Exists) -->
<artwork><![CDATA[ <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe
rence.I-D.draft-ietf-teas-te-topo-and-tunnel-modeling-06.xml"/>
</references>
</references>
<section anchor="append-a" numbered="true" toc="default">
<name>Complete Model Tree Structure</name>
<sourcecode name="" type="yangtree"><![CDATA[
module: ietf-te-topology module: ietf-te-topology
augment /nw:networks/nw:network/nw:network-types: augment /nw:networks/nw:network/nw:network-types:
+--rw te-topology! +--rw te-topology!
augment /nw:networks: augment /nw:networks:
+--rw te! +--rw te!
+--rw templates +--rw templates
+--rw node-template* [name] {template}? +--rw node-template* [name] {template}?
| +--rw name | +--rw name
| | te-types:te-template-name | | te-types:te-template-name
| +--rw priority? uint16 | +--rw priority? uint16
skipping to change at line 6745 skipping to change at line 6840
| +--rw (technology)? | +--rw (technology)?
| +--:(generic) | +--:(generic)
| +--rw generic? te-bandwidth | +--rw generic? te-bandwidth
+--rw inter-domain-plug-id? binary +--rw inter-domain-plug-id? binary
+--rw inter-layer-lock-id* uint32 +--rw inter-layer-lock-id* uint32
+--ro oper-status? +--ro oper-status?
| te-types:te-oper-status | te-types:te-oper-status
+--ro geolocation +--ro geolocation
+--ro altitude? int64 +--ro altitude? int64
+--ro latitude? geographic-coordinate-degree +--ro latitude? geographic-coordinate-degree
+--ro longitude? geographic-coordinate-degree +--ro longitude? geographic-coordinate-degree]]></sourcecode>
]]></artwork> </section>
</figure> <section anchor="append-b" numbered="true" toc="default">
</section> <name>Companion YANG Data Model for Non-NMDA-Compliant Implementations</na
me>
<section title="Companion YANG Model for Non-NMDA Compliant Implementatio <t>
ns" anchor="append-b"><t> The YANG module "ietf-te-topology" defined in <xref target="sect-7"/> is desi
The YANG module ietf-te-topology defined in this document is designed gned
to be used in conjunction with implementations that support the to be used in conjunction with implementations that support the
Network Management Datastore Architecture (NMDA) defined in Network Management Datastore Architecture (NMDA) defined in
<xref target="RFC8342"/>. In order to allow implementations to use the model <xref target="RFC8342" format="default"/>. In order to allow implementations
even in to use the model even in
cases when NMDA is not supported, the following companion module cases where NMDA is not supported, the following companion module,
ietf-te-topology-state is defined as a state model, which mirrors the "ietf-te-topology-state", is defined as a state model that mirrors the
module ietf-te-topology defined earlier in this document. However, module "ietf-te-topology". However,
all data nodes in the companion module are non-configurable, to all data nodes in this "ietf-te-topology-state" companion module are non-conf
represent the applied configuration or the derived operational igurable;
states.</t> they are provided to represent the applied configuration or the
derived operational states.</t>
<t> <t>
The companion module, ietf-te-topology-state, is redundant and SHOULD This companion module is redundant and <bcp14>SHOULD NOT</bcp14> be
NOT be supported by implementations that support NMDA.</t> supported by implementations that support NMDA; therefore, we define it
below rather than in the main body of this document.</t>
<t> <t>
As the structure of the module ietf-te-topology-state mirrors that of the As the structure of the module "ietf-te-topology-state" mirrors that of the
module ietf-te-topology. The YANG tree of the module ietf-te-topology-state module "ietf-te-topology", the YANG tree of the module "ietf&nbhy;te-topology
-state"
is not depicted separately.</t> is not depicted separately.</t>
<section anchor="append-b1" numbered="true" toc="default">
<name>TE Topology State YANG Module</name>
<t>
This module references <xref target="RFC6001" format="default"/>, <xref targe
t="RFC8345" format="default"/>, and
<xref target="RFC8776"/>.</t>
<section title="TE Topology State YANG Module" anchor="append-b1"><t> <sourcecode name="ietf-te-topology-state@2020-06-29.yang" type="yang" ma
This module references <xref target="RFC6001"/>, <xref target="RFC8345"/>, an rkers="true"><![CDATA[
d
[I-D.ietf-teas-yang-te-types].</t>
<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-te-topology-state@2019-02-07.yang"
module ietf-te-topology-state { module ietf-te-topology-state {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-state"; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-state";
prefix tet-s;
prefix "tet-s";
import ietf-te-types { import ietf-te-types {
prefix "te-types"; prefix te-types;
reference reference
"I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG "RFC 8776: Common YANG Data Types for Traffic Engineering";
Types";
} }
import ietf-te-topology { import ietf-te-topology {
prefix "tet"; prefix tet;
reference
"RFC 8795: YANG Data Model for Traffic Engineering (TE)
Topologies";
} }
import ietf-network-state { import ietf-network-state {
prefix "nw-s"; prefix nw-s;
reference "RFC 8345: A YANG Data Model for Network Topologies"; reference
"RFC 8345: A YANG Data Model for Network Topologies";
} }
import ietf-network-topology-state { import ietf-network-topology-state {
prefix "nt-s"; prefix nt-s;
reference "RFC 8345: A YANG Data Model for Network Topologies"; reference
"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: <http://tools.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:Igor.Bryskin@huawei.com> <mailto:i_bryskin@yahoo.com>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Oscar Gonzalez De Dios Editor: Oscar Gonzalez de Dios
<mailto:oscar.gonzalezdedios@telefonica.com>"; <mailto:oscar.gonzalezdedios@telefonica.com>";
description description
"TE topology state model. "This YANG module defines a TE topology state model.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
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
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; 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 "2019-02-07" { revision 2020-06-29 {
description "Initial revision"; description
reference "RFC XXXX: YANG Data Model for TE Topologies"; "Initial revision.";
// RFC Ed.: replace XXXX with actual RFC number and remove reference
// this note "RFC 8795: YANG Data Model for Traffic Engineering (TE)
Topologies";
} }
/* /*
* Groupings * Groupings
*/ */
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 source link termination point."; "Reference to a source Link Termination Point (LTP).";
leaf tp-ref { leaf tp-ref {
type leafref { type leafref {
path "../../../../../../nt-s:termination-point/nt-s:tp-id"; path "../../../../../../nt-s:termination-point/nt-s: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;
} }
container to { container to {
description description
"Reference to destination link termination point."; "Reference to a destination LTP.";
leaf tp-ref { leaf tp-ref {
type leafref { type leafref {
path "../../../../../../nt-s:termination-point/nt-s:tp-id"; path "../../../../../../nt-s:termination-point/nt-s: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 tet:connectivity-matrix-entry-path-attributes; uses tet:connectivity-matrix-entry-path-attributes;
} // te-node-connectivity-matrix-attributes }
// te-node-connectivity-matrix-attributes
grouping te-node-tunnel-termination-point-llc-list { grouping te-node-tunnel-termination-point-llc-list {
description description
"Local link connectivity list of a tunnel termination "Local Link Connectivity List (LLCL) of a Tunnel Termination
point on a TE node."; Point (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 termination capabilities between the TTP and the LTP.
tunnel-termination-point and link termination-point. This capability information can be used to compute
The capability information can be used to compute
the tunnel path. the tunnel path.
The Interface Adjustment Capability Descriptors (IACD) The Interface Adjustment Capability Descriptors (IACDs)
(defined in RFC 6001) on each link-tp can be derived from (defined in RFC 6001) on each LTP can be derived from
this local-link-connectivity 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-s:termination-point/nt-s:tp-id"; path "../../../../../nt-s:termination-point/nt-s:tp-id";
} }
description description
"Link termination point."; "LTP.";
} }
uses te-types:label-set-info; uses te-types:label-set-info;
uses tet:connectivity-matrix-entry-path-attributes; uses tet:connectivity-matrix-entry-path-attributes;
} // local-link-connectivity }
} // te-node-tunnel-termination-point-config // local-link-connectivity
}
// te-node-tunnel-termination-point-llc-list
/* /*
* Data nodes * Data nodes
*/ */
augment "/nw-s:networks/nw-s:network/nw-s:network-types" { augment "/nw-s:networks/nw-s:network/nw-s:network-types" {
description description
"Introduce new network type for TE topology."; "Introduces a new network type for a TE topology.";
container te-topology { container te-topology {
presence "Indicates TE topology."; presence "Indicates a TE topology";
description description
"Its presence identifies the TE topology type."; "Its presence identifies the TE topology type.";
} }
} }
augment "/nw-s:networks" { augment "/nw-s:networks" {
description description
"Augmentation parameters for TE topologies."; "Augmentation parameters for TE topologies.";
uses tet:te-topologies-augment; uses tet:te-topologies-augment;
} }
augment "/nw-s:networks/nw-s:network" { augment "/nw-s:networks/nw-s:network" {
when "nw-s:network-types/tet-s:te-topology" { when 'nw-s:network-types/tet-s:te-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE topology."; "Configuration parameters for a TE topology.";
uses tet:te-topology-augment; uses tet:te-topology-augment;
} }
augment "/nw-s:networks/nw-s:network/nw-s:node" { augment "/nw-s:networks/nw-s:network/nw-s:node" {
when "../nw-s:network-types/tet-s:te-topology" { when '../nw-s:network-types/tet-s:te-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at 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-s:supporting-node)<=1" { must 'count(../nw-s: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 1 supporting node. If multiple nodes are abstracted, than one supporting node. If multiple nodes are
the underlay-topology is used."; abstracted, the 'underlay-topology' field is used.";
} }
presence "TE support."; presence "TE support";
description description
"Indicates TE support."; "Indicates TE support.";
uses tet:te-node-augment; uses tet:te-node-augment;
} // te }
} }
augment "/nw-s:networks/nw-s:network/nt-s:link" { augment "/nw-s:networks/nw-s:network/nt-s:link" {
when "../nw-s:network-types/tet-s:te-topology" { when '../nw-s:network-types/tet-s:te-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at link level."; "Configuration parameters for TE at the link level.";
container te { container te {
must "count(../nt-s:supporting-link)<=1" { must 'count(../nt-s: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 1 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 tet:te-link-augment; uses tet:te-link-augment;
} // te }
} }
augment "/nw-s:networks/nw-s:network/nw-s:node/" augment "/nw-s:networks/nw-s:network/nw-s:node/"
+ "nt-s:termination-point" { + "nt-s:termination-point" {
when "../../nw-s:network-types/tet-s:te-topology" { when '../../nw-s:network-types/tet-s:te-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Configuration parameters for TE at termination point level."; "Configuration parameters for TE at the termination point
level.";
uses tet:te-termination-point-augment; uses tet:te-termination-point-augment;
} }
augment augment "/nw-s:networks/nw-s:network/nt-s:link/te/"
"/nw-s:networks/nw-s:network/nt-s:link/te/bundle-stack-level/" + "bundle-stack-level/bundle/bundled-links/bundled-link" {
+ "bundle/bundled-links/bundled-link" { when '../../../../nw-s:network-types/tet-s:te-topology' {
when "../../../../nw-s:network-types/tet-s:te-topology" {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment TE link bundled link."; "Augmentation for a TE bundled link.";
leaf src-tp-ref { leaf src-tp-ref {
type leafref { type leafref {
path "../../../../../nw-s:node[nw-s:node-id = " path "../../../../../nw-s:node[nw-s:node-id = "
+ "current()/../../../../nt-s:source/" + "current()/../../../../nt-s:source/"
+ "nt-s:source-node]/" + "nt-s:source-node]/"
+ "nt-s:termination-point/nt-s:tp-id"; + "nt-s:termination-point/nt-s: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-s:node[nw-s:node-id = " path "../../../../../nw-s:node[nw-s:node-id = "
+ "current()/../../../../nt-s:destination/" + "current()/../../../../nt-s:destination/"
+ "nt-s:dest-node]/" + "nt-s:dest-node]/"
+ "nt-s:termination-point/nt-s:tp-id"; + "nt-s:termination-point/nt-s: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-s:networks/nw-s:network/nw-s:node/te/"
"/nw-s:networks/nw-s:network/nw-s:node/te/" + "information-source-entry/connectivity-matrices/"
+ "information-source-entry/connectivity-matrices/" + "connectivity-matrix" {
+ "connectivity-matrix" { when '../../../../../nw-s:network-types/tet-s:te-topology' {
when "../../../../../nw-s:network-types/tet-s:te-topology" {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment 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-s:networks/nw-s:network/nw-s:node/te/"
"/nw-s:networks/nw-s:network/nw-s:node/te/te-node-attributes/" + "te-node-attributes/connectivity-matrices/"
+ "connectivity-matrices/connectivity-matrix" { + "connectivity-matrix" {
when "../../../../../nw-s:network-types/tet-s:te-topology" { when '../../../../../nw-s:network-types/tet-s:te-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment 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-s:networks/nw-s:network/nw-s:node/te/"
"/nw-s:networks/nw-s:network/nw-s:node/te/" + "tunnel-termination-point/local-link-connectivities" {
+ "tunnel-termination-point/local-link-connectivities" { when '../../../../nw-s:network-types/tet-s:te-topology' {
when "../../../../nw-s:network-types/tet-s:te-topology" {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with a
TE topology type."; TE topology type.";
} }
description description
"Augment TE node tunnel termination point LLCs "Augmentation for TE node TTP LLCs (Local Link
(Local Link Connectivities)."; Connectivities).";
uses te-node-tunnel-termination-point-llc-list; uses te-node-tunnel-termination-point-llc-list;
} }
} }]]></sourcecode>
<CODE ENDS> </section>
]]></artwork> </section>
</figure> <section anchor="append-c" numbered="true" toc="default">
</section>
</section> <name>Example: YANG Data Model for Technology-Specific Augmentations</name
>
<t>
This appendix provides an example YANG module that defines a
technology-specific TE topology model for the example-topology model describe
d in
<xref target="sect-6" format="default"/>.</t>
<section title="Example: YANG Model for Technology Specific Augmentations <t>This module references <xref target="RFC8345"/>.</t>
" anchor="append-c"><t>
This section provides an example YANG module to define a technology
specific TE topology model for the example-topology described in
<xref target="sect-6"/>.</t>
<figure><artwork><![CDATA[ <sourcecode name="" type="yang"><![CDATA[
module example-topology { module example-topology {
yang-version 1.1; yang-version 1.1;
namespace "https://example.com/example-topology";
namespace "http://example.com/example-topology"; prefix ex-topo;
prefix "ex-topo";
import ietf-network { import ietf-network {
prefix "nw"; prefix nw;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "nt"; prefix nt;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
} }
import ietf-te-topology { import ietf-te-topology {
prefix "tet"; prefix tet;
reference
"RFC 8795: YANG Data Model for Traffic Engineering (TE)
Topologies";
} }
organization organization
"Example Organization"; "Example Organization";
contact contact
"Editor: Example Author"; "Editor: Example Author";
description description
"This module defines a topology data model for the example "This module defines a topology data model for the example
technology."; technology.";
revision 2018-06-15 { revision 2020-06-29 {
description description
"Initial revision."; "Initial revision.";
reference reference
"Example reference."; "Example reference";
} }
/* /*
* Data nodes * Data nodes
*/ */
augment "/nw:networks/nw:network/nw:network-types/" augment "/nw:networks/nw:network/nw:network-types/"
+ "tet:te-topology" { + "tet:te-topology" {
description description
"Augment network types to define example topology type."; "Augmentation for network types to define an example topology
type.";
container example-topology { container example-topology {
presence presence "Introduces a new network type for an example
"Introduce new network type for example topology."; topology";
description description
"Its presence identifies the example topology type."; "Its presence identifies the example topology type.";
} }
} }
augment "/nw:networks/nw:network/tet:te" { augment "/nw:networks/nw:network/tet:te" {
when "../nw:network-types/tet:te-topology/" when '../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment network topology."; description
"Augmentation for the network topology.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-1 { leaf attribute-1 {
type uint8; type uint8;
description "Attribute 1 for example technology."; description
"Attribute 1 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes" { + "tet:te-node-attributes" {
when "../../nw:network-types/tet:te-topology/" when '../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment node attributes."; description
"Augmentation for node attributes.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-2 { leaf attribute-2 {
type uint8; type uint8;
description "Attribute 2 for example technology."; description
"Attribute 2 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices" { + "tet:te-node-attributes/tet:connectivity-matrices" {
when "../../../../nw:network-types/tet:te-topology/" when '../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment node connectivity matrices."; description
"Augmentation for node connectivity matrices.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-3 { leaf attribute-3 {
type uint8; type uint8;
description "Attribute 3 for example technology."; description
"Attribute 3 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix" { + "tet:connectivity-matrix" {
when "../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment node connectivity matrix."; description
"Augmentation for the node connectivity matrix.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-3 { leaf attribute-3 {
type uint8; type uint8;
description "Attribute 3 for example technology."; description
"Attribute 3 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point" { + "tet:tunnel-termination-point" {
when "../../../nw:network-types/tet:te-topology/" when '../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment tunnel termination point."; description
"Augmentation for a TTP.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-4 { leaf attribute-4 {
type uint8; type uint8;
description "Attribute 4 for example technology."; description
"Attribute 4 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node/nt:termination-point/" augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
+ "tet:te" { + "tet:te" {
when "../../../nw:network-types/tet:te-topology/" when '../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment link termination point."; description
"Augmentation for an LTP.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-5 { leaf attribute-5 {
type uint8; type uint8;
description "Attribute 5 for example technology."; description
"Attribute 5 for the example technology.";
} }
} }
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes" { + "tet:te-link-attributes" {
when "../../../nw:network-types/tet:te-topology/" when '../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
description "Augment link attributes."; description
"Augmentation for link attributes.";
container attributes { container attributes {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf attribute-6 { leaf attribute-6 {
type uint8; type uint8;
description "Attribute 6 for example technology."; description
"Attribute 6 for the example technology.";
} }
} }
} }
/* /*
* Augment TE bandwidth. * Augmentations for TE bandwidth.
*/ */
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:max-link-bandwidth/" + "tet:max-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:max-resv-link-bandwidth/" + "tet:max-resv-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:unreserved-bandwidth/" + "tet:unreserved-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
when "../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
when "../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
when "../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
when "../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:client-layer-adaptation/" + "tet:tunnel-termination-point/"
+ "tet:switching-capability/tet:te-bandwidth/tet:technology" { + "tet:client-layer-adaptation/tet:switching-capability/"
when "../../../../../../../nw:network-types/tet:te-topology/" + "tet:te-bandwidth/tet:technology" {
+ "ex-topo:example-topology" { when '../../../../../../nw:network-types/tet:te-topology/'
+ 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:local-link-connectivities/tet:path-constraints/"
when "../../../../../../../nw:network-types/tet:te-topology/" + "tet:te-bandwidth/tet:technology" {
+ "ex-topo:example-topology" { when '../../../../../../nw:network-types/tet:te-topology/'
+ 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:path-constraints/tet:te-bandwidth/tet:technology" { + "tet:local-link-connectivity/tet:path-constraints/"
when "../../../../../../../../nw:network-types/tet:te-topology/" + "tet:te-bandwidth/tet:technology" {
+ "ex-topo:example-topology" { when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/"
+ "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/"
+ "tet:max-link-bandwidth/" + "tet:max-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/"
+ "tet:max-resv-link-bandwidth/" + "tet:max-resv-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/"
+ "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/"
+ "tet:max-link-bandwidth/" + "tet:max-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/"
+ "tet:max-resv-link-bandwidth/" + "tet:max-resv-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/"
+ "tet:unreserved-bandwidth/" + "tet:unreserved-bandwidth/"
+ "tet:te-bandwidth/tet:technology" { + "tet:te-bandwidth/tet:technology" {
when "../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
augment "/nw:networks/nw:network/nw:node/nt:termination-point/" augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
+ "tet:te/" + "tet:te/tet:interface-switching-capability/"
+ "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + "tet:max-lsp-bandwidth/tet:te-bandwidth/tet:technology" {
+ "tet:te-bandwidth/tet:technology" { when '../../../../../../nw:network-types/tet:te-topology/'
when "../../../../../../../../nw:network-types/tet:te-topology/" + 'ex-topo:example-topology' {
+ "ex-topo:example-topology" {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf bandwidth-1 { leaf bandwidth-1 {
type uint32; type uint32;
description "Bandwidth 1 for example technology."; description
"Bandwidth 1 for the example technology.";
} }
} }
} }
description "Augment TE bandwidth."; description
"Augmentation for TE bandwidth.";
} }
/* /*
* Augment TE label. * Augmentations for the TE label.
*/ */
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/tet:te/tet:templates/" augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/" + "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under te-node-attributes/connectivity-matrices */ /* Under te-node-attributes/connectivity-matrices */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under te-node-attributes/.../connectivity-matrix */ /* Under te-node-attributes/.../connectivity-matrix */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/" + "tet:connectivity-matrix/tet:from/tet:label-restrictions/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restriction/tet:label-start/"
+ "tet:te-label/tet:technology" { + "tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/" + "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/" + "tet:connectivity-matrix/tet:to/tet:label-restrictions/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restriction/tet:label-start/"
+ "tet:te-label/tet:technology" { + "tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/" + "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under information-source-entry/connectivity-matrices */ /* Under information-source-entry/connectivity-matrices */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../nw:network-types/tet:te-topology/" when '../../../../../../../../nw:network-types/tet:te-topology/'
+ "ex-topo:example-topology" { + 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under information-source-entry/.../connectivity-matrix */ /* Under information-source-entry/.../connectivity-matrix */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/" + "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/" + "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/" + "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/" + "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-end/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/" + "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/" + "tet:connectivity-matrix/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under tunnel-termination-point/local-link-connectivities */ /* Under tunnel-termination-point/local-link-connectivities */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:local-link-connectivities/tet:label-restrictions/"
+ "tet:te-label/tet:technology" { + "tet:label-restriction/tet:label-start/tet:te-label/"
when "../../../../../../../../nw:network-types/tet:te-topology/" + "tet:technology" {
+ "ex-topo:example-topology" { when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:local-link-connectivities/tet:label-restrictions/"
+ "tet:te-label/tet:technology" { + "tet:label-restriction/tet:label-end/"
when "../../../../../../../../nw:network-types/tet:te-topology/" + "tet:te-label/tet:technology" {
+ "ex-topo:example-topology" { when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:local-link-connectivities/tet:underlay/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:primary-path/tet:path-element/tet:type/"
when "../../../../../../../../../../../../nw:network-types/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:local-link-connectivities/tet:underlay/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:backup-path/tet:path-element/tet:type/"
when "../../../../../../../../../../../../nw:network-types/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:local-link-connectivities/tet:path-properties/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-objects/tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under tunnel-termination-point/.../local-link-connectivity */ /* Under tunnel-termination-point/.../local-link-connectivity */
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:local-link-connectivity/tet:label-restrictions/"
+ "tet:te-label/tet:technology" { + "tet:label-restriction/tet:label-start/"
when "../../../../../../../../../nw:network-types/" + "tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:local-link-connectivity/tet:label-restrictions/"
+ "tet:te-label/tet:technology" { + "tet:label-restriction/tet:label-end/"
when "../../../../../../../../../nw:network-types/" + "tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:local-link-connectivity/tet:underlay/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:primary-path/tet:path-element/tet:type/"
when "../../../../../../../../../../../../../nw:network-types/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:local-link-connectivity/tet:underlay/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:backup-path/tet:path-element/tet:type/"
when "../../../../../../../../../../../../nw:network-types/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ "tet:te-topology/ex-topo:example-topology" { when '../../../../../../../../../../nw:network-types/'
+ 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nw:node/tet:te/" augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/tet:local-link-connectivities/" + "tet:tunnel-termination-point/"
+ "tet:local-link-connectivity/" + "tet:local-link-connectivities/"
+ "tet:path-properties/tet:path-route-objects/" + "tet:local-link-connectivity/tet:path-properties/"
+ "tet:path-route-object/tet:type/" + "tet:path-route-objects/tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../../../nw:network-types/" when '../../../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under te-link-attributes */ /* Under te-link-attributes */
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restrictions/tet:label-restriction/"
+ "tet:te-label/tet:technology" { + "tet:label-start/tet:te-label/tet:technology" {
when "../../../../../../../nw:network-types/" when '../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/tet:label-restrictions/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restriction/tet:label-end/"
+ "tet:te-label/tet:technology" { + "tet:te-label/tet:technology" {
when "../../../../../../../nw:network-types/" when '../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/tet:underlay/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../../nw:network-types/" when '../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/" + "tet:te-link-attributes/tet:underlay/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + "tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" { + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../nw:network-types/" when '../../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
/* Under te-link information-source-entry */
/* Under TE link information-source-entry */
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/tet:label-restrictions/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-start/" + "tet:label-restriction/tet:label-start/"
+ "tet:te-label/tet:technology" { + "tet:te-label/tet:technology" {
when "../../../../../../../nw:network-types/" when '../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
augment "/nw:networks/nw:network/nt:link/tet:te/" augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/" + "tet:information-source-entry/tet:label-restrictions/"
+ "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:label-restriction/tet:label-end/"
+ "tet:te-label/tet:technology" { + "tet:te-label/tet:technology" {
when "../../../../../../../nw:network-types/" when '../../../../../../../nw:network-types/'
+ "tet:te-topology/ex-topo:example-topology" { + 'tet:te-topology/ex-topo:example-topology' {
description description
"Augmentation parameters apply only for networks with "Augmentation parameters apply only for networks with an
example topology type."; example topology type.";
} }
case "example" { case example {
container example { container example {
description "Attributes for example technology."; description
"Attributes for the example technology.";
leaf label-1 { leaf label-1 {
type uint32; type uint32;
description "Label 1 for example technology."; description
"Label 1 for the example technology.";
} }
} }
} }
description "Augment TE label."; description
"Augmentation for the TE label.";
} }
} }]]></sourcecode>
]]></artwork> </section>
</figure> <section anchor="sect-a" numbered="false" toc="default">
</section> <name>Acknowledgments</name>
<t>
<section title="Acknowledgments" anchor="sect-a" numbered="no"><t> The authors would like to thank <contact fullname="Lou Berger"/>, <contact fu
The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, llname="Sue Hares"/>, <contact fullname="Mazen Khaddam"/>,
Cyril Margaria and Zafar Ali for participating in design discussions <contact fullname="Cyril Margaria"/>, and <contact fullname="Zafar Ali"/> for
participating in design discussions
and providing valuable insights.</t> and providing valuable insights.</t>
</section>
<section numbered="false" anchor="contributors" toc="default">
<name>Contributors</name>
<contact fullname="Sergio Belotti">
<organization>Nokia</organization>
<address>
<email>sergio.belotti@nokia.com</email>
</address>
</contact>
</section> <contact fullname="Dieter Beller">
<organization>Nokia</organization>
<section title="Contributors" numbered="no" anchor="contributors"><figure <address>
><artwork><![CDATA[ <email>Dieter.Beller@nokia.com</email>
Sergio Belotti </address>
Nokia </contact>
Email: sergio.belotti@nokia.com
Dieter Beller
Nokia
Email: Dieter.Beller@nokia.com
Carlo Perocchio
Ericsson
Email: carlo.perocchio@ericsson.com
Italo Busi
Huawei Technologies
Email: Italo.Busi@huawei.com
]]></artwork>
</figure>
</section>
</back> <contact fullname="Carlo Perocchio">
<organization>Ericsson</organization>
<address>
<email>carlo.perocchio@ericsson.com</email>
</address>
</contact>
</rfc> <contact fullname="Italo Busi">
<organization>Huawei Technologies</organization>
<address>
<email>Italo.Busi@huawei.com</email>
</address>
</contact>
</section>
</back>
</rfc>
 End of changes. 1041 change blocks. 
2813 lines changed or deleted 3180 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/