draft-ietf-teas-yang-te-topo-04.txt   draft-ietf-teas-yang-te-topo-05.txt 
skipping to change at page 1, line 15 skipping to change at page 1, line 15
Huawei Technologies Huawei Technologies
Vishnu Pavan Beeram Vishnu Pavan Beeram
Juniper Networks Juniper Networks
Tarek Saad Tarek Saad
Cisco Systems Inc Cisco Systems Inc
Himanshu Shah Himanshu Shah
Ciena Ciena
Oscar Gonzalez De Dios Oscar Gonzalez De Dios
Telefonica Telefonica
Expires: September 21, 2016 March 21, 2016 Expires: January 8, 2017 July 8, 2016
YANG Data Model for TE Topologies YANG Data Model for TE Topologies
draft-ietf-teas-yang-te-topo-04 draft-ietf-teas-yang-te-topo-05
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 41 skipping to change at page 1, line 41
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on September 21, 2016. This Internet-Draft will expire on January 8, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 38 skipping to change at page 2, line 38
1. Introduction...................................................3 1. Introduction...................................................3
1.1. Terminology...............................................4 1.1. Terminology...............................................4
1.2. Tree Structure - Legend...................................4 1.2. Tree Structure - Legend...................................4
1.3. Prefixes in Data Node Names...............................5 1.3. Prefixes in Data Node Names...............................5
2. Characterizing TE Topologies...................................5 2. Characterizing TE Topologies...................................5
3. Modeling Abstractions and Transformations......................7 3. Modeling Abstractions and Transformations......................7
3.1. TE Topology...............................................7 3.1. TE Topology...............................................7
3.2. TE Node...................................................7 3.2. TE Node...................................................7
3.3. TE Link...................................................8 3.3. TE Link...................................................8
3.4. TE Link Termination Point (LTP)...........................8 3.4. Transitional TE Link for Multi-Layer Topologies...........8
3.5. TE Tunnel Termination Point (TTP).........................8 3.5. TE Link Termination Point (LTP)..........................10
3.6. TE Node Connectivity Matrix...............................8 3.6. TE Tunnel Termination Point (TTP)........................10
3.7. TTP Local Link Connectivity List (LLCL)...................9 3.7. TE Node Connectivity Matrix..............................11
3.8. TE Path...................................................9 3.8. TTP Local Link Connectivity List (LLCL)..................11
3.9. Underlay TE topology......................................9 3.9. TE Path..................................................11
3.10. Overlay TE topology......................................9 3.10. TE Inter-Layer Lock.....................................11
3.11. Abstract TE topology.....................................9 3.11. Underlay TE topology....................................13
4. Model Applicability...........................................11 3.12. Overlay TE topology.....................................13
4.1. Native TE Topologies.....................................11 3.13. Abstract TE topology....................................13
4.2. Customized TE Topologies.................................13 4. Model Applicability...........................................14
5. Modeling Considerations.......................................15 4.1. Native TE Topologies.....................................14
5.1. Generic network topology building blocks.................15 4.2. Customized TE Topologies.................................16
5.2. Technology agnostic TE Topology model....................16 4.3. Merging TE Topologies Provided by Multiple Providers.....18
5.3. Model Structure..........................................16 4.4. Dealing with Multiple Abstract TE Topologies Provided by the
5.4. Topology Identifiers.....................................18 Same Provider.................................................22
5.5. Generic TE Link Attributes...............................18 5. Modeling Considerations.......................................25
5.6. Generic TE Node Attributes...............................19 5.1. Generic network topology building blocks.................25
5.7. TED Information Sources..................................19 5.2. Technology agnostic TE Topology model....................25
5.8. Overlay/Underlay Relationship............................20 5.3. Model Structure..........................................26
5.9. Scheduling Parameters....................................22 5.4. Topology Identifiers.....................................27
5.10. Templates...............................................22 5.5. Generic TE Link Attributes...............................28
5.11. Notifications...........................................23 5.6. Generic TE Node Attributes...............................28
5.12. Open Items..............................................23 5.7. TED Information Sources..................................29
6. Tree Structure................................................23 5.8. Overlay/Underlay Relationship............................30
6.1. Base TE Topology Module..................................23 5.9. Scheduling Parameters....................................31
6.2. Packet Switching TE Topology Module......................49 5.10. Templates...............................................31
7. TE Topology Yang Modules......................................50 5.11. Notifications...........................................32
7.1. Base TE Topology Module..................................50 5.12. Open Items..............................................33
7.2. Packet Switching TE Topology Module......................94 6. Tree Structure................................................33
8. Security Considerations.......................................98 7. TE Topology Yang Module.......................................62
9. IANA Considerations...........................................98 8. Security Considerations......................................105
10. References...................................................99 9. IANA Considerations..........................................105
10.1. Normative References....................................99 10. References..................................................106
10.2. Informative References..................................99 10.1. Normative References...................................106
11. Acknowledgments.............................................100 10.2. Informative References.................................106
Contributors....................................................100 11. Acknowledgments.............................................107
Authors' Addresses..............................................100 Contributors....................................................107
Authors' Addresses..............................................107
1. Introduction 1. Introduction
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 [RFC2702] Traffic Engineered (TE) systems that are based on MPLS-TE [RFC2702]
and GMPLS [RFC3945]. The TED is a collection of all TE information and GMPLS [RFC3945]. The TED is a collection 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. The TE Topology is the topology on which Traffic Engineered system. The TE Topology is the topology on which
skipping to change at page 7, line 46 skipping to change at page 7, line 46
TE node is an element of a TE topology (presented as a vertex on TE TE node is an element of a TE topology (presented as a vertex on TE
graph). TE node represents one or several nodes (physical switches), graph). TE node represents one or several nodes (physical switches),
or a fraction of a node. TE node belongs to and is fully defined in or a fraction of a node. TE node belongs to and is fully defined in
exactly one TE topology. TE node is assigned with the TE topology exactly one TE topology. TE node is assigned with the TE topology
scope unique ID. TE node attributes include information related to scope unique ID. TE node attributes include information related to
the data plane aspects of the associated node(s) (e.g. connectivity the data plane aspects of the associated node(s) (e.g. connectivity
matrix), as well as configuration data (such as TE node name). A 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 given TE node can be reached on the TE graph over one of TE links
terminated by the TE node. terminated by the TE node.
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 (fractions of a 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.
In Figure 1, Node-1, Node-2, and Node-3 are TE nodes. In Figure 1, Node-1, Node-2, and Node-3 are TE nodes.
3.3. TE Link 3.3. TE Link
TE link is an element of a TE topology (presented as an edge on TE TE link is an element of a TE topology (presented as an edge on TE
graph, arrows indicate one or both directions of the TE link). TE graph, arrows indicate one or both directions of the TE link). TE
link represents one or several (physical) links or a fraction of a link represents one or several (physical) links or a fraction of a
link. TE link belongs to and is fully defined in exactly one TE link. TE link belongs to and is fully defined in exactly one TE
topology. TE link is assigned with the TE topology scope unique ID. topology. TE link is assigned with the TE topology scope unique ID.
TE link attributes include parameters related to the data plane TE link attributes include parameters related to the data plane
aspects of the associated link(s) (e.g. unreserved bandwidth, aspects of the associated link(s) (e.g. unreserved bandwidth,
resource maps/pools, etc.), as well as the configuration data (such resource maps/pools, etc.), as well as the configuration data (such
as remote node/link IDs, SRLGs, administrative colors, etc.). TE link as remote node/link IDs, SRLGs, administrative colors, etc.). TE link
is connected to TE node, terminating the TE link via exactly one TE is connected to TE node, terminating the TE link via exactly one TE
link termination point (LTP). link termination point (LTP).
In Figure 1, Link-12 and Link-23 are TE links. In Figure 1, Link-12 and Link-23 are TE links.
3.4. TE Link Termination Point (LTP) 3.4. Transitional TE Link for Multi-Layer Topologies
Networks are typically composed of multiple network layers where one
or multiple signals in the client layer network can be multiplexed
and encapsulated into a server layer signal. The server layer signal
can be carried in the server layer network across multiple nodes
until the server layer signal is terminated and the client layer
signals reappear in the node that terminates the server layer signal.
Examples of multi-layer networks are: IP over MPLS over Ethernet, low
order ODUk signals multiplexed into a high order ODUl (l>k) carried
over an OCh signal (optical transport network).
TE links as defined in 3.3. can be used to represent links within a
network layer. In case of a multi-layer network, TE nodes and TE
links only allow representation of each network layer as a separate
TE topology Each of these single layer TE topologies would be
isolated from their client and their server layer TE topology, if
present (the highest and the lowest network layer in the hierarchy
only have a single adjacent layer below or above, respectively).
Multiplexing of client layer signals and encapsulating them into a
server layer signal requires a function that is provided inside a
node (typically realized in hardware). This function is also called
layer transition.
One of the key requirements for path computation is to be able to
calculate a path between two endpoints across a multi-layer network
based on the TE topology representing this multi-layer network. This
means that an additional TE construct is needed that represents
potential layer transitions in the multi-layer TE-topology that
connects the TE-topologies representing each separate network layer.
The so-called transitional TE link is such a construct and it
represents the layer transition function residing inside a node that
is decomposed into multiple logical nodes that are represented as TE
nodes. Hence, a transitional TE link connects a client layer node
with a server layer node. A TE link as defined in 3.3. has LTPs of
exactly the same kind on each link end whereas 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 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 as they are
not in use (as they represent potential connectivity). When the
server layer trail has been established between 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 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.
+------------------+
| +------+ | +------+
-----|Client|------+ | Client -----|Client|
| |Layer |---+ | | Layer |Layer |
-----|Switch|-+ | | | Links -----|Node |
| +------+ | | | | +------+
| | | | | Client | | |
| | | ---_| Layer --- ---
***|**********|*| \ /*|***************************\ /*\ /****
| --- | | Server Transitional | |
| Layer \ / | | Layer Links | |
| Term. | | | | |
| | | | | |
| +------+ | +------+
=============|Server|===== Server ====|Server|====
| |Layer | | Layer |Layer |
=============|Switch|===== Links ====|Node |====
| +------+ | +------+
+------------------+
Physical Node View TE-Topology View
Figure 2: Modeling a Multi-Layer Node (Dual-Layer Example)
3.5. TE Link Termination Point (LTP)
TE link termination point (LTP) is a conceptual point of connection 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. Cardinality between an LTP and the associated TE link is 1:0..1.
In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6. In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6.
3.5. TE Tunnel Termination Point (TTP) 3.6. TE Tunnel Termination Point (TTP)
TE tunnel termination point (TTP) is an element of TE topology TE tunnel termination point (TTP) is an element of TE topology
representing one or several of potential transport service representing one or several of 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 WDM/OCh transponder). TTP is associated with (hosted by) exactly one
TE node. TTP is assigned with the TE node scope unique ID. Depending TE node. TTP is assigned with the TE node scope unique ID. Depending
on the TE node's internal constraints, a given TTP hosted by the TE 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 terminated by node could be accessed via one, several or all TE links terminated by
the TE node. the TE node.
In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2. In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2.
3.6. TE Node Connectivity Matrix 3.7. TE Node Connectivity Matrix
TE node connectivity matrix is a TE node's attribute describing the 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 a 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 for the TE path to leave the TE node
from. from.
In Figure 1, the connectivity matrix on Node-2 is: 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-6, LTP-1>, <LTP-5, LTP-2>, <LTP-5, LTP-4>, <LTP-4, LTP-1>,
<LTP-3, LTP-2>} <LTP-3, LTP-2>}
3.7. TTP Local Link Connectivity List (LLCL) 3.8. TTP Local Link Connectivity List (LLCL)
TTP Local Link Connectivity List (LLCL) is a List of TE links 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 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 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 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, path needs to start/stop on for the connection, taking the TE path,
to be successfully terminated on the TTP in question. to be successfully terminated on the TTP in question.
In Figure 1, the LLCL on Node-1 is: In Figure 1, the LLCL on Node-1 is:
{<TTP-1, LTP-5>, <TTP-1, LTP-2>, <TTP-2, LTP-3>, <TTP-2, LTP4>} {<TTP-1, LTP-5>, <TTP-1, LTP-2>, <TTP-2, LTP-3>, <TTP-2, LTP4>}
3.8. TE Path 3.9. TE Path
TE path is an ordered list of TE links and/or TE nodes on the TE TE path is an ordered list of TE links and/or TE nodes on the TE
topology graph, inter-connecting a pair of TTPs to be taken by a topology graph, inter-connecting a pair of TTPs to be taken by a
potential connection. TE paths, for example, could be a product of potential connection. TE paths, for example, could be a product of
successful path computation performed for a given transport service. successful path computation performed for a given transport service.
In Figure 1, the TE Path for TE-Tunnel-1 is: In Figure 1, the TE Path for TE-Tunnel-1 is:
{Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} {Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1}
3.9. Underlay TE topology 3.10. TE Inter-Layer Lock
TE inter-layer lock is a modeling concept describing client-server
layer adaptation relationships and hence important for the multi-
layer traffic engineering. It is an association of M client layer
LTPs and N server layer TTPs, within which data arriving at any of
the client layer LTPs could be adopted onto any of the server layer
TTPs. TE inter-layer lock is identified by inter-layer lock ID, which
is unique across all TE topologies provided by the same provider. The
client layer LIPs and the server layer TTPs associated within a given
TE inter-layer lock are decorated with the same inter-layer lock ID
attribute.
(IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1)
--------O (IL-1) O--------
(IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1)
--------O __ 0--------
(IL-1) C-LTP-5 | *\/* | C-LTP-5 (IL-1)
--------O * * O--------
| *(IL-1)* |
S-LTP-3 | * S-TTP-2* | S-LTP-4
--------o* __ *o--------
| *\/* |
| * * |
+--o------o--+
S-LTP-1 | | S-LTP-2
Figure 3: TE Inter-Layer Lock ID Associations
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.
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.
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
located in the same or separate TE topologies. The latter is
especially important since TE topologies of different layer networks
could be modeled by separate augmentations of the basic (common to
all layers) TE topology model.
3.11. Underlay TE topology
Underlay TE topology is a TE topology that serves as a base for Underlay TE topology is a TE topology that serves as a base for
constructing of overlay TE topologies constructing of overlay TE topologies
3.10. Overlay TE topology 3.12. Overlay TE topology
Overlay TE topology is a TE topology constructed based on one or more Overlay TE topology is a TE topology constructed based on one or more
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. network.
3.11. Abstract TE topology 3.13. Abstract TE topology
Abstract TE topology is an overlay TE topology created by a topology Abstract TE topology is an overlay TE topology created by a topology
provider and customized for a topology provider's client based on one provider and customized for a topology provider's client based on one
or more of the provider's native TE topologies (underlay TE or more of the provider's native TE topologies (underlay TE
topologies), the provider's policies and the client's preferences. topologies), the provider's policies and the client's preferences.
For example, a first level topology provider (such as Domain For example, a first level topology provider (such as Domain
Controller) can create an abstract TE topology for its client (e.g. Controller) can create an abstract TE topology for its client (e.g.
Super Controller) based on the provider's one or more native TE Super Controller) based on the provider's one or more native TE
topologies, local policies/profiles and the client's TE topology topologies, local policies/profiles and the client's TE topology
configuration requests configuration requests
Figure 2 shows an example of abstract TE topology. Figure 4 shows an example of abstract TE topology.
+---+ +---+ +---+ +---+
|s31|--------------|S5 | |s31|--------------|S5 |
+---+\ / +---+ +---+\ / +---+
\ / \ /
\ / \ /
\+---+/ +---+ \+---+/ +---+
/|AN1|\----------------|S8 | /|AN1|\----------------|S8 |
/ +---+ \ +---+ / +---+ \ +---+
+---+ / \ +---+ +---+ / \ +---+
skipping to change at page 11, line 36 skipping to change at page 14, line 36
\ \ \ \ \ \
\ \ \ \ \ \
\+---+ +---+ +---+ \+---+ +---+ +---+
/|S6 |\ |S7 |---------|S8 | /|S6 |\ |S7 |---------|S8 |
/ +---+ \ +---+\ /+---+ / +---+ \ +---+\ /+---+
+---+ / \ +---+ +---+ / +---+ / \ +---+ +---+ /
|S9 |-------------|S10|--------------|S11|/ |S9 |-------------|S10|--------------|S11|/
+---+ +---+ +---+ +---+ +---+ +---+
Native TE Topology Native TE Topology
Figure 2: Abstract TE Topology Figure 4: Abstract TE Topology
4. Model Applicability 4. Model Applicability
4.1. Native TE Topologies 4.1. Native TE Topologies
The model discussed in this draft can be used to represent and The model discussed in this draft can be used to represent and
retrieve native TE topologies on a given TE system. retrieve native TE topologies on a given TE system.
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| R1|-------| R2|--------| R3|---------| R4|---------| R5| | R1|-------| R2|--------| R3|---------| R4|---------| R5|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
| / \ / \ / | / \ / \ /
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| R6|-------------| R7| | R8|---------| R9| | R6|-------------| R7| | R8|---------| R9|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
Figure 3a: Example Network Topology Figure 5a: Example Network Topology
Consider the network topology depicted in Figure 3a (R1 .. R9 are Consider the network topology depicted in Figure 5a (R1 .. R9 are
nodes representing routers). An implementation MAY choose to nodes representing routers). An implementation MAY choose to
construct a native TE Topology using all nodes and links present in construct a native TE Topology using all nodes and links present in
the given TED as depicted in Figure 3b. The data model proposed in the given TED as depicted in Figure 5b. The data model proposed in
this document can be used to retrieve/represent this TE topology. this document can be used to retrieve/represent this TE topology.
--------------- ---------------
| 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]
Figure 3b: Native TE Topology as seen on Node R3 Figure 5b: Native TE Topology as seen on Node R3
Consider the case of the topology being split in a way that some Consider the case of the topology being split in a way that some
nodes participate in OSPF-TE while others participate in ISIS-TE nodes participate in OSPF-TE while others participate in ISIS-TE
(Figure 4a). An implementation MAY choose to construct separate TE (Figure 6a). An implementation MAY choose to construct 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 constructed using only nodes and links that were learnt via a
specific information source are depicted in Figure 4b. The data model specific information source are depicted in Figure 6b. The data model
proposed in this document can be used to retrieve/represent these TE proposed in this document can be used to retrieve/represent these TE
topologies. topologies.
Similarly, the data model can be used to represent/retrieve a TE Similarly, the data model can be used to represent/retrieve a TE
Topology that is constructed using only nodes and links that belong Topology that is constructed using only nodes and links that belong
to a particular technology layer. The data model is flexible enough to a particular technology layer. The data model is flexible enough
to retrieve and represent many such native TE Topologies. to retrieve and represent many such native TE Topologies.
: :
TE info distributed via ISIS-TE : TE info distributed via OSPF-TE TE info distributed via ISIS-TE : TE info distributed via OSPF-TE
skipping to change at page 13, line 21 skipping to change at page 16, line 21
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
| / : \ / \ / | / : \ / \ /
+---+ +---+ : +---+ +---+ +---+ +---+ : +---+ +---+
| R6|-------------| R7| : | R8|---------| R9| | R6|-------------| R7| : | R8|---------| R9|
+---+ +---+ : +---+ +---+ +---+ +---+ : +---+ +---+
: :
Figure 4a: Example Network Topology Figure 6a: Example Network Topology
----------------------- : ----------------------- ----------------------- : -----------------------
|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]
Figure 4b: Native TE Topologies as seen on Node R3 Figure 6b: Native TE Topologies as seen on Node R3
4.2. Customized TE Topologies 4.2. Customized TE Topologies
The model discussed in this draft can be used to represent, retrieve The model discussed in this draft 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 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. the path computing client to select paths according to its policies.
| +---+ /-\ | +---+ /-\
skipping to change at page 14, line 23 skipping to change at page 17, line 23
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
/ \ / \ / \ / \
+---+ /-\ /-\ /-\ +---+ +---+ /-\ /-\ /-\ +---+
| R2|---------( B )---------( D )---------( F )---------| R4| | R2|---------( B )---------( D )---------( F )---------| R4|
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+
Figure 5: Example packet optical topology Figure 7: Example packet optical topology
Consider the network topology depicted in Figure 5. This is a typical Consider the network topology depicted in Figure 7. This is a typical
packet optical transport deployment scenario where the WDM layer packet optical transport deployment scenario where the WDM layer
network domain serves as a Server Network Domain providing transport network domain serves as a Server Network Domain providing transport
connectivity to the packet layer network Domain (Client Network connectivity to the packet layer network Domain (Client Network
Domain). Nodes R1, R2, R3 and R4 are IP routers that are connected to 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 an Optical WDM transport network. A, B, C, D, E and F are WDM nodes
that constitute the Server Network Domain. that constitute the Server Network Domain.
| ***** B-F WDM Path | ***** B-F WDM Path
| @@@@@ B-E WDM Path | @@@@@ B-E WDM Path
| $$$$$ A-E WDM Path | $$$$$ A-E WDM Path
skipping to change at page 14, line 50 skipping to change at page 17, line 50
+---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
@/ \ / \ @/ \ / \
+---+ /-\ ********* /-\ ********* /-\ +---+ +---+ /-\ ********* /-\ ********* /-\ +---+
| R2|---------( B )---------( D )---------( F )---------| R4| | R2|---------( B )---------( D )---------( F )---------| R4|
+---+ \-/ \-/ \-/ +---+ +---+ \-/ \-/ \-/ +---+
Figure 6a: Paths within the provider domain Figure 8a: Paths within the provider domain
++++++++ [A] ++++++++++++++++++++ [E] +++++++++ ++++++++ [A] ++++++++++++++++++++ [E] +++++++++
+++++ +++++
++++ ++++
++++ ++++
++++ ++++
++++ ++++
++++++++ [B] ++++++++++++++++++++ [F] +++++++++ ++++++++ [B] ++++++++++++++++++++ [F] +++++++++
Figure 6b: Customized TE Topology provided to the Client Figure 8b: Customized TE Topology provided to the Client
The goal here is to augment the Client TE Topology with a customized The goal here is to augment the Client TE Topology with a customized
TE Topology provided by the WDM network. Given the availability of TE Topology provided by the WDM network. Given the availability of
the paths A-E, B-F and B-E (Figure 6a), a customized TE Topology as the paths A-E, B-F and B-E (Figure 8a), a customized TE Topology as
depicted in Figure 6b is provided to the Client. This customized TE depicted in Figure 8b is provided to the Client. This customized TE
Topology is merged with the Client's Native TE Topology and the Topology is merged with the Client's Native TE Topology and the
resulting topology is depicted in Figure 6c. resulting topology is depicted in Figure 8c.
[R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3]
+++++ +++++
++++ ++++
++++ ++++
++++ ++++
++++ ++++
[R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4]
Figure 6c: Customized TE Topology merged with the Client's Native TE Figure 8c: Customized TE Topology merged with the Client's Native TE
Topology Topology
The data model proposed in this document can be used to The data model proposed in this document can be used to
retrieve/represent/manipulate the customized TE Topology depicted in retrieve/represent/manipulate the customized TE Topology depicted in
Figure 6b. Figure 8b.
4.3. Merging 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
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
topologies, each of which homogeneously representing the multi-domain
network. This makes it possible for the client to select end-to-end
TE paths for its services traversing multiple domains.
In particular, the process of merging TE topologies includes:
- Identifying neighboring domains and locking their topologies
horizontally by connecting their inter-domain open-ended TE links;
- Renaming TE node, link, and SRLG IDs to ones allocated from a
separate name space; this is necessary because all TE topologies
are considered to be, generally speaking, independent with a
possibility of clashes among TE node, link or SRLG IDs;
- 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
topologies provided by the same topology provider.
/---\ +---+ +---+ +---+ +---+ /---\
|s3 |------|S13|----|S15|------|S23|----|S25|------|C21|
\---/ +---+\ +---+ +---+ /+---+ \---/
\ /
\ /
\+---+ +---+/ +---+ /---\
|S18|------|S24| |S28|------|C22|
+---+ +---+\ /+---+ \---/
\/
/\
/---\ +---+ +---+ +---+/ \+---+ /---\
|C12|------|S19|----|S17|------|S29|----|S27|------|C23|
\---/ +---+ +---+ +---+ +---+ \---/
Domain 1 TE Topology Domain 2 TE Topology
+---+ +---+ +---+ +---+
-----|S13|----|S15|---- ----|S23|----|S25|----
+---+\ +---+ +---+ /+---+
\ /
\ /
\+---+ +---+/ +---+
|S18|---- ----|S24| |S28|----
+---+ +---+\ /+---+
\/
/\
+---+ +---+ +---+/ \+---+
-----|S19|----|S17|---- ----|S29|----|S27|----
+---+ +---+ +---+ +---+
Figure 9: Merging Domain TE Topologies
Figure 9 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
provider's control. The client, by consulting the attributes of the
inter-domain TE links - such as inter-domain plug IDs or remote TE
node/link IDs (as defined by the TE Topology model) - is able to
determine that:
a) the two domains are adjacent and are inter-connected via three
inter-domain TE links, and;
b) each domain is connected to a separate customer site, connecting
the left domain in the Figure to customer devices C-11 and C-12,
and the right domain to customer devices C-21, C-22 and C-23.
Therefore, the client inter-connects the open-ended TE links, as
shown on the upper part of the Figure.
As mentioned, one way to inter-connect the open-ended inter-domain TE
links of neighboring domains is to mandate the providers to specify
remote nodeID/linkID attribute in the provided inter-domain TE links.
This, however, may prove to be not flexible. For example, the
providers may not know the respective remote nodeIDs/ linkIDs. More
importantly, this option does not allow for the client to mix-n-match
multiple (more than one) topologies catered by the same providers
(see below). Another, more flexible, option to resolve the open-ended
inter-domain TE links is by decorating them with the inter-domain
plug ID attribute. Inter-domain plug ID is a network-wide unique
number that identifies on the network a connectivity supporting a
given inter-domain TE link. Instead of specifying remote node ID/link
ID, an inter-domain TE link may provide a non-zero inert-domain plug
ID. It is expected that two neighboring domain TE topologies
(provided by separate providers) will have each at least one open-
ended inter-domain TE link with an inter-domain plug ID matching to
one provided by its neighbor. For example, the inter-domain TE link
originating from node S5 of the Domain 1 TE topology (Figure 1) and
the inter-domain TE link coming from node S3 of Domain2 TE topology
may specify matching inter-domain plug ID (e.g. 175344) This allows
for the client to identify adjacent nodes in the separate neighboring
TE topologies and resolve the inter-domain TE links connecting them
regardless of their respective nodeIDs/linkIDs (which, as mentioned,
could be allocated from independent name spaces). Inter-domain plug
IDs may be assigned and managed by a central network authority.
Alternatively, inter-domain plug IDs could be dynamically auto-
discovered (e.g. via LMP protocol).
Furthermore, the client renames the TE nodes, links and SRLGs offered
in the abstract TE topologies by assigning to them IDs allocated from
a separate name space managed by the client. Such renaming is
necessary, because the two abstract TE topologies may have their own
name spaces, generally speaking, independent one from another; hence,
ID overlaps/clashes are possible. For example, both TE topologies
have TE nodes named S7, which, after renaming, appear in the merged
TE topology as S17 and S27, respectively.
Once the merging process is complete, the client can use the merged
TE topology for path computations across both domains, for example,
to compute a TE path connecting C-11 to C-23.
4.4. Dealing with Multiple Abstract TE Topologies Provided by the Same
Provider
Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1
+---+ +---+ +---+ +---+
-----|S13|----|S15|---- ----|S23|----|S25|----
+---+\ +---+ +---+ /+---+
\ /
\ /
\+---+ +---+/ +---+
|S18|---- ----|S24| |S28|----
+---+ +---+\ /+---+
\/
/\
+---+ +---+ +---+/ \+---+
-----|S19|----|S17|---- ----|S29|----|S27|----
+---+ +---+ +---+ +---+
Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1
+------------+ +------------+
-----| |---- ----| |----
| | | |
| AN1 |---- ----| AN1 |----
| | | |
-----| |---- ----| |----
+------------+ +------------+
Figure 10: Merging Domain TE Topologies
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.
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 Figure 1, the client may merge the abstract TE
topologies received from the two providers, as shown in Figure 10,
into the client's additional native TE topologies, as shown in Figure
11.
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.
Client's Merged TE Topology 2
/---\ +------------+ +------------+ /---\
|s3 |------| |------| |------|C21|
\---/ | | | | \---/
| | | |
| | | |
| | | | /---\
| AN11 |------| AN21 |------|C22|
| | | | \---/
| | | |
| | | |
/---\ | | | | /---\
|C12|------| |------| |------|C23|
\---/ +------------+ +------------+ \---/
Client's Merged TE Topology 3
/---\ +------------+ +---+ +---+ /---\
|s3 |------| |------|S23|----|S25|------|C21|
\---/ | | +---+ /+---+ \---/
| | /
| | /
| | +---+/ +---+ /---\
| AN11 |------|S24| |S28|------|C22|
| | +---+\ /+---+ \---/
| | \/
| | /\
/---\ | | +---+/ \+---+ /---\
|C12|------| |------|S29|----|S27|------|C23|
\---/ +------------+ +---+ +---+ \---/
Figure 11: Multiple Native (Merged) Client's TE Topologies
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.
5. Modeling Considerations 5. Modeling Considerations
5.1. Generic network topology building blocks 5.1. Generic network topology building blocks
The generic network topology building blocks are discussed in [YANG- The generic network topology building blocks are discussed in [YANG-
NET-TOPO]. The TE Topology model proposed in this document augments NET-TOPO]. The TE Topology model proposed in this document augments
and uses the ietf-network-topology module defined in [YANG-NET-TOPO]. and uses the ietf-network-topology module defined in [YANG-NET-TOPO].
+------------------------+ +------------------------+
skipping to change at page 16, line 18 skipping to change at page 25, line 28
| |
| |
| |
V V
+------------------------+ +------------------------+
| TE Topology | | TE Topology |
| Model | | Model |
| | | |
+------------------------+ +------------------------+
Figure 7: Augmenting the Generic Network Topology Model Figure 12: Augmenting the Generic Network Topology Model
5.2. Technology agnostic TE Topology model 5.2. Technology agnostic TE Topology model
The TE Topology model proposed in this document is meant to be The TE Topology model proposed in this document is meant to be
technology agnostic. Other technology specific TE Topology models can technology agnostic. Other technology specific TE Topology models can
augment and use the building blocks provided by the proposed model. augment and use the building blocks provided by the proposed model.
+-------------------+ +-------------------+
| Generic | | Generic |
| TE Topology Model | | TE Topology Model |
skipping to change at page 16, line 41 skipping to change at page 26, line 20
+-------------+-------------+-------------+ +-------------+-------------+-------------+
| | | | | | | |
V V V V V V V V
+------------+ +------------+ +------------+ +------------+
| Technology | | Technology | | Technology | | Technology |
| Specific | ...................... | Specific | | Specific | ...................... | Specific |
| TE Topology| | TE Topology| | TE Topology| | TE Topology|
| Model 1 | | Model n | | Model 1 | | Model n |
+------------+ +------------+ +------------+ +------------+
Figure 8: Augmenting the Technology agnostic TE Topology model Figure 13: Augmenting the Technology agnostic TE Topology model
5.3. Model Structure 5.3. Model Structure
The high-level model structure proposed by this document is as shown The high-level model structure proposed by this document is as shown
below: below:
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!
skipping to change at page 23, line 46 skipping to change at page 33, line 21
will contain only the changed attributes. will contain only the changed attributes.
5.12. Open Items 5.12. Open Items
- Coordinating changes to [YANG-PUSH]: The changes to [YANG-PUSH] - Coordinating changes to [YANG-PUSH]: The changes to [YANG-PUSH]
discussed in Section 4.10 will need to be coordinated with the discussed in Section 4.10 will need to be coordinated with the
authors of that draft. authors of that draft.
6. Tree Structure 6. Tree Structure
6.1. Base TE Topology Module
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 te-template-name | +--rw 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 schedules | +--rw schedules
| | +--rw schedule* [schedule-id] | | +--rw schedule* [schedule-id]
| | +--rw schedule-id uint32 | | +--rw schedule-id uint32
| | +--rw start? yang:date-and-time | | +--rw start? yang:date-and-time
| | +--rw schedule-duration? string | | +--rw schedule-duration? string
| | +--rw repeat-interval? string | | +--rw repeat-interval? string
| +--rw admin-status? te-admin-status | +--rw admin-status? te-types:te-admin-status
| +--rw domain-id? uint32 | +--rw domain-id? uint32
| +--rw is-abstract? empty | +--rw is-abstract? empty
| +--rw name? inet:domain-name | +--rw name? inet:domain-name
| +--rw signaling-address* inet:ip-address | +--rw signaling-address* inet:ip-address
| +--rw underlay-topology {te-topology-hierarchy}? | +--rw underlay-topology {te-topology-hierarchy}?
| +--rw provider-id-ref? leafref | +--rw provider-id-ref? leafref
| +--rw client-id-ref? leafref | +--rw client-id-ref? leafref
| +--rw te-topology-id-ref? leafref | +--rw te-topology-id-ref? leafref
| +--rw network-id-ref? leafref | +--rw network-id-ref? leafref
+--rw link-template* [name] {template}? +--rw link-template* [name] {template}?
+--rw name te-template-name +--rw 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
+--rw schedules +--rw schedules
| +--rw schedule* [schedule-id] | +--rw schedule* [schedule-id]
| +--rw schedule-id uint32 | +--rw schedule-id uint32
| +--rw start? yang:date-and-time | +--rw start? yang:date-and-time
| +--rw schedule-duration? string | +--rw schedule-duration? string
| +--rw repeat-interval? string | +--rw repeat-interval? string
+--rw access-type? te-link- +--rw access-type? te-types:te-
access-type link-access-type
+--rw external-domain
| +--rw remote-te-node-id? te-types:te-node-id
| +--rw remote-te-link-tp-id? te-types:te-tp-id
| +--rw plug-id? uint32
+--rw is-abstract? empty +--rw is-abstract? empty
+--rw name? string +--rw name? string
+--rw underlay! {te-topology-hierarchy}? +--rw underlay! {te-topology-hierarchy}?
| +--rw underlay-primary-path | +--rw underlay-primary-path
| | +--rw provider-id-ref? leafref | | +--rw provider-id-ref? leafref
| | +--rw client-id-ref? leafref | | +--rw client-id-ref? leafref
| | +--rw te-topology-id-ref? leafref | | +--rw te-topology-id-ref? leafref
| | +--rw network-id-ref? leafref | | +--rw network-id-ref? leafref
| | +--rw path-element* [path-element-id] | | +--rw path-element* [path-element-id]
| | +--rw path-element-id uint32 | | +--rw path-element-id uint32
skipping to change at page 26, line 16 skipping to change at page 35, line 40
| | +--rw value? uint32 | | +--rw value? uint32
| +--rw underlay-protection-type? uint16 | +--rw underlay-protection-type? uint16
| +--rw underlay-trail-src | +--rw underlay-trail-src
| | +--rw tp-ref? leafref | | +--rw tp-ref? leafref
| | +--rw node-ref? leafref | | +--rw node-ref? leafref
| | +--rw network-ref? leafref | | +--rw network-ref? leafref
| +--rw underlay-trail-des | +--rw underlay-trail-des
| +--rw tp-ref? leafref | +--rw tp-ref? leafref
| +--rw node-ref? leafref | +--rw node-ref? leafref
| +--rw network-ref? leafref | +--rw network-ref? leafref
+--rw admin-status? te-admin- +--rw admin-status? te-types:te-
status admin-status
+--rw performance-metric-throttle {te-performance- +--rw performance-metric-throttle {te-performance-
metric}? metric}?
| +--rw unidirectional-delay-offset? uint32 | +--rw unidirectional-delay-offset? uint32
| +--rw measure-interval? uint32 | +--rw measure-interval? uint32
| +--rw advertisement-interval? uint32 | +--rw advertisement-interval? uint32
| +--rw suppression-interval? uint32 | +--rw suppression-interval? uint32
| +--rw threshold-out | +--rw threshold-out
| | +--rw unidirectional-delay? | | +--rw unidirectional-delay?
uint32 uint32
| | +--rw unidirectional-min-delay? | | +--rw unidirectional-min-delay?
skipping to change at page 27, line 32 skipping to change at page 37, line 11
decimal64 decimal64
| +--rw unidirectional-residual-bandwidth? | +--rw unidirectional-residual-bandwidth?
decimal64 decimal64
| +--rw unidirectional-available-bandwidth? | +--rw unidirectional-available-bandwidth?
decimal64 decimal64
| +--rw unidirectional-utilized-bandwidth? | +--rw unidirectional-utilized-bandwidth?
decimal64 decimal64
+--rw link-index? uint64 +--rw link-index? uint64
+--rw administrative-group? te- +--rw administrative-group? te-
types:admin-groups types:admin-groups
+--rw interface-switching-capability* [switching-
capability]
| +--rw switching-capability
identityref
| +--rw encoding?
identityref
| +--rw max-lsp-bandwidth* [priority]
| | +--rw priority uint8
| | +--rw bandwidth? decimal64
| +--rw time-division-multiplex-capable
| +--rw minimum-lsp-bandwidth? decimal64
| +--rw indication? enumeration
+--rw link-protection-type? enumeration
+--rw max-link-bandwidth? decimal64 +--rw max-link-bandwidth? decimal64
+--rw max-resv-link-bandwidth? decimal64 +--rw max-resv-link-bandwidth? decimal64
+--rw unreserved-bandwidth* [priority] +--rw unreserved-bandwidth* [priority]
| +--rw priority uint8 | +--rw priority uint8
| +--rw bandwidth? decimal64 | +--rw bandwidth? decimal64
+--rw te-default-metric? uint32 +--rw te-default-metric? uint32
+--rw performance-metric {te-performance-metric}? +--rw performance-metric {te-performance-metric}?
| +--rw measurement | +--rw measurement
| | +--rw unidirectional-delay? | | +--rw unidirectional-delay?
uint32 uint32
skipping to change at page 28, line 11 skipping to change at page 38, line 4
uint32 uint32
| | +--rw unidirectional-packet-loss? | | +--rw unidirectional-packet-loss?
decimal64 decimal64
| | +--rw unidirectional-residual-bandwidth? | | +--rw unidirectional-residual-bandwidth?
decimal64 decimal64
| | +--rw unidirectional-available-bandwidth? | | +--rw unidirectional-available-bandwidth?
decimal64 decimal64
| | +--rw unidirectional-utilized-bandwidth? | | +--rw unidirectional-utilized-bandwidth?
decimal64 decimal64
| +--rw normality | +--rw normality
| +--rw unidirectional-delay? | +--rw unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-min-delay? | +--rw unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-max-delay? | +--rw unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-delay-variation? | +--rw unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-packet-loss? | +--rw unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-residual-bandwidth? | +--rw unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-available-bandwidth? | +--rw unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--rw unidirectional-utilized-bandwidth? | +--rw unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
+--rw link-protection-type? enumeration
+--rw interface-switching-capability* [switching-
capability]
| +--rw switching-capability
identityref
| +--rw encoding?
identityref
| +--rw max-lsp-bandwidth* [priority]
| | +--rw priority uint8
| | +--rw bandwidth? decimal64
| +--rw time-division-multiplex-capable
| | +--rw minimum-lsp-bandwidth? decimal64
| | +--rw indication? enumeration
| +--rw interface-adjustment-capability* [upper-sc]
| +--rw upper-sc identityref
| +--rw upper-encoding? identityref
| +--rw max-lsp-bandwidth* [priority]
| +--rw priority uint8
| +--rw bandwidth? decimal64
+--rw te-srlgs +--rw te-srlgs
+--rw values* te-types:srlg +--rw value* te-types:srlg
augment /nw:networks/nw:network: augment /nw:networks/nw:network:
+--rw te! +--rw te!
+--rw provider-id te-global-id +--rw provider-id te-types:te-global-id
+--rw client-id te-global-id +--rw client-id te-types:te-global-id
+--rw te-topology-id te-topology-id +--rw te-topology-id te-types:te-topology-id
+--rw config +--rw config
| +--rw schedules | +--rw schedules
| | +--rw schedule* [schedule-id] | | +--rw schedule* [schedule-id]
| | +--rw schedule-id uint32 | | +--rw schedule-id uint32
| | +--rw start? yang:date-and-time | | +--rw start? yang:date-and-time
| | +--rw schedule-duration? string | | +--rw schedule-duration? string
| | +--rw repeat-interval? string | | +--rw repeat-interval? string
| +--rw preference? uint8 | +--rw preference? uint8
| +--rw optimization-criterion? identityref
+--ro state +--ro state
+--ro schedules +--ro schedules
| +--ro schedule* [schedule-id] | +--ro schedule* [schedule-id]
| +--ro schedule-id uint32 | +--ro schedule-id uint32
| +--ro start? yang:date-and-time | +--ro start? yang:date-and-time
| +--ro schedule-duration? string | +--ro schedule-duration? string
| +--ro repeat-interval? string | +--ro repeat-interval? string
+--ro preference? uint8 +--ro preference? uint8
+--ro optimization-criterion? identityref
augment /nw:networks/nw:network/nw:node: augment /nw:networks/nw:network/nw:node:
+--rw te! +--rw te!
+--rw te-node-id te-node-id +--rw te-node-id te-types:te-node-id
+--rw config +--rw config
| +--rw te-node-template* leafref {template}? | +--rw te-node-template* leafref {template}?
| +--rw te-node-attributes | +--rw te-node-attributes
| +--rw schedules | +--rw schedules
| | +--rw schedule* [schedule-id] | | +--rw schedule* [schedule-id]
| | +--rw schedule-id uint32 | | +--rw schedule-id uint32
| | +--rw start? yang:date-and-time | | +--rw start? yang:date-and-time
| | +--rw schedule-duration? string | | +--rw schedule-duration? string
| | +--rw repeat-interval? string | | +--rw repeat-interval? string
| +--rw admin-status? te-admin-status | +--rw admin-status? te-types:te-admin-status
| +--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 to | | +--rw to
| | | +--rw tp-ref? leafref | | | +--rw tp-ref? leafref
| | +--rw is-allowed? boolean | | +--rw is-allowed? boolean
| | +--rw label-restriction* [inclusive-exclusive label-
start]
| | | +--rw inclusive-exclusive enumeration
| | | +--rw label-start te-types:generalized-
label
| | | +--rw label-end? te-types:generalized-
label
| | | +--rw range-bitmap? binary
| | +--rw max-link-bandwidth? decimal64
| | +--rw max-resv-link-bandwidth? decimal64
| | +--rw unreserved-bandwidth* [priority]
| | | +--rw priority uint8
| | | +--rw bandwidth? decimal64
| | +--rw te-default-metric? uint32
| | +--rw performance-metric {te-performance-metric}?
| | | +--rw measurement
| | | | +--rw unidirectional-delay?
uint32
| | | | +--rw unidirectional-min-delay?
uint32
| | | | +--rw unidirectional-max-delay?
uint32
| | | | +--rw unidirectional-delay-variation?
uint32
| | | | +--rw unidirectional-packet-loss?
decimal64
| | | | +--rw unidirectional-residual-bandwidth?
decimal64
| | | | +--rw unidirectional-available-bandwidth?
decimal64
| | | | +--rw unidirectional-utilized-bandwidth?
decimal64
| | | +--rw normality
| | | +--rw unidirectional-delay? te-
types:performance-metric-normality
| | | +--rw unidirectional-min-delay? te-
types:performance-metric-normality
| | | +--rw unidirectional-max-delay? te-
types:performance-metric-normality
| | | +--rw unidirectional-delay-variation? te-
types:performance-metric-normality
| | | +--rw unidirectional-packet-loss? te-
types:performance-metric-normality
| | | +--rw unidirectional-residual-bandwidth? te-
types:performance-metric-normality
| | | +--rw unidirectional-available-bandwidth? te-
types:performance-metric-normality
| | | +--rw unidirectional-utilized-bandwidth? te-
types:performance-metric-normality
| | +--rw te-srlgs
| | +--rw value* te-types:srlg
| +--rw domain-id? uint32 | +--rw domain-id? uint32
| +--rw is-abstract? empty | +--rw is-abstract? empty
| +--rw name? inet:domain-name | +--rw name? inet:domain-name
| +--rw signaling-address* inet:ip-address | +--rw signaling-address* inet:ip-address
| +--rw underlay-topology {te-topology-hierarchy}? | +--rw underlay-topology {te-topology-hierarchy}?
| +--rw provider-id-ref? leafref | +--rw provider-id-ref? leafref
| +--rw client-id-ref? leafref | +--rw client-id-ref? leafref
| +--rw te-topology-id-ref? leafref | +--rw te-topology-id-ref? leafref
| +--rw network-id-ref? leafref | +--rw network-id-ref? leafref
+--ro state +--ro state
| +--ro te-node-template* leafref {template}? | +--ro te-node-template* leafref {template}?
| +--ro te-node-attributes | +--ro te-node-attributes
| | +--ro schedules | | +--ro schedules
| | | +--ro schedule* [schedule-id] | | | +--ro schedule* [schedule-id]
| | | +--ro schedule-id uint32 | | | +--ro schedule-id uint32
| | | +--ro start? yang:date-and-time | | | +--ro start? yang:date-and-time
| | | +--ro schedule-duration? string | | | +--ro schedule-duration? string
| | | +--ro repeat-interval? string | | | +--ro repeat-interval? string
| | +--ro admin-status? te-admin-status | | +--ro admin-status? te-types:te-admin-status
| | +--ro connectivity-matrix* [id] | | +--ro connectivity-matrix* [id]
| | | +--ro id uint32 | | | +--ro id uint32
| | | +--ro from | | | +--ro from
| | | | +--ro tp-ref? leafref | | | | +--ro tp-ref? leafref
| | | +--ro to | | | +--ro to
| | | | +--ro tp-ref? leafref | | | | +--ro tp-ref? leafref
| | | +--ro is-allowed? boolean | | | +--ro is-allowed? boolean
| | | +--ro label-restriction* [inclusive-exclusive label-
start]
| | | | +--ro inclusive-exclusive enumeration
| | | | +--ro label-start te-types:generalized-
label
| | | | +--ro label-end? te-types:generalized-
label
| | | | +--ro range-bitmap? binary
| | | +--ro max-link-bandwidth? decimal64
| | | +--ro max-resv-link-bandwidth? decimal64
| | | +--ro unreserved-bandwidth* [priority]
| | | | +--ro priority uint8
| | | | +--ro bandwidth? decimal64
| | | +--ro te-default-metric? uint32
| | | +--ro performance-metric {te-performance-metric}?
| | | | +--ro measurement
| | | | | +--ro unidirectional-delay?
uint32
| | | | | +--ro unidirectional-min-delay?
uint32
| | | | | +--ro unidirectional-max-delay?
uint32
| | | | | +--ro unidirectional-delay-variation?
uint32
| | | | | +--ro unidirectional-packet-loss?
decimal64
| | | | | +--ro unidirectional-residual-bandwidth?
decimal64
| | | | | +--ro unidirectional-available-bandwidth?
decimal64
| | | | | +--ro unidirectional-utilized-bandwidth?
decimal64
| | | | +--ro normality
| | | | +--ro unidirectional-delay? te-
types:performance-metric-normality
| | | | +--ro unidirectional-min-delay? te-
types:performance-metric-normality
| | | | +--ro unidirectional-max-delay? te-
types:performance-metric-normality
| | | | +--ro unidirectional-delay-variation? te-
types:performance-metric-normality
| | | | +--ro unidirectional-packet-loss? te-
types:performance-metric-normality
| | | | +--ro unidirectional-residual-bandwidth? te-
types:performance-metric-normality
| | | | +--ro unidirectional-available-bandwidth? te-
types:performance-metric-normality
| | | | +--ro unidirectional-utilized-bandwidth? te-
types:performance-metric-normality
| | | +--ro te-srlgs
| | | +--ro value* te-types:srlg
| | +--ro domain-id? uint32 | | +--ro domain-id? uint32
| | +--ro is-abstract? empty | | +--ro is-abstract? empty
| | +--ro name? inet:domain-name | | +--ro name? inet:domain-name
| | +--ro signaling-address* inet:ip-address | | +--ro signaling-address* inet:ip-address
| | +--ro underlay-topology {te-topology-hierarchy}? | | +--ro underlay-topology {te-topology-hierarchy}?
| | +--ro provider-id-ref? leafref | | +--ro provider-id-ref? leafref
| | +--ro client-id-ref? leafref | | +--ro client-id-ref? leafref
| | +--ro te-topology-id-ref? leafref | | +--ro te-topology-id-ref? leafref
| | +--ro network-id-ref? leafref | | +--ro network-id-ref? leafref
| +--ro oper-status? te-oper-status | +--ro oper-status? te-types:te-oper-status
| +--ro is-multi-access-dr? empty | +--ro is-multi-access-dr? empty
| +--ro information-source? enumeration | +--ro information-source? enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro alt-information-sources* [information-source] | +--ro information-source-entry* [information-source]
| +--ro information-source enumeration | +--ro information-source enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro connectivity-matrix* [id] | +--ro connectivity-matrix* [id]
| | +--ro id uint32 | | +--ro id uint32
| | +--ro from | | +--ro from
| | | +--ro tp-ref? leafref | | | +--ro tp-ref? leafref
| | +--ro to | | +--ro to
| | | +--ro tp-ref? leafref | | | +--ro tp-ref? leafref
| | +--ro is-allowed? boolean | | +--ro is-allowed? boolean
| | +--ro label-restriction* [inclusive-exclusive label-
start]
| | | +--ro inclusive-exclusive enumeration
| | | +--ro label-start te-types:generalized-
label
| | | +--ro label-end? te-types:generalized-
label
| | | +--ro range-bitmap? binary
| | +--ro max-link-bandwidth? decimal64
| | +--ro max-resv-link-bandwidth? decimal64
| | +--ro unreserved-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro te-default-metric? uint32
| | +--ro performance-metric {te-performance-metric}?
| | | +--ro measurement
| | | | +--ro unidirectional-delay?
uint32
| | | | +--ro unidirectional-min-delay?
uint32
| | | | +--ro unidirectional-max-delay?
uint32
| | | | +--ro unidirectional-delay-variation?
uint32
| | | | +--ro unidirectional-packet-loss?
decimal64
| | | | +--ro unidirectional-residual-bandwidth?
decimal64
| | | | +--ro unidirectional-available-bandwidth?
decimal64
| | | | +--ro unidirectional-utilized-bandwidth?
decimal64
| | | +--ro normality
| | | +--ro unidirectional-delay? te-
types:performance-metric-normality
| | | +--ro unidirectional-min-delay? te-
types:performance-metric-normality
| | | +--ro unidirectional-max-delay? te-
types:performance-metric-normality
| | | +--ro unidirectional-delay-variation? te-
types:performance-metric-normality
| | | +--ro unidirectional-packet-loss? te-
types:performance-metric-normality
| | | +--ro unidirectional-residual-bandwidth? te-
types:performance-metric-normality
| | | +--ro unidirectional-available-bandwidth? te-
types:performance-metric-normality
| | | +--ro unidirectional-utilized-bandwidth? te-
types:performance-metric-normality
| | +--ro te-srlgs
| | +--ro value* te-types:srlg
| +--ro domain-id? uint32 | +--ro domain-id? uint32
| +--ro is-abstract? empty | +--ro is-abstract? empty
| +--ro name? inet:domain-name | +--ro name? inet:domain-name
| +--ro signaling-address* inet:ip-address | +--ro signaling-address* inet:ip-address
| +--ro underlay-topology {te-topology-hierarchy}? | +--ro underlay-topology {te-topology-hierarchy}?
| +--ro provider-id-ref? leafref | +--ro provider-id-ref? leafref
| +--ro client-id-ref? leafref | +--ro client-id-ref? leafref
| +--ro te-topology-id-ref? leafref | +--ro te-topology-id-ref? leafref
| +--ro network-id-ref? leafref | +--ro network-id-ref? leafref
+--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 config +--rw config
| +--rw switching-capability? identityref
| +--rw encoding? identityref
| +--rw inter-layer-lock-id? uint32
| +--rw protection-type? identityref
| +--rw termination-capability* [link-tp] | +--rw termination-capability* [link-tp]
| +--rw link-tp leafref | +--rw link-tp leafref
| +--rw label-restriction* [inclusive-exclusive label-
start]
| | +--rw inclusive-exclusive enumeration
| | +--rw label-start te-types:generalized-
label
| | +--rw label-end? te-types:generalized-
label
| | +--rw range-bitmap? binary
| +--rw max-lsp-bandwidth* [priority]
| +--rw priority uint8
| +--rw bandwidth? decimal64
+--ro state +--ro state
+--ro switching-capability? identityref
+--ro encoding? identityref
+--ro inter-layer-lock-id? uint32
+--ro protection-type? identityref
+--ro termination-capability* [link-tp] +--ro termination-capability* [link-tp]
| +--ro link-tp leafref +--ro link-tp leafref
+--ro switching-capability identityref +--ro label-restriction* [inclusive-exclusive label-
+--ro encoding identityref start]
| +--ro inclusive-exclusive enumeration
| +--ro label-start te-types:generalized-
label
| +--ro label-end? te-types:generalized-
label
| +--ro range-bitmap? binary
+--ro max-lsp-bandwidth* [priority]
+--ro priority uint8
+--ro bandwidth? decimal64
augment /nw:networks/nw:network/nt:link: augment /nw:networks/nw:network/nt:link:
+--rw te! +--rw te!
+--rw config +--rw config
| +--rw (bundle-stack-level)? | +--rw (bundle-stack-level)?
| | +--:(bundle) | | +--:(bundle)
| | | +--rw bundled-links | | | +--rw bundled-links
| | | +--rw bundled-link* [sequence] | | | +--rw bundled-link* [sequence]
| | | +--rw sequence uint32 | | | +--rw sequence uint32
| | | +--rw src-tp-ref? leafref | | | +--rw src-tp-ref? leafref
| | | +--rw des-tp-ref? leafref | | | +--rw des-tp-ref? leafref
skipping to change at page 32, line 11 skipping to change at page 45, line 31
| | +--rw src-interface-ref? string | | +--rw src-interface-ref? string
| | +--rw des-interface-ref? string | | +--rw des-interface-ref? string
| +--rw te-link-template* leafref {template}? | +--rw te-link-template* leafref {template}?
| +--rw te-link-attributes | +--rw te-link-attributes
| +--rw schedules | +--rw schedules
| | +--rw schedule* [schedule-id] | | +--rw schedule* [schedule-id]
| | +--rw schedule-id uint32 | | +--rw schedule-id uint32
| | +--rw start? yang:date-and-time | | +--rw start? yang:date-and-time
| | +--rw schedule-duration? string | | +--rw schedule-duration? string
| | +--rw repeat-interval? string | | +--rw repeat-interval? string
| +--rw access-type? te-link-access- | +--rw access-type? te-types:te-link-
type access-type
| +--rw external-domain
| | +--rw remote-te-node-id? te-types:te-node-id
| | +--rw remote-te-link-tp-id? te-types:te-tp-id
| | +--rw plug-id? uint32
| +--rw is-abstract? empty | +--rw is-abstract? empty
| +--rw name? string | +--rw name? string
| +--rw underlay! {te-topology-hierarchy}? | +--rw underlay! {te-topology-hierarchy}?
| | +--rw underlay-primary-path | | +--rw underlay-primary-path
| | | +--rw provider-id-ref? leafref | | | +--rw provider-id-ref? leafref
| | | +--rw client-id-ref? leafref | | | +--rw client-id-ref? leafref
| | | +--rw te-topology-id-ref? leafref | | | +--rw te-topology-id-ref? leafref
| | | +--rw network-id-ref? leafref | | | +--rw network-id-ref? leafref
| | | +--rw path-element* [path-element-id] | | | +--rw path-element* [path-element-id]
| | | +--rw path-element-id uint32 | | | +--rw path-element-id uint32
skipping to change at page 33, line 30 skipping to change at page 47, line 9
| | | +--rw value? uint32 | | | +--rw value? uint32
| | +--rw underlay-protection-type? uint16 | | +--rw underlay-protection-type? uint16
| | +--rw underlay-trail-src | | +--rw underlay-trail-src
| | | +--rw tp-ref? leafref | | | +--rw tp-ref? leafref
| | | +--rw node-ref? leafref | | | +--rw node-ref? leafref
| | | +--rw network-ref? leafref | | | +--rw network-ref? leafref
| | +--rw underlay-trail-des | | +--rw underlay-trail-des
| | +--rw tp-ref? leafref | | +--rw tp-ref? leafref
| | +--rw node-ref? leafref | | +--rw node-ref? leafref
| | +--rw network-ref? leafref | | +--rw network-ref? leafref
| +--rw admin-status? te-admin-status | +--rw admin-status? te-types:te-
admin-status
| +--rw performance-metric-throttle {te-performance- | +--rw performance-metric-throttle {te-performance-
metric}? metric}?
| | +--rw unidirectional-delay-offset? uint32 | | +--rw unidirectional-delay-offset? uint32
| | +--rw measure-interval? uint32 | | +--rw measure-interval? uint32
| | +--rw advertisement-interval? uint32 | | +--rw advertisement-interval? uint32
| | +--rw suppression-interval? uint32 | | +--rw suppression-interval? uint32
| | +--rw threshold-out | | +--rw threshold-out
| | | +--rw unidirectional-delay? uint32 | | | +--rw unidirectional-delay? uint32
| | | +--rw unidirectional-min-delay? uint32 | | | +--rw unidirectional-min-delay? uint32
| | | +--rw unidirectional-max-delay? uint32 | | | +--rw unidirectional-max-delay? uint32
skipping to change at page 34, line 33 skipping to change at page 48, line 13
decimal64 decimal64
| | +--rw unidirectional-residual-bandwidth? | | +--rw unidirectional-residual-bandwidth?
decimal64 decimal64
| | +--rw unidirectional-available-bandwidth? | | +--rw unidirectional-available-bandwidth?
decimal64 decimal64
| | +--rw unidirectional-utilized-bandwidth? | | +--rw unidirectional-utilized-bandwidth?
decimal64 decimal64
| +--rw link-index? uint64 | +--rw link-index? uint64
| +--rw administrative-group? te-types:admin- | +--rw administrative-group? te-types:admin-
groups groups
| +--rw interface-switching-capability* [switching-
capability]
| | +--rw switching-capability identityref
| | +--rw encoding? identityref
| | +--rw max-lsp-bandwidth* [priority]
| | | +--rw priority uint8
| | | +--rw bandwidth? decimal64
| | +--rw time-division-multiplex-capable
| | +--rw minimum-lsp-bandwidth? decimal64
| | +--rw indication? enumeration
| +--rw link-protection-type? enumeration
| +--rw max-link-bandwidth? decimal64 | +--rw max-link-bandwidth? decimal64
| +--rw max-resv-link-bandwidth? decimal64 | +--rw max-resv-link-bandwidth? decimal64
| +--rw unreserved-bandwidth* [priority] | +--rw unreserved-bandwidth* [priority]
| | +--rw priority uint8 | | +--rw priority uint8
| | +--rw bandwidth? decimal64 | | +--rw bandwidth? decimal64
| +--rw te-default-metric? uint32 | +--rw te-default-metric? uint32
| +--rw performance-metric {te-performance-metric}? | +--rw performance-metric {te-performance-metric}?
| | +--rw measurement | | +--rw measurement
| | | +--rw unidirectional-delay? uint32 | | | +--rw unidirectional-delay? uint32
| | | +--rw unidirectional-min-delay? uint32 | | | +--rw unidirectional-min-delay? uint32
skipping to change at page 35, line 9 skipping to change at page 48, line 45
| | | +--rw unidirectional-delay-variation? uint32 | | | +--rw unidirectional-delay-variation? uint32
| | | +--rw unidirectional-packet-loss? | | | +--rw unidirectional-packet-loss?
decimal64 decimal64
| | | +--rw unidirectional-residual-bandwidth? | | | +--rw unidirectional-residual-bandwidth?
decimal64 decimal64
| | | +--rw unidirectional-available-bandwidth? | | | +--rw unidirectional-available-bandwidth?
decimal64 decimal64
| | | +--rw unidirectional-utilized-bandwidth? | | | +--rw unidirectional-utilized-bandwidth?
decimal64 decimal64
| | +--rw normality | | +--rw normality
| | +--rw unidirectional-delay? | | +--rw unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-min-delay? | | +--rw unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-max-delay? | | +--rw unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-delay-variation? | | +--rw unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-packet-loss? | | +--rw unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-residual-bandwidth? | | +--rw unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-available-bandwidth? | | +--rw unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--rw unidirectional-utilized-bandwidth? | | +--rw unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--rw link-protection-type? enumeration
| +--rw interface-switching-capability* [switching-
capability]
| | +--rw switching-capability identityref
| | +--rw encoding? identityref
| | +--rw max-lsp-bandwidth* [priority]
| | | +--rw priority uint8
| | | +--rw bandwidth? decimal64
| | +--rw time-division-multiplex-capable
| | | +--rw minimum-lsp-bandwidth? decimal64
| | | +--rw indication? enumeration
| | +--rw interface-adjustment-capability* [upper-sc]
| | +--rw upper-sc identityref
| | +--rw upper-encoding? identityref
| | +--rw max-lsp-bandwidth* [priority]
| | +--rw priority uint8
| | +--rw bandwidth? decimal64
| +--rw te-srlgs | +--rw te-srlgs
| +--rw values* te-types:srlg | +--rw value* te-types:srlg
+--ro state +--ro state
+--ro (bundle-stack-level)? +--ro (bundle-stack-level)?
| +--:(bundle) | +--:(bundle)
| | +--ro bundled-links | | +--ro bundled-links
| | +--ro bundled-link* [sequence] | | +--ro bundled-link* [sequence]
| | +--ro sequence uint32 | | +--ro sequence uint32
| | +--ro src-tp-ref? leafref | | +--ro src-tp-ref? leafref
| | +--ro des-tp-ref? leafref | | +--ro des-tp-ref? leafref
| +--:(component) | +--:(component)
| +--ro component-links | +--ro component-links
skipping to change at page 36, line 20 skipping to change at page 49, line 40
| +--ro src-interface-ref? string | +--ro src-interface-ref? string
| +--ro des-interface-ref? string | +--ro des-interface-ref? string
+--ro te-link-template* leafref {template}? +--ro te-link-template* leafref {template}?
+--ro te-link-attributes +--ro te-link-attributes
| +--ro schedules | +--ro schedules
| | +--ro schedule* [schedule-id] | | +--ro schedule* [schedule-id]
| | +--ro schedule-id uint32 | | +--ro schedule-id uint32
| | +--ro start? yang:date-and-time | | +--ro start? yang:date-and-time
| | +--ro schedule-duration? string | | +--ro schedule-duration? string
| | +--ro repeat-interval? string | | +--ro repeat-interval? string
| +--ro access-type? te-link-access- | +--ro access-type? te-types:te-link-
type access-type
| +--ro external-domain
| | +--ro remote-te-node-id? te-types:te-node-id
| | +--ro remote-te-link-tp-id? te-types:te-tp-id
| | +--ro plug-id? uint32
| +--ro is-abstract? empty | +--ro is-abstract? empty
| +--ro name? string | +--ro name? string
| +--ro underlay! {te-topology-hierarchy}? | +--ro underlay! {te-topology-hierarchy}?
| | +--ro underlay-primary-path | | +--ro underlay-primary-path
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | | +--ro path-element* [path-element-id] | | | +--ro path-element* [path-element-id]
| | | +--ro path-element-id uint32 | | | +--ro path-element-id uint32
skipping to change at page 37, line 39 skipping to change at page 51, line 17
| | | +--ro value? uint32 | | | +--ro value? uint32
| | +--ro underlay-protection-type? uint16 | | +--ro underlay-protection-type? uint16
| | +--ro underlay-trail-src | | +--ro underlay-trail-src
| | | +--ro tp-ref? leafref | | | +--ro tp-ref? leafref
| | | +--ro node-ref? leafref | | | +--ro node-ref? leafref
| | | +--ro network-ref? leafref | | | +--ro network-ref? leafref
| | +--ro underlay-trail-des | | +--ro underlay-trail-des
| | +--ro tp-ref? leafref | | +--ro tp-ref? leafref
| | +--ro node-ref? leafref | | +--ro node-ref? leafref
| | +--ro network-ref? leafref | | +--ro network-ref? leafref
| +--ro admin-status? te-admin-status | +--ro admin-status? te-types:te-
admin-status
| +--ro performance-metric-throttle {te-performance- | +--ro performance-metric-throttle {te-performance-
metric}? metric}?
| | +--ro unidirectional-delay-offset? uint32 | | +--ro unidirectional-delay-offset? uint32
| | +--ro measure-interval? uint32 | | +--ro measure-interval? uint32
| | +--ro advertisement-interval? uint32 | | +--ro advertisement-interval? uint32
| | +--ro suppression-interval? uint32 | | +--ro suppression-interval? uint32
| | +--ro threshold-out | | +--ro threshold-out
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
| | | +--ro unidirectional-max-delay? uint32 | | | +--ro unidirectional-max-delay? uint32
skipping to change at page 38, line 42 skipping to change at page 52, line 22
decimal64 decimal64
| | +--ro unidirectional-residual-bandwidth? | | +--ro unidirectional-residual-bandwidth?
decimal64 decimal64
| | +--ro unidirectional-available-bandwidth? | | +--ro unidirectional-available-bandwidth?
decimal64 decimal64
| | +--ro unidirectional-utilized-bandwidth? | | +--ro unidirectional-utilized-bandwidth?
decimal64 decimal64
| +--ro link-index? uint64 | +--ro link-index? uint64
| +--ro administrative-group? te-types:admin- | +--ro administrative-group? te-types:admin-
groups groups
| +--ro interface-switching-capability* [switching-
capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | +--ro minimum-lsp-bandwidth? decimal64
| | +--ro indication? enumeration
| +--ro link-protection-type? enumeration
| +--ro max-link-bandwidth? decimal64 | +--ro max-link-bandwidth? decimal64
| +--ro max-resv-link-bandwidth? decimal64 | +--ro max-resv-link-bandwidth? decimal64
| +--ro unreserved-bandwidth* [priority] | +--ro unreserved-bandwidth* [priority]
| | +--ro priority uint8 | | +--ro priority uint8
| | +--ro bandwidth? decimal64 | | +--ro bandwidth? decimal64
| +--ro te-default-metric? uint32 | +--ro te-default-metric? uint32
| +--ro performance-metric {te-performance-metric}? | +--ro performance-metric {te-performance-metric}?
| | +--ro measurement | | +--ro measurement
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
skipping to change at page 39, line 17 skipping to change at page 53, line 9
| | | +--ro unidirectional-delay-variation? uint32 | | | +--ro unidirectional-delay-variation? uint32
| | | +--ro unidirectional-packet-loss? | | | +--ro unidirectional-packet-loss?
decimal64 decimal64
| | | +--ro unidirectional-residual-bandwidth? | | | +--ro unidirectional-residual-bandwidth?
decimal64 decimal64
| | | +--ro unidirectional-available-bandwidth? | | | +--ro unidirectional-available-bandwidth?
decimal64 decimal64
| | | +--ro unidirectional-utilized-bandwidth? | | | +--ro unidirectional-utilized-bandwidth?
decimal64 decimal64
| | +--ro normality | | +--ro normality
| | +--ro unidirectional-delay? | | +--ro unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-min-delay? | | +--ro unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-max-delay? | | +--ro unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-delay-variation? | | +--ro unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-packet-loss? | | +--ro unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-residual-bandwidth? | | +--ro unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-available-bandwidth? | | +--ro unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-utilized-bandwidth? | | +--ro unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--ro link-protection-type? enumeration
| +--ro interface-switching-capability* [switching-
capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | | +--ro minimum-lsp-bandwidth? decimal64
| | | +--ro indication? enumeration
| | +--ro interface-adjustment-capability* [upper-sc]
| | +--ro upper-sc identityref
| | +--ro upper-encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | +--ro priority uint8
| | +--ro bandwidth? decimal64
| +--ro te-srlgs | +--ro te-srlgs
| +--ro values* te-types:srlg | +--ro value* te-types:srlg
+--ro oper-status? te-oper-status +--ro oper-status? te-types:te-oper-status
+--ro is-transitional? empty
+--ro information-source? enumeration +--ro information-source? enumeration
+--ro information-source-state +--ro information-source-state
| +--ro credibility-preference? uint16 | +--ro credibility-preference? uint16
| +--ro topology | +--ro topology
| | +--ro provider-id-ref? leafref | | +--ro provider-id-ref? leafref
| | +--ro client-id-ref? leafref | | +--ro client-id-ref? leafref
| | +--ro te-topology-id-ref? leafref | | +--ro te-topology-id-ref? leafref
| | +--ro network-id-ref? leafref | | +--ro network-id-ref? leafref
| +--ro routing-instance? string | +--ro routing-instance? string
+--ro alt-information-sources* [information-source] +--ro information-source-entry* [information-source]
| +--ro information-source enumeration | +--ro information-source enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro link-index? uint64 | +--ro link-index? uint64
| +--ro administrative-group? te-types:admin- | +--ro administrative-group? te-types:admin-
groups groups
| +--ro interface-switching-capability* [switching-
capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | +--ro minimum-lsp-bandwidth? decimal64
| | +--ro indication? enumeration
| +--ro link-protection-type? enumeration
| +--ro max-link-bandwidth? decimal64 | +--ro max-link-bandwidth? decimal64
| +--ro max-resv-link-bandwidth? decimal64 | +--ro max-resv-link-bandwidth? decimal64
| +--ro unreserved-bandwidth* [priority] | +--ro unreserved-bandwidth* [priority]
| | +--ro priority uint8 | | +--ro priority uint8
| | +--ro bandwidth? decimal64 | | +--ro bandwidth? decimal64
| +--ro te-default-metric? uint32 | +--ro te-default-metric? uint32
| +--ro performance-metric {te-performance-metric}? | +--ro performance-metric {te-performance-metric}?
| | +--ro measurement | | +--ro measurement
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
skipping to change at page 41, line 4 skipping to change at page 54, line 38
| | | +--ro unidirectional-delay-variation? uint32 | | | +--ro unidirectional-delay-variation? uint32
| | | +--ro unidirectional-packet-loss? | | | +--ro unidirectional-packet-loss?
decimal64 decimal64
| | | +--ro unidirectional-residual-bandwidth? | | | +--ro unidirectional-residual-bandwidth?
decimal64 decimal64
| | | +--ro unidirectional-available-bandwidth? | | | +--ro unidirectional-available-bandwidth?
decimal64 decimal64
| | | +--ro unidirectional-utilized-bandwidth? | | | +--ro unidirectional-utilized-bandwidth?
decimal64 decimal64
| | +--ro normality | | +--ro normality
| | +--ro unidirectional-delay? | | +--ro unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-min-delay? | | +--ro unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-max-delay? | | +--ro unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-delay-variation? | | +--ro unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-packet-loss? | | +--ro unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-residual-bandwidth? | | +--ro unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-available-bandwidth? | | +--ro unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-utilized-bandwidth? | | +--ro unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--ro link-protection-type? enumeration
| +--ro interface-switching-capability* [switching-
capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | | +--ro minimum-lsp-bandwidth? decimal64
| | | +--ro indication? enumeration
| | +--ro interface-adjustment-capability* [upper-sc]
| | +--ro upper-sc identityref
| | +--ro upper-encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | +--ro priority uint8
| | +--ro bandwidth? decimal64
| +--ro te-srlgs | +--ro te-srlgs
| +--ro values* te-types:srlg | +--ro value* te-types:srlg
+--ro recovery +--ro recovery
| +--ro restoration-status? te-recovery-status | +--ro restoration-status? te-types:te-recovery-status
| +--ro protection-status? te-recovery-status | +--ro protection-status? te-types:te-recovery-status
+--ro underlay {te-topology-hierarchy}? +--ro underlay {te-topology-hierarchy}?
+--ro dynamic? boolean +--ro dynamic? boolean
+--ro committed? boolean +--ro committed? boolean
augment /nw:networks/nw:network/nw:node/nt:termination-point: augment /nw:networks/nw:network/nw:node/nt:termination-point:
+--rw te! +--rw te!
+--rw te-tp-id te-tp-id +--rw te-tp-id te-types:te-tp-id
+--rw config +--rw config
| +--rw schedules | +--rw schedules
| +--rw schedule* [schedule-id] | | +--rw schedule* [schedule-id]
| +--rw schedule-id uint32 | | +--rw schedule-id uint32
| +--rw start? yang:date-and-time | | +--rw start? yang:date-and-time
| +--rw schedule-duration? string | | +--rw schedule-duration? string
| +--rw repeat-interval? string | | +--rw repeat-interval? string
| +--rw interface-switching-capability* [switching-capability]
| | +--rw switching-capability identityref
| | +--rw encoding? identityref
| | +--rw max-lsp-bandwidth* [priority]
| | | +--rw priority uint8
| | | +--rw bandwidth? decimal64
| | +--rw time-division-multiplex-capable
| | +--rw minimum-lsp-bandwidth? decimal64
| | +--rw indication? enumeration
| +--rw inter-layer-lock-id? uint32
+--ro state +--ro state
+--ro schedules +--ro schedules
+--ro schedule* [schedule-id] | +--ro schedule* [schedule-id]
+--ro schedule-id uint32 | +--ro schedule-id uint32
+--ro start? yang:date-and-time | +--ro start? yang:date-and-time
+--ro schedule-duration? string | +--ro schedule-duration? string
+--ro repeat-interval? string | +--ro repeat-interval? string
+--ro interface-switching-capability* [switching-capability]
| +--ro switching-capability identityref
| +--ro encoding? identityref
| +--ro max-lsp-bandwidth* [priority]
| | +--ro priority uint8
| | +--ro bandwidth? decimal64
| +--ro time-division-multiplex-capable
| +--ro minimum-lsp-bandwidth? decimal64
| +--ro indication? enumeration
+--ro inter-layer-lock-id? uint32
notifications: notifications:
+---n te-node-event +---n te-node-event
| +--ro event-type? te-topology-event-type | +--ro event-type? te-types:te-topology-event-
type
| +--ro node-ref? leafref | +--ro node-ref? leafref
| +--ro network-ref? leafref | +--ro network-ref? leafref
| +--ro te-topology! | +--ro te-topology!
| +--ro te-node-attributes | +--ro te-node-attributes
| | +--ro schedules | | +--ro schedules
| | | +--ro schedule* [schedule-id] | | | +--ro schedule* [schedule-id]
| | | +--ro schedule-id uint32 | | | +--ro schedule-id uint32
| | | +--ro start? yang:date-and-time | | | +--ro start? yang:date-and-time
| | | +--ro schedule-duration? string | | | +--ro schedule-duration? string
| | | +--ro repeat-interval? string | | | +--ro repeat-interval? string
| | +--ro admin-status? te-admin-status | | +--ro admin-status? te-types:te-admin-status
| | +--ro connectivity-matrix* [id] | | +--ro connectivity-matrix* [id]
| | | +--ro id uint32 | | | +--ro id uint32
| | | +--ro from | | | +--ro from
| | | | +--ro tp-ref? leafref | | | | +--ro tp-ref? leafref
| | | | +--ro node-ref? leafref | | | | +--ro node-ref? leafref
| | | | +--ro network-ref? leafref | | | | +--ro network-ref? leafref
| | | +--ro to | | | +--ro to
| | | | +--ro tp-ref? leafref | | | | +--ro tp-ref? leafref
| | | | +--ro node-ref? leafref | | | | +--ro node-ref? leafref
| | | | +--ro network-ref? leafref | | | | +--ro network-ref? leafref
| | | +--ro is-allowed? boolean | | | +--ro is-allowed? boolean
| | +--ro domain-id? uint32 | | +--ro domain-id? uint32
| | +--ro is-abstract? empty | | +--ro is-abstract? empty
| | +--ro name? inet:domain-name | | +--ro name? inet:domain-name
| | +--ro signaling-address* inet:ip-address | | +--ro signaling-address* inet:ip-address
| | +--ro underlay-topology {te-topology-hierarchy}? | | +--ro underlay-topology {te-topology-hierarchy}?
| | +--ro provider-id-ref? leafref | | +--ro provider-id-ref? leafref
| | +--ro client-id-ref? leafref | | +--ro client-id-ref? leafref
| | +--ro te-topology-id-ref? leafref | | +--ro te-topology-id-ref? leafref
| | +--ro network-id-ref? leafref | | +--ro network-id-ref? leafref
| +--ro oper-status? te-oper-status | +--ro oper-status? te-types:te-oper-status
| +--ro is-multi-access-dr? empty | +--ro is-multi-access-dr? empty
| +--ro information-source? enumeration | +--ro information-source? enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro alt-information-sources* [information-source] | +--ro information-source-entry* [information-source]
| +--ro information-source enumeration | +--ro information-source enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro connectivity-matrix* [id] | +--ro connectivity-matrix* [id]
skipping to change at page 43, line 46 skipping to change at page 57, line 38
| +--ro domain-id? uint32 | +--ro domain-id? uint32
| +--ro is-abstract? empty | +--ro is-abstract? empty
| +--ro name? inet:domain-name | +--ro name? inet:domain-name
| +--ro signaling-address* inet:ip-address | +--ro signaling-address* inet:ip-address
| +--ro underlay-topology {te-topology-hierarchy}? | +--ro underlay-topology {te-topology-hierarchy}?
| +--ro provider-id-ref? leafref | +--ro provider-id-ref? leafref
| +--ro client-id-ref? leafref | +--ro client-id-ref? leafref
| +--ro te-topology-id-ref? leafref | +--ro te-topology-id-ref? leafref
| +--ro network-id-ref? leafref | +--ro network-id-ref? leafref
+---n te-link-event +---n te-link-event
+--ro event-type? te-topology-event-type +--ro event-type? te-types:te-topology-event-
type
+--ro link-ref? leafref +--ro link-ref? leafref
+--ro network-ref? leafref +--ro network-ref? leafref
+--ro te-topology! +--ro te-topology!
+--ro te-link-attributes +--ro te-link-attributes
| +--ro schedules | +--ro schedules
| | +--ro schedule* [schedule-id] | | +--ro schedule* [schedule-id]
| | +--ro schedule-id uint32 | | +--ro schedule-id uint32
| | +--ro start? yang:date-and-time | | +--ro start? yang:date-and-time
| | +--ro schedule-duration? string | | +--ro schedule-duration? string
| | +--ro repeat-interval? string | | +--ro repeat-interval? string
| +--ro access-type? te-link-access-type | +--ro access-type? te-types:te-link-
access-type
| +--ro external-domain
| | +--ro remote-te-node-id? te-types:te-node-id
| | +--ro remote-te-link-tp-id? te-types:te-tp-id
| | +--ro plug-id? uint32
| +--ro is-abstract? empty | +--ro is-abstract? empty
| +--ro name? string | +--ro name? string
| +--ro underlay! {te-topology-hierarchy}? | +--ro underlay! {te-topology-hierarchy}?
| | +--ro underlay-primary-path | | +--ro underlay-primary-path
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | | +--ro path-element* [path-element-id] | | | +--ro path-element* [path-element-id]
| | | +--ro path-element-id uint32 | | | +--ro path-element-id uint32
skipping to change at page 45, line 27 skipping to change at page 59, line 25
| | +--ro underlay-trail-src | | +--ro underlay-trail-src
| | | +--ro tp-ref? leafref | | | +--ro tp-ref? leafref
| | | +--ro node-ref? leafref | | | +--ro node-ref? leafref
| | | +--ro network-ref? leafref | | | +--ro network-ref? leafref
| | +--ro underlay-trail-des | | +--ro underlay-trail-des
| | | +--ro tp-ref? leafref | | | +--ro tp-ref? leafref
| | | +--ro node-ref? leafref | | | +--ro node-ref? leafref
| | | +--ro network-ref? leafref | | | +--ro network-ref? leafref
| | +--ro dynamic? boolean | | +--ro dynamic? boolean
| | +--ro committed? boolean | | +--ro committed? boolean
| +--ro admin-status? te-admin-status | +--ro admin-status? te-types:te-admin-
status
| +--ro performance-metric-throttle {te-performance-metric}? | +--ro performance-metric-throttle {te-performance-metric}?
| | +--ro unidirectional-delay-offset? uint32 | | +--ro unidirectional-delay-offset? uint32
| | +--ro measure-interval? uint32 | | +--ro measure-interval? uint32
| | +--ro advertisement-interval? uint32 | | +--ro advertisement-interval? uint32
| | +--ro suppression-interval? uint32 | | +--ro suppression-interval? uint32
| | +--ro threshold-out | | +--ro threshold-out
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
| | | +--ro unidirectional-max-delay? uint32 | | | +--ro unidirectional-max-delay? uint32
| | | +--ro unidirectional-delay-variation? uint32 | | | +--ro unidirectional-delay-variation? uint32
skipping to change at page 46, line 17 skipping to change at page 60, line 16
| | +--ro unidirectional-min-delay? uint32 | | +--ro unidirectional-min-delay? uint32
| | +--ro unidirectional-max-delay? uint32 | | +--ro unidirectional-max-delay? uint32
| | +--ro unidirectional-delay-variation? uint32 | | +--ro unidirectional-delay-variation? uint32
| | +--ro unidirectional-packet-loss? decimal64 | | +--ro unidirectional-packet-loss? decimal64
| | +--ro unidirectional-residual-bandwidth? decimal64 | | +--ro unidirectional-residual-bandwidth? decimal64
| | +--ro unidirectional-available-bandwidth? decimal64 | | +--ro unidirectional-available-bandwidth? decimal64
| | +--ro unidirectional-utilized-bandwidth? decimal64 | | +--ro unidirectional-utilized-bandwidth? decimal64
| +--ro link-index? uint64 | +--ro link-index? uint64
| +--ro administrative-group? te-types:admin- | +--ro administrative-group? te-types:admin-
groups groups
| +--ro interface-switching-capability* [switching-capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | +--ro minimum-lsp-bandwidth? decimal64
| | +--ro indication? enumeration
| +--ro link-protection-type? enumeration
| +--ro max-link-bandwidth? decimal64 | +--ro max-link-bandwidth? decimal64
| +--ro max-resv-link-bandwidth? decimal64 | +--ro max-resv-link-bandwidth? decimal64
| +--ro unreserved-bandwidth* [priority] | +--ro unreserved-bandwidth* [priority]
| | +--ro priority uint8 | | +--ro priority uint8
| | +--ro bandwidth? decimal64 | | +--ro bandwidth? decimal64
| +--ro te-default-metric? uint32 | +--ro te-default-metric? uint32
| +--ro performance-metric {te-performance-metric}? | +--ro performance-metric {te-performance-metric}?
| | +--ro measurement | | +--ro measurement
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
| | | +--ro unidirectional-max-delay? uint32 | | | +--ro unidirectional-max-delay? uint32
| | | +--ro unidirectional-delay-variation? uint32 | | | +--ro unidirectional-delay-variation? uint32
| | | +--ro unidirectional-packet-loss? decimal64 | | | +--ro unidirectional-packet-loss? decimal64
| | | +--ro unidirectional-residual-bandwidth? decimal64 | | | +--ro unidirectional-residual-bandwidth? decimal64
| | | +--ro unidirectional-available-bandwidth? decimal64 | | | +--ro unidirectional-available-bandwidth? decimal64
| | | +--ro unidirectional-utilized-bandwidth? decimal64 | | | +--ro unidirectional-utilized-bandwidth? decimal64
| | +--ro normality | | +--ro normality
| | +--ro unidirectional-delay? | | +--ro unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-min-delay? | | +--ro unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-max-delay? | | +--ro unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-delay-variation? | | +--ro unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-packet-loss? | | +--ro unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-residual-bandwidth? | | +--ro unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-available-bandwidth? | | +--ro unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-utilized-bandwidth? | | +--ro unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--ro link-protection-type? enumeration
| +--ro interface-switching-capability* [switching-capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | | +--ro minimum-lsp-bandwidth? decimal64
| | | +--ro indication? enumeration
| | +--ro interface-adjustment-capability* [upper-sc]
| | +--ro upper-sc identityref
| | +--ro upper-encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | +--ro priority uint8
| | +--ro bandwidth? decimal64
| +--ro te-srlgs | +--ro te-srlgs
| +--ro values* te-types:srlg | +--ro value* te-types:srlg
+--ro oper-status? te-oper-status +--ro oper-status? te-types:te-oper-status
+--ro is-transitional? empty
+--ro information-source? enumeration +--ro information-source? enumeration
+--ro information-source-state +--ro information-source-state
| +--ro credibility-preference? uint16 | +--ro credibility-preference? uint16
| +--ro topology | +--ro topology
| | +--ro provider-id-ref? leafref | | +--ro provider-id-ref? leafref
| | +--ro client-id-ref? leafref | | +--ro client-id-ref? leafref
| | +--ro te-topology-id-ref? leafref | | +--ro te-topology-id-ref? leafref
| | +--ro network-id-ref? leafref | | +--ro network-id-ref? leafref
| +--ro routing-instance? string | +--ro routing-instance? string
+--ro alt-information-sources* [information-source] +--ro information-source-entry* [information-source]
| +--ro information-source enumeration | +--ro information-source enumeration
| +--ro information-source-state | +--ro information-source-state
| | +--ro credibility-preference? uint16 | | +--ro credibility-preference? uint16
| | +--ro topology | | +--ro topology
| | | +--ro provider-id-ref? leafref | | | +--ro provider-id-ref? leafref
| | | +--ro client-id-ref? leafref | | | +--ro client-id-ref? leafref
| | | +--ro te-topology-id-ref? leafref | | | +--ro te-topology-id-ref? leafref
| | | +--ro network-id-ref? leafref | | | +--ro network-id-ref? leafref
| | +--ro routing-instance? string | | +--ro routing-instance? string
| +--ro link-index? uint64 | +--ro link-index? uint64
| +--ro administrative-group? te-types:admin- | +--ro administrative-group? te-types:admin-
groups groups
| +--ro interface-switching-capability* [switching-capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | +--ro minimum-lsp-bandwidth? decimal64
| | +--ro indication? enumeration
| +--ro link-protection-type? enumeration
| +--ro max-link-bandwidth? decimal64 | +--ro max-link-bandwidth? decimal64
| +--ro max-resv-link-bandwidth? decimal64 | +--ro max-resv-link-bandwidth? decimal64
| +--ro unreserved-bandwidth* [priority] | +--ro unreserved-bandwidth* [priority]
| | +--ro priority uint8 | | +--ro priority uint8
| | +--ro bandwidth? decimal64 | | +--ro bandwidth? decimal64
| +--ro te-default-metric? uint32 | +--ro te-default-metric? uint32
| +--ro performance-metric {te-performance-metric}? | +--ro performance-metric {te-performance-metric}?
| | +--ro measurement | | +--ro measurement
| | | +--ro unidirectional-delay? uint32 | | | +--ro unidirectional-delay? uint32
| | | +--ro unidirectional-min-delay? uint32 | | | +--ro unidirectional-min-delay? uint32
| | | +--ro unidirectional-max-delay? uint32 | | | +--ro unidirectional-max-delay? uint32
| | | +--ro unidirectional-delay-variation? uint32 | | | +--ro unidirectional-delay-variation? uint32
| | | +--ro unidirectional-packet-loss? decimal64 | | | +--ro unidirectional-packet-loss? decimal64
| | | +--ro unidirectional-residual-bandwidth? decimal64 | | | +--ro unidirectional-residual-bandwidth? decimal64
| | | +--ro unidirectional-available-bandwidth? decimal64 | | | +--ro unidirectional-available-bandwidth? decimal64
| | | +--ro unidirectional-utilized-bandwidth? decimal64 | | | +--ro unidirectional-utilized-bandwidth? decimal64
| | +--ro normality | | +--ro normality
| | +--ro unidirectional-delay? | | +--ro unidirectional-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-min-delay? | | +--ro unidirectional-min-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-max-delay? | | +--ro unidirectional-max-delay? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-delay-variation? | | +--ro unidirectional-delay-variation? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-packet-loss? | | +--ro unidirectional-packet-loss? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-residual-bandwidth? | | +--ro unidirectional-residual-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-available-bandwidth? | | +--ro unidirectional-available-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| | +--ro unidirectional-utilized-bandwidth? | | +--ro unidirectional-utilized-bandwidth? te-
performance-metric-normality types:performance-metric-normality
| +--ro link-protection-type? enumeration
| +--ro interface-switching-capability* [switching-capability]
| | +--ro switching-capability identityref
| | +--ro encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | | +--ro priority uint8
| | | +--ro bandwidth? decimal64
| | +--ro time-division-multiplex-capable
| | | +--ro minimum-lsp-bandwidth? decimal64
| | | +--ro indication? enumeration
| | +--ro interface-adjustment-capability* [upper-sc]
| | +--ro upper-sc identityref
| | +--ro upper-encoding? identityref
| | +--ro max-lsp-bandwidth* [priority]
| | +--ro priority uint8
| | +--ro bandwidth? decimal64
| +--ro te-srlgs | +--ro te-srlgs
| +--ro values* te-types:srlg | +--ro value* te-types:srlg
+--ro recovery +--ro recovery
| +--ro restoration-status? te-recovery-status | +--ro restoration-status? te-types:te-recovery-status
| +--ro protection-status? te-recovery-status | +--ro protection-status? te-types:te-recovery-status
+--ro underlay {te-topology-hierarchy}? +--ro underlay {te-topology-hierarchy}?
+--ro dynamic? boolean +--ro dynamic? boolean
+--ro committed? Boolean +--ro committed? Boolean
6.2. Packet Switching TE Topology Module 7. TE Topology Yang Module
module: ietf-te-topology-psc
augment /nw:networks/tet:te/tet:templates/tet:link-template/tet:te-
link-attributes/tet:interface-switching-capability:
+--rw packet-switch-capable
+--rw minimum-lsp-bandwidth? decimal64
+--rw interface-mtu? uint16
augment /nw:networks/nw:network/nt:link/tet:te/tet:config/tet:te-
link-attributes/tet:interface-switching-capability:
+--rw packet-switch-capable
+--rw minimum-lsp-bandwidth? decimal64
+--rw interface-mtu? uint16
augment /nw:networks/nw:network/nt:link/tet:te/tet:state/tet:te-link-
attributes/tet:interface-switching-capability:
+--ro packet-switch-capable
+--ro minimum-lsp-bandwidth? decimal64
+--ro interface-mtu? uint16
augment /nw:networks/nw:network/nt:link/tet:te/tet:state/tet:alt-
information-sources/tet:interface-switching-capability:
+--ro packet-switch-capable
+--ro minimum-lsp-bandwidth? decimal64
+--ro interface-mtu? uint16
augment /tet:te-link-event/tet:te-link-attributes/tet:interface-
switching-capability:
+---- packet-switch-capable
+---- minimum-lsp-bandwidth? decimal64
+---- interface-mtu? uint16
augment /tet:te-link-event/tet:alt-information-sources/tet:interface-
switching-capability:
+---- packet-switch-capable
+---- minimum-lsp-bandwidth? decimal64
+---- interface-mtu? uint16
7. TE Topology Yang Modules
7.1. Base TE Topology Module
<CODE BEGINS> file "ietf-te-topology@2016-03-17.yang" <CODE BEGINS> file "ietf-te-topology@2016-07-08.yang"
module ietf-te-topology { module ietf-te-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "tet"; prefix "tet";
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
skipping to change at page 51, line 29 skipping to change at page 64, line 25
<mailto:tsaad@cisco.com> <mailto:tsaad@cisco.com>
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 "TE topology model"; description "TE topology model";
revision "2016-03-17" { revision "2016-07-08" {
description "Initial revision"; description "Initial revision";
reference "TBD"; reference "TBD";
} }
/* /*
* Features * Features
*/ */
feature configuration-schedule { feature configuration-schedule {
description description
skipping to change at page 52, line 4 skipping to change at page 64, line 39
/* /*
* Features * Features
*/ */
feature configuration-schedule { feature configuration-schedule {
description description
"This feature indicates that the system supports "This feature indicates that the system supports
configuration scheduling."; configuration scheduling.";
} }
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 underlay
and/or overlay TE topology hierarchy."; and/or overlay TE topology hierarchy.";
} }
feature te-performance-metric { feature te-performance-metric {
description description
"This feature indicates that the system supports "This feature indicates that the system supports
TE performance metric defined in TE performance metric.";
RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
} }
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 performance-metric-normality {
type enumeration {
enum "unknown" {
value 0;
description
"Unknown.";
}
enum "normal" {
value 1;
description
"Normal.";
}
enum "abnormal" {
value 2;
description
"Abnormal. The anomalous bit is set.";
}
}
description
"Indicates whether a performance metric is normal, abnormal, or
unknown.";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
}
typedef te-admin-status { /*
type enumeration { * Identities
enum up { */
description
"Enabled.";
}
enum down {
description
"Disabled.";
}
enum testing {
description
"In some test mode.";
}
enum preparing-maintenance {
description
"Resource is disabled in the control plane to prepare for
graceful shutdown for maintenance purposes.";
reference
"RFC5817: Graceful Shutdown in MPLS and Generalized MPLS
Traffic Engineering Networks";
}
enum maintenance {
description
"Resource is disabled in the data plane for maintenance
purposes.";
}
}
description
"Defines a type representing the administrative status of
a TE resource.";
}
typedef te-global-id {
type uint32;
description
"An identifier to uniquely identify an operator, which can be
either a provider or a client.
The definition of this type is taken from RFC6370 and RFC5003.
This attribute type is used solely to provide a globally
unique context for TE topologies.";
}
typedef te-link-access-type {
type enumeration {
enum point-to-point {
description
"The link is point-to-point.";
}
enum multi-access {
description
"The link is multi-access, including broacast and NBMA.";
}
}
description
"Defines a type representing the access type of a TE link.";
reference
"RFC3630: Traffic Engineering (TE) Extensions to OSPF
Version 2.";
}
typedef te-node-id {
type inet:ip-address;
description
"An identifier for a node in a topology.
The identifier is represented as an IPv4 or IPv6 address.
This attribute is mapped to Router ID in
RFC3630, RFC5329, RFC5305, and RFC 6119.";
}
typedef te-oper-status { /*
type enumeration { * Groupings
enum up { */
description grouping connectivity-label-restriction-list {
"Operational up.";
}
enum down {
description
"Operational down.";
}
enum testing {
description
"In some test mode.";
}
enum unknown {
description
"Status cannot be determined for some reason.";
}
enum preparing-maintenance {
description
"Resource is disabled in the control plane to prepare for
graceful shutdown for maintenance purposes.";
reference
"RFC5817: Graceful Shutdown in MPLS and Generalized MPLS
Traffic Engineering Networks";
}
enum maintenance {
description
"Resource is disabled in the data plane for maintenance
purposes.";
}
}
description description
"Defines a type representing the operational status of "List of abel restrictions specifying what labels may or may
a TE resource."; not be used on a link connectivity.";
} list label-restriction {
key "inclusive-exclusive label-start";
description
"List of abel restrictions specifying what labels may or may
not be used on a link connectivity.";
typedef te-recovery-status { reference
type enumeration { "RFC7579: General Network Element Constraint Encoding
enum normal { for GMPLS-Controlled Networks";
description leaf inclusive-exclusive {
"Both the recovery and working spans are fully type enumeration {
allocated and active, data traffic is being enum inclusive {
transported over (or selected from) the working description "The label or label range is inclusive.";
span, and no trigger events are reported."; }
} enum exclusive {
enum recovery-started { description "The label or label range is exclusive.";
description }
"The recovery action has been started, but not completed."; }
}
enum recovery-succeeded {
description
"The recovery action has succeeded. The working span has
reported a failure/degrade condition and the user traffic
is being transported (or selected) on the recovery span.";
}
enum recovery-failed {
description
"The recovery action has failed.";
}
enum reversion-started {
description
"The reversion has started.";
}
enum reversion-failed {
description
"The reversion has failed.";
}
enum recovery-unavailable {
description
"The recovery is unavailable -- either as a result of an
operator Lockout command or a failure condition detected
on the recovery span.";
}
enum recovery-admin {
description
"The operator has issued a command switching the user
traffic to the recovery span.";
}
enum wait-to-restore {
description description
"The recovery domain is recovering from a failuer/degrade "Whether the list item is inclusive or exclusive.";
condition on the working span that is being controlled by
the Wait-to-Restore (WTR) timer.";
} }
} leaf label-start {
description type te-types:generalized-label;
"Defines the status of a recovery action.";
reference
"RFC4427: Recovery (Protection and Restoration) Terminology
for Generalized Multi-Protocol Label Switching (GMPLS).
RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection";
}
typedef te-template-name {
type string {
pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
}
description
"A type for the name of a TE node template or TE link
template.";
}
typedef te-topology-event-type {
type enumeration {
enum "add" {
value 0;
description description
"A TE node or te-link has been added."; "This is the starting lable if a lable range is specified.
This is the lable value if a single lable is specified,
in which case, attribute 'label-end' is not set.";
} }
enum "remove" { leaf label-end {
value 1; type te-types:generalized-label;
description description
"A TE node or te-link has been removed."; "The ending lable if a lable range is specified;
This attribute is not set, If a single lable is
specified.";
} }
enum "update" { leaf range-bitmap {
value 2; type binary;
description description
"A TE node or te-link has been updated."; "When there are gaps between label-start and label-end,
this attribute is used to specified the possitions
of the used labels.";
} }
} }
description "TE Event type for notifications"; } // connectivity-label-restrictions
} // te-topology-event-type
typedef te-topology-id {
type string {
pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
}
description
"An identifier for a topology.";
}
typedef te-tp-id {
type union {
type uint32; // Unnumbered
type inet:ip-address; // IPv4 or IPv6 address
}
description
"An identifier for a TE link endpoint on a node.
This attribute is mapped to local or remote link identifier in
RFC3630 and RFC5305.";
}
/*
* Identities
*/
/*
* Groupings
*/
grouping information-source-attributes { grouping information-source-attributes {
description description
"The attributes identifying source that has provided the "The attributes identifying source that has provided the
related information, and the source credibility."; related information, and the source credibility.";
leaf information-source { leaf information-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" {
skipping to change at page 60, line 11 skipping to change at page 68, line 23
} // topology } // topology
leaf routing-instance { leaf routing-instance {
type string; type string;
description description
"When applicable, this is the name of a routing instance "When applicable, this is the name of a routing instance
from which the information is learned."; from which the information is learned.";
} // routing-information } // routing-information
} }
} // information-source-attributes } // information-source-attributes
grouping interface-switching-capability-list {
description
"List of Interface Switching Capabilities Descriptors (ISCD)";
list interface-switching-capability {
key "switching-capability";
description
"List of Interface Switching Capabilities Descriptors (ISCD)
for this link.";
reference
"RFC3471: Generalized Multi-Protocol Label Switching (GMPLS)
Signaling Functional Description.
RFC4203: OSPF Extensions in Support of Generalized
Multi-Protocol Label Switching (GMPLS).";
leaf switching-capability {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching Capability for this interface.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description
"Encoding supported by this interface.";
}
list max-lsp-bandwidth {
key "priority";
max-elements "8";
description
"Maximum LSP Bandwidth at priorities 0-7.";
leaf priority {
type uint8 {
range "0..7";
}
description "Priority.";
}
leaf bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Max LSP Bandwidth for this level";
}
}
container time-division-multiplex-capable {
when "../switching-capability = 'TDM'" {
description "Valid only for TDM";
}
description
"Interface has time-division multiplex capabilities.";
leaf minimum-lsp-bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Minimum LSP Bandwidth. Units in bytes per second.";
}
leaf indication {
type enumeration {
enum "standard" {
description
"Indicates support of standard SONET/SDH.";
}
enum "arbitrary" {
description
"Indicates support of arbitrary SONET/SDH.";
}
}
description
"Indication whether the interface supports Standard or
Arbitrary SONET/SDH";
}
} // time-division-multiplex-capable
} // interface-switching-capability
} // interface-switching-capability-list
grouping performance-metric-attributes { grouping performance-metric-attributes {
description description
"Link performance information in real time."; "Link performance information in real time.";
reference reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
leaf unidirectional-delay { leaf unidirectional-delay {
type uint32 { type uint32 {
range 0..16777215; range 0..16777215;
} }
description "Delay or latency in micro seconds."; description "Delay or latency in micro seconds.";
} }
leaf unidirectional-min-delay { leaf unidirectional-min-delay {
type uint32 { type uint32 {
range 0..16777215; range 0..16777215;
} }
skipping to change at page 62, line 4 skipping to change at page 72, line 19
fraction-digits 2; fraction-digits 2;
} }
description description
"Bandwidth utilization that represents the actual "Bandwidth utilization that represents the actual
utilization of the link (i.e. as measured in the router). utilization of the link (i.e. as measured in the router).
For a bundled link, bandwidth utilization is defined to For a bundled link, bandwidth utilization is defined to
be the sum of the component link bandwidth be the sum of the component link bandwidth
utilizations."; utilizations.";
} }
} // performance-metric-attributes } // performance-metric-attributes
grouping performance-metric-normality-attributes { grouping performance-metric-normality-attributes {
description description
"Link performance metric normality attributes."; "Link performance metric normality attributes.";
reference reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
leaf unidirectional-delay { leaf unidirectional-delay {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Delay normality."; description "Delay normality.";
} }
leaf unidirectional-min-delay { leaf unidirectional-min-delay {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Minimum delay or latency normality."; description "Minimum delay or latency normality.";
} }
leaf unidirectional-max-delay { leaf unidirectional-max-delay {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Maximum delay or latency normality."; description "Maximum delay or latency normality.";
} }
leaf unidirectional-delay-variation { leaf unidirectional-delay-variation {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Delay variation normality."; description "Delay variation normality.";
} }
leaf unidirectional-packet-loss { leaf unidirectional-packet-loss {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Packet loss normality."; description "Packet loss normality.";
} }
leaf unidirectional-residual-bandwidth { leaf unidirectional-residual-bandwidth {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Residual bandwidth normality."; description "Residual bandwidth normality.";
} }
leaf unidirectional-available-bandwidth { leaf unidirectional-available-bandwidth {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Available bandwidth normality."; description "Available bandwidth normality.";
} }
leaf unidirectional-utilized-bandwidth { leaf unidirectional-utilized-bandwidth {
type performance-metric-normality; type te-types:performance-metric-normality;
description "Bandwidth utilization normality."; description "Bandwidth utilization normality.";
} }
} // performance-metric-normality-attributes } // performance-metric-normality-attributes
grouping performance-metric-throttle-container { grouping performance-metric-throttle-container {
description description
"A container controlling performance metric throttle."; "A container controlling performance metric throttle.";
container performance-metric-throttle { container performance-metric-throttle {
if-feature te-performance-metric; if-feature te-performance-metric;
must "suppression-interval >= measure-interval" { must "suppression-interval >= measure-interval" {
error-message error-message
"suppression-interval cannot be less then "suppression-interval cannot be less then
measure-interval."; measure-interval.";
description description
"Constraint on suppression-interval and "Constraint on suppression-interval and
measure-interval."; measure-interval.";
} }
description description
"Link performance information in real time."; "Link performance information in real time.";
reference reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
leaf unidirectional-delay-offset { leaf unidirectional-delay-offset {
type uint32 { type uint32 {
range 0..16777215; range 0..16777215;
} }
description description
"Offset value to be added to the measured delay value."; "Offset value to be added to the measured delay value.";
} }
leaf measure-interval { leaf measure-interval {
type uint32; type uint32;
default 30; default 30;
skipping to change at page 67, line 43 skipping to change at page 78, line 28
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.";
uses sch:schedules; uses sch:schedules;
leaf access-type { leaf access-type {
type 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 {
description
"For an inter-domain link, specify the attributes of
the remote end of link, to facilitate the signalling at
local end.";
leaf remote-te-node-id {
type te-types:te-node-id;
description
"Remote TE node identifier, used together with
remote-te-link-id to identify the remote link
termination point in a different domain.";
}
leaf remote-te-link-tp-id {
type te-types:te-tp-id;
description
"Remote TE link termination point identifier, used
together with remote-te-node-id to identify the remote
link termination point in a different domain.";
}
leaf plug-id {
type uint32;
description
"A topology-wide unique number that identifies on the
network a connectivity supporting a given inter-domain
TE link. This is more flexible alternative to specifying
remote-te-node-id and remote-te-link-tp-id, when the
provider does not know remote-te-node-id and
remote-te-link-tp-id or need to give client the
flexibility to mix-n-match multiple topologies.";
}
}
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;
skipping to change at page 68, line 29 skipping to change at page 80, line 4
"Indicates the underlay exists for this link."; "Indicates the underlay exists for this link.";
description "Attributes of the te-link underlay."; description "Attributes of the te-link underlay.";
reference reference
"RFC4206: Label Switched Paths (LSP) Hierarchy with "RFC4206: Label Switched Paths (LSP) Hierarchy with
Generalized Multi-Protocol Label Switching (GMPLS) Generalized Multi-Protocol Label Switching (GMPLS)
Traffic Engineering (TE)"; Traffic Engineering (TE)";
uses te-link-underlay-attributes; uses te-link-underlay-attributes;
} // underlay } // underlay
leaf admin-status { leaf admin-status {
type te-admin-status; type te-types:te-admin-status;
description description
"The administrative state of the link."; "The administrative state of the link.";
} }
uses performance-metric-throttle-container; uses performance-metric-throttle-container;
uses te-link-info-attributes; uses te-link-info-attributes;
} // te-link-attributes } // te-link-attributes
} // te-link-config-attributes } // te-link-config-attributes
grouping te-link-info-attributes { grouping te-link-connectivity-attributes {
description description
"Advertised TE information attributes."; "Advertised TE connectivity attributes.";
leaf link-index {
type uint64;
description
"The link identifier. If OSPF is used, this represents an
ospfLsdbID. If IS-IS is used, this represents an isisLSPID.
If a locally configured link is used, this object represents
a unique value, which is locally defined in a router.";
}
leaf administrative-group {
type te-types:admin-groups;
description
"Administrative group or color of the link.
This attribute covers both administrative group (defined in
RFC3630, RFC5329, and RFC5305), and extended administrative
group (defined in RFC7308).";
}
leaf max-link-bandwidth { leaf max-link-bandwidth {
type decimal64 { type decimal64 {
fraction-digits 2; fraction-digits 2;
} }
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 in bytes per second.";
reference reference
"RFC3630: Traffic Engineering (TE) Extensions to OSPF "RFC3630: Traffic Engineering (TE) Extensions to OSPF
Version 2. Version 2.
skipping to change at page 70, line 36 skipping to change at page 81, line 35
leaf te-default-metric { leaf te-default-metric {
type uint32; type uint32;
description description
"Traffic Engineering Metric."; "Traffic Engineering Metric.";
} }
container performance-metric { container performance-metric {
if-feature te-performance-metric; if-feature te-performance-metric;
description description
"Link performance information in real time."; "Link performance information in real time.";
reference reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
container measurement { container measurement {
description description
"Measured performance metric values. Static configuration "Measured performance metric values. Static configuration
and manual overrides of these measurements are also and manual overrides of these measurements are also
allowed."; allowed.";
uses performance-metric-attributes; uses performance-metric-attributes;
} }
container normality container normality
{ {
description description
"Performance metric normality values."; "Performance metric normality values.";
uses performance-metric-normality-attributes; uses performance-metric-normality-attributes;
} }
} }
container te-srlgs {
description
"A list of SLRGs.";
leaf-list value {
type te-types:srlg;
description "SRLG value.";
reference
"RFC4202: Routing Extensions in Support of
Generalized Multi-Protocol Label Switching (GMPLS).";
}
}
} // te-link-connectivity-attributes
grouping te-link-info-attributes {
description
"Advertised TE information attributes.";
leaf link-index {
type uint64;
description
"The link identifier. If OSPF is used, this represents an
ospfLsdbID. If IS-IS is used, this represents an isisLSPID.
If a locally configured link is used, this object represents
a unique value, which is locally defined in a router.";
}
leaf administrative-group {
type te-types:admin-groups;
description
"Administrative group or color of the link.
This attribute covers both administrative group (defined in
RFC3630, RFC5329, and RFC5305), and extended administrative
group (defined in RFC7308).";
}
uses interface-switching-capability-list;
leaf link-protection-type { leaf link-protection-type {
type enumeration { type enumeration {
enum "unprotected" { enum "unprotected" {
description "Unprotected."; description "Unprotected.";
} }
enum "extra-traffic" { enum "extra-traffic" {
description "Extra traffic."; description "Extra traffic.";
} }
enum "shared" { enum "shared" {
description "Shared."; description "Shared.";
skipping to change at page 71, line 38 skipping to change at page 83, line 34
enum "enhanced" { enum "enhanced" {
description "Enhanced protection."; description "Enhanced protection.";
} }
} }
description description
"Link Protection Type desired for this link."; "Link Protection Type desired for this link.";
reference reference
"RFC4202: Routing Extensions in Support of "RFC4202: Routing Extensions in Support of
Generalized Multi-Protocol Label Switching (GMPLS)."; Generalized Multi-Protocol Label Switching (GMPLS).";
} }
list interface-switching-capability { uses te-link-connectivity-attributes;
key "switching-capability";
description
"List of Interface Switching Capabilities Descriptors (ISCD)
for this link.";
reference
"RFC3471: Generalized Multi-Protocol Label Switching (GMPLS)
Signaling Functional Description.
RFC4203: OSPF Extensions in Support of Generalized
Multi-Protocol Label Switching (GMPLS).";
leaf switching-capability {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching Capability for this interface.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description
"Encoding supported by this interface.";
}
list max-lsp-bandwidth {
key "priority";
max-elements "8";
description
"Maximum LSP Bandwidth at priorities 0-7.";
leaf priority {
type uint8 {
range "0..7";
}
description "Priority.";
}
leaf bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Max LSP Bandwidth for this level";
}
}
container time-division-multiplex-capable {
when "../switching-capability = 'TDM'" {
description "Valid only for TDM";
}
description
"Interface has time-division multiplex capabilities.";
leaf minimum-lsp-bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Minimum LSP Bandwidth. Units in bytes per second.";
}
leaf indication {
type enumeration {
enum "standard" {
description
"Indicates support of standard SONET/SDH.";
}
enum "arbitrary" {
description
"Indicates support of arbitrary SONET/SDH.";
}
}
description
"Indication whether the interface supports Standard or
Arbitrary SONET/SDH";
}
}
list interface-adjustment-capability {
key "upper-sc";
description
"List of Interface Adjustment Capability Descriptors (IACD)
for this link.";
reference
"RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN).";
leaf upper-sc {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching Capability for this interface.";
}
leaf upper-encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description
"Encoding supported by this interface.";
}
list max-lsp-bandwidth {
key "priority";
max-elements "8";
description
"Maximum LSP Bandwidth at priorities 0-7.";
leaf priority {
type uint8 {
range "0..7";
}
description "Priority.";
}
leaf bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Max LSP Bandwidth for this level.";
}
}
} // interface-adjustment-capability
} // interface-switching-capability
container te-srlgs {
description
"A list of SLRGs.";
leaf-list values {
type te-types:srlg;
description "SRLG value.";
reference
"RFC4202: Routing Extensions in Support of
Generalized Multi-Protocol Label Switching (GMPLS).";
}
}
} // te-link-info-attributes } // te-link-info-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-oper-status; type te-types:te-oper-status;
description description
"The current operational state of the link."; "The current operational state of the link.";
}
leaf is-transitional {
type empty;
description
"Present if the link is transitional, used as an
alternative approach in lieu of inter-layer-lock-id
for path computation in a TE topology covering multiple
layers or multiple regions.";
reference
"RFC5212: Requirements for GMPLS-Based Multi-Region and
Multi-Layer Networks (MRN/MLN).
RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN).";
} }
uses information-source-attributes; uses information-source-attributes;
list alt-information-sources { list information-source-entry {
key "information-source"; key "information-source";
description description
"A list of information sources learned but not used."; "A list of information sources learned, including the one
used.";
uses information-source-attributes; uses information-source-attributes;
uses te-link-info-attributes; uses te-link-info-attributes;
} }
container recovery { container recovery {
description description
"Status of the recovery process."; "Status of the recovery process.";
leaf restoration-status { leaf restoration-status {
type te-recovery-status; type te-types:te-recovery-status;
description description
"Restoration status."; "Restoration status.";
} }
leaf protection-status { leaf protection-status {
type 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;
description "State attributes for te-link underlay."; description "State attributes for te-link underlay.";
uses te-link-state-underlay-attributes; uses te-link-state-underlay-attributes;
} }
} // te-link-state-derived } // te-link-state-derived
skipping to change at page 78, line 13 skipping to change at page 87, line 18
grouping te-node-augment { grouping te-node-augment {
description description
"Augmentation for TE node."; "Augmentation for TE node.";
container te { container te {
presence "TE support."; presence "TE support.";
description description
"Indicates TE support."; "Indicates TE support.";
leaf te-node-id { leaf te-node-id {
type te-node-id; type te-types:te-node-id;
mandatory true; mandatory true;
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 config { container config {
description description
"Configuration data."; "Configuration data.";
uses te-node-config; uses te-node-config;
skipping to change at page 79, line 16 skipping to change at page 88, line 20
"Configuration data."; "Configuration data.";
uses te-node-tunnel-termination-capability; uses te-node-tunnel-termination-capability;
} }
container state { container state {
config false; config false;
description description
"Operational state data."; "Operational state data.";
uses te-node-tunnel-termination-capability; uses te-node-tunnel-termination-capability;
leaf switching-capability {
type identityref {
base te-types:switching-capabilities;
}
mandatory true;
description
"Switching Capability.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
mandatory true;
description
"Encoding type.";
}
} // state } // state
} // tunnel-termination-point } // tunnel-termination-point
} // te } // te
} // te-node-augment } // 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 {
skipping to change at page 80, line 18 skipping to change at page 89, line 6
} }
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 "Containing node attributes in a TE topology.";
uses sch:schedules; uses sch:schedules;
leaf admin-status { leaf admin-status {
type 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-matrix; uses te-node-connectivity-matrix;
uses te-node-info-attributes; uses te-node-info-attributes;
} // te-node-attributes } // te-node-attributes
} // te-node-config-attributes } // te-node-config-attributes
grouping te-node-config-attributes-notification { grouping te-node-config-attributes-notification {
description description
"Configuration node attributes for template in a TE topology."; "Configuration node attributes for template in a TE topology.";
container te-node-attributes { container te-node-attributes {
description "Containing node attributes in a TE topology."; description "Containing node attributes in a TE topology.";
uses sch:schedules; uses sch:schedules;
leaf admin-status { leaf admin-status {
type 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-matrix-abs; uses te-node-connectivity-matrix-abs;
uses te-node-info-attributes; uses te-node-info-attributes;
} // te-node-attributes } // te-node-attributes
} // te-node-config-attributes-notification } // te-node-config-attributes-notification
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 template in a TE topology.";
container te-node-attributes { container te-node-attributes {
description "Containing node attributes in a TE topology."; description "Containing node attributes in a TE topology.";
uses sch:schedules; uses sch:schedules;
leaf admin-status { leaf admin-status {
type 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-attributes
} // te-node-config-attributes-template } // te-node-config-attributes-template
grouping te-node-connectivity-matrix { grouping te-node-connectivity-matrix {
description "Connectivity matrix on a TE node."; description "Connectivity matrix on a TE node.";
list connectivity-matrix { list connectivity-matrix {
key "id"; key "id";
description description
"Represents node's switching limitations, i.e. limitations "Represents node's switching limitations, i.e. limitations
in interconnecting network TE links across the node."; in interconnecting network TE links across the node.";
reference reference
skipping to change at page 82, line 20 skipping to change at page 91, line 8
} }
description description
"Reference to destination NTP."; "Reference to destination NTP.";
} }
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.";
} }
uses connectivity-label-restriction-list;
uses te-link-connectivity-attributes;
} }
} // te-node-connectivity-matrix } // te-node-connectivity-matrix
grouping te-node-connectivity-matrix-abs { grouping te-node-connectivity-matrix-abs {
description description
"Connectivity matrix on a TE node, using absolute "Connectivity matrix on a TE node, using absolute
paths to reference termination points."; paths to reference termination points.";
list connectivity-matrix { list connectivity-matrix {
key "id"; key "id";
description description
skipping to change at page 84, line 15 skipping to change at page 93, line 4
} }
leaf-list signaling-address { leaf-list signaling-address {
type inet:ip-address; type inet:ip-address;
description "Node signaling address."; description "Node 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 attributes in this container point to said topology."; the attributes in this container point to said topology.";
uses te-topology-ref; uses te-topology-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-oper-status; type te-types:te-oper-status;
description description
"The current operational state of the node."; "The current operational state of the node.";
} }
leaf is-multi-access-dr { leaf is-multi-access-dr {
type empty; type empty;
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
"RFC3630: Traffic Engineering (TE) Extensions to OSPF "RFC3630: Traffic Engineering (TE) Extensions to OSPF
Version 2. Version 2.
RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
Environments."; Environments.";
} }
uses information-source-attributes; uses information-source-attributes;
list alt-information-sources { list information-source-entry {
key "information-source"; key "information-source";
description description
"A list of information sources learned but not used."; "A list of information sources learned, including the one
used.";
uses information-source-attributes; uses information-source-attributes;
uses te-node-connectivity-matrix; uses te-node-connectivity-matrix;
uses te-node-info-attributes; uses te-node-info-attributes;
} }
} // te-node-state-derived } // te-node-state-derived
grouping te-node-state-derived-notification { grouping te-node-state-derived-notification {
description "Node state attributes in a TE topology."; description "Node state attributes in a TE topology.";
leaf oper-status { leaf oper-status {
type te-oper-status; type te-types:te-oper-status;
description description
"The current operational state of the node."; "The current operational state of the node.";
} }
leaf is-multi-access-dr { leaf is-multi-access-dr {
type empty; type empty;
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
"RFC3630: Traffic Engineering (TE) Extensions to OSPF "RFC3630: Traffic Engineering (TE) Extensions to OSPF
Version 2. Version 2.
RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
skipping to change at page 85, line 27 skipping to change at page 94, line 18
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
"RFC3630: Traffic Engineering (TE) Extensions to OSPF "RFC3630: Traffic Engineering (TE) Extensions to OSPF
Version 2. Version 2.
RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
Environments."; Environments.";
} }
uses information-source-attributes; uses information-source-attributes;
list alt-information-sources { list information-source-entry {
key "information-source"; key "information-source";
description description
"A list of information sources learned but not used."; "A list of information sources learned, including the one
used.";
uses information-source-attributes; uses information-source-attributes;
uses te-node-connectivity-matrix-abs; uses te-node-connectivity-matrix-abs;
uses te-node-info-attributes; uses te-node-info-attributes;
} }
} // te-node-state-derived-notification } // te-node-state-derived-notification
grouping te-node-tunnel-termination-capability { grouping te-node-tunnel-termination-capability {
description description
"Termination capability of a tunnel termination point on a "Termination capability of a tunnel termination point on a
TE node."; TE node.";
leaf switching-capability {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching Capability for this interface.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description
"Encoding supported by this interface.";
}
leaf inter-layer-lock-id {
type uint32;
description
"Inter layer lock ID, used for path computation in a TE
topology covering multiple layers or multiple regions.";
reference
"RFC5212: Requirements for GMPLS-Based Multi-Region and
Multi-Layer Networks (MRN/MLN).
RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN).";
}
leaf protection-type {
type identityref {
base te-types:lsp-prot-type;
}
description
"The protection type that this tunnel termination point
is capable of.";
}
list termination-capability { list termination-capability {
key "link-tp"; key "link-tp";
description description
"The termination capabilities between "The termination capabilities between
tunnel-termination-point and link termination-point. tunnel-termination-point and link termination-point.
The 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)
[RFC6001] on each link-tp can be derived from this
termination-capability list.";
reference
"RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN).";
leaf link-tp { leaf link-tp {
type leafref { type leafref {
path "../../../../../nt:termination-point/nt:tp-id"; path "../../../../../nt:termination-point/nt:tp-id";
} }
description description
"Link termination point."; "Link termination point.";
} }
uses connectivity-label-restriction-list;
list max-lsp-bandwidth {
key "priority";
max-elements "8";
description
"Maximum LSP Bandwidth at priorities 0-7.";
reference
"RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
for Multi-Layer and Multi-Region Networks (MLN/MRN).";
leaf priority {
type uint8 {
range "0..7";
}
description "Priority.";
}
leaf bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Max LSP Bandwidth for this level.";
}
} // max-lsp-bandwidth
} // termination-capability } // termination-capability
} // te-node-tunnel-termination-capability } // te-node-tunnel-termination-capability
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 TE node, TE link, TE atomic resource or label.";
uses te-types:explicit-route-subobject; uses te-types:explicit-route-subobject;
} // 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 TE termination point.";
container te { container te {
presence "TE support."; presence "TE support.";
description description
"Indicates TE support."; "Indicates TE support.";
leaf te-tp-id { leaf te-tp-id {
type te-tp-id; type te-types:te-tp-id;
mandatory true; mandatory true;
description description
"An identifier to uniquely identify a TE termination "An identifier to uniquely identify a TE termination
point."; point.";
} }
container config { container config {
description description
"Configuration data."; "Configuration data.";
uses te-termination-point-config; uses te-termination-point-config;
skipping to change at page 87, line 20 skipping to change at page 97, line 37
"Operational state data."; "Operational state data.";
uses te-termination-point-config; uses te-termination-point-config;
} // state } // state
} // te } // 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.";
uses sch:schedules; uses sch:schedules;
uses interface-switching-capability-list;
leaf inter-layer-lock-id {
type uint32;
description
"Inter layer lock ID, used for path computation in a TE
topology covering multiple layers or multiple regions.";
reference
"RFC5212: Requirements for GMPLS-Based Multi-Region and
Multi-Layer Networks (MRN/MLN).
RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
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 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-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-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 } // link-template
} // templates } // templates
skipping to change at page 88, line 39 skipping to change at page 99, line 28
grouping te-topology-augment { grouping te-topology-augment {
description description
"Augmentation for TE topology."; "Augmentation for TE topology.";
container te { container te {
presence "TE support."; presence "TE support.";
description description
"Indicates TE support."; "Indicates TE support.";
leaf provider-id { leaf provider-id {
type te-global-id; type te-types:te-global-id;
mandatory true; mandatory true;
description description
"An identifier to uniquely identify a provider."; "An identifier to uniquely identify a provider.";
} }
leaf client-id { leaf client-id {
type te-global-id; type te-types:te-global-id;
mandatory true; mandatory true;
description description
"An identifier to uniquely identify a client."; "An identifier to uniquely identify a client.";
} }
leaf te-topology-id { leaf te-topology-id {
type te-topology-id; type te-types:te-topology-id;
mandatory true; mandatory true;
description description
"It is presumed that a datastore will contain many "It is presumed that a datastore will contain many
topologies. To distinguish between topologies it is topologies. To distinguish between topologies it is
vital to have UNIQUE topology identifiers."; vital to have UNIQUE topology identifiers.";
} }
container config { container config {
description description
"Configuration data."; "Configuration data.";
skipping to change at page 90, line 4 skipping to change at page 100, line 33
description description
"TE topology configuration grouping."; "TE topology configuration grouping.";
uses sch:schedules; uses sch:schedules;
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 {
type identityref {
base te-types:te-optimization-criterion;
}
description
"Optimization criterion applied to this topology.";
reference
"RFC3272: Overview and Principles of Internet Traffic
Engineering.";
}
} // te-topology-config } // te-topology-config
grouping te-topology-ref { grouping te-topology-ref {
description description
"References a TE topology."; "References a TE topology.";
leaf provider-id-ref { leaf provider-id-ref {
type leafref { type leafref {
path "/nw:networks/nw:network[nw:network-id = " path "/nw:networks/nw:network[nw:network-id = "
+ "current()/../network-id-ref]/tet:te/tet:provider-id"; + "current()/../network-id-ref]/tet:te/tet:provider-id";
require-instance false; require-instance false;
skipping to change at page 94, line 8 skipping to change at page 105, line 6
* Operational state data nodes * Operational state data nodes
*/ */
/* /*
* Notifications * Notifications
*/ */
notification te-node-event { notification te-node-event {
description "Notification event for TE node."; description "Notification event for TE node.";
leaf event-type { leaf event-type {
type te-topology-event-type; type te-types:te-topology-event-type;
description "Event type."; description "Event type.";
} }
uses nw:node-ref; uses nw:node-ref;
uses te-topology-type; uses te-topology-type;
uses tet:te-node-config-attributes-notification; uses tet:te-node-config-attributes-notification;
uses tet:te-node-state-derived-notification; uses tet:te-node-state-derived-notification;
} }
notification te-link-event { notification te-link-event {
description "Notification event for TE link."; description "Notification event for TE link.";
leaf event-type { leaf event-type {
type te-topology-event-type; type te-types:te-topology-event-type;
description "Event type"; description "Event type";
} }
uses nt:link-ref; uses nt:link-ref;
uses te-topology-type; uses te-topology-type;
uses tet:te-link-config-attributes; uses tet:te-link-config-attributes;
uses tet:te-link-state-derived; uses tet:te-link-state-derived;
} }
augment "/te-link-event/te-link-attributes/underlay" { augment "/te-link-event/te-link-attributes/underlay" {
description "Add state attributes to te-link underlay."; description "Add state attributes to te-link underlay.";
uses te-link-state-underlay-attributes; uses te-link-state-underlay-attributes;
} }
} }
<CODE ENDS> <CODE ENDS>
7.2. Packet Switching TE Topology Module
<CODE BEGINS> file "ietf-te-topology-psc@2016-03-17.yang"
module ietf-te-topology-psc {
yang-version 1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-psc";
// replace with IANA namespace when assigned
prefix "tet-psc";
import ietf-network {
prefix "nw";
}
import ietf-network-topology {
prefix "nt";
}
import ietf-te-topology {
prefix "tet";
}
organization
"Traffic Engineering Architecture and Signaling (TEAS)
Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org>
WG Chair: Lou Berger
<mailto:lberger@labn.net>
WG Chair: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net>
Editors: Xufeng Liu
<mailto:xliu@kuatrotech.com>
Igor Bryskin
<mailto:Igor.Bryskin@huawei.com>
Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net>
Tarek Saad
<mailto:tsaad@cisco.com>
Himanshu Shah
<mailto:hshah@ciena.com>
Oscar Gonzalez De Dios
<mailto:oscar.gonzalezdedios@telefonica.com>";
description "TE topology model";
revision "2016-03-17" {
description "Initial revision";
reference "TBD";
}
/*
* Groupings
*/
grouping packet-switch-capable-container {
description
"The container of packet switch capable attributes.";
container packet-switch-capable {
description
"Interface has packet-switching capabilities.";
leaf minimum-lsp-bandwidth {
type decimal64 {
fraction-digits 2;
}
description
"Minimum LSP Bandwidth. Units in bytes per second";
}
leaf interface-mtu {
type uint16;
description
"Interface MTU.";
}
}
}
/*
* Configuration data nodes
*/
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
augment "/nw:networks/nw:network/nt:link/tet:te/tet:config/"
+ "tet:te-link-attributes/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
/*
* Operational state data nodes
*/
augment "/nw:networks/nw:network/nt:link/tet:te/tet:state/"
+ "tet:te-link-attributes/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
augment "/nw:networks/nw:network/nt:link/tet:te/tet:state/"
+ "tet:alt-information-sources/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
/*
* Notifications
*/
augment "/tet:te-link-event/tet:te-link-attributes/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
augment "/tet:te-link-event/tet:alt-information-sources/"
+ "tet:interface-switching-capability" {
when "switching-capability = 'switching-psc1' " {
description "Valid only for PSC";
}
description
"Parameters for PSC TE topology.";
uses packet-switch-capable-container;
}
}
<CODE ENDS>
8. Security Considerations 8. Security Considerations
The transport protocol used for retrieving/manipulating the TE The transport protocol used for retrieving/manipulating the TE
topology data MUST support authentication and SHOULD support topology data MUST support authentication and SHOULD support
encryption. The data-model by itself does not create any security encryption. The data-model by itself does not create any security
implications. implications.
9. IANA Considerations 9. IANA Considerations
This document registers the following URIs in the IETF XML registry This document registers the following URIs in the IETF XML registry
skipping to change at page 100, line 14 skipping to change at page 107, line 14
11. Acknowledgments 11. Acknowledgments
The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam,
Cyril Margaria and Zafar Ali for participating in design discussions Cyril Margaria and Zafar Ali for participating in design discussions
and providing valuable insights. and providing valuable insights.
Contributors Contributors
Sergio Belotti Sergio Belotti
Alcatel Lucent Nokia
Email: sergio.belotti@alcatel-lucent.com Email: sergio.belotti@nokia.com
Dieter Beller Dieter Beller
Alcatel Lucent Nokia
Email: dieter.beller@alcatel-lucent.com Email: Dieter.Beller@nokia.com
Authors' Addresses Authors' Addresses
Xufeng Liu Xufeng Liu
Ericsson Ericsson
Email: xliu@kuatrotech.com Email: xliu@kuatrotech.com
Igor Bryskin Igor Bryskin
Huawei Technologies Huawei Technologies
Email: Igor.Bryskin@huawei.com Email: Igor.Bryskin@huawei.com
 End of changes. 174 change blocks. 
970 lines changed or deleted 1247 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/