idnits 2.17.1 draft-ietf-teas-yang-te-topo-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 172 has weird spacing: '... rw for r...' == Line 173 has weird spacing: '... ro for r...' == Line 1028 has weird spacing: '...logy-id te-...' == Line 1036 has weird spacing: '...node-id te-...' == Line 1042 has weird spacing: '...l-tp-id bin...' == (15 more instances...) -- The document date (July 8, 2016) is 2843 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'R1' is mentioned on line 728, but not defined == Missing Reference: 'R2' is mentioned on line 734, but not defined == Missing Reference: 'R3' is mentioned on line 728, but not defined == Missing Reference: 'R4' is mentioned on line 734, but not defined == Missing Reference: 'R5' is mentioned on line 649, but not defined == Missing Reference: 'R6' is mentioned on line 653, but not defined == Missing Reference: 'R7' is mentioned on line 653, but not defined == Missing Reference: 'R8' is mentioned on line 653, but not defined == Missing Reference: 'R9' is mentioned on line 653, but not defined == Missing Reference: 'A' is mentioned on line 728, but not defined == Missing Reference: 'E' is mentioned on line 728, but not defined == Missing Reference: 'B' is mentioned on line 734, but not defined == Missing Reference: 'F' is mentioned on line 734, but not defined == Outdated reference: A later version (-05) exists of draft-liu-netmod-yang-schedule-00 Summary: 0 errors (**), 0 flaws (~~), 21 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 TEAS Working Group Xufeng Liu 2 Internet Draft Ericsson 3 Intended status: Standards Track Igor Bryskin 4 Huawei Technologies 5 Vishnu Pavan Beeram 6 Juniper Networks 7 Tarek Saad 8 Cisco Systems Inc 9 Himanshu Shah 10 Ciena 11 Oscar Gonzalez De Dios 12 Telefonica 14 Expires: January 8, 2017 July 8, 2016 16 YANG Data Model for TE Topologies 17 draft-ietf-teas-yang-te-topo-05 19 Status of this Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF), its areas, and its working groups. Note that 26 other groups may also distribute working documents as Internet- 27 Drafts. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 The list of current Internet-Drafts can be accessed at 35 http://www.ietf.org/ietf/1id-abstracts.txt 37 The list of Internet-Draft Shadow Directories can be accessed at 38 http://www.ietf.org/shadow.html 40 This Internet-Draft will expire on January 8, 2017. 42 Copyright Notice 44 Copyright (c) 2016 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Abstract 59 This document defines a YANG data model for representing, retrieving 60 and manipulating TE Topologies. The model serves as a base model that 61 other technology specific TE Topology models can augment. 63 Conventions used in this document 65 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 66 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 67 document are to be interpreted as described in RFC-2119 [RFC2119]. 69 Table of Contents 71 1. Introduction...................................................3 72 1.1. Terminology...............................................4 73 1.2. Tree Structure - Legend...................................4 74 1.3. Prefixes in Data Node Names...............................5 75 2. Characterizing TE Topologies...................................5 76 3. Modeling Abstractions and Transformations......................7 77 3.1. TE Topology...............................................7 78 3.2. TE Node...................................................7 79 3.3. TE Link...................................................8 80 3.4. Transitional TE Link for Multi-Layer Topologies...........8 81 3.5. TE Link Termination Point (LTP)..........................10 82 3.6. TE Tunnel Termination Point (TTP)........................10 83 3.7. TE Node Connectivity Matrix..............................11 84 3.8. TTP Local Link Connectivity List (LLCL)..................11 85 3.9. TE Path..................................................11 86 3.10. TE Inter-Layer Lock.....................................11 87 3.11. Underlay TE topology....................................13 88 3.12. Overlay TE topology.....................................13 89 3.13. Abstract TE topology....................................13 90 4. Model Applicability...........................................14 91 4.1. Native TE Topologies.....................................14 92 4.2. Customized TE Topologies.................................16 93 4.3. Merging TE Topologies Provided by Multiple Providers.....18 94 4.4. Dealing with Multiple Abstract TE Topologies Provided by the 95 Same Provider.................................................22 96 5. Modeling Considerations.......................................25 97 5.1. Generic network topology building blocks.................25 98 5.2. Technology agnostic TE Topology model....................25 99 5.3. Model Structure..........................................26 100 5.4. Topology Identifiers.....................................27 101 5.5. Generic TE Link Attributes...............................28 102 5.6. Generic TE Node Attributes...............................28 103 5.7. TED Information Sources..................................29 104 5.8. Overlay/Underlay Relationship............................30 105 5.9. Scheduling Parameters....................................31 106 5.10. Templates...............................................31 107 5.11. Notifications...........................................32 108 5.12. Open Items..............................................33 109 6. Tree Structure................................................33 110 7. TE Topology Yang Module.......................................62 111 8. Security Considerations......................................105 112 9. IANA Considerations..........................................105 113 10. References..................................................106 114 10.1. Normative References...................................106 115 10.2. Informative References.................................106 116 11. Acknowledgments.............................................107 117 Contributors....................................................107 118 Authors' Addresses..............................................107 120 1. Introduction 122 The Traffic Engineering Database (TED) is an essential component of 123 Traffic Engineered (TE) systems that are based on MPLS-TE [RFC2702] 124 and GMPLS [RFC3945]. The TED is a collection of all TE information 125 about all TE nodes and TE links in the network. The TE Topology is a 126 schematic arrangement of TE nodes and TE links present in a given 127 TED. There could be one or more TE Topologies present in a given 128 Traffic Engineered system. The TE Topology is the topology on which 129 path computational algorithms are run to compute Traffic Engineered 130 Paths (TE Paths). 132 This document defines a YANG [RFC6020] data model for representing 133 and manipulating TE Topologies. This model contains technology 134 agnostic TE Topology building blocks that can be augmented and used 135 by other technology-specific TE Topology models. 137 1.1. Terminology 139 TED: The Traffic Engineering Database is a collection of all TE 140 information about all TE nodes and TE links in a given network. 142 TE-Topology: The TE Topology is a schematic arrangement of TE nodes 143 and TE links in a given TED. It forms the basis for a graph suitable 144 for TE path computations. 146 Native TE Topology: Native TE Topology is a topology that is native 147 to a given provider network. Native TE topology could be discovered 148 via various routing protocols and/or subscribe/publish techniques. 149 This is the topology on which path computational algorithms are run 150 to compute TE Paths. 152 Customized TE Topology: Customized TE Topology is a custom topology 153 that is produced by a provider for a given Client. This topology 154 typically augments the Client's Native TE Topology. Path 155 computational algorithms aren't typically run on the Customized TE 156 Topology; they are run on the Client's augmented Native TE Topology. 158 1.2. Tree Structure - Legend 160 A simplified graphical representation of the data model is presented 161 in Section 6. of this document. The following notations are used for 162 the YANG model data tree representation. 164 166 is one of: 167 + for current 168 x for deprecated 169 o for obsolete 171 is one of: 172 rw for read-write configuration data 173 ro for read-only non-configuration data 174 -x for execution rpcs 175 -n for notifications 177 is the name of the node 179 If the node is augmented into the tree from another module, its 180 name is printed as : 182 is one of: 184 ? for an optional leaf or node 185 ! for a presence container 186 * for a leaf-list or list 187 Brackets [] for a list's keys 188 Curly braces {} for optional feature that make node 189 conditional 191 Colon : for marking case nodes 192 Ellipses ("...") subtree contents not shown 194 Parentheses enclose choice and case nodes, and case nodes are 195 also marked with a colon (":"). 197 is the name of the type for leafs and leaf-lists. 199 1.3. Prefixes in Data Node Names 201 In this document, names of data nodes and other data model objects 202 are prefixed using the standard prefix associated with the 203 corresponding YANG imported modules, as shown in Table 1. 205 +--------+-----------------+-----------+ 206 | Prefix | YANG module | Reference | 207 +--------+-----------------+-----------+ 208 | yang | ietf-yang-types | [RFC6991] | 209 | inet | ietf-inet-types | [RFC6991] | 210 +--------+-----------------+-----------+ 212 Table 1: Prefixes and corresponding YANG modules 214 2. Characterizing TE Topologies 216 The data model proposed by this document takes the following 217 characteristics of TE Topologies into account: 219 - TE Topology is an abstract control-plane representation of the 220 data-plane topology. Hence attributes specific to the data-plane 221 must make their way into the corresponding TE Topology modeling. 222 The TE Topology comprises of dynamic auto-discovered data (data 223 that may change frequently - example: unreserved bandwidth 224 available on data-plane links) as well as fairly static data (data 225 that rarely changes- examples: layer network identification, 226 switching and adaptation capabilities and limitations, fate 227 sharing, administrative colors) associated with data-plane nodes 228 and links. It is possible for a single TE Topology to encompass TE 229 information at multiple switching layers. 231 - TE Topologies are protocol independent. Information about 232 topological elements may be learnt via link-state protocols, but 233 the topology can exist without being dependent on any particular 234 protocol. 236 - TE Topology may not be congruent to the routing topology (topology 237 constructed based on routing adjacencies) in a given TE System. 238 There isn't always a one-to-one association between a TE-link and 239 a routing adjacency. For example, the presence of a TE link 240 between a pair of nodes doesn't necessarily imply the existence of 241 a routing-adjacency between these nodes. 243 - Each TE Topological element has an information source associated 244 with it. In some scenarios, there could be more than one 245 information source associated with each topological element. 247 - TE Topologies can be hierarchical. Each node and link of a given 248 TE Topology can be associated with respective underlay topology. 249 This means that each node and link of a given TE Topology can be 250 associated with an independent stack of supporting TE Topologies. 252 - TE Topologies can be customized. TE topologies of a given network 253 presented by the network provider to its client could be 254 customized on per-client request basis. This customization could 255 be performed by provider, by client or by provider/client 256 negotiation. The relationship between a customized topology (as 257 presented to the client) and provider's native topology (as known 258 in its entirety to the provider itself) could be captured as 259 hierarchical (overlay-underlay), but otherwise the two topologies 260 are decoupled from each other. 262 3. Modeling Abstractions and Transformations 264 Node-1 Node-3 265 +------------+ +------------+ 266 | TTP-1 | | TTP-1 | 267 |LTP __ | TE-Tunel-1 | __ | 268 |-6 \/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\/ | 269 o * * oLTP-1 Node-2 LTP-6o * * o 270 | * * | +------------+ | * * | 271 | * TTP-2* | | | | * TTP-2* | 272 | * __ * |LTP-2 LTP-6| |LTP-1 LTP-5| * __ * | 273 o* \/ *o-----------o************o-----------o* \/ *o 274 |LTP * * | Link-12 | * | Link-23 | * * | 275 |-5 * * | LTP-5| * |LTP-2 | * * | 276 +--o------o--+ o************o +--o------o--+ 277 LTP-4 LTP-3 | * * * | LTP-4 LTP-3 278 | ** * | 279 +--o------o--+ 280 LTP-4 LTP-3 282 Figure 1: TE Topology Modeling Abstractions 284 3.1. TE Topology 286 TE topology is a traffic engineering representation of one or more 287 layers of network topologies. TE topology is comprised of TE nodes 288 (TE graph vertices) interconnected via TE links (TE graph edges). A 289 TE topology is mapped to a TE graph. 291 3.2. TE Node 293 TE node is an element of a TE topology (presented as a vertex on TE 294 graph). TE node represents one or several nodes (physical switches), 295 or a fraction of a node. TE node belongs to and is fully defined in 296 exactly one TE topology. TE node is assigned with the TE topology 297 scope unique ID. TE node attributes include information related to 298 the data plane aspects of the associated node(s) (e.g. connectivity 299 matrix), as well as configuration data (such as TE node name). A 300 given TE node can be reached on the TE graph over one of TE links 301 terminated by the TE node. 303 Multi-layer TE nodes providing switching functions at multiple 304 network layers are an example where a physical node can be decomposed 305 into multiple logical TE nodes (fractions of a node). Some of these 306 (logical) TE nodes may reside in the client layer TE topology while 307 the remaining TE nodes belong to the server layer TE topology. 309 In Figure 1, Node-1, Node-2, and Node-3 are TE nodes. 311 3.3. TE Link 313 TE link is an element of a TE topology (presented as an edge on TE 314 graph, arrows indicate one or both directions of the TE link). TE 315 link represents one or several (physical) links or a fraction of a 316 link. TE link belongs to and is fully defined in exactly one TE 317 topology. TE link is assigned with the TE topology scope unique ID. 318 TE link attributes include parameters related to the data plane 319 aspects of the associated link(s) (e.g. unreserved bandwidth, 320 resource maps/pools, etc.), as well as the configuration data (such 321 as remote node/link IDs, SRLGs, administrative colors, etc.). TE link 322 is connected to TE node, terminating the TE link via exactly one TE 323 link termination point (LTP). 325 In Figure 1, Link-12 and Link-23 are TE links. 327 3.4. Transitional TE Link for Multi-Layer Topologies 329 Networks are typically composed of multiple network layers where one 330 or multiple signals in the client layer network can be multiplexed 331 and encapsulated into a server layer signal. The server layer signal 332 can be carried in the server layer network across multiple nodes 333 until the server layer signal is terminated and the client layer 334 signals reappear in the node that terminates the server layer signal. 335 Examples of multi-layer networks are: IP over MPLS over Ethernet, low 336 order ODUk signals multiplexed into a high order ODUl (l>k) carried 337 over an OCh signal (optical transport network). 339 TE links as defined in 3.3. can be used to represent links within a 340 network layer. In case of a multi-layer network, TE nodes and TE 341 links only allow representation of each network layer as a separate 342 TE topology Each of these single layer TE topologies would be 343 isolated from their client and their server layer TE topology, if 344 present (the highest and the lowest network layer in the hierarchy 345 only have a single adjacent layer below or above, respectively). 346 Multiplexing of client layer signals and encapsulating them into a 347 server layer signal requires a function that is provided inside a 348 node (typically realized in hardware). This function is also called 349 layer transition. 351 One of the key requirements for path computation is to be able to 352 calculate a path between two endpoints across a multi-layer network 353 based on the TE topology representing this multi-layer network. This 354 means that an additional TE construct is needed that represents 355 potential layer transitions in the multi-layer TE-topology that 356 connects the TE-topologies representing each separate network layer. 357 The so-called transitional TE link is such a construct and it 358 represents the layer transition function residing inside a node that 359 is decomposed into multiple logical nodes that are represented as TE 360 nodes. Hence, a transitional TE link connects a client layer node 361 with a server layer node. A TE link as defined in 3.3. has LTPs of 362 exactly the same kind on each link end whereas the transitional TE 363 link has client layer LTPs on the client side of the transitional 364 link and in most cases a single server layer LTP on the server side. 365 It should be noted that transitional links are a helper construct in 366 the multi-layer TE topology and they only exist as long as they are 367 not in use (as they represent potential connectivity). When the 368 server layer trail has been established between the server layer LTP 369 of two transitional links in the server layer network, the resulting 370 client layer link in the data plane will be represented as a normal 371 TE link in the client layer topology. The transitional TE links will 372 re-appear when the server layer trail has been torn down. 374 +------------------+ 375 | +------+ | +------+ 376 -----|Client|------+ | Client -----|Client| 377 | |Layer |---+ | | Layer |Layer | 378 -----|Switch|-+ | | | Links -----|Node | 379 | +------+ | | | | +------+ 380 | | | | | Client | | | 381 | | | ---_| Layer --- --- 382 ***|**********|*| \ /*|***************************\ /*\ /**** 383 | --- | | Server Transitional | | 384 | Layer \ / | | Layer Links | | 385 | Term. | | | | | 386 | | | | | | 387 | +------+ | +------+ 388 =============|Server|===== Server ====|Server|==== 389 | |Layer | | Layer |Layer | 390 =============|Switch|===== Links ====|Node |==== 391 | +------+ | +------+ 392 +------------------+ 394 Physical Node View TE-Topology View 396 Figure 2: Modeling a Multi-Layer Node (Dual-Layer Example) 398 3.5. TE Link Termination Point (LTP) 400 TE link termination point (LTP) is a conceptual point of connection 401 of a TE node to one of the TE links, terminated by the TE node. 402 Cardinality between an LTP and the associated TE link is 1:0..1. 404 In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6. 406 3.6. TE Tunnel Termination Point (TTP) 408 TE tunnel termination point (TTP) is an element of TE topology 409 representing one or several of potential transport service 410 termination points (i.e. service client adaptation points such as 411 WDM/OCh transponder). TTP is associated with (hosted by) exactly one 412 TE node. TTP is assigned with the TE node scope unique ID. Depending 413 on the TE node's internal constraints, a given TTP hosted by the TE 414 node could be accessed via one, several or all TE links terminated by 415 the TE node. 417 In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2. 419 3.7. TE Node Connectivity Matrix 421 TE node connectivity matrix is a TE node's attribute describing the 422 TE node's switching limitations in a form of valid switching 423 combinations of the TE node's LTPs (see below). From the point of 424 view of a potential TE path arriving at the TE node at a given 425 inbound LTP, the node's connectivity matrix describes valid 426 (permissible) outbound LTPs for the TE path to leave the TE node 427 from. 429 In Figure 1, the connectivity matrix on Node-2 is: 430 {, , , , 431 } 433 3.8. TTP Local Link Connectivity List (LLCL) 435 TTP Local Link Connectivity List (LLCL) is a List of TE links 436 terminated by the TTP hosting TE node (i.e. list of the TE link 437 LTPs), which the TTP could be connected to. From the point of view of 438 a potential TE path LLCL provides a list of valid TE links the TE 439 path needs to start/stop on for the connection, taking the TE path, 440 to be successfully terminated on the TTP in question. 442 In Figure 1, the LLCL on Node-1 is: 443 {, , , } 445 3.9. TE Path 447 TE path is an ordered list of TE links and/or TE nodes on the TE 448 topology graph, inter-connecting a pair of TTPs to be taken by a 449 potential connection. TE paths, for example, could be a product of 450 successful path computation performed for a given transport service. 452 In Figure 1, the TE Path for TE-Tunnel-1 is: 453 {Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} 455 3.10. TE Inter-Layer Lock 457 TE inter-layer lock is a modeling concept describing client-server 458 layer adaptation relationships and hence important for the multi- 459 layer traffic engineering. It is an association of M client layer 460 LTPs and N server layer TTPs, within which data arriving at any of 461 the client layer LTPs could be adopted onto any of the server layer 462 TTPs. TE inter-layer lock is identified by inter-layer lock ID, which 463 is unique across all TE topologies provided by the same provider. The 464 client layer LIPs and the server layer TTPs associated within a given 465 TE inter-layer lock are decorated with the same inter-layer lock ID 466 attribute. 468 (IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1) 469 --------O (IL-1) O-------- 470 (IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1) 471 --------O __ 0-------- 472 (IL-1) C-LTP-5 | *\/* | C-LTP-5 (IL-1) 473 --------O * * O-------- 474 | *(IL-1)* | 475 S-LTP-3 | * S-TTP-2* | S-LTP-4 476 --------o* __ *o-------- 477 | *\/* | 478 | * * | 479 +--o------o--+ 480 S-LTP-1 | | S-LTP-2 482 Figure 3: TE Inter-Layer Lock ID Associations 484 On the picture above a TE inter-layer lock with IL_1 ID associates 6 485 client layer LTPs (C-LTP-1 - C-LTP-6) with two server layer TTPs (S- 486 TTP-1 and S-TTP-2). They all have the same attribute - TE inter-layer 487 lock ID: IL-1, which is the only thing that indicates the 488 association. A given LTP may have 0, 1 or more inter-layer lock IDs. 489 In the latter case this means that the data arriving at the LTP may 490 be adopted onto any of TTPs associated with all specified inter-layer 491 locks. For example, C-LTP-1 could have two inter-layer lock IDs - IL- 492 1 and IL-2. This would mean that C-LTP-1 for adaptation purposes 493 could use not just TTPs associated with inter-layer lock IL-1 (i.e. 494 S-TTP-1 and S-TTP-2 on the picture), but any of TTPs associated with 495 inter-layer lock IL-2 as well. Likewise, a given TTP may have one or 496 more inter-layer lock IDs, meaning that it can offer the adaptation 497 service to any of client layer LTPs with inter-layer lock ID matching 498 one of its own. Additionally, each TTP has an attribute - Unreserved 499 Adaptation Bandwidth, which announces its remaining adaptation 500 resources sharable between all potential client LTPs. 502 LTPs and TTPs associated within the same TE inter-layer lock may be 503 hosted by the same (hybrid, multi-layer) TE node or multiple TE nodes 504 located in the same or separate TE topologies. The latter is 505 especially important since TE topologies of different layer networks 506 could be modeled by separate augmentations of the basic (common to 507 all layers) TE topology model. 509 3.11. Underlay TE topology 511 Underlay TE topology is a TE topology that serves as a base for 512 constructing of overlay TE topologies 514 3.12. Overlay TE topology 516 Overlay TE topology is a TE topology constructed based on one or more 517 underlay TE topologies. Each TE node of the overlay TE topology 518 represents an arbitrary segment of an underlay TE topology; each TE 519 link of the overlay TE topology represents an arbitrary TE path in 520 one of the underlay TE topologies. The overlay TE topology and the 521 supporting underlay TE topologies may represent distinct layer 522 networks (e.g. OTN/ODUk and WDM/OCh respectively) or the same layer 523 network. 525 3.13. Abstract TE topology 527 Abstract TE topology is an overlay TE topology created by a topology 528 provider and customized for a topology provider's client based on one 529 or more of the provider's native TE topologies (underlay TE 530 topologies), the provider's policies and the client's preferences. 531 For example, a first level topology provider (such as Domain 532 Controller) can create an abstract TE topology for its client (e.g. 533 Super Controller) based on the provider's one or more native TE 534 topologies, local policies/profiles and the client's TE topology 535 configuration requests 537 Figure 4 shows an example of abstract TE topology. 539 +---+ +---+ 540 |s31|--------------|S5 | 541 +---+\ / +---+ 542 \ / 543 \ / 544 \+---+/ +---+ 545 /|AN1|\----------------|S8 | 546 / +---+ \ +---+ 547 +---+ / \ +---+ 548 |S9 |-------------|S11| 549 +---+ +---+ 550 Abstract TE Topology 552 +---+ +---+ 553 |S1 |--------------------|S2 | 554 +---+ +---+ 555 / \ 556 / \ 557 +---+ / +---+ \ +---+ 558 |s3 |--------------------|S4 |---------|S5 | 559 +---+\ +---+ +---+ 560 \ \ \ 561 \ \ \ 562 \+---+ +---+ +---+ 563 /|S6 |\ |S7 |---------|S8 | 564 / +---+ \ +---+\ /+---+ 565 +---+ / \ +---+ +---+ / 566 |S9 |-------------|S10|--------------|S11|/ 567 +---+ +---+ +---+ 568 Native TE Topology 570 Figure 4: Abstract TE Topology 572 4. Model Applicability 574 4.1. Native TE Topologies 576 The model discussed in this draft can be used to represent and 577 retrieve native TE topologies on a given TE system. 579 +---+ +---+ +---+ +---+ +---+ 580 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 581 +---+ +---+ +---+ +---+ +---+ 582 | / \ / \ / 583 | / \ / \ / 584 | / \ / \ / 585 | / \ / \ / 586 | / \ / \ / 587 +---+ +---+ +---+ +---+ 588 | R6|-------------| R7| | R8|---------| R9| 589 +---+ +---+ +---+ +---+ 591 Figure 5a: Example Network Topology 593 Consider the network topology depicted in Figure 5a (R1 .. R9 are 594 nodes representing routers). An implementation MAY choose to 595 construct a native TE Topology using all nodes and links present in 596 the given TED as depicted in Figure 5b. The data model proposed in 597 this document can be used to retrieve/represent this TE topology. 599 --------------- 600 | Native | | [ ] TE Node 601 | TE-Topology | | +++ TE Link 602 --------------- o-------------- 604 [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] 605 + + + + + + 606 + + + + + + 607 + + ++ ++ 608 [R6] +++++++++ [R7] [R8] ++++ [R9] 610 Figure 5b: Native TE Topology as seen on Node R3 612 Consider the case of the topology being split in a way that some 613 nodes participate in OSPF-TE while others participate in ISIS-TE 614 (Figure 6a). An implementation MAY choose to construct separate TE 615 Topologies based on the information source. The native TE Topologies 616 constructed using only nodes and links that were learnt via a 617 specific information source are depicted in Figure 6b. The data model 618 proposed in this document can be used to retrieve/represent these TE 619 topologies. 621 Similarly, the data model can be used to represent/retrieve a TE 622 Topology that is constructed using only nodes and links that belong 623 to a particular technology layer. The data model is flexible enough 624 to retrieve and represent many such native TE Topologies. 626 : 627 TE info distributed via ISIS-TE : TE info distributed via OSPF-TE 628 : 629 +---+ +---+ +---+ +---+ +---+ 630 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 631 +---+ +---+ +---+ +---+ +---+ 632 | / : \ / \ / 633 | / : \ / \ / 634 | / : \ / \ / 635 | / : \ / \ / 636 | / : \ / \ / 637 +---+ +---+ : +---+ +---+ 638 | R6|-------------| R7| : | R8|---------| R9| 639 +---+ +---+ : +---+ +---+ 640 : 642 Figure 6a: Example Network Topology 644 ----------------------- : ----------------------- 645 |Native TE Topology | : |Native TE Topology | 646 |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | 647 ----------------------- : ----------------------- 648 : 649 [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] 650 + + : + + + + 651 + + : + + + + 652 + + : ++ ++ 653 [R6] +++++++++ [R7] : [R8] ++++ [R9] 655 Figure 6b: Native TE Topologies as seen on Node R3 657 4.2. Customized TE Topologies 659 The model discussed in this draft can be used to represent, retrieve 660 and manipulate customized TE Topologies. The model allows the 661 provider to present the network in abstract TE Terms on a per client 662 basis. These customized topologies contain sufficient information for 663 the path computing client to select paths according to its policies. 665 | +---+ /-\ 666 | | | Router ( ) WDM 667 | +---+ Node \-/ node 668 | 669 o---------------------------- 671 +---+ /-\ /-\ /-\ +---+ 672 | R1|-------( A )--------( C )---------( E )---------| R3| 673 +---+ \-/ \-/ \-/ +---+ 674 / \ / \ 675 / \ / \ 676 / \ / \ 677 / \ / \ 678 / \ / \ 679 +---+ /-\ /-\ /-\ +---+ 680 | R2|---------( B )---------( D )---------( F )---------| R4| 681 +---+ \-/ \-/ \-/ +---+ 683 Figure 7: Example packet optical topology 685 Consider the network topology depicted in Figure 7. This is a typical 686 packet optical transport deployment scenario where the WDM layer 687 network domain serves as a Server Network Domain providing transport 688 connectivity to the packet layer network Domain (Client Network 689 Domain). Nodes R1, R2, R3 and R4 are IP routers that are connected to 690 an Optical WDM transport network. A, B, C, D, E and F are WDM nodes 691 that constitute the Server Network Domain. 693 | ***** B-F WDM Path 694 | @@@@@ B-E WDM Path 695 | $$$$$ A-E WDM Path 696 o-------------------- 698 +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ 699 | R1|-------( A )--------( C )---------( E )---------| R3| 700 +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ 701 @/ \ / \ 702 @/ \ / \ 703 @/ \ / \ 704 @/ \ / \ 705 @/ \ / \ 706 +---+ /-\ ********* /-\ ********* /-\ +---+ 707 | R2|---------( B )---------( D )---------( F )---------| R4| 708 +---+ \-/ \-/ \-/ +---+ 710 Figure 8a: Paths within the provider domain 711 ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ 712 +++++ 713 ++++ 714 ++++ 715 ++++ 716 ++++ 717 ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ 719 Figure 8b: Customized TE Topology provided to the Client 721 The goal here is to augment the Client TE Topology with a customized 722 TE Topology provided by the WDM network. Given the availability of 723 the paths A-E, B-F and B-E (Figure 8a), a customized TE Topology as 724 depicted in Figure 8b is provided to the Client. This customized TE 725 Topology is merged with the Client's Native TE Topology and the 726 resulting topology is depicted in Figure 8c. 728 [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] 729 +++++ 730 ++++ 731 ++++ 732 ++++ 733 ++++ 734 [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] 736 Figure 8c: Customized TE Topology merged with the Client's Native TE 737 Topology 739 The data model proposed in this document can be used to 740 retrieve/represent/manipulate the customized TE Topology depicted in 741 Figure 8b. 743 4.3. Merging TE Topologies Provided by Multiple Providers 745 A client may receive TE topologies provided by multiple providers, 746 each of which managing a separate domain of multi-domain network. In 747 order to make use of said topologies, the client is expected to merge 748 the provided TE topologies into one or more client's native TE 749 topologies, each of which homogeneously representing the multi-domain 750 network. This makes it possible for the client to select end-to-end 751 TE paths for its services traversing multiple domains. 753 In particular, the process of merging TE topologies includes: 755 - Identifying neighboring domains and locking their topologies 756 horizontally by connecting their inter-domain open-ended TE links; 757 - Renaming TE node, link, and SRLG IDs to ones allocated from a 758 separate name space; this is necessary because all TE topologies 759 are considered to be, generally speaking, independent with a 760 possibility of clashes among TE node, link or SRLG IDs; 761 - Locking, vertically, TE topologies associated with different layer 762 networks, according to provided topology inter-layer locks; this is 763 to facilitate inter-layer path computations across multiple TE 764 topologies provided by the same topology provider. 766 /---\ +---+ +---+ +---+ +---+ /---\ 767 |s3 |------|S13|----|S15|------|S23|----|S25|------|C21| 768 \---/ +---+\ +---+ +---+ /+---+ \---/ 769 \ / 770 \ / 771 \+---+ +---+/ +---+ /---\ 772 |S18|------|S24| |S28|------|C22| 773 +---+ +---+\ /+---+ \---/ 774 \/ 775 /\ 776 /---\ +---+ +---+ +---+/ \+---+ /---\ 777 |C12|------|S19|----|S17|------|S29|----|S27|------|C23| 778 \---/ +---+ +---+ +---+ +---+ \---/ 780 Domain 1 TE Topology Domain 2 TE Topology 782 +---+ +---+ +---+ +---+ 783 -----|S13|----|S15|---- ----|S23|----|S25|---- 784 +---+\ +---+ +---+ /+---+ 785 \ / 786 \ / 787 \+---+ +---+/ +---+ 788 |S18|---- ----|S24| |S28|---- 789 +---+ +---+\ /+---+ 790 \/ 791 /\ 792 +---+ +---+ +---+/ \+---+ 793 -----|S19|----|S17|---- ----|S29|----|S27|---- 794 +---+ +---+ +---+ +---+ 796 Figure 9: Merging Domain TE Topologies 798 Figure 9 illustrates the process of merging, by the client, of TE 799 topologies provided by the client's providers. In the Figure, each of 800 the two providers caters to the client (abstract or native) TE 801 topology, describing the network domain under the respective 802 provider's control. The client, by consulting the attributes of the 803 inter-domain TE links - such as inter-domain plug IDs or remote TE 804 node/link IDs (as defined by the TE Topology model) - is able to 805 determine that: 807 a) the two domains are adjacent and are inter-connected via three 808 inter-domain TE links, and; 810 b) each domain is connected to a separate customer site, connecting 811 the left domain in the Figure to customer devices C-11 and C-12, 812 and the right domain to customer devices C-21, C-22 and C-23. 814 Therefore, the client inter-connects the open-ended TE links, as 815 shown on the upper part of the Figure. 817 As mentioned, one way to inter-connect the open-ended inter-domain TE 818 links of neighboring domains is to mandate the providers to specify 819 remote nodeID/linkID attribute in the provided inter-domain TE links. 820 This, however, may prove to be not flexible. For example, the 821 providers may not know the respective remote nodeIDs/ linkIDs. More 822 importantly, this option does not allow for the client to mix-n-match 823 multiple (more than one) topologies catered by the same providers 824 (see below). Another, more flexible, option to resolve the open-ended 825 inter-domain TE links is by decorating them with the inter-domain 826 plug ID attribute. Inter-domain plug ID is a network-wide unique 827 number that identifies on the network a connectivity supporting a 828 given inter-domain TE link. Instead of specifying remote node ID/link 829 ID, an inter-domain TE link may provide a non-zero inert-domain plug 830 ID. It is expected that two neighboring domain TE topologies 831 (provided by separate providers) will have each at least one open- 832 ended inter-domain TE link with an inter-domain plug ID matching to 833 one provided by its neighbor. For example, the inter-domain TE link 834 originating from node S5 of the Domain 1 TE topology (Figure 1) and 835 the inter-domain TE link coming from node S3 of Domain2 TE topology 836 may specify matching inter-domain plug ID (e.g. 175344) This allows 837 for the client to identify adjacent nodes in the separate neighboring 838 TE topologies and resolve the inter-domain TE links connecting them 839 regardless of their respective nodeIDs/linkIDs (which, as mentioned, 840 could be allocated from independent name spaces). Inter-domain plug 841 IDs may be assigned and managed by a central network authority. 842 Alternatively, inter-domain plug IDs could be dynamically auto- 843 discovered (e.g. via LMP protocol). 845 Furthermore, the client renames the TE nodes, links and SRLGs offered 846 in the abstract TE topologies by assigning to them IDs allocated from 847 a separate name space managed by the client. Such renaming is 848 necessary, because the two abstract TE topologies may have their own 849 name spaces, generally speaking, independent one from another; hence, 850 ID overlaps/clashes are possible. For example, both TE topologies 851 have TE nodes named S7, which, after renaming, appear in the merged 852 TE topology as S17 and S27, respectively. 854 Once the merging process is complete, the client can use the merged 855 TE topology for path computations across both domains, for example, 856 to compute a TE path connecting C-11 to C-23. 858 4.4. Dealing with Multiple Abstract TE Topologies Provided by the Same 859 Provider 861 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 863 +---+ +---+ +---+ +---+ 864 -----|S13|----|S15|---- ----|S23|----|S25|---- 865 +---+\ +---+ +---+ /+---+ 866 \ / 867 \ / 868 \+---+ +---+/ +---+ 869 |S18|---- ----|S24| |S28|---- 870 +---+ +---+\ /+---+ 871 \/ 872 /\ 873 +---+ +---+ +---+/ \+---+ 874 -----|S19|----|S17|---- ----|S29|----|S27|---- 875 +---+ +---+ +---+ +---+ 877 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 879 +------------+ +------------+ 880 -----| |---- ----| |---- 881 | | | | 882 | AN1 |---- ----| AN1 |---- 883 | | | | 884 -----| |---- ----| |---- 885 +------------+ +------------+ 887 Figure 10: Merging Domain TE Topologies 889 Based on local configuration, templates and/or policies pushed by the 890 client, a given provider may expose more than one abstract TE 891 topology to the client. For example, one abstract TE topology could 892 be optimized based on a lowest-cost criterion, while another one 893 could be based on best possible delay metrics, while yet another one 894 could be based on maximum bandwidth availability for the client 895 services. Furthermore, the client may request all or some providers 896 to expose additional abstract TE topologies, possibly of a different 897 type and/or optimized differently, as compared to already-provided TE 898 topologies. In any case, the client should be prepared for a provider 899 to offer to the client more than one abstract TE topology. 901 It should be up to the client (based on the client's local 902 configuration and/or policies conveyed to the client by the client's 903 clients) to decide how to mix-and-match multiple abstract TE 904 topologies provided by each or some of the providers, as well as how 905 to merge them into the client's native TE topologies. The client also 906 decides how many such merged TE topologies it needs to produce and 907 maintain. For example, in addition to the merged TE topology depicted 908 in the upper part of Figure 1, the client may merge the abstract TE 909 topologies received from the two providers, as shown in Figure 10, 910 into the client's additional native TE topologies, as shown in Figure 911 11. 913 Note that allowing for the client mix-n-matching of multiple TE 914 topologies assumes that inter-domain plug IDs (rather than remote 915 nodeID/linkID) option is used for identifying neighboring domains and 916 inter-domain TE link resolution. 918 Client's Merged TE Topology 2 920 /---\ +------------+ +------------+ /---\ 921 |s3 |------| |------| |------|C21| 922 \---/ | | | | \---/ 923 | | | | 924 | | | | 925 | | | | /---\ 926 | AN11 |------| AN21 |------|C22| 927 | | | | \---/ 928 | | | | 929 | | | | 930 /---\ | | | | /---\ 931 |C12|------| |------| |------|C23| 932 \---/ +------------+ +------------+ \---/ 934 Client's Merged TE Topology 3 936 /---\ +------------+ +---+ +---+ /---\ 937 |s3 |------| |------|S23|----|S25|------|C21| 938 \---/ | | +---+ /+---+ \---/ 939 | | / 940 | | / 941 | | +---+/ +---+ /---\ 942 | AN11 |------|S24| |S28|------|C22| 943 | | +---+\ /+---+ \---/ 944 | | \/ 945 | | /\ 946 /---\ | | +---+/ \+---+ /---\ 947 |C12|------| |------|S29|----|S27|------|C23| 948 \---/ +------------+ +---+ +---+ \---/ 950 Figure 11: Multiple Native (Merged) Client's TE Topologies 952 It is important to note that each of the three native (merged) TE 953 topologies could be used by the client for computing TE paths for any 954 of the multi-domain services. The choice as to which topology to use 955 for a given service depends on the service parameters/requirements 956 and the topology's style, optimization criteria and the level of 957 details. 959 5. Modeling Considerations 961 5.1. Generic network topology building blocks 963 The generic network topology building blocks are discussed in [YANG- 964 NET-TOPO]. The TE Topology model proposed in this document augments 965 and uses the ietf-network-topology module defined in [YANG-NET-TOPO]. 967 +------------------------+ 968 | Generic | 969 | Network Topology Model | 970 | (ietf-network-topology)| 971 +------------------------+ 972 | 973 | 974 | 975 V 976 +------------------------+ 977 | TE Topology | 978 | Model | 979 | | 980 +------------------------+ 982 Figure 12: Augmenting the Generic Network Topology Model 984 5.2. Technology agnostic TE Topology model 986 The TE Topology model proposed in this document is meant to be 987 technology agnostic. Other technology specific TE Topology models can 988 augment and use the building blocks provided by the proposed model. 990 +-------------------+ 991 | Generic | 992 | TE Topology Model | 993 +-------------------+ 994 | 995 +-------------+-------------+-------------+ 996 | | | | 997 V V V V 998 +------------+ +------------+ 999 | Technology | | Technology | 1000 | Specific | ...................... | Specific | 1001 | TE Topology| | TE Topology| 1002 | Model 1 | | Model n | 1003 +------------+ +------------+ 1005 Figure 13: Augmenting the Technology agnostic TE Topology model 1007 5.3. Model Structure 1009 The high-level model structure proposed by this document is as shown 1010 below: 1012 module: ietf-te-topology 1013 augment /nw:networks/nw:network/nw:network-types: 1014 +--rw te-topology! 1016 augment /nw:networks: 1017 +--rw te! 1018 +--rw templates 1019 +--rw node-template* [name] {template}? 1020 | ............ 1021 +--rw link-template* [name] {template}? 1022 ............ 1024 augment /nw:networks/nw:network: 1025 +--rw te! 1026 +--rw provider-id te-global-id 1027 +--rw client-id te-global-id 1028 +--rw te-topology-id te-topology-id 1029 +--rw config 1030 | ............ 1031 +--ro state 1032 ............ 1034 augment /nw:networks/nw:network/nw:node: 1035 +--rw te! 1036 +--rw te-node-id te-node-id 1037 +--rw config 1038 | ............ 1039 +--ro state 1040 | ............ 1041 +--rw tunnel-termination-point* [tunnel-tp-id] 1042 +--rw tunnel-tp-id binary 1043 +--rw config 1044 | ............ 1045 +--ro state 1047 augment /nw:networks/nw:network/nt:link: 1048 +--rw te! 1049 +--rw config 1050 | .......... 1051 +--ro state 1052 .......... 1054 augment /nw:networks/nw:network/nw:node/nt:termination-point: 1055 +--rw te! 1056 +--rw te-tp-id te-tp-id 1057 +--rw config 1058 | ............ 1059 +--ro state 1060 ............ 1062 notifications: 1063 +---n te-node-event 1064 | ............ 1065 +---n te-link-event 1066 ............ 1068 5.4. Topology Identifiers 1070 The TE-Topology is uniquely identified by a key that has 3 1071 constituents - te-topology-id, provider-id and client-id. The 1072 combination of provider-id and te-topology-id uniquely identifies a 1073 native TE Topology on a given provider. The client-id is used only 1074 when Customized TE Topologies come into play; a value of "0" is used 1075 as the client-id for native TE Topologies. 1077 augment /nw:networks/nw:network: 1078 +--rw te! 1079 +--rw provider-id te-global-id 1080 +--rw client-id te-global-id 1081 +--rw te-topology-id te-topology-id 1083 5.5. Generic TE Link Attributes 1085 The model covers the definitions for generic TE Link attributes - 1086 bandwidth, admin groups, SRLGs, switching capabilities, TE metric 1087 extensions etc. 1089 +--rw te-link-attributes 1090 ..................... 1091 +--rw admin-status? te-admin-status 1092 +--rw performance-metric-throttle {te-performance-metric}? 1093 | ..................... 1094 +--rw link-index? uint64 1095 +--rw administrative-group? te-types:admin-groups 1096 +--rw max-link-bandwidth? decimal64 1097 +--rw max-resv-link-bandwidth? decimal64 1098 +--rw unreserved-bandwidth* [priority] 1099 | ..................... 1100 +--rw te-default-metric? uint32 1101 +--rw performance-metric {te-performance-metric}? 1102 | ..................... 1103 +--rw link-protection-type? enumeration 1104 +--rw interface-switching-capability* [switching-capability] 1105 | ..................... 1106 +--rw te-srlgs 1107 ..................... 1109 5.6. Generic TE Node Attributes 1111 The model covers the definitions for generic TE Node attributes. 1113 The definition of a generic connectivity matrix is shown below: 1115 +--rw te-node-attributes 1116 ........... 1117 +--rw connectivity-matrix* [id] 1118 | +--rw id uint32 1119 | +--rw from 1120 | | +--rw tp-ref? leafref 1121 | +--rw to 1122 | | +--rw tp-ref? leafref 1123 | +--rw is-allowed? boolean 1125 The definition of a TTP Local Link Connectivity List is shown below: 1127 +--rw tunnel-termination-point* [tunnel-tp-id] 1128 +--rw tunnel-tp-id binary 1129 +--rw config 1130 | +--rw termination-capability* [link-tp] 1131 | +--rw link-tp leafref 1132 +--ro state 1133 +--ro termination-capability* [link-tp] 1134 | +--ro link-tp leafref 1135 +--ro switching-capability identityref 1136 +--ro encoding identityref 1138 5.7. TED Information Sources 1140 The model allows each TE topological element to have multiple TE 1141 information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, 1142 System-Processed, Other). Each information source is associated with 1143 a credibility preference to indicate precedence. In scenarios where a 1144 customized TE Topology is merged into a Client's native TE Topology, 1145 the merged topological elements would point to the corresponding 1146 customized TE Topology as its information source. 1148 augment /nw:networks/nw:network/nw:node: 1149 +--rw te! 1150 ........... 1151 +--ro state 1152 ........ 1153 +--ro information-source? enumeration 1154 +--ro information-source-state 1155 +--ro credibility-preference? uint16 1156 +--ro topology 1157 | +--ro provider-id-ref? leafref 1158 | +--ro client-id-ref? leafref 1159 | +--ro te-topology-id-ref? leafref 1160 | +--ro network-id-ref? leafref 1161 +--ro routing-instance? string 1163 augment /nw:networks/nw:network/nt:link: 1164 +--rw te! 1165 ........... 1166 +--ro state 1167 ......... 1168 +--ro information-source? enumeration 1169 +--ro information-source-state 1170 | +--ro credibility-preference? uint16 1171 | +--ro topology 1172 | | +--ro provider-id-ref? leafref 1173 | | +--ro client-id-ref? leafref 1174 | | +--ro te-topology-id-ref? leafref 1175 | | +--ro network-id-ref? leafref 1176 | +--ro routing-instance? string 1177 +--ro alt-information-sources* [information-source] 1178 | ............ 1180 5.8. Overlay/Underlay Relationship 1182 The model captures overlay and underlay relationship for TE 1183 nodes/links. For example - in networks where multiple TE Topologies 1184 are built hierarchically, this model allows the user to start from a 1185 specific topological element in the top most topology and traverse 1186 all the way down to the supporting topological elements in the bottom 1187 most topology. 1189 This relationship is captured via the "underlay-topology" field for 1190 the node and via the "underlay" field for the link. The use of these 1191 fields is optional and this functionality is tagged as a "feature" 1192 ("te-topology-hierarchy"). 1194 augment /nw:networks/nw:network/nw:node: 1195 +--rw te! 1196 +--rw te-node-id te-node-id 1197 +--rw config 1198 | +--rw te-node-template* leafref {template}? 1199 | +--rw te-node-attributes 1200 | .................... 1201 | +--rw underlay-topology {te-topology-hierarchy}? 1202 | +--rw provider-id-ref? leafref 1203 | +--rw client-id-ref? leafref 1204 | +--rw te-topology-id-ref? leafref 1205 | +--rw network-id-ref? leafref 1207 augment /nw:networks/nw:network/nt:link: 1208 +--rw te! 1209 +--rw config 1210 | ......... 1211 | +--rw te-link-attributes 1212 | .................... 1213 | +--rw underlay! {te-topology-hierarchy}? 1214 | | +--rw underlay-primary-path 1215 | | | +--rw provider-id-ref? leafref 1216 | | | +--rw client-id-ref? leafref 1217 | | | +--rw te-topology-id-ref? leafref 1218 | | | +--rw network-id-ref? leafref 1219 | | | +--rw path-element* [path-element-id] 1220 | | | ............... 1221 | | +--rw underlay-backup-path* [index] 1222 | | | +--rw index uint32 1223 | | | +--rw provider-id-ref? leafref 1224 | | | +--rw client-id-ref? leafref 1225 | | | +--rw te-topology-id-ref? leafref 1226 | | | +--rw network-id-ref? leafref 1227 | | | +--rw path-element* [path-element-id] 1228 | | | ............... 1229 | | +--rw underlay-protection-type? uint16 1230 | | +--rw underlay-trail-src 1231 | | | ........... 1232 | | | +--rw network-ref? leafref 1233 | | +--rw underlay-trail-des 1234 | | ........... 1236 5.9. Scheduling Parameters 1238 The model allows time scheduling parameters to be specified for each 1239 topological element or for the topology as a whole. These parameters 1240 allow the provider to present different topological views to the 1241 client at different time slots. The use of "scheduling parameters" is 1242 optional and this functionality is tagged as a "feature" 1243 ("configuration-schedule"). The YANG data model for configuration 1244 scheduling is defined in [YANG-SCHEDULE] and imported by the TE 1245 Topology module. 1247 5.10. Templates 1249 The data model provides the users with the ability to define 1250 templates and apply them to link and node configurations. The use of 1251 "template" configuration is optional and this functionality is tagged 1252 as a "feature" ("template"). 1254 +--rw topology* [provider-id client-id te-topology-id] 1255 | ........... 1256 | +--rw node* [te-node-id] 1257 | | +--rw te-node-template? leafref {template}? 1258 | | .......... 1259 | +--rw link* [source-te-node-id source-te-link-id dest-te-node-id 1260 dest-te-link-id] 1261 | +--rw te-link-template? leafref {template}? 1262 | .......... 1264 +--rw node-template* [name] {template}? 1265 | +--rw name te-template-name 1266 | +--rw priority? uint16 1267 | +--rw reference-change-policy? enumeration 1268 | +--rw te-node-attributes 1269 | .......... 1270 +--rw link-template* [name] {template}? 1271 +--rw name te-template-name 1272 +--rw priority? uint16 1273 +--rw reference-change-policy? enumeration 1274 +--rw te-link-attributes 1275 .......... 1277 Multiple templates can be specified to a configuration element. When 1278 two or more templates specify values for the same configuration 1279 field, the value from the template with the highest priority is used. 1280 The reference-change-policy specifies the action that needs to be 1281 taken when the template changes on a configuration element that has a 1282 reference to this template. The choices of action include taking no 1283 action, rejecting the change to the template and applying the change 1284 to the corresponding configuration. [Editor's Note: The notion of 1285 "templates" has wider applicability. It is possible for this to be 1286 discussed in a separate document.] 1288 5.11. Notifications 1290 Notifications are a key component of any topology data model. 1292 [YANG-PUSH] defines a subscription and push mechanism for YANG 1293 datastores. This mechanism currently allows the user to: 1295 - Subscribe notifications on a per client basis 1296 - Specify subtree filters or xpath filters so that only interested 1297 contents will be sent. 1298 - Specify either periodic or on-demand notifications. 1300 The authors would like to recommend the use of this mechanism for the 1301 TE-Topology notifications. They would also like to suggest the 1302 following extensions to [YANG-PUSH] 1304 - Specify specific entities that will trigger the push 1305 notifications. These entities can be specified by xpath, like the 1306 way a filter is specified. 1308 - Specify or limit the triggering event type, e.g. "add", "delete", 1309 "modify", or "all". The system sends the push notifications only 1310 when such events happen on the triggering entities. 1312 - Have an option to request either "incremental" or "full" 1313 notifications for an entity. For "incremental", the notification 1314 will contain only the changed attributes. 1316 5.12. Open Items 1318 - Coordinating changes to [YANG-PUSH]: The changes to [YANG-PUSH] 1319 discussed in Section 4.10 will need to be coordinated with the 1320 authors of that draft. 1322 6. Tree Structure 1324 module: ietf-te-topology 1325 augment /nw:networks/nw:network/nw:network-types: 1326 +--rw te-topology! 1327 augment /nw:networks: 1328 +--rw te! 1329 +--rw templates 1330 +--rw node-template* [name] {template}? 1331 | +--rw name te-types:te-template- 1332 name 1333 | +--rw priority? uint16 1334 | +--rw reference-change-policy? enumeration 1335 | +--rw te-node-attributes 1336 | +--rw schedules 1337 | | +--rw schedule* [schedule-id] 1338 | | +--rw schedule-id uint32 1339 | | +--rw start? yang:date-and-time 1340 | | +--rw schedule-duration? string 1341 | | +--rw repeat-interval? string 1342 | +--rw admin-status? te-types:te-admin-status 1343 | +--rw domain-id? uint32 1344 | +--rw is-abstract? empty 1345 | +--rw name? inet:domain-name 1346 | +--rw signaling-address* inet:ip-address 1347 | +--rw underlay-topology {te-topology-hierarchy}? 1348 | +--rw provider-id-ref? leafref 1349 | +--rw client-id-ref? leafref 1350 | +--rw te-topology-id-ref? leafref 1351 | +--rw network-id-ref? leafref 1352 +--rw link-template* [name] {template}? 1353 +--rw name te-types:te-template- 1354 name 1355 +--rw priority? uint16 1356 +--rw reference-change-policy? enumeration 1357 +--rw te-link-attributes 1358 +--rw schedules 1359 | +--rw schedule* [schedule-id] 1360 | +--rw schedule-id uint32 1361 | +--rw start? yang:date-and-time 1362 | +--rw schedule-duration? string 1363 | +--rw repeat-interval? string 1364 +--rw access-type? te-types:te- 1365 link-access-type 1366 +--rw external-domain 1367 | +--rw remote-te-node-id? te-types:te-node-id 1368 | +--rw remote-te-link-tp-id? te-types:te-tp-id 1369 | +--rw plug-id? uint32 1370 +--rw is-abstract? empty 1371 +--rw name? string 1372 +--rw underlay! {te-topology-hierarchy}? 1373 | +--rw underlay-primary-path 1374 | | +--rw provider-id-ref? leafref 1375 | | +--rw client-id-ref? leafref 1376 | | +--rw te-topology-id-ref? leafref 1377 | | +--rw network-id-ref? leafref 1378 | | +--rw path-element* [path-element-id] 1379 | | +--rw path-element-id uint32 1380 | | +--rw (type)? 1381 | | +--:(ipv4-address) 1382 | | | +--rw v4-address? inet:ipv4- 1383 address 1384 | | | +--rw v4-prefix-length? uint8 1385 | | | +--rw v4-loose? boolean 1386 | | +--:(ipv6-address) 1387 | | | +--rw v6-address? inet:ipv6- 1388 address 1389 | | | +--rw v6-prefix-length? uint8 1390 | | | +--rw v6-loose? boolean 1391 | | +--:(as-number) 1392 | | | +--rw as-number? uint16 1393 | | +--:(unnumbered-link) 1394 | | | +--rw router-id? inet:ip- 1395 address 1396 | | | +--rw interface-id? uint32 1397 | | +--:(label) 1398 | | +--rw value? uint32 1399 | +--rw underlay-backup-path* [index] 1400 | | +--rw index uint32 1401 | | +--rw provider-id-ref? leafref 1402 | | +--rw client-id-ref? leafref 1403 | | +--rw te-topology-id-ref? leafref 1404 | | +--rw network-id-ref? leafref 1405 | | +--rw path-element* [path-element-id] 1406 | | +--rw path-element-id uint32 1407 | | +--rw (type)? 1408 | | +--:(ipv4-address) 1409 | | | +--rw v4-address? inet:ipv4- 1410 address 1411 | | | +--rw v4-prefix-length? uint8 1412 | | | +--rw v4-loose? boolean 1413 | | +--:(ipv6-address) 1414 | | | +--rw v6-address? inet:ipv6- 1415 address 1416 | | | +--rw v6-prefix-length? uint8 1417 | | | +--rw v6-loose? boolean 1418 | | +--:(as-number) 1419 | | | +--rw as-number? uint16 1420 | | +--:(unnumbered-link) 1421 | | | +--rw router-id? inet:ip- 1422 address 1423 | | | +--rw interface-id? uint32 1424 | | +--:(label) 1425 | | +--rw value? uint32 1426 | +--rw underlay-protection-type? uint16 1427 | +--rw underlay-trail-src 1428 | | +--rw tp-ref? leafref 1429 | | +--rw node-ref? leafref 1430 | | +--rw network-ref? leafref 1431 | +--rw underlay-trail-des 1432 | +--rw tp-ref? leafref 1433 | +--rw node-ref? leafref 1434 | +--rw network-ref? leafref 1435 +--rw admin-status? te-types:te- 1436 admin-status 1437 +--rw performance-metric-throttle {te-performance- 1438 metric}? 1439 | +--rw unidirectional-delay-offset? uint32 1440 | +--rw measure-interval? uint32 1441 | +--rw advertisement-interval? uint32 1442 | +--rw suppression-interval? uint32 1443 | +--rw threshold-out 1444 | | +--rw unidirectional-delay? 1445 uint32 1446 | | +--rw unidirectional-min-delay? 1447 uint32 1448 | | +--rw unidirectional-max-delay? 1449 uint32 1450 | | +--rw unidirectional-delay-variation? 1451 uint32 1452 | | +--rw unidirectional-packet-loss? 1453 decimal64 1454 | | +--rw unidirectional-residual-bandwidth? 1455 decimal64 1456 | | +--rw unidirectional-available-bandwidth? 1457 decimal64 1458 | | +--rw unidirectional-utilized-bandwidth? 1459 decimal64 1460 | +--rw threshold-in 1461 | | +--rw unidirectional-delay? 1462 uint32 1463 | | +--rw unidirectional-min-delay? 1464 uint32 1465 | | +--rw unidirectional-max-delay? 1466 uint32 1467 | | +--rw unidirectional-delay-variation? 1468 uint32 1469 | | +--rw unidirectional-packet-loss? 1470 decimal64 1471 | | +--rw unidirectional-residual-bandwidth? 1472 decimal64 1473 | | +--rw unidirectional-available-bandwidth? 1474 decimal64 1475 | | +--rw unidirectional-utilized-bandwidth? 1476 decimal64 1477 | +--rw threshold-accelerated-advertisement 1478 | +--rw unidirectional-delay? 1479 uint32 1480 | +--rw unidirectional-min-delay? 1481 uint32 1482 | +--rw unidirectional-max-delay? 1483 uint32 1484 | +--rw unidirectional-delay-variation? 1485 uint32 1486 | +--rw unidirectional-packet-loss? 1487 decimal64 1488 | +--rw unidirectional-residual-bandwidth? 1489 decimal64 1490 | +--rw unidirectional-available-bandwidth? 1491 decimal64 1492 | +--rw unidirectional-utilized-bandwidth? 1493 decimal64 1494 +--rw link-index? uint64 1495 +--rw administrative-group? te- 1496 types:admin-groups 1497 +--rw interface-switching-capability* [switching- 1498 capability] 1499 | +--rw switching-capability 1500 identityref 1501 | +--rw encoding? 1502 identityref 1503 | +--rw max-lsp-bandwidth* [priority] 1504 | | +--rw priority uint8 1505 | | +--rw bandwidth? decimal64 1506 | +--rw time-division-multiplex-capable 1507 | +--rw minimum-lsp-bandwidth? decimal64 1508 | +--rw indication? enumeration 1509 +--rw link-protection-type? enumeration 1510 +--rw max-link-bandwidth? decimal64 1511 +--rw max-resv-link-bandwidth? decimal64 1512 +--rw unreserved-bandwidth* [priority] 1513 | +--rw priority uint8 1514 | +--rw bandwidth? decimal64 1515 +--rw te-default-metric? uint32 1516 +--rw performance-metric {te-performance-metric}? 1517 | +--rw measurement 1518 | | +--rw unidirectional-delay? 1519 uint32 1520 | | +--rw unidirectional-min-delay? 1521 uint32 1522 | | +--rw unidirectional-max-delay? 1523 uint32 1524 | | +--rw unidirectional-delay-variation? 1525 uint32 1526 | | +--rw unidirectional-packet-loss? 1527 decimal64 1528 | | +--rw unidirectional-residual-bandwidth? 1529 decimal64 1530 | | +--rw unidirectional-available-bandwidth? 1531 decimal64 1532 | | +--rw unidirectional-utilized-bandwidth? 1533 decimal64 1534 | +--rw normality 1535 | +--rw unidirectional-delay? te- 1536 types:performance-metric-normality 1537 | +--rw unidirectional-min-delay? te- 1538 types:performance-metric-normality 1539 | +--rw unidirectional-max-delay? te- 1540 types:performance-metric-normality 1541 | +--rw unidirectional-delay-variation? te- 1542 types:performance-metric-normality 1543 | +--rw unidirectional-packet-loss? te- 1544 types:performance-metric-normality 1545 | +--rw unidirectional-residual-bandwidth? te- 1546 types:performance-metric-normality 1547 | +--rw unidirectional-available-bandwidth? te- 1548 types:performance-metric-normality 1549 | +--rw unidirectional-utilized-bandwidth? te- 1550 types:performance-metric-normality 1551 +--rw te-srlgs 1552 +--rw value* te-types:srlg 1553 augment /nw:networks/nw:network: 1554 +--rw te! 1555 +--rw provider-id te-types:te-global-id 1556 +--rw client-id te-types:te-global-id 1557 +--rw te-topology-id te-types:te-topology-id 1558 +--rw config 1559 | +--rw schedules 1560 | | +--rw schedule* [schedule-id] 1561 | | +--rw schedule-id uint32 1562 | | +--rw start? yang:date-and-time 1563 | | +--rw schedule-duration? string 1564 | | +--rw repeat-interval? string 1565 | +--rw preference? uint8 1566 | +--rw optimization-criterion? identityref 1567 +--ro state 1568 +--ro schedules 1569 | +--ro schedule* [schedule-id] 1570 | +--ro schedule-id uint32 1571 | +--ro start? yang:date-and-time 1572 | +--ro schedule-duration? string 1573 | +--ro repeat-interval? string 1574 +--ro preference? uint8 1575 +--ro optimization-criterion? identityref 1576 augment /nw:networks/nw:network/nw:node: 1577 +--rw te! 1578 +--rw te-node-id te-types:te-node-id 1579 +--rw config 1580 | +--rw te-node-template* leafref {template}? 1581 | +--rw te-node-attributes 1582 | +--rw schedules 1583 | | +--rw schedule* [schedule-id] 1584 | | +--rw schedule-id uint32 1585 | | +--rw start? yang:date-and-time 1586 | | +--rw schedule-duration? string 1587 | | +--rw repeat-interval? string 1588 | +--rw admin-status? te-types:te-admin-status 1589 | +--rw connectivity-matrix* [id] 1590 | | +--rw id uint32 1591 | | +--rw from 1592 | | | +--rw tp-ref? leafref 1593 | | +--rw to 1594 | | | +--rw tp-ref? leafref 1595 | | +--rw is-allowed? boolean 1596 | | +--rw label-restriction* [inclusive-exclusive label- 1597 start] 1598 | | | +--rw inclusive-exclusive enumeration 1599 | | | +--rw label-start te-types:generalized- 1600 label 1601 | | | +--rw label-end? te-types:generalized- 1602 label 1603 | | | +--rw range-bitmap? binary 1604 | | +--rw max-link-bandwidth? decimal64 1605 | | +--rw max-resv-link-bandwidth? decimal64 1606 | | +--rw unreserved-bandwidth* [priority] 1607 | | | +--rw priority uint8 1608 | | | +--rw bandwidth? decimal64 1609 | | +--rw te-default-metric? uint32 1610 | | +--rw performance-metric {te-performance-metric}? 1611 | | | +--rw measurement 1612 | | | | +--rw unidirectional-delay? 1613 uint32 1614 | | | | +--rw unidirectional-min-delay? 1615 uint32 1616 | | | | +--rw unidirectional-max-delay? 1617 uint32 1618 | | | | +--rw unidirectional-delay-variation? 1619 uint32 1620 | | | | +--rw unidirectional-packet-loss? 1621 decimal64 1622 | | | | +--rw unidirectional-residual-bandwidth? 1623 decimal64 1624 | | | | +--rw unidirectional-available-bandwidth? 1625 decimal64 1626 | | | | +--rw unidirectional-utilized-bandwidth? 1627 decimal64 1628 | | | +--rw normality 1629 | | | +--rw unidirectional-delay? te- 1630 types:performance-metric-normality 1631 | | | +--rw unidirectional-min-delay? te- 1632 types:performance-metric-normality 1633 | | | +--rw unidirectional-max-delay? te- 1634 types:performance-metric-normality 1635 | | | +--rw unidirectional-delay-variation? te- 1636 types:performance-metric-normality 1637 | | | +--rw unidirectional-packet-loss? te- 1638 types:performance-metric-normality 1639 | | | +--rw unidirectional-residual-bandwidth? te- 1640 types:performance-metric-normality 1641 | | | +--rw unidirectional-available-bandwidth? te- 1642 types:performance-metric-normality 1643 | | | +--rw unidirectional-utilized-bandwidth? te- 1644 types:performance-metric-normality 1645 | | +--rw te-srlgs 1646 | | +--rw value* te-types:srlg 1647 | +--rw domain-id? uint32 1648 | +--rw is-abstract? empty 1649 | +--rw name? inet:domain-name 1650 | +--rw signaling-address* inet:ip-address 1651 | +--rw underlay-topology {te-topology-hierarchy}? 1652 | +--rw provider-id-ref? leafref 1653 | +--rw client-id-ref? leafref 1654 | +--rw te-topology-id-ref? leafref 1655 | +--rw network-id-ref? leafref 1656 +--ro state 1657 | +--ro te-node-template* leafref {template}? 1658 | +--ro te-node-attributes 1659 | | +--ro schedules 1660 | | | +--ro schedule* [schedule-id] 1661 | | | +--ro schedule-id uint32 1662 | | | +--ro start? yang:date-and-time 1663 | | | +--ro schedule-duration? string 1664 | | | +--ro repeat-interval? string 1665 | | +--ro admin-status? te-types:te-admin-status 1666 | | +--ro connectivity-matrix* [id] 1667 | | | +--ro id uint32 1668 | | | +--ro from 1669 | | | | +--ro tp-ref? leafref 1670 | | | +--ro to 1671 | | | | +--ro tp-ref? leafref 1672 | | | +--ro is-allowed? boolean 1673 | | | +--ro label-restriction* [inclusive-exclusive label- 1674 start] 1675 | | | | +--ro inclusive-exclusive enumeration 1676 | | | | +--ro label-start te-types:generalized- 1677 label 1678 | | | | +--ro label-end? te-types:generalized- 1679 label 1680 | | | | +--ro range-bitmap? binary 1681 | | | +--ro max-link-bandwidth? decimal64 1682 | | | +--ro max-resv-link-bandwidth? decimal64 1683 | | | +--ro unreserved-bandwidth* [priority] 1684 | | | | +--ro priority uint8 1685 | | | | +--ro bandwidth? decimal64 1686 | | | +--ro te-default-metric? uint32 1687 | | | +--ro performance-metric {te-performance-metric}? 1688 | | | | +--ro measurement 1689 | | | | | +--ro unidirectional-delay? 1690 uint32 1691 | | | | | +--ro unidirectional-min-delay? 1692 uint32 1693 | | | | | +--ro unidirectional-max-delay? 1694 uint32 1695 | | | | | +--ro unidirectional-delay-variation? 1696 uint32 1697 | | | | | +--ro unidirectional-packet-loss? 1698 decimal64 1699 | | | | | +--ro unidirectional-residual-bandwidth? 1700 decimal64 1701 | | | | | +--ro unidirectional-available-bandwidth? 1702 decimal64 1703 | | | | | +--ro unidirectional-utilized-bandwidth? 1704 decimal64 1705 | | | | +--ro normality 1706 | | | | +--ro unidirectional-delay? te- 1707 types:performance-metric-normality 1708 | | | | +--ro unidirectional-min-delay? te- 1709 types:performance-metric-normality 1710 | | | | +--ro unidirectional-max-delay? te- 1711 types:performance-metric-normality 1712 | | | | +--ro unidirectional-delay-variation? te- 1713 types:performance-metric-normality 1714 | | | | +--ro unidirectional-packet-loss? te- 1715 types:performance-metric-normality 1716 | | | | +--ro unidirectional-residual-bandwidth? te- 1717 types:performance-metric-normality 1718 | | | | +--ro unidirectional-available-bandwidth? te- 1719 types:performance-metric-normality 1720 | | | | +--ro unidirectional-utilized-bandwidth? te- 1721 types:performance-metric-normality 1722 | | | +--ro te-srlgs 1723 | | | +--ro value* te-types:srlg 1724 | | +--ro domain-id? uint32 1725 | | +--ro is-abstract? empty 1726 | | +--ro name? inet:domain-name 1727 | | +--ro signaling-address* inet:ip-address 1728 | | +--ro underlay-topology {te-topology-hierarchy}? 1729 | | +--ro provider-id-ref? leafref 1730 | | +--ro client-id-ref? leafref 1731 | | +--ro te-topology-id-ref? leafref 1732 | | +--ro network-id-ref? leafref 1733 | +--ro oper-status? te-types:te-oper-status 1734 | +--ro is-multi-access-dr? empty 1735 | +--ro information-source? enumeration 1736 | +--ro information-source-state 1737 | | +--ro credibility-preference? uint16 1738 | | +--ro topology 1739 | | | +--ro provider-id-ref? leafref 1740 | | | +--ro client-id-ref? leafref 1741 | | | +--ro te-topology-id-ref? leafref 1742 | | | +--ro network-id-ref? leafref 1743 | | +--ro routing-instance? string 1744 | +--ro information-source-entry* [information-source] 1745 | +--ro information-source enumeration 1746 | +--ro information-source-state 1747 | | +--ro credibility-preference? uint16 1748 | | +--ro topology 1749 | | | +--ro provider-id-ref? leafref 1750 | | | +--ro client-id-ref? leafref 1751 | | | +--ro te-topology-id-ref? leafref 1752 | | | +--ro network-id-ref? leafref 1753 | | +--ro routing-instance? string 1754 | +--ro connectivity-matrix* [id] 1755 | | +--ro id uint32 1756 | | +--ro from 1757 | | | +--ro tp-ref? leafref 1758 | | +--ro to 1759 | | | +--ro tp-ref? leafref 1760 | | +--ro is-allowed? boolean 1761 | | +--ro label-restriction* [inclusive-exclusive label- 1762 start] 1763 | | | +--ro inclusive-exclusive enumeration 1764 | | | +--ro label-start te-types:generalized- 1765 label 1766 | | | +--ro label-end? te-types:generalized- 1767 label 1768 | | | +--ro range-bitmap? binary 1769 | | +--ro max-link-bandwidth? decimal64 1770 | | +--ro max-resv-link-bandwidth? decimal64 1771 | | +--ro unreserved-bandwidth* [priority] 1772 | | | +--ro priority uint8 1773 | | | +--ro bandwidth? decimal64 1774 | | +--ro te-default-metric? uint32 1775 | | +--ro performance-metric {te-performance-metric}? 1776 | | | +--ro measurement 1777 | | | | +--ro unidirectional-delay? 1778 uint32 1779 | | | | +--ro unidirectional-min-delay? 1780 uint32 1781 | | | | +--ro unidirectional-max-delay? 1782 uint32 1783 | | | | +--ro unidirectional-delay-variation? 1784 uint32 1785 | | | | +--ro unidirectional-packet-loss? 1786 decimal64 1787 | | | | +--ro unidirectional-residual-bandwidth? 1788 decimal64 1789 | | | | +--ro unidirectional-available-bandwidth? 1790 decimal64 1791 | | | | +--ro unidirectional-utilized-bandwidth? 1792 decimal64 1793 | | | +--ro normality 1794 | | | +--ro unidirectional-delay? te- 1795 types:performance-metric-normality 1796 | | | +--ro unidirectional-min-delay? te- 1797 types:performance-metric-normality 1798 | | | +--ro unidirectional-max-delay? te- 1799 types:performance-metric-normality 1800 | | | +--ro unidirectional-delay-variation? te- 1801 types:performance-metric-normality 1802 | | | +--ro unidirectional-packet-loss? te- 1803 types:performance-metric-normality 1804 | | | +--ro unidirectional-residual-bandwidth? te- 1805 types:performance-metric-normality 1806 | | | +--ro unidirectional-available-bandwidth? te- 1807 types:performance-metric-normality 1808 | | | +--ro unidirectional-utilized-bandwidth? te- 1809 types:performance-metric-normality 1810 | | +--ro te-srlgs 1811 | | +--ro value* te-types:srlg 1812 | +--ro domain-id? uint32 1813 | +--ro is-abstract? empty 1814 | +--ro name? inet:domain-name 1815 | +--ro signaling-address* inet:ip-address 1816 | +--ro underlay-topology {te-topology-hierarchy}? 1817 | +--ro provider-id-ref? leafref 1818 | +--ro client-id-ref? leafref 1819 | +--ro te-topology-id-ref? leafref 1820 | +--ro network-id-ref? leafref 1821 +--rw tunnel-termination-point* [tunnel-tp-id] 1822 +--rw tunnel-tp-id binary 1823 +--rw config 1824 | +--rw switching-capability? identityref 1825 | +--rw encoding? identityref 1826 | +--rw inter-layer-lock-id? uint32 1827 | +--rw protection-type? identityref 1828 | +--rw termination-capability* [link-tp] 1829 | +--rw link-tp leafref 1830 | +--rw label-restriction* [inclusive-exclusive label- 1831 start] 1832 | | +--rw inclusive-exclusive enumeration 1833 | | +--rw label-start te-types:generalized- 1834 label 1835 | | +--rw label-end? te-types:generalized- 1836 label 1837 | | +--rw range-bitmap? binary 1838 | +--rw max-lsp-bandwidth* [priority] 1839 | +--rw priority uint8 1840 | +--rw bandwidth? decimal64 1841 +--ro state 1842 +--ro switching-capability? identityref 1843 +--ro encoding? identityref 1844 +--ro inter-layer-lock-id? uint32 1845 +--ro protection-type? identityref 1846 +--ro termination-capability* [link-tp] 1847 +--ro link-tp leafref 1848 +--ro label-restriction* [inclusive-exclusive label- 1849 start] 1850 | +--ro inclusive-exclusive enumeration 1851 | +--ro label-start te-types:generalized- 1852 label 1853 | +--ro label-end? te-types:generalized- 1854 label 1855 | +--ro range-bitmap? binary 1856 +--ro max-lsp-bandwidth* [priority] 1857 +--ro priority uint8 1858 +--ro bandwidth? decimal64 1859 augment /nw:networks/nw:network/nt:link: 1860 +--rw te! 1861 +--rw config 1862 | +--rw (bundle-stack-level)? 1863 | | +--:(bundle) 1864 | | | +--rw bundled-links 1865 | | | +--rw bundled-link* [sequence] 1866 | | | +--rw sequence uint32 1867 | | | +--rw src-tp-ref? leafref 1868 | | | +--rw des-tp-ref? leafref 1869 | | +--:(component) 1870 | | +--rw component-links 1871 | | +--rw component-link* [sequence] 1872 | | +--rw sequence uint32 1873 | | +--rw src-interface-ref? string 1874 | | +--rw des-interface-ref? string 1875 | +--rw te-link-template* leafref {template}? 1876 | +--rw te-link-attributes 1877 | +--rw schedules 1878 | | +--rw schedule* [schedule-id] 1879 | | +--rw schedule-id uint32 1880 | | +--rw start? yang:date-and-time 1881 | | +--rw schedule-duration? string 1882 | | +--rw repeat-interval? string 1883 | +--rw access-type? te-types:te-link- 1884 access-type 1885 | +--rw external-domain 1886 | | +--rw remote-te-node-id? te-types:te-node-id 1887 | | +--rw remote-te-link-tp-id? te-types:te-tp-id 1888 | | +--rw plug-id? uint32 1889 | +--rw is-abstract? empty 1890 | +--rw name? string 1891 | +--rw underlay! {te-topology-hierarchy}? 1892 | | +--rw underlay-primary-path 1893 | | | +--rw provider-id-ref? leafref 1894 | | | +--rw client-id-ref? leafref 1895 | | | +--rw te-topology-id-ref? leafref 1896 | | | +--rw network-id-ref? leafref 1897 | | | +--rw path-element* [path-element-id] 1898 | | | +--rw path-element-id uint32 1899 | | | +--rw (type)? 1900 | | | +--:(ipv4-address) 1901 | | | | +--rw v4-address? inet:ipv4- 1902 address 1903 | | | | +--rw v4-prefix-length? uint8 1904 | | | | +--rw v4-loose? boolean 1905 | | | +--:(ipv6-address) 1906 | | | | +--rw v6-address? inet:ipv6- 1907 address 1908 | | | | +--rw v6-prefix-length? uint8 1909 | | | | +--rw v6-loose? boolean 1910 | | | +--:(as-number) 1911 | | | | +--rw as-number? uint16 1912 | | | +--:(unnumbered-link) 1913 | | | | +--rw router-id? inet:ip-address 1914 | | | | +--rw interface-id? uint32 1915 | | | +--:(label) 1916 | | | +--rw value? uint32 1917 | | +--rw underlay-backup-path* [index] 1918 | | | +--rw index uint32 1919 | | | +--rw provider-id-ref? leafref 1920 | | | +--rw client-id-ref? leafref 1921 | | | +--rw te-topology-id-ref? leafref 1922 | | | +--rw network-id-ref? leafref 1923 | | | +--rw path-element* [path-element-id] 1924 | | | +--rw path-element-id uint32 1925 | | | +--rw (type)? 1926 | | | +--:(ipv4-address) 1927 | | | | +--rw v4-address? inet:ipv4- 1928 address 1929 | | | | +--rw v4-prefix-length? uint8 1930 | | | | +--rw v4-loose? boolean 1931 | | | +--:(ipv6-address) 1932 | | | | +--rw v6-address? inet:ipv6- 1933 address 1934 | | | | +--rw v6-prefix-length? uint8 1935 | | | | +--rw v6-loose? boolean 1936 | | | +--:(as-number) 1937 | | | | +--rw as-number? uint16 1938 | | | +--:(unnumbered-link) 1939 | | | | +--rw router-id? inet:ip-address 1940 | | | | +--rw interface-id? uint32 1941 | | | +--:(label) 1942 | | | +--rw value? uint32 1943 | | +--rw underlay-protection-type? uint16 1944 | | +--rw underlay-trail-src 1945 | | | +--rw tp-ref? leafref 1946 | | | +--rw node-ref? leafref 1947 | | | +--rw network-ref? leafref 1948 | | +--rw underlay-trail-des 1949 | | +--rw tp-ref? leafref 1950 | | +--rw node-ref? leafref 1951 | | +--rw network-ref? leafref 1952 | +--rw admin-status? te-types:te- 1953 admin-status 1954 | +--rw performance-metric-throttle {te-performance- 1955 metric}? 1956 | | +--rw unidirectional-delay-offset? uint32 1957 | | +--rw measure-interval? uint32 1958 | | +--rw advertisement-interval? uint32 1959 | | +--rw suppression-interval? uint32 1960 | | +--rw threshold-out 1961 | | | +--rw unidirectional-delay? uint32 1962 | | | +--rw unidirectional-min-delay? uint32 1963 | | | +--rw unidirectional-max-delay? uint32 1964 | | | +--rw unidirectional-delay-variation? uint32 1965 | | | +--rw unidirectional-packet-loss? 1966 decimal64 1967 | | | +--rw unidirectional-residual-bandwidth? 1968 decimal64 1969 | | | +--rw unidirectional-available-bandwidth? 1970 decimal64 1971 | | | +--rw unidirectional-utilized-bandwidth? 1972 decimal64 1973 | | +--rw threshold-in 1974 | | | +--rw unidirectional-delay? uint32 1975 | | | +--rw unidirectional-min-delay? uint32 1976 | | | +--rw unidirectional-max-delay? uint32 1977 | | | +--rw unidirectional-delay-variation? uint32 1978 | | | +--rw unidirectional-packet-loss? 1979 decimal64 1980 | | | +--rw unidirectional-residual-bandwidth? 1981 decimal64 1982 | | | +--rw unidirectional-available-bandwidth? 1983 decimal64 1984 | | | +--rw unidirectional-utilized-bandwidth? 1985 decimal64 1986 | | +--rw threshold-accelerated-advertisement 1987 | | +--rw unidirectional-delay? uint32 1988 | | +--rw unidirectional-min-delay? uint32 1989 | | +--rw unidirectional-max-delay? uint32 1990 | | +--rw unidirectional-delay-variation? uint32 1991 | | +--rw unidirectional-packet-loss? 1992 decimal64 1993 | | +--rw unidirectional-residual-bandwidth? 1994 decimal64 1995 | | +--rw unidirectional-available-bandwidth? 1996 decimal64 1997 | | +--rw unidirectional-utilized-bandwidth? 1998 decimal64 1999 | +--rw link-index? uint64 2000 | +--rw administrative-group? te-types:admin- 2001 groups 2002 | +--rw interface-switching-capability* [switching- 2003 capability] 2004 | | +--rw switching-capability identityref 2005 | | +--rw encoding? identityref 2006 | | +--rw max-lsp-bandwidth* [priority] 2007 | | | +--rw priority uint8 2008 | | | +--rw bandwidth? decimal64 2009 | | +--rw time-division-multiplex-capable 2010 | | +--rw minimum-lsp-bandwidth? decimal64 2011 | | +--rw indication? enumeration 2012 | +--rw link-protection-type? enumeration 2013 | +--rw max-link-bandwidth? decimal64 2014 | +--rw max-resv-link-bandwidth? decimal64 2015 | +--rw unreserved-bandwidth* [priority] 2016 | | +--rw priority uint8 2017 | | +--rw bandwidth? decimal64 2018 | +--rw te-default-metric? uint32 2019 | +--rw performance-metric {te-performance-metric}? 2020 | | +--rw measurement 2021 | | | +--rw unidirectional-delay? uint32 2022 | | | +--rw unidirectional-min-delay? uint32 2023 | | | +--rw unidirectional-max-delay? uint32 2024 | | | +--rw unidirectional-delay-variation? uint32 2025 | | | +--rw unidirectional-packet-loss? 2026 decimal64 2027 | | | +--rw unidirectional-residual-bandwidth? 2028 decimal64 2029 | | | +--rw unidirectional-available-bandwidth? 2030 decimal64 2031 | | | +--rw unidirectional-utilized-bandwidth? 2032 decimal64 2033 | | +--rw normality 2034 | | +--rw unidirectional-delay? te- 2035 types:performance-metric-normality 2036 | | +--rw unidirectional-min-delay? te- 2037 types:performance-metric-normality 2038 | | +--rw unidirectional-max-delay? te- 2039 types:performance-metric-normality 2040 | | +--rw unidirectional-delay-variation? te- 2041 types:performance-metric-normality 2042 | | +--rw unidirectional-packet-loss? te- 2043 types:performance-metric-normality 2044 | | +--rw unidirectional-residual-bandwidth? te- 2045 types:performance-metric-normality 2046 | | +--rw unidirectional-available-bandwidth? te- 2047 types:performance-metric-normality 2048 | | +--rw unidirectional-utilized-bandwidth? te- 2049 types:performance-metric-normality 2050 | +--rw te-srlgs 2051 | +--rw value* te-types:srlg 2052 +--ro state 2053 +--ro (bundle-stack-level)? 2054 | +--:(bundle) 2055 | | +--ro bundled-links 2056 | | +--ro bundled-link* [sequence] 2057 | | +--ro sequence uint32 2058 | | +--ro src-tp-ref? leafref 2059 | | +--ro des-tp-ref? leafref 2060 | +--:(component) 2061 | +--ro component-links 2062 | +--ro component-link* [sequence] 2063 | +--ro sequence uint32 2064 | +--ro src-interface-ref? string 2065 | +--ro des-interface-ref? string 2066 +--ro te-link-template* leafref {template}? 2067 +--ro te-link-attributes 2068 | +--ro schedules 2069 | | +--ro schedule* [schedule-id] 2070 | | +--ro schedule-id uint32 2071 | | +--ro start? yang:date-and-time 2072 | | +--ro schedule-duration? string 2073 | | +--ro repeat-interval? string 2074 | +--ro access-type? te-types:te-link- 2075 access-type 2076 | +--ro external-domain 2077 | | +--ro remote-te-node-id? te-types:te-node-id 2078 | | +--ro remote-te-link-tp-id? te-types:te-tp-id 2079 | | +--ro plug-id? uint32 2080 | +--ro is-abstract? empty 2081 | +--ro name? string 2082 | +--ro underlay! {te-topology-hierarchy}? 2083 | | +--ro underlay-primary-path 2084 | | | +--ro provider-id-ref? leafref 2085 | | | +--ro client-id-ref? leafref 2086 | | | +--ro te-topology-id-ref? leafref 2087 | | | +--ro network-id-ref? leafref 2088 | | | +--ro path-element* [path-element-id] 2089 | | | +--ro path-element-id uint32 2090 | | | +--ro (type)? 2091 | | | +--:(ipv4-address) 2092 | | | | +--ro v4-address? inet:ipv4- 2093 address 2094 | | | | +--ro v4-prefix-length? uint8 2095 | | | | +--ro v4-loose? boolean 2096 | | | +--:(ipv6-address) 2097 | | | | +--ro v6-address? inet:ipv6- 2098 address 2099 | | | | +--ro v6-prefix-length? uint8 2100 | | | | +--ro v6-loose? boolean 2101 | | | +--:(as-number) 2102 | | | | +--ro as-number? uint16 2103 | | | +--:(unnumbered-link) 2104 | | | | +--ro router-id? inet:ip-address 2105 | | | | +--ro interface-id? uint32 2106 | | | +--:(label) 2107 | | | +--ro value? uint32 2108 | | +--ro underlay-backup-path* [index] 2109 | | | +--ro index uint32 2110 | | | +--ro provider-id-ref? leafref 2111 | | | +--ro client-id-ref? leafref 2112 | | | +--ro te-topology-id-ref? leafref 2113 | | | +--ro network-id-ref? leafref 2114 | | | +--ro path-element* [path-element-id] 2115 | | | +--ro path-element-id uint32 2116 | | | +--ro (type)? 2117 | | | +--:(ipv4-address) 2118 | | | | +--ro v4-address? inet:ipv4- 2119 address 2120 | | | | +--ro v4-prefix-length? uint8 2121 | | | | +--ro v4-loose? boolean 2122 | | | +--:(ipv6-address) 2123 | | | | +--ro v6-address? inet:ipv6- 2124 address 2125 | | | | +--ro v6-prefix-length? uint8 2126 | | | | +--ro v6-loose? boolean 2127 | | | +--:(as-number) 2128 | | | | +--ro as-number? uint16 2129 | | | +--:(unnumbered-link) 2130 | | | | +--ro router-id? inet:ip-address 2131 | | | | +--ro interface-id? uint32 2132 | | | +--:(label) 2133 | | | +--ro value? uint32 2134 | | +--ro underlay-protection-type? uint16 2135 | | +--ro underlay-trail-src 2136 | | | +--ro tp-ref? leafref 2137 | | | +--ro node-ref? leafref 2138 | | | +--ro network-ref? leafref 2139 | | +--ro underlay-trail-des 2140 | | +--ro tp-ref? leafref 2141 | | +--ro node-ref? leafref 2142 | | +--ro network-ref? leafref 2143 | +--ro admin-status? te-types:te- 2144 admin-status 2145 | +--ro performance-metric-throttle {te-performance- 2146 metric}? 2147 | | +--ro unidirectional-delay-offset? uint32 2148 | | +--ro measure-interval? uint32 2149 | | +--ro advertisement-interval? uint32 2150 | | +--ro suppression-interval? uint32 2151 | | +--ro threshold-out 2152 | | | +--ro unidirectional-delay? uint32 2153 | | | +--ro unidirectional-min-delay? uint32 2154 | | | +--ro unidirectional-max-delay? uint32 2155 | | | +--ro unidirectional-delay-variation? uint32 2156 | | | +--ro unidirectional-packet-loss? 2157 decimal64 2158 | | | +--ro unidirectional-residual-bandwidth? 2159 decimal64 2160 | | | +--ro unidirectional-available-bandwidth? 2161 decimal64 2162 | | | +--ro unidirectional-utilized-bandwidth? 2163 decimal64 2164 | | +--ro threshold-in 2165 | | | +--ro unidirectional-delay? uint32 2166 | | | +--ro unidirectional-min-delay? uint32 2167 | | | +--ro unidirectional-max-delay? uint32 2168 | | | +--ro unidirectional-delay-variation? uint32 2169 | | | +--ro unidirectional-packet-loss? 2170 decimal64 2171 | | | +--ro unidirectional-residual-bandwidth? 2172 decimal64 2173 | | | +--ro unidirectional-available-bandwidth? 2174 decimal64 2175 | | | +--ro unidirectional-utilized-bandwidth? 2176 decimal64 2177 | | +--ro threshold-accelerated-advertisement 2178 | | +--ro unidirectional-delay? uint32 2179 | | +--ro unidirectional-min-delay? uint32 2180 | | +--ro unidirectional-max-delay? uint32 2181 | | +--ro unidirectional-delay-variation? uint32 2182 | | +--ro unidirectional-packet-loss? 2183 decimal64 2184 | | +--ro unidirectional-residual-bandwidth? 2185 decimal64 2186 | | +--ro unidirectional-available-bandwidth? 2187 decimal64 2188 | | +--ro unidirectional-utilized-bandwidth? 2189 decimal64 2190 | +--ro link-index? uint64 2191 | +--ro administrative-group? te-types:admin- 2192 groups 2193 | +--ro interface-switching-capability* [switching- 2194 capability] 2195 | | +--ro switching-capability identityref 2196 | | +--ro encoding? identityref 2197 | | +--ro max-lsp-bandwidth* [priority] 2198 | | | +--ro priority uint8 2199 | | | +--ro bandwidth? decimal64 2200 | | +--ro time-division-multiplex-capable 2201 | | +--ro minimum-lsp-bandwidth? decimal64 2202 | | +--ro indication? enumeration 2203 | +--ro link-protection-type? enumeration 2204 | +--ro max-link-bandwidth? decimal64 2205 | +--ro max-resv-link-bandwidth? decimal64 2206 | +--ro unreserved-bandwidth* [priority] 2207 | | +--ro priority uint8 2208 | | +--ro bandwidth? decimal64 2209 | +--ro te-default-metric? uint32 2210 | +--ro performance-metric {te-performance-metric}? 2211 | | +--ro measurement 2212 | | | +--ro unidirectional-delay? uint32 2213 | | | +--ro unidirectional-min-delay? uint32 2214 | | | +--ro unidirectional-max-delay? uint32 2215 | | | +--ro unidirectional-delay-variation? uint32 2216 | | | +--ro unidirectional-packet-loss? 2217 decimal64 2218 | | | +--ro unidirectional-residual-bandwidth? 2219 decimal64 2220 | | | +--ro unidirectional-available-bandwidth? 2221 decimal64 2222 | | | +--ro unidirectional-utilized-bandwidth? 2223 decimal64 2224 | | +--ro normality 2225 | | +--ro unidirectional-delay? te- 2226 types:performance-metric-normality 2227 | | +--ro unidirectional-min-delay? te- 2228 types:performance-metric-normality 2229 | | +--ro unidirectional-max-delay? te- 2230 types:performance-metric-normality 2231 | | +--ro unidirectional-delay-variation? te- 2232 types:performance-metric-normality 2233 | | +--ro unidirectional-packet-loss? te- 2234 types:performance-metric-normality 2235 | | +--ro unidirectional-residual-bandwidth? te- 2236 types:performance-metric-normality 2237 | | +--ro unidirectional-available-bandwidth? te- 2238 types:performance-metric-normality 2239 | | +--ro unidirectional-utilized-bandwidth? te- 2240 types:performance-metric-normality 2241 | +--ro te-srlgs 2242 | +--ro value* te-types:srlg 2243 +--ro oper-status? te-types:te-oper-status 2244 +--ro is-transitional? empty 2245 +--ro information-source? enumeration 2246 +--ro information-source-state 2247 | +--ro credibility-preference? uint16 2248 | +--ro topology 2249 | | +--ro provider-id-ref? leafref 2250 | | +--ro client-id-ref? leafref 2251 | | +--ro te-topology-id-ref? leafref 2252 | | +--ro network-id-ref? leafref 2253 | +--ro routing-instance? string 2254 +--ro information-source-entry* [information-source] 2255 | +--ro information-source enumeration 2256 | +--ro information-source-state 2257 | | +--ro credibility-preference? uint16 2258 | | +--ro topology 2259 | | | +--ro provider-id-ref? leafref 2260 | | | +--ro client-id-ref? leafref 2261 | | | +--ro te-topology-id-ref? leafref 2262 | | | +--ro network-id-ref? leafref 2263 | | +--ro routing-instance? string 2264 | +--ro link-index? uint64 2265 | +--ro administrative-group? te-types:admin- 2266 groups 2267 | +--ro interface-switching-capability* [switching- 2268 capability] 2269 | | +--ro switching-capability identityref 2270 | | +--ro encoding? identityref 2271 | | +--ro max-lsp-bandwidth* [priority] 2272 | | | +--ro priority uint8 2273 | | | +--ro bandwidth? decimal64 2274 | | +--ro time-division-multiplex-capable 2275 | | +--ro minimum-lsp-bandwidth? decimal64 2276 | | +--ro indication? enumeration 2277 | +--ro link-protection-type? enumeration 2278 | +--ro max-link-bandwidth? decimal64 2279 | +--ro max-resv-link-bandwidth? decimal64 2280 | +--ro unreserved-bandwidth* [priority] 2281 | | +--ro priority uint8 2282 | | +--ro bandwidth? decimal64 2283 | +--ro te-default-metric? uint32 2284 | +--ro performance-metric {te-performance-metric}? 2285 | | +--ro measurement 2286 | | | +--ro unidirectional-delay? uint32 2287 | | | +--ro unidirectional-min-delay? uint32 2288 | | | +--ro unidirectional-max-delay? uint32 2289 | | | +--ro unidirectional-delay-variation? uint32 2290 | | | +--ro unidirectional-packet-loss? 2291 decimal64 2292 | | | +--ro unidirectional-residual-bandwidth? 2293 decimal64 2294 | | | +--ro unidirectional-available-bandwidth? 2295 decimal64 2296 | | | +--ro unidirectional-utilized-bandwidth? 2297 decimal64 2298 | | +--ro normality 2299 | | +--ro unidirectional-delay? te- 2300 types:performance-metric-normality 2301 | | +--ro unidirectional-min-delay? te- 2302 types:performance-metric-normality 2303 | | +--ro unidirectional-max-delay? te- 2304 types:performance-metric-normality 2305 | | +--ro unidirectional-delay-variation? te- 2306 types:performance-metric-normality 2307 | | +--ro unidirectional-packet-loss? te- 2308 types:performance-metric-normality 2309 | | +--ro unidirectional-residual-bandwidth? te- 2310 types:performance-metric-normality 2311 | | +--ro unidirectional-available-bandwidth? te- 2312 types:performance-metric-normality 2313 | | +--ro unidirectional-utilized-bandwidth? te- 2314 types:performance-metric-normality 2315 | +--ro te-srlgs 2316 | +--ro value* te-types:srlg 2317 +--ro recovery 2318 | +--ro restoration-status? te-types:te-recovery-status 2319 | +--ro protection-status? te-types:te-recovery-status 2320 +--ro underlay {te-topology-hierarchy}? 2321 +--ro dynamic? boolean 2322 +--ro committed? boolean 2323 augment /nw:networks/nw:network/nw:node/nt:termination-point: 2324 +--rw te! 2325 +--rw te-tp-id te-types:te-tp-id 2326 +--rw config 2327 | +--rw schedules 2328 | | +--rw schedule* [schedule-id] 2329 | | +--rw schedule-id uint32 2330 | | +--rw start? yang:date-and-time 2331 | | +--rw schedule-duration? string 2332 | | +--rw repeat-interval? string 2333 | +--rw interface-switching-capability* [switching-capability] 2334 | | +--rw switching-capability identityref 2335 | | +--rw encoding? identityref 2336 | | +--rw max-lsp-bandwidth* [priority] 2337 | | | +--rw priority uint8 2338 | | | +--rw bandwidth? decimal64 2339 | | +--rw time-division-multiplex-capable 2340 | | +--rw minimum-lsp-bandwidth? decimal64 2341 | | +--rw indication? enumeration 2342 | +--rw inter-layer-lock-id? uint32 2343 +--ro state 2344 +--ro schedules 2345 | +--ro schedule* [schedule-id] 2346 | +--ro schedule-id uint32 2347 | +--ro start? yang:date-and-time 2348 | +--ro schedule-duration? string 2349 | +--ro repeat-interval? string 2350 +--ro interface-switching-capability* [switching-capability] 2351 | +--ro switching-capability identityref 2352 | +--ro encoding? identityref 2353 | +--ro max-lsp-bandwidth* [priority] 2354 | | +--ro priority uint8 2355 | | +--ro bandwidth? decimal64 2356 | +--ro time-division-multiplex-capable 2357 | +--ro minimum-lsp-bandwidth? decimal64 2358 | +--ro indication? enumeration 2359 +--ro inter-layer-lock-id? uint32 2360 notifications: 2361 +---n te-node-event 2362 | +--ro event-type? te-types:te-topology-event- 2363 type 2364 | +--ro node-ref? leafref 2365 | +--ro network-ref? leafref 2366 | +--ro te-topology! 2367 | +--ro te-node-attributes 2368 | | +--ro schedules 2369 | | | +--ro schedule* [schedule-id] 2370 | | | +--ro schedule-id uint32 2371 | | | +--ro start? yang:date-and-time 2372 | | | +--ro schedule-duration? string 2373 | | | +--ro repeat-interval? string 2374 | | +--ro admin-status? te-types:te-admin-status 2375 | | +--ro connectivity-matrix* [id] 2376 | | | +--ro id uint32 2377 | | | +--ro from 2378 | | | | +--ro tp-ref? leafref 2379 | | | | +--ro node-ref? leafref 2380 | | | | +--ro network-ref? leafref 2381 | | | +--ro to 2382 | | | | +--ro tp-ref? leafref 2383 | | | | +--ro node-ref? leafref 2384 | | | | +--ro network-ref? leafref 2385 | | | +--ro is-allowed? boolean 2386 | | +--ro domain-id? uint32 2387 | | +--ro is-abstract? empty 2388 | | +--ro name? inet:domain-name 2389 | | +--ro signaling-address* inet:ip-address 2390 | | +--ro underlay-topology {te-topology-hierarchy}? 2391 | | +--ro provider-id-ref? leafref 2392 | | +--ro client-id-ref? leafref 2393 | | +--ro te-topology-id-ref? leafref 2394 | | +--ro network-id-ref? leafref 2395 | +--ro oper-status? te-types:te-oper-status 2396 | +--ro is-multi-access-dr? empty 2397 | +--ro information-source? enumeration 2398 | +--ro information-source-state 2399 | | +--ro credibility-preference? uint16 2400 | | +--ro topology 2401 | | | +--ro provider-id-ref? leafref 2402 | | | +--ro client-id-ref? leafref 2403 | | | +--ro te-topology-id-ref? leafref 2404 | | | +--ro network-id-ref? leafref 2405 | | +--ro routing-instance? string 2406 | +--ro information-source-entry* [information-source] 2407 | +--ro information-source enumeration 2408 | +--ro information-source-state 2409 | | +--ro credibility-preference? uint16 2410 | | +--ro topology 2411 | | | +--ro provider-id-ref? leafref 2412 | | | +--ro client-id-ref? leafref 2413 | | | +--ro te-topology-id-ref? leafref 2414 | | | +--ro network-id-ref? leafref 2415 | | +--ro routing-instance? string 2416 | +--ro connectivity-matrix* [id] 2417 | | +--ro id uint32 2418 | | +--ro from 2419 | | | +--ro tp-ref? leafref 2420 | | | +--ro node-ref? leafref 2421 | | | +--ro network-ref? leafref 2422 | | +--ro to 2423 | | | +--ro tp-ref? leafref 2424 | | | +--ro node-ref? leafref 2425 | | | +--ro network-ref? leafref 2426 | | +--ro is-allowed? boolean 2427 | +--ro domain-id? uint32 2428 | +--ro is-abstract? empty 2429 | +--ro name? inet:domain-name 2430 | +--ro signaling-address* inet:ip-address 2431 | +--ro underlay-topology {te-topology-hierarchy}? 2432 | +--ro provider-id-ref? leafref 2433 | +--ro client-id-ref? leafref 2434 | +--ro te-topology-id-ref? leafref 2435 | +--ro network-id-ref? leafref 2436 +---n te-link-event 2437 +--ro event-type? te-types:te-topology-event- 2438 type 2439 +--ro link-ref? leafref 2440 +--ro network-ref? leafref 2441 +--ro te-topology! 2442 +--ro te-link-attributes 2443 | +--ro schedules 2444 | | +--ro schedule* [schedule-id] 2445 | | +--ro schedule-id uint32 2446 | | +--ro start? yang:date-and-time 2447 | | +--ro schedule-duration? string 2448 | | +--ro repeat-interval? string 2449 | +--ro access-type? te-types:te-link- 2450 access-type 2451 | +--ro external-domain 2452 | | +--ro remote-te-node-id? te-types:te-node-id 2453 | | +--ro remote-te-link-tp-id? te-types:te-tp-id 2454 | | +--ro plug-id? uint32 2455 | +--ro is-abstract? empty 2456 | +--ro name? string 2457 | +--ro underlay! {te-topology-hierarchy}? 2458 | | +--ro underlay-primary-path 2459 | | | +--ro provider-id-ref? leafref 2460 | | | +--ro client-id-ref? leafref 2461 | | | +--ro te-topology-id-ref? leafref 2462 | | | +--ro network-id-ref? leafref 2463 | | | +--ro path-element* [path-element-id] 2464 | | | +--ro path-element-id uint32 2465 | | | +--ro (type)? 2466 | | | +--:(ipv4-address) 2467 | | | | +--ro v4-address? inet:ipv4-address 2468 | | | | +--ro v4-prefix-length? uint8 2469 | | | | +--ro v4-loose? boolean 2470 | | | +--:(ipv6-address) 2471 | | | | +--ro v6-address? inet:ipv6-address 2472 | | | | +--ro v6-prefix-length? uint8 2473 | | | | +--ro v6-loose? boolean 2474 | | | +--:(as-number) 2475 | | | | +--ro as-number? uint16 2476 | | | +--:(unnumbered-link) 2477 | | | | +--ro router-id? inet:ip-address 2478 | | | | +--ro interface-id? uint32 2479 | | | +--:(label) 2480 | | | +--ro value? uint32 2481 | | +--ro underlay-backup-path* [index] 2482 | | | +--ro index uint32 2483 | | | +--ro provider-id-ref? leafref 2484 | | | +--ro client-id-ref? leafref 2485 | | | +--ro te-topology-id-ref? leafref 2486 | | | +--ro network-id-ref? leafref 2487 | | | +--ro path-element* [path-element-id] 2488 | | | +--ro path-element-id uint32 2489 | | | +--ro (type)? 2490 | | | +--:(ipv4-address) 2491 | | | | +--ro v4-address? inet:ipv4-address 2492 | | | | +--ro v4-prefix-length? uint8 2493 | | | | +--ro v4-loose? boolean 2494 | | | +--:(ipv6-address) 2495 | | | | +--ro v6-address? inet:ipv6-address 2496 | | | | +--ro v6-prefix-length? uint8 2497 | | | | +--ro v6-loose? boolean 2498 | | | +--:(as-number) 2499 | | | | +--ro as-number? uint16 2500 | | | +--:(unnumbered-link) 2501 | | | | +--ro router-id? inet:ip-address 2502 | | | | +--ro interface-id? uint32 2503 | | | +--:(label) 2504 | | | +--ro value? uint32 2505 | | +--ro underlay-protection-type? uint16 2506 | | +--ro underlay-trail-src 2507 | | | +--ro tp-ref? leafref 2508 | | | +--ro node-ref? leafref 2509 | | | +--ro network-ref? leafref 2510 | | +--ro underlay-trail-des 2511 | | | +--ro tp-ref? leafref 2512 | | | +--ro node-ref? leafref 2513 | | | +--ro network-ref? leafref 2514 | | +--ro dynamic? boolean 2515 | | +--ro committed? boolean 2516 | +--ro admin-status? te-types:te-admin- 2517 status 2518 | +--ro performance-metric-throttle {te-performance-metric}? 2519 | | +--ro unidirectional-delay-offset? uint32 2520 | | +--ro measure-interval? uint32 2521 | | +--ro advertisement-interval? uint32 2522 | | +--ro suppression-interval? uint32 2523 | | +--ro threshold-out 2524 | | | +--ro unidirectional-delay? uint32 2525 | | | +--ro unidirectional-min-delay? uint32 2526 | | | +--ro unidirectional-max-delay? uint32 2527 | | | +--ro unidirectional-delay-variation? uint32 2528 | | | +--ro unidirectional-packet-loss? decimal64 2529 | | | +--ro unidirectional-residual-bandwidth? decimal64 2530 | | | +--ro unidirectional-available-bandwidth? decimal64 2531 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2532 | | +--ro threshold-in 2533 | | | +--ro unidirectional-delay? uint32 2534 | | | +--ro unidirectional-min-delay? uint32 2535 | | | +--ro unidirectional-max-delay? uint32 2536 | | | +--ro unidirectional-delay-variation? uint32 2537 | | | +--ro unidirectional-packet-loss? decimal64 2538 | | | +--ro unidirectional-residual-bandwidth? decimal64 2539 | | | +--ro unidirectional-available-bandwidth? decimal64 2540 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2541 | | +--ro threshold-accelerated-advertisement 2542 | | +--ro unidirectional-delay? uint32 2543 | | +--ro unidirectional-min-delay? uint32 2544 | | +--ro unidirectional-max-delay? uint32 2545 | | +--ro unidirectional-delay-variation? uint32 2546 | | +--ro unidirectional-packet-loss? decimal64 2547 | | +--ro unidirectional-residual-bandwidth? decimal64 2548 | | +--ro unidirectional-available-bandwidth? decimal64 2549 | | +--ro unidirectional-utilized-bandwidth? decimal64 2550 | +--ro link-index? uint64 2551 | +--ro administrative-group? te-types:admin- 2552 groups 2553 | +--ro interface-switching-capability* [switching-capability] 2554 | | +--ro switching-capability identityref 2555 | | +--ro encoding? identityref 2556 | | +--ro max-lsp-bandwidth* [priority] 2557 | | | +--ro priority uint8 2558 | | | +--ro bandwidth? decimal64 2559 | | +--ro time-division-multiplex-capable 2560 | | +--ro minimum-lsp-bandwidth? decimal64 2561 | | +--ro indication? enumeration 2562 | +--ro link-protection-type? enumeration 2563 | +--ro max-link-bandwidth? decimal64 2564 | +--ro max-resv-link-bandwidth? decimal64 2565 | +--ro unreserved-bandwidth* [priority] 2566 | | +--ro priority uint8 2567 | | +--ro bandwidth? decimal64 2568 | +--ro te-default-metric? uint32 2569 | +--ro performance-metric {te-performance-metric}? 2570 | | +--ro measurement 2571 | | | +--ro unidirectional-delay? uint32 2572 | | | +--ro unidirectional-min-delay? uint32 2573 | | | +--ro unidirectional-max-delay? uint32 2574 | | | +--ro unidirectional-delay-variation? uint32 2575 | | | +--ro unidirectional-packet-loss? decimal64 2576 | | | +--ro unidirectional-residual-bandwidth? decimal64 2577 | | | +--ro unidirectional-available-bandwidth? decimal64 2578 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2579 | | +--ro normality 2580 | | +--ro unidirectional-delay? te- 2581 types:performance-metric-normality 2582 | | +--ro unidirectional-min-delay? te- 2583 types:performance-metric-normality 2584 | | +--ro unidirectional-max-delay? te- 2585 types:performance-metric-normality 2586 | | +--ro unidirectional-delay-variation? te- 2587 types:performance-metric-normality 2588 | | +--ro unidirectional-packet-loss? te- 2589 types:performance-metric-normality 2590 | | +--ro unidirectional-residual-bandwidth? te- 2591 types:performance-metric-normality 2592 | | +--ro unidirectional-available-bandwidth? te- 2593 types:performance-metric-normality 2594 | | +--ro unidirectional-utilized-bandwidth? te- 2595 types:performance-metric-normality 2596 | +--ro te-srlgs 2597 | +--ro value* te-types:srlg 2598 +--ro oper-status? te-types:te-oper-status 2599 +--ro is-transitional? empty 2600 +--ro information-source? enumeration 2601 +--ro information-source-state 2602 | +--ro credibility-preference? uint16 2603 | +--ro topology 2604 | | +--ro provider-id-ref? leafref 2605 | | +--ro client-id-ref? leafref 2606 | | +--ro te-topology-id-ref? leafref 2607 | | +--ro network-id-ref? leafref 2608 | +--ro routing-instance? string 2609 +--ro information-source-entry* [information-source] 2610 | +--ro information-source enumeration 2611 | +--ro information-source-state 2612 | | +--ro credibility-preference? uint16 2613 | | +--ro topology 2614 | | | +--ro provider-id-ref? leafref 2615 | | | +--ro client-id-ref? leafref 2616 | | | +--ro te-topology-id-ref? leafref 2617 | | | +--ro network-id-ref? leafref 2618 | | +--ro routing-instance? string 2619 | +--ro link-index? uint64 2620 | +--ro administrative-group? te-types:admin- 2621 groups 2622 | +--ro interface-switching-capability* [switching-capability] 2623 | | +--ro switching-capability identityref 2624 | | +--ro encoding? identityref 2625 | | +--ro max-lsp-bandwidth* [priority] 2626 | | | +--ro priority uint8 2627 | | | +--ro bandwidth? decimal64 2628 | | +--ro time-division-multiplex-capable 2629 | | +--ro minimum-lsp-bandwidth? decimal64 2630 | | +--ro indication? enumeration 2631 | +--ro link-protection-type? enumeration 2632 | +--ro max-link-bandwidth? decimal64 2633 | +--ro max-resv-link-bandwidth? decimal64 2634 | +--ro unreserved-bandwidth* [priority] 2635 | | +--ro priority uint8 2636 | | +--ro bandwidth? decimal64 2637 | +--ro te-default-metric? uint32 2638 | +--ro performance-metric {te-performance-metric}? 2639 | | +--ro measurement 2640 | | | +--ro unidirectional-delay? uint32 2641 | | | +--ro unidirectional-min-delay? uint32 2642 | | | +--ro unidirectional-max-delay? uint32 2643 | | | +--ro unidirectional-delay-variation? uint32 2644 | | | +--ro unidirectional-packet-loss? decimal64 2645 | | | +--ro unidirectional-residual-bandwidth? decimal64 2646 | | | +--ro unidirectional-available-bandwidth? decimal64 2647 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2648 | | +--ro normality 2649 | | +--ro unidirectional-delay? te- 2650 types:performance-metric-normality 2651 | | +--ro unidirectional-min-delay? te- 2652 types:performance-metric-normality 2653 | | +--ro unidirectional-max-delay? te- 2654 types:performance-metric-normality 2655 | | +--ro unidirectional-delay-variation? te- 2656 types:performance-metric-normality 2657 | | +--ro unidirectional-packet-loss? te- 2658 types:performance-metric-normality 2659 | | +--ro unidirectional-residual-bandwidth? te- 2660 types:performance-metric-normality 2661 | | +--ro unidirectional-available-bandwidth? te- 2662 types:performance-metric-normality 2663 | | +--ro unidirectional-utilized-bandwidth? te- 2664 types:performance-metric-normality 2665 | +--ro te-srlgs 2666 | +--ro value* te-types:srlg 2667 +--ro recovery 2668 | +--ro restoration-status? te-types:te-recovery-status 2669 | +--ro protection-status? te-types:te-recovery-status 2670 +--ro underlay {te-topology-hierarchy}? 2671 +--ro dynamic? boolean 2672 +--ro committed? Boolean 2674 7. TE Topology Yang Module 2676 file "ietf-te-topology@2016-07-08.yang" 2677 module ietf-te-topology { 2678 yang-version 1.1; 2679 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; 2680 // replace with IANA namespace when assigned 2682 prefix "tet"; 2684 import ietf-inet-types { 2685 prefix "inet"; 2686 } 2688 import ietf-schedule { 2689 prefix "sch"; 2690 } 2692 import ietf-te-types { 2693 prefix "te-types"; 2694 } 2696 import ietf-network { 2697 prefix "nw"; 2698 } 2700 import ietf-network-topology { 2701 prefix "nt"; 2702 } 2704 organization 2705 "Traffic Engineering Architecture and Signaling (TEAS) 2706 Working Group"; 2708 contact 2709 "WG Web: 2710 WG List: 2712 WG Chair: Lou Berger 2713 2715 WG Chair: Vishnu Pavan Beeram 2716 2718 Editor: Xufeng Liu 2719 2721 Editor: Igor Bryskin 2722 2724 Editor: Vishnu Pavan Beeram 2725 2727 Editor: Tarek Saad 2728 2730 Editor: Himanshu Shah 2731 2733 Editor: Oscar Gonzalez De Dios 2734 "; 2736 description "TE topology model"; 2738 revision "2016-07-08" { 2739 description "Initial revision"; 2740 reference "TBD"; 2741 } 2743 /* 2744 * Features 2745 */ 2747 feature configuration-schedule { 2748 description 2749 "This feature indicates that the system supports 2750 configuration scheduling."; 2751 } 2753 feature te-topology-hierarchy { 2754 description 2755 "This feature indicates that the system allows underlay 2756 and/or overlay TE topology hierarchy."; 2758 } 2760 feature te-performance-metric { 2761 description 2762 "This feature indicates that the system supports 2763 TE performance metric."; 2764 reference 2765 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2766 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2767 RFC7823: Performance-Based Path Selection for Explicitly 2768 Routed Label Switched Paths (LSPs) Using TE Metric 2769 Extensions"; 2770 } 2772 feature template { 2773 description 2774 "This feature indicates that the system supports 2775 template configuration."; 2776 } 2778 /* 2779 * Typedefs 2780 */ 2782 /* 2783 * Identities 2784 */ 2786 /* 2787 * Groupings 2788 */ 2789 grouping connectivity-label-restriction-list { 2790 description 2791 "List of abel restrictions specifying what labels may or may 2792 not be used on a link connectivity."; 2793 list label-restriction { 2794 key "inclusive-exclusive label-start"; 2795 description 2796 "List of abel restrictions specifying what labels may or may 2797 not be used on a link connectivity."; 2799 reference 2800 "RFC7579: General Network Element Constraint Encoding 2801 for GMPLS-Controlled Networks"; 2802 leaf inclusive-exclusive { 2803 type enumeration { 2804 enum inclusive { 2805 description "The label or label range is inclusive."; 2806 } 2807 enum exclusive { 2808 description "The label or label range is exclusive."; 2809 } 2810 } 2811 description 2812 "Whether the list item is inclusive or exclusive."; 2813 } 2814 leaf label-start { 2815 type te-types:generalized-label; 2816 description 2817 "This is the starting lable if a lable range is specified. 2818 This is the lable value if a single lable is specified, 2819 in which case, attribute 'label-end' is not set."; 2820 } 2821 leaf label-end { 2822 type te-types:generalized-label; 2823 description 2824 "The ending lable if a lable range is specified; 2825 This attribute is not set, If a single lable is 2826 specified."; 2827 } 2828 leaf range-bitmap { 2829 type binary; 2830 description 2831 "When there are gaps between label-start and label-end, 2832 this attribute is used to specified the possitions 2833 of the used labels."; 2834 } 2835 } 2836 } // connectivity-label-restrictions 2838 grouping information-source-attributes { 2839 description 2840 "The attributes identifying source that has provided the 2841 related information, and the source credibility."; 2842 leaf information-source { 2843 type enumeration { 2844 enum "unknown" { 2845 description "The source is unknown."; 2846 } 2847 enum "locally-configured" { 2848 description "Configured entity."; 2849 } 2850 enum "ospfv2" { 2851 description "OSPFv2."; 2852 } 2853 enum "ospfv3" { 2854 description "OSPFv3."; 2855 } 2856 enum "isis" { 2857 description "ISIS."; 2858 } 2859 enum "system-processed" { 2860 description "System processed entity."; 2861 } 2862 enum "other" { 2863 description "Other source."; 2864 } 2865 } 2866 description 2867 "Indicates the source of the information."; 2868 } 2869 container information-source-state { 2870 description 2871 "The container contains state attributes related to 2872 the information source."; 2873 leaf credibility-preference { 2874 type uint16; 2875 description 2876 "The preference value to calculate the traffic 2877 engineering database credibility value used for 2878 tie-break selection between different 2879 information-source values. 2880 Higher value is more preferable."; 2881 } 2882 container topology { 2883 description 2884 "When the information is processed by the system, 2885 the attributes in this container indicate which topology 2886 is used to process to generate the result information."; 2887 uses te-topology-ref; 2888 } // topology 2889 leaf routing-instance { 2890 type string; 2891 description 2892 "When applicable, this is the name of a routing instance 2893 from which the information is learned."; 2894 } // routing-information 2895 } 2896 } // information-source-attributes 2898 grouping interface-switching-capability-list { 2899 description 2900 "List of Interface Switching Capabilities Descriptors (ISCD)"; 2902 list interface-switching-capability { 2903 key "switching-capability"; 2904 description 2905 "List of Interface Switching Capabilities Descriptors (ISCD) 2906 for this link."; 2907 reference 2908 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS) 2909 Signaling Functional Description. 2910 RFC4203: OSPF Extensions in Support of Generalized 2911 Multi-Protocol Label Switching (GMPLS)."; 2912 leaf switching-capability { 2913 type identityref { 2914 base te-types:switching-capabilities; 2915 } 2916 description 2917 "Switching Capability for this interface."; 2918 } 2919 leaf encoding { 2920 type identityref { 2921 base te-types:lsp-encoding-types; 2922 } 2923 description 2924 "Encoding supported by this interface."; 2925 } 2926 list max-lsp-bandwidth { 2927 key "priority"; 2928 max-elements "8"; 2929 description 2930 "Maximum LSP Bandwidth at priorities 0-7."; 2931 leaf priority { 2932 type uint8 { 2933 range "0..7"; 2934 } 2935 description "Priority."; 2936 } 2937 leaf bandwidth { 2938 type decimal64 { 2939 fraction-digits 2; 2940 } 2941 description 2942 "Max LSP Bandwidth for this level"; 2943 } 2944 } 2945 container time-division-multiplex-capable { 2946 when "../switching-capability = 'TDM'" { 2947 description "Valid only for TDM"; 2948 } 2949 description 2950 "Interface has time-division multiplex capabilities."; 2952 leaf minimum-lsp-bandwidth { 2953 type decimal64 { 2954 fraction-digits 2; 2955 } 2956 description 2957 "Minimum LSP Bandwidth. Units in bytes per second."; 2958 } 2959 leaf indication { 2960 type enumeration { 2961 enum "standard" { 2962 description 2963 "Indicates support of standard SONET/SDH."; 2964 } 2965 enum "arbitrary" { 2966 description 2967 "Indicates support of arbitrary SONET/SDH."; 2968 } 2969 } 2970 description 2971 "Indication whether the interface supports Standard or 2972 Arbitrary SONET/SDH"; 2973 } 2974 } // time-division-multiplex-capable 2975 } // interface-switching-capability 2976 } // interface-switching-capability-list 2978 grouping performance-metric-attributes { 2979 description 2980 "Link performance information in real time."; 2981 reference 2982 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2983 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2984 RFC7823: Performance-Based Path Selection for Explicitly 2985 Routed Label Switched Paths (LSPs) Using TE Metric 2986 Extensions"; 2987 leaf unidirectional-delay { 2988 type uint32 { 2989 range 0..16777215; 2990 } 2991 description "Delay or latency in micro seconds."; 2992 } 2993 leaf unidirectional-min-delay { 2994 type uint32 { 2995 range 0..16777215; 2996 } 2997 description "Minimum delay or latency in micro seconds."; 2998 } 2999 leaf unidirectional-max-delay { 3000 type uint32 { 3001 range 0..16777215; 3002 } 3003 description "Maximum delay or latency in micro seconds."; 3004 } 3005 leaf unidirectional-delay-variation { 3006 type uint32 { 3007 range 0..16777215; 3008 } 3009 description "Delay variation in micro seconds."; 3010 } 3011 leaf unidirectional-packet-loss { 3012 type decimal64 { 3013 fraction-digits 6; 3014 range "0 .. 50.331642"; 3015 } 3016 description 3017 "Packet loss as a percentage of the total traffic sent 3018 over a configurable interval. The finest precision is 3019 0.000003%."; 3020 } 3021 leaf unidirectional-residual-bandwidth { 3022 type decimal64 { 3023 fraction-digits 2; 3024 } 3025 description 3026 "Residual bandwidth that subtracts tunnel 3027 reservations from Maximum Bandwidth (or link capacity) 3028 [RFC3630] and provides an aggregated remainder across QoS 3029 classes."; 3030 } 3031 leaf unidirectional-available-bandwidth { 3032 type decimal64 { 3033 fraction-digits 2; 3034 } 3035 description 3036 "Available bandwidth that is defined to be residual 3037 bandwidth minus the measured bandwidth used for the 3038 actual forwarding of non-RSVP-TE LSP packets. For a 3039 bundled link, available bandwidth is defined to be the 3040 sum of the component link available bandwidths."; 3041 } 3042 leaf unidirectional-utilized-bandwidth { 3043 type decimal64 { 3044 fraction-digits 2; 3045 } 3046 description 3047 "Bandwidth utilization that represents the actual 3048 utilization of the link (i.e. as measured in the router). 3049 For a bundled link, bandwidth utilization is defined to 3050 be the sum of the component link bandwidth 3051 utilizations."; 3052 } 3053 } // performance-metric-attributes 3055 grouping performance-metric-normality-attributes { 3056 description 3057 "Link performance metric normality attributes."; 3058 reference 3059 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 3060 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 3061 RFC7823: Performance-Based Path Selection for Explicitly 3062 Routed Label Switched Paths (LSPs) Using TE Metric 3063 Extensions"; 3064 leaf unidirectional-delay { 3065 type te-types:performance-metric-normality; 3066 description "Delay normality."; 3067 } 3068 leaf unidirectional-min-delay { 3069 type te-types:performance-metric-normality; 3070 description "Minimum delay or latency normality."; 3071 } 3072 leaf unidirectional-max-delay { 3073 type te-types:performance-metric-normality; 3074 description "Maximum delay or latency normality."; 3075 } 3076 leaf unidirectional-delay-variation { 3077 type te-types:performance-metric-normality; 3078 description "Delay variation normality."; 3080 } 3081 leaf unidirectional-packet-loss { 3082 type te-types:performance-metric-normality; 3083 description "Packet loss normality."; 3084 } 3085 leaf unidirectional-residual-bandwidth { 3086 type te-types:performance-metric-normality; 3087 description "Residual bandwidth normality."; 3088 } 3089 leaf unidirectional-available-bandwidth { 3090 type te-types:performance-metric-normality; 3091 description "Available bandwidth normality."; 3092 } 3093 leaf unidirectional-utilized-bandwidth { 3094 type te-types:performance-metric-normality; 3095 description "Bandwidth utilization normality."; 3096 } 3097 } // performance-metric-normality-attributes 3099 grouping performance-metric-throttle-container { 3100 description 3101 "A container controlling performance metric throttle."; 3102 container performance-metric-throttle { 3103 if-feature te-performance-metric; 3104 must "suppression-interval >= measure-interval" { 3105 error-message 3106 "suppression-interval cannot be less then 3107 measure-interval."; 3108 description 3109 "Constraint on suppression-interval and 3110 measure-interval."; 3111 } 3112 description 3113 "Link performance information in real time."; 3114 reference 3115 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 3116 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 3117 RFC7823: Performance-Based Path Selection for Explicitly 3118 Routed Label Switched Paths (LSPs) Using TE Metric 3119 Extensions"; 3121 leaf unidirectional-delay-offset { 3122 type uint32 { 3123 range 0..16777215; 3124 } 3125 description 3126 "Offset value to be added to the measured delay value."; 3127 } 3128 leaf measure-interval { 3129 type uint32; 3130 default 30; 3131 description 3132 "Interval in seconds to measure the extended metric 3133 values."; 3134 } 3135 leaf advertisement-interval { 3136 type uint32; 3137 description 3138 "Interval in seconds to advertise the extended metric 3139 values."; 3140 } 3141 leaf suppression-interval { 3142 type uint32 { 3143 range "1 .. max"; 3144 } 3145 default 120; 3146 description 3147 "Interval in seconds to suppress advertising the extended 3148 metric values."; 3149 } 3150 container threshold-out { 3151 uses performance-metric-attributes; 3152 description 3153 "If the measured parameter falls outside an upper bound 3154 for all but the min delay metric (or lower bound for 3155 min-delay metric only) and the advertised value is not 3156 already outside that bound, anomalous announcement will be 3157 triggered."; 3158 } 3159 container threshold-in { 3160 uses performance-metric-attributes; 3161 description 3162 "If the measured parameter falls inside an upper bound 3163 for all but the min delay metric (or lower bound for 3164 min-delay metric only) and the advertised value is not 3165 already inside that bound, normal (anomalous-flag cleared) 3166 announcement will be triggered."; 3167 } 3168 container threshold-accelerated-advertisement { 3169 description 3170 "When the difference between the last advertised value and 3171 current measured value exceed this threshold, anomalous 3172 announcement will be triggered."; 3173 uses performance-metric-attributes; 3174 } 3175 } 3176 } // performance-metric-throttle-container 3178 grouping te-link-augment { 3179 description 3180 "Augmentation for TE link."; 3182 container te { 3183 presence "TE support."; 3184 description 3185 "Indicates TE support."; 3187 container config { 3188 description 3189 "Configuration data."; 3190 uses te-link-config; 3191 } // config 3192 container state { 3193 config false; 3194 description 3195 "Operational state data."; 3196 uses te-link-config; 3197 uses te-link-state-derived; 3198 } // state 3199 } // te 3200 } // te-link-augment 3201 grouping te-link-config { 3202 description 3203 "TE link configuration grouping."; 3204 choice bundle-stack-level { 3205 description 3206 "The TE link can be partitioned into bundled 3207 links, or component links."; 3208 case bundle { 3209 container bundled-links { 3210 description 3211 "A set of bundled links."; 3212 reference 3213 "RFC4201: Link Bundling in MPLS Traffic Engineering 3214 (TE)."; 3215 list bundled-link { 3216 key "sequence"; 3217 description 3218 "Specify a bundled interface that is 3219 further partitioned."; 3220 leaf sequence { 3221 type uint32; 3222 description 3223 "Identify the sequence in the bundle."; 3224 } 3225 leaf src-tp-ref { 3226 type leafref { 3227 path "../../../../../../nw:node[nw:node-id = " 3228 + "current()/../../../../../nt:source/" 3229 + "nt:source-node]/" 3230 + "nt:termination-point/nt:tp-id"; 3231 require-instance true; 3232 } 3233 description 3234 "Reference to another TE termination point on the 3235 same souruce node."; 3236 } 3237 leaf des-tp-ref { 3238 type leafref { 3239 path "../../../../../../nw:node[nw:node-id = " 3240 + "current()/../../../../../nt:destination/" 3241 + "nt:dest-node]/" 3242 + "nt:termination-point/nt:tp-id"; 3243 require-instance true; 3244 } 3245 description 3246 "Reference to another TE termination point on the 3247 same destination node."; 3248 } 3249 } // list bundled-link 3250 } 3251 } 3252 case component { 3253 container component-links { 3254 description 3255 "A set of component links"; 3256 list component-link { 3257 key "sequence"; 3258 description 3259 "Specify a component interface that is 3260 sufficient to unambiguously identify the 3261 appropriate resources"; 3263 leaf sequence { 3264 type uint32; 3265 description 3266 "Identify the sequence in the bundle."; 3267 } 3268 leaf src-interface-ref { 3269 type string; 3270 description 3271 "Reference to component link interface on the 3272 source node."; 3273 } 3274 leaf des-interface-ref { 3275 type string; 3276 description 3277 "Reference to component link interface on the 3278 destinatioin node."; 3279 } 3281 } 3282 } 3283 } 3284 } // bundle-stack-level 3286 leaf-list te-link-template { 3287 if-feature template; 3288 type leafref { 3289 path "../../../../../te/templates/link-template/name"; 3290 } 3291 description 3292 "The reference to a TE link template."; 3293 } 3294 uses te-link-config-attributes; 3295 } // te-link-config 3297 grouping te-link-config-attributes { 3298 description 3299 "Link configuration attributes in a TE topology."; 3300 container te-link-attributes { 3301 description "Link attributes in a TE topology."; 3302 uses sch:schedules; 3303 leaf access-type { 3304 type te-types:te-link-access-type; 3305 description 3306 "Link access type, which can be point-to-point or 3307 multi-access."; 3308 } 3309 container external-domain { 3310 description 3311 "For an inter-domain link, specify the attributes of 3312 the remote end of link, to facilitate the signalling at 3313 local end."; 3314 leaf remote-te-node-id { 3315 type te-types:te-node-id; 3316 description 3317 "Remote TE node identifier, used together with 3318 remote-te-link-id to identify the remote link 3319 termination point in a different domain."; 3320 } 3321 leaf remote-te-link-tp-id { 3322 type te-types:te-tp-id; 3323 description 3324 "Remote TE link termination point identifier, used 3325 together with remote-te-node-id to identify the remote 3326 link termination point in a different domain."; 3327 } 3328 leaf plug-id { 3329 type uint32; 3330 description 3331 "A topology-wide unique number that identifies on the 3332 network a connectivity supporting a given inter-domain 3333 TE link. This is more flexible alternative to specifying 3334 remote-te-node-id and remote-te-link-tp-id, when the 3335 provider does not know remote-te-node-id and 3336 remote-te-link-tp-id or need to give client the 3337 flexibility to mix-n-match multiple topologies."; 3338 } 3339 } 3340 leaf is-abstract { 3341 type empty; 3342 description "Present if the link is abstract."; 3343 } 3344 leaf name { 3345 type string; 3346 description "Link Name."; 3347 } 3348 container underlay { 3349 if-feature te-topology-hierarchy; 3350 presence 3351 "Indicates the underlay exists for this link."; 3352 description "Attributes of the te-link underlay."; 3353 reference 3354 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3355 Generalized Multi-Protocol Label Switching (GMPLS) 3356 Traffic Engineering (TE)"; 3358 uses te-link-underlay-attributes; 3359 } // underlay 3360 leaf admin-status { 3361 type te-types:te-admin-status; 3362 description 3363 "The administrative state of the link."; 3364 } 3366 uses performance-metric-throttle-container; 3367 uses te-link-info-attributes; 3368 } // te-link-attributes 3369 } // te-link-config-attributes 3371 grouping te-link-connectivity-attributes { 3372 description 3373 "Advertised TE connectivity attributes."; 3374 leaf max-link-bandwidth { 3375 type decimal64 { 3376 fraction-digits 2; 3377 } 3378 description 3379 "Maximum bandwidth that can be seen on this link in this 3380 direction. Units in bytes per second."; 3381 reference 3382 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3383 Version 2. 3384 RFC5305: IS-IS Extensions for Traffic Engineering."; 3385 } 3386 leaf max-resv-link-bandwidth { 3387 type decimal64 { 3388 fraction-digits 2; 3389 } 3390 description 3391 "Maximum amount of bandwidth that can be reserved in this 3392 direction in this link. Units in bytes per second."; 3393 reference 3394 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3395 Version 2. 3396 RFC5305: IS-IS Extensions for Traffic Engineering."; 3397 } 3398 list unreserved-bandwidth { 3399 key "priority"; 3400 max-elements "8"; 3401 description 3402 "Unreserved bandwidth for 0-7 priority levels. Units in 3403 bytes per second."; 3404 reference 3405 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3406 Version 2. 3407 RFC5305: IS-IS Extensions for Traffic Engineering."; 3408 leaf priority { 3409 type uint8 { 3410 range "0..7"; 3411 } 3412 description "Priority."; 3413 } 3414 leaf bandwidth { 3415 type decimal64 { 3416 fraction-digits 2; 3417 } 3418 description 3419 "Unreserved bandwidth for this level."; 3420 } 3421 } 3422 leaf te-default-metric { 3423 type uint32; 3424 description 3425 "Traffic Engineering Metric."; 3426 } 3427 container performance-metric { 3428 if-feature te-performance-metric; 3429 description 3430 "Link performance information in real time."; 3431 reference 3432 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 3433 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 3434 RFC7823: Performance-Based Path Selection for Explicitly 3435 Routed Label Switched Paths (LSPs) Using TE Metric 3436 Extensions"; 3437 container measurement { 3438 description 3439 "Measured performance metric values. Static configuration 3440 and manual overrides of these measurements are also 3441 allowed."; 3442 uses performance-metric-attributes; 3443 } 3444 container normality 3445 { 3446 description 3447 "Performance metric normality values."; 3448 uses performance-metric-normality-attributes; 3449 } 3450 } 3451 container te-srlgs { 3452 description 3453 "A list of SLRGs."; 3454 leaf-list value { 3455 type te-types:srlg; 3456 description "SRLG value."; 3457 reference 3458 "RFC4202: Routing Extensions in Support of 3459 Generalized Multi-Protocol Label Switching (GMPLS)."; 3460 } 3461 } 3462 } // te-link-connectivity-attributes 3464 grouping te-link-info-attributes { 3465 description 3466 "Advertised TE information attributes."; 3467 leaf link-index { 3468 type uint64; 3469 description 3470 "The link identifier. If OSPF is used, this represents an 3471 ospfLsdbID. If IS-IS is used, this represents an isisLSPID. 3472 If a locally configured link is used, this object represents 3473 a unique value, which is locally defined in a router."; 3474 } 3475 leaf administrative-group { 3476 type te-types:admin-groups; 3477 description 3478 "Administrative group or color of the link. 3479 This attribute covers both administrative group (defined in 3480 RFC3630, RFC5329, and RFC5305), and extended administrative 3481 group (defined in RFC7308)."; 3482 } 3483 uses interface-switching-capability-list; 3484 leaf link-protection-type { 3485 type enumeration { 3486 enum "unprotected" { 3487 description "Unprotected."; 3488 } 3489 enum "extra-traffic" { 3490 description "Extra traffic."; 3491 } 3492 enum "shared" { 3493 description "Shared."; 3494 } 3495 enum "1-for-1" { 3496 description "One for one protection."; 3497 } 3498 enum "1-plus-1" { 3499 description "One plus one protection."; 3500 } 3501 enum "enhanced" { 3502 description "Enhanced protection."; 3503 } 3504 } 3505 description 3506 "Link Protection Type desired for this link."; 3507 reference 3508 "RFC4202: Routing Extensions in Support of 3509 Generalized Multi-Protocol Label Switching (GMPLS)."; 3510 } 3511 uses te-link-connectivity-attributes; 3512 } // te-link-info-attributes 3514 grouping te-link-state-derived { 3515 description 3516 "Link state attributes in a TE topology."; 3517 leaf oper-status { 3518 type te-types:te-oper-status; 3519 description 3520 "The current operational state of the link."; 3522 } 3523 leaf is-transitional { 3524 type empty; 3525 description 3526 "Present if the link is transitional, used as an 3527 alternative approach in lieu of inter-layer-lock-id 3528 for path computation in a TE topology covering multiple 3529 layers or multiple regions."; 3530 reference 3531 "RFC5212: Requirements for GMPLS-Based Multi-Region and 3532 Multi-Layer Networks (MRN/MLN). 3533 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3534 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3535 } 3536 uses information-source-attributes; 3537 list information-source-entry { 3538 key "information-source"; 3539 description 3540 "A list of information sources learned, including the one 3541 used."; 3542 uses information-source-attributes; 3543 uses te-link-info-attributes; 3544 } 3545 container recovery { 3546 description 3547 "Status of the recovery process."; 3548 leaf restoration-status { 3549 type te-types:te-recovery-status; 3550 description 3551 "Restoration status."; 3552 } 3553 leaf protection-status { 3554 type te-types:te-recovery-status; 3555 description 3556 "Protection status."; 3557 } 3558 } 3559 container underlay { 3560 if-feature te-topology-hierarchy; 3561 description "State attributes for te-link underlay."; 3562 uses te-link-state-underlay-attributes; 3563 } 3564 } // te-link-state-derived 3566 grouping te-link-state-underlay-attributes { 3567 description "State attributes for te-link underlay."; 3568 leaf dynamic { 3569 type boolean; 3570 description 3571 "true if the underlay is dynamically created."; 3572 } 3573 leaf committed { 3574 type boolean; 3575 description 3576 "true if the underlay is committed."; 3577 } 3578 } // te-link-state-underlay-attributes 3580 grouping te-link-underlay-attributes { 3581 description "Attributes for te-link underlay."; 3582 reference 3583 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3584 Generalized Multi-Protocol Label Switching (GMPLS) 3585 Traffic Engineering (TE)"; 3586 container underlay-primary-path { 3587 description 3588 "The service path on the underlay topology that 3589 supports this link."; 3590 uses te-topology-ref; 3591 list path-element { 3592 key "path-element-id"; 3593 description 3594 "A list of path elements describing the service path."; 3595 leaf path-element-id { 3596 type uint32; 3597 description "To identify the element in a path."; 3598 } 3599 uses te-path-element; 3600 } 3601 } // underlay-primary-path 3602 list underlay-backup-path { 3603 key "index"; 3604 description 3605 "A list of backup service paths on the underlay topology that 3606 protect the underlay primary path. If the primary path is 3607 not protected, the list contains zero elements. If the 3608 primary path is protected, the list contains one or more 3609 elements."; 3610 leaf index { 3611 type uint32; 3612 description 3613 "A sequence number to identify a backup path."; 3614 } 3615 uses te-topology-ref; 3616 list path-element { 3617 key "path-element-id"; 3618 description 3619 "A list of path elements describing the backup service 3620 path"; 3621 leaf path-element-id { 3622 type uint32; 3623 description "To identify the element in a path."; 3624 } 3625 uses te-path-element; 3626 } 3627 } // underlay-backup-path 3628 leaf underlay-protection-type { 3629 type uint16; 3630 description 3631 "Underlay protection type desired for this link"; 3632 } 3633 container underlay-trail-src { 3634 uses nt:tp-ref; 3635 description 3636 "Source TE link of the underlay trail."; 3637 } 3638 container underlay-trail-des { 3639 uses nt:tp-ref; 3640 description 3641 "Destination TE link of the underlay trail."; 3643 } 3644 } // te-link-underlay-attributes 3646 grouping te-node-augment { 3647 description 3648 "Augmentation for TE node."; 3650 container te { 3651 presence "TE support."; 3652 description 3653 "Indicates TE support."; 3655 leaf te-node-id { 3656 type te-types:te-node-id; 3657 mandatory true; 3658 description 3659 "The identifier of a node in the TE topology. 3660 A node is specific to a topology to which it belongs."; 3661 } 3663 container config { 3664 description 3665 "Configuration data."; 3666 uses te-node-config; 3667 } // config 3668 container state { 3669 config false; 3670 description 3671 "Operational state data."; 3673 uses te-node-config; 3674 uses te-node-state-derived; 3675 } // state 3677 list tunnel-termination-point { 3678 key "tunnel-tp-id"; 3679 description 3680 "A termination point can terminate a tunnel."; 3681 leaf tunnel-tp-id { 3682 type binary; 3683 description 3684 "Tunnel termination point identifier."; 3685 } 3687 container config { 3688 description 3689 "Configuration data."; 3690 uses te-node-tunnel-termination-capability; 3691 } 3693 container state { 3694 config false; 3695 description 3696 "Operational state data."; 3698 uses te-node-tunnel-termination-capability; 3699 } // state 3701 } // tunnel-termination-point 3702 } // te 3703 } // te-node-augment 3705 grouping te-node-config { 3706 description "TE node configuration grouping."; 3708 leaf-list te-node-template { 3709 if-feature template; 3710 type leafref { 3711 path "../../../../../te/templates/node-template/name"; 3712 } 3713 description 3714 "The reference to a TE node template."; 3715 } 3716 uses te-node-config-attributes; 3717 } // te-node-config 3719 grouping te-node-config-attributes { 3720 description "Configuration node attributes in a TE topology."; 3721 container te-node-attributes { 3722 description "Containing node attributes in a TE topology."; 3723 uses sch:schedules; 3724 leaf admin-status { 3725 type te-types:te-admin-status; 3726 description 3727 "The administrative state of the link."; 3728 } 3729 uses te-node-connectivity-matrix; 3730 uses te-node-info-attributes; 3731 } // te-node-attributes 3732 } // te-node-config-attributes 3734 grouping te-node-config-attributes-notification { 3735 description 3736 "Configuration node attributes for template in a TE topology."; 3737 container te-node-attributes { 3738 description "Containing node attributes in a TE topology."; 3739 uses sch:schedules; 3740 leaf admin-status { 3741 type te-types:te-admin-status; 3742 description 3743 "The administrative state of the link."; 3744 } 3745 uses te-node-connectivity-matrix-abs; 3746 uses te-node-info-attributes; 3747 } // te-node-attributes 3748 } // te-node-config-attributes-notification 3750 grouping te-node-config-attributes-template { 3751 description 3752 "Configuration node attributes for template in a TE topology."; 3753 container te-node-attributes { 3754 description "Containing node attributes in a TE topology."; 3755 uses sch:schedules; 3756 leaf admin-status { 3757 type te-types:te-admin-status; 3758 description 3759 "The administrative state of the link."; 3760 } 3761 uses te-node-info-attributes; 3762 } // te-node-attributes 3764 } // te-node-config-attributes-template 3766 grouping te-node-connectivity-matrix { 3767 description "Connectivity matrix on a TE node."; 3768 list connectivity-matrix { 3769 key "id"; 3770 description 3771 "Represents node's switching limitations, i.e. limitations 3772 in interconnecting network TE links across the node."; 3773 reference 3774 "RFC7579: General Network Element Constraint Encoding 3775 for GMPLS-Controlled Networks."; 3776 leaf id { 3777 type uint32; 3778 description "Identifies the connectivity-matrix entry."; 3779 } 3780 container from { 3781 leaf tp-ref { 3782 type leafref { 3783 path "../../../../../../nt:termination-point/nt:tp-id"; 3784 } 3785 description 3786 "Relative reference to source termination point."; 3787 } 3788 description 3789 "Reference to source NTP."; 3790 } 3791 container to { 3792 leaf tp-ref { 3793 type leafref { 3794 path "../../../../../../nt:termination-point/nt:tp-id"; 3795 } 3796 description 3797 "Relative reference to destination termination point."; 3798 } 3799 description 3800 "Reference to destination NTP."; 3801 } 3802 leaf is-allowed { 3803 type boolean; 3804 description 3805 "true - switching is allowed, 3806 false - switching is disallowed."; 3807 } 3808 uses connectivity-label-restriction-list; 3809 uses te-link-connectivity-attributes; 3810 } 3811 } // te-node-connectivity-matrix 3813 grouping te-node-connectivity-matrix-abs { 3814 description 3815 "Connectivity matrix on a TE node, using absolute 3816 paths to reference termination points."; 3817 list connectivity-matrix { 3818 key "id"; 3819 description 3820 "Represents node's switching limitations, i.e. limitations 3821 in interconnecting network TE links across the node."; 3822 reference 3823 "RFC7579: General Network Element Constraint Encoding 3824 for GMPLS-Controlled Networks."; 3825 leaf id { 3826 type uint32; 3827 description "Identifies the connectivity-matrix entry."; 3828 } 3829 container from { 3830 uses nt:tp-ref; 3831 description 3832 "Reference to source NTP."; 3833 } 3834 container to { 3835 uses nt:tp-ref; 3836 description 3837 "Reference to destination NTP."; 3838 } 3839 leaf is-allowed { 3840 type boolean; 3841 description 3842 "true - switching is allowed, 3843 false - switching is disallowed."; 3845 } 3846 } 3847 } // te-node-connectivity-matrix-abs 3849 grouping te-node-info-attributes { 3850 description 3851 "Advertised TE information attributes."; 3852 leaf domain-id { 3853 type uint32; 3854 description 3855 "Identifies the domain that this node belongs. 3856 This attribute is used to support inter-domain links."; 3857 reference 3858 "RFC5152: A Per-Domain Path Computation Method for 3859 Establishing Inter-Domain Traffic Engineering (TE) 3860 Label Switched Paths (LSPs). 3861 RFC5392: OSPF Extensions in Support of Inter-Autonomous 3862 System (AS) MPLS and GMPLS Traffic Engineering. 3863 RFC5316: ISIS Extensions in Support of Inter-Autonomous 3864 System (AS) MPLS and GMPLS Traffic Engineering."; 3865 } 3866 leaf is-abstract { 3867 type empty; 3868 description 3869 "Present if the node is abstract, not present if the node 3870 is actual."; 3871 } 3872 leaf name { 3873 type inet:domain-name; 3874 description "Node name."; 3875 } 3876 leaf-list signaling-address { 3877 type inet:ip-address; 3878 description "Node signaling address."; 3879 } 3880 container underlay-topology { 3881 if-feature te-topology-hierarchy; 3882 description 3883 "When an abstract node encapsulates a topology, 3884 the attributes in this container point to said topology."; 3886 uses te-topology-ref; 3887 } 3888 } // te-node-info-attributes 3890 grouping te-node-state-derived { 3891 description "Node state attributes in a TE topology."; 3892 leaf oper-status { 3893 type te-types:te-oper-status; 3894 description 3895 "The current operational state of the node."; 3896 } 3897 leaf is-multi-access-dr { 3898 type empty; 3899 description 3900 "The presence of this attribute indicates that this TE node 3901 is a pseudonode elected as a designated router."; 3902 reference 3903 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3904 Version 2. 3905 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3906 Environments."; 3907 } 3908 uses information-source-attributes; 3909 list information-source-entry { 3910 key "information-source"; 3911 description 3912 "A list of information sources learned, including the one 3913 used."; 3914 uses information-source-attributes; 3915 uses te-node-connectivity-matrix; 3916 uses te-node-info-attributes; 3917 } 3918 } // te-node-state-derived 3920 grouping te-node-state-derived-notification { 3921 description "Node state attributes in a TE topology."; 3922 leaf oper-status { 3923 type te-types:te-oper-status; 3924 description 3925 "The current operational state of the node."; 3927 } 3928 leaf is-multi-access-dr { 3929 type empty; 3930 description 3931 "The presence of this attribute indicates that this TE node 3932 is a pseudonode elected as a designated router."; 3933 reference 3934 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3935 Version 2. 3936 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3937 Environments."; 3938 } 3939 uses information-source-attributes; 3940 list information-source-entry { 3941 key "information-source"; 3942 description 3943 "A list of information sources learned, including the one 3944 used."; 3945 uses information-source-attributes; 3946 uses te-node-connectivity-matrix-abs; 3947 uses te-node-info-attributes; 3948 } 3949 } // te-node-state-derived-notification 3951 grouping te-node-tunnel-termination-capability { 3952 description 3953 "Termination capability of a tunnel termination point on a 3954 TE node."; 3956 leaf switching-capability { 3957 type identityref { 3958 base te-types:switching-capabilities; 3959 } 3960 description 3961 "Switching Capability for this interface."; 3962 } 3963 leaf encoding { 3964 type identityref { 3965 base te-types:lsp-encoding-types; 3966 } 3967 description 3968 "Encoding supported by this interface."; 3969 } 3970 leaf inter-layer-lock-id { 3971 type uint32; 3972 description 3973 "Inter layer lock ID, used for path computation in a TE 3974 topology covering multiple layers or multiple regions."; 3975 reference 3976 "RFC5212: Requirements for GMPLS-Based Multi-Region and 3977 Multi-Layer Networks (MRN/MLN). 3978 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3979 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3980 } 3981 leaf protection-type { 3982 type identityref { 3983 base te-types:lsp-prot-type; 3984 } 3985 description 3986 "The protection type that this tunnel termination point 3987 is capable of."; 3988 } 3990 list termination-capability { 3991 key "link-tp"; 3992 description 3993 "The termination capabilities between 3994 tunnel-termination-point and link termination-point. 3995 The capability information can be used to compute 3996 the tunnel path. 3997 The Interface Adjustment Capability Descriptors (IACD) 3998 [RFC6001] on each link-tp can be derived from this 3999 termination-capability list."; 4000 reference 4001 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4002 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4003 leaf link-tp { 4004 type leafref { 4005 path "../../../../../nt:termination-point/nt:tp-id"; 4006 } 4007 description 4008 "Link termination point."; 4009 } 4011 uses connectivity-label-restriction-list; 4013 list max-lsp-bandwidth { 4014 key "priority"; 4015 max-elements "8"; 4016 description 4017 "Maximum LSP Bandwidth at priorities 0-7."; 4018 reference 4019 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4020 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4021 leaf priority { 4022 type uint8 { 4023 range "0..7"; 4024 } 4025 description "Priority."; 4026 } 4027 leaf bandwidth { 4028 type decimal64 { 4029 fraction-digits 2; 4030 } 4031 description 4032 "Max LSP Bandwidth for this level."; 4033 } 4034 } // max-lsp-bandwidth 4035 } // termination-capability 4036 } // te-node-tunnel-termination-capability 4038 grouping te-path-element { 4039 description 4040 "A group of attributes defining an element in a TE path 4041 such as TE node, TE link, TE atomic resource or label."; 4042 uses te-types:explicit-route-subobject; 4043 } // te-path-element 4045 grouping te-termination-point-augment { 4046 description 4047 "Augmentation for TE termination point."; 4049 container te { 4050 presence "TE support."; 4051 description 4052 "Indicates TE support."; 4054 leaf te-tp-id { 4055 type te-types:te-tp-id; 4056 mandatory true; 4057 description 4058 "An identifier to uniquely identify a TE termination 4059 point."; 4060 } 4062 container config { 4063 description 4064 "Configuration data."; 4065 uses te-termination-point-config; 4066 } // config 4067 container state { 4068 config false; 4069 description 4070 "Operational state data."; 4071 uses te-termination-point-config; 4072 } // state 4073 } // te 4074 } // te-termination-point-augment 4076 grouping te-termination-point-config { 4077 description 4078 "TE termination point configuration grouping."; 4079 uses sch:schedules; 4080 uses interface-switching-capability-list; 4081 leaf inter-layer-lock-id { 4082 type uint32; 4083 description 4084 "Inter layer lock ID, used for path computation in a TE 4085 topology covering multiple layers or multiple regions."; 4086 reference 4087 "RFC5212: Requirements for GMPLS-Based Multi-Region and 4088 Multi-Layer Networks (MRN/MLN). 4089 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4090 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4091 } 4092 } // te-termination-point-config 4094 grouping te-topologies-augment { 4095 description 4096 "Augmentation for TE topologies."; 4098 container te { 4099 presence "TE support."; 4100 description 4101 "Indicates TE support."; 4103 container templates { 4104 description 4105 "Configuration parameters for templates used for TE 4106 topology."; 4108 list node-template { 4109 if-feature template; 4110 key "name"; 4111 leaf name { 4112 type te-types:te-template-name; 4113 description 4114 "The name to identify a TE node template."; 4115 } 4116 description 4117 "The list of TE node templates used to define sharable 4118 and reusable TE node attributes."; 4119 uses template-attributes; 4120 uses te-node-config-attributes-template; 4121 } // node-template 4123 list link-template { 4124 if-feature template; 4125 key "name"; 4126 leaf name { 4127 type te-types:te-template-name; 4128 description 4129 "The name to identify a TE link template."; 4130 } 4131 description 4132 "The list of TE link templates used to define sharable 4133 and reusable TE link attributes."; 4134 uses template-attributes; 4135 uses te-link-config-attributes; 4136 } // link-template 4137 } // templates 4138 } // te 4139 } // te-topologies-augment 4141 grouping te-topology-augment { 4142 description 4143 "Augmentation for TE topology."; 4145 container te { 4146 presence "TE support."; 4147 description 4148 "Indicates TE support."; 4150 leaf provider-id { 4151 type te-types:te-global-id; 4152 mandatory true; 4153 description 4154 "An identifier to uniquely identify a provider."; 4155 } 4156 leaf client-id { 4157 type te-types:te-global-id; 4158 mandatory true; 4159 description 4160 "An identifier to uniquely identify a client."; 4161 } 4162 leaf te-topology-id { 4163 type te-types:te-topology-id; 4164 mandatory true; 4165 description 4166 "It is presumed that a datastore will contain many 4167 topologies. To distinguish between topologies it is 4168 vital to have UNIQUE topology identifiers."; 4169 } 4171 container config { 4172 description 4173 "Configuration data."; 4174 uses te-topology-config; 4175 } // config 4176 container state { 4177 config false; 4178 description 4179 "Operational state data."; 4180 uses te-topology-config; 4181 } // state 4182 } // te 4183 } // te-topology-augment 4185 grouping te-topology-config { 4186 description 4187 "TE topology configuration grouping."; 4188 uses sch:schedules; 4189 leaf preference { 4190 type uint8 { 4191 range "1..255"; 4192 } 4193 description 4194 "Specifies a preference for this topology. A lower number 4195 indicates a higher preference."; 4196 } 4197 leaf optimization-criterion { 4198 type identityref { 4199 base te-types:te-optimization-criterion; 4200 } 4201 description 4202 "Optimization criterion applied to this topology."; 4203 reference 4204 "RFC3272: Overview and Principles of Internet Traffic 4205 Engineering."; 4206 } 4208 } // te-topology-config 4210 grouping te-topology-ref { 4211 description 4212 "References a TE topology."; 4213 leaf provider-id-ref { 4214 type leafref { 4215 path "/nw:networks/nw:network[nw:network-id = " 4216 + "current()/../network-id-ref]/tet:te/tet:provider-id"; 4217 require-instance false; 4218 } 4219 description 4220 "A reference to a provider-id."; 4221 } 4222 leaf client-id-ref { 4223 type leafref { 4224 path "/nw:networks/nw:network[nw:network-id = " 4225 + "current()/../network-id-ref]/tet:te/tet:client-id"; 4226 require-instance false; 4227 } 4228 description 4229 "A reference to a client-id."; 4230 } 4231 leaf te-topology-id-ref { 4232 type leafref { 4233 path "/nw:networks/nw:network[nw:network-id = " 4234 + "current()/../network-id-ref]/tet:te/tet:te-topology-id"; 4235 require-instance false; 4236 } 4237 description 4238 "A reference to a te-topology-id."; 4239 } 4240 leaf network-id-ref { 4241 type leafref { 4242 path "/nw:networks/nw:network/nw:network-id"; 4243 require-instance false; 4244 } 4245 description 4246 "A reference to a network-id in base ietf-network module."; 4247 } 4249 } // te-topology-ref 4251 grouping te-topology-type { 4252 description 4253 "Identifies the TE topology type."; 4254 container te-topology { 4255 presence "Indicates TE topology."; 4256 description 4257 "Its presence identifies the TE topology type."; 4258 } 4259 } // te-topology-type 4261 grouping template-attributes { 4262 description 4263 "Common attributes for all templates."; 4265 leaf priority { 4266 type uint16; 4267 description 4268 "The preference value to resolve conflicts between different 4269 templates. When two or more templates specify values for 4270 one configuration attribute, the value from the template 4271 with the highest priority is used."; 4272 } 4273 leaf reference-change-policy { 4274 type enumeration { 4275 enum no-action { 4276 description 4277 "When an attribute changes in this template, the 4278 configuration node referring to this template does 4279 not take any action."; 4280 } 4281 enum not-allowed { 4282 description 4283 "When any configuration object has a reference to this 4284 template, changing this template is not allowed."; 4285 } 4286 enum cascade { 4287 description 4288 "When an attribute changes in this template, the 4289 configuration object referring to this template applies 4290 the new attribute value to the corresponding 4291 configuration."; 4292 } 4293 } 4294 description 4295 "This attribute specifies the action taken to a configuration 4296 node that has a reference to this template."; 4297 } 4298 } // template-attributes 4300 /* 4301 * Configuration data nodes 4302 */ 4303 augment "/nw:networks/nw:network/nw:network-types" { 4304 description 4305 "Introduce new network type for TE topology."; 4306 uses te-topology-type; 4307 } 4309 augment "/nw:networks" { 4310 description 4311 "Augmentation parameters for TE topologies."; 4312 uses te-topologies-augment; 4313 } 4315 augment "/nw:networks/nw:network" { 4316 when "nw:network-types/te-topology" { 4317 description 4318 "Augmentation parameters apply only for networks with 4319 TE topology type."; 4320 } 4321 description 4322 "Configuration parameters for TE topology."; 4323 uses te-topology-augment; 4324 } 4326 augment "/nw:networks/nw:network/nw:node" { 4327 when "../nw:network-types/te-topology" { 4328 description 4329 "Augmentation parameters apply only for networks with 4330 TE topology type."; 4331 } 4332 description 4333 "Configuration parameters for TE at node level."; 4334 uses te-node-augment; 4335 } 4337 augment "/nw:networks/nw:network/nt:link" { 4338 when "../nw:network-types/te-topology" { 4339 description 4340 "Augmentation parameters apply only for networks with 4341 TE topology type."; 4342 } 4343 description 4344 "Configuration parameters for TE at link level"; 4345 uses te-link-augment; 4346 } 4348 augment "/nw:networks/nw:network/nw:node/" 4349 + "nt:termination-point" { 4350 when "../../nw:network-types/te-topology" { 4351 description 4352 "Augmentation parameters apply only for networks with 4353 TE topology type."; 4354 } 4355 description 4356 "Configuration parameters for TE at termination point level"; 4357 uses te-termination-point-augment; 4358 } 4360 /* 4361 * Operational state data nodes 4362 */ 4364 /* 4365 * Notifications 4366 */ 4368 notification te-node-event { 4369 description "Notification event for TE node."; 4370 leaf event-type { 4371 type te-types:te-topology-event-type; 4372 description "Event type."; 4373 } 4374 uses nw:node-ref; 4375 uses te-topology-type; 4376 uses tet:te-node-config-attributes-notification; 4377 uses tet:te-node-state-derived-notification; 4378 } 4380 notification te-link-event { 4381 description "Notification event for TE link."; 4382 leaf event-type { 4383 type te-types:te-topology-event-type; 4384 description "Event type"; 4385 } 4386 uses nt:link-ref; 4387 uses te-topology-type; 4388 uses tet:te-link-config-attributes; 4389 uses tet:te-link-state-derived; 4390 } 4392 augment "/te-link-event/te-link-attributes/underlay" { 4393 description "Add state attributes to te-link underlay."; 4394 uses te-link-state-underlay-attributes; 4395 } 4396 } 4397 4399 8. Security Considerations 4401 The transport protocol used for retrieving/manipulating the TE 4402 topology data MUST support authentication and SHOULD support 4403 encryption. The data-model by itself does not create any security 4404 implications. 4406 9. IANA Considerations 4408 This document registers the following URIs in the IETF XML registry 4409 [RFC3688]. Following the format in [RFC3688], the following 4410 registration is requested to be made. 4412 URI: urn:ietf:params:xml:ns:yang:ietf-te-topology 4413 XML: N/A, the requested URI is an XML namespace. 4415 This document registers a YANG module in the YANG Module Names 4416 registry [RFC6020]. 4418 name: ietf-te-topology 4419 namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology 4420 prefix: tet 4422 10. References 4424 10.1. Normative References 4426 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4427 Requirement Levels", BCP 14, RFC 2119, March 1997. 4429 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 4430 January 2004. 4432 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 4433 Network Configuration Protocol (NETCONF)", RFC 6020, 4434 October 2010. 4436 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 4437 July 2013. 4439 [RFC3945] Mannie, E., "Generalized Multi-Protocol Label Switching 4440 (GMPLS) Architecture", October 2004. 4442 [YANG-NET-TOPO] Clemm, A., "A Data Model for Network Topologies", 4443 draft-ietf-i2rs-yang-network-topo (Work in Progress). 4445 [YANG-PUSH] Clemm, A., "Subscribing to YANG datastore push updates", 4446 draft-clemm-netconf-yang-push (Work in Progress). 4448 [YANG-SCHEDULE] Liu, X., " A YANG Data Model for Configuration 4449 Scheduling", draft-liu-netmod-yang-schedule-00 (Work in 4450 Progress). 4452 10.2. Informative References 4454 [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over 4455 MPLS", RFC 2702, September 1999. 4457 11. Acknowledgments 4459 The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, 4460 Cyril Margaria and Zafar Ali for participating in design discussions 4461 and providing valuable insights. 4463 Contributors 4465 Sergio Belotti 4466 Nokia 4467 Email: sergio.belotti@nokia.com 4469 Dieter Beller 4470 Nokia 4471 Email: Dieter.Beller@nokia.com 4473 Authors' Addresses 4475 Xufeng Liu 4476 Ericsson 4477 Email: xliu@kuatrotech.com 4479 Igor Bryskin 4480 Huawei Technologies 4481 Email: Igor.Bryskin@huawei.com 4483 Vishnu Pavan Beeram 4484 Juniper Networks 4485 Email: vbeeram@juniper.net 4487 Tarek Saad 4488 Cisco Systems Inc 4489 Email: tsaad@cisco.com 4491 Himanshu Shah 4492 Ciena 4493 Email: hshah@ciena.com 4495 Oscar Gonzalez De Dios 4496 Telefonica 4497 Email: oscar.gonzalezdedios@telefonica.com