idnits 2.17.1 draft-ietf-teas-yang-te-topo-11.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 : ---------------------------------------------------------------------------- ** There are 117 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 174 has weird spacing: '... rw for r...' == Line 175 has weird spacing: '... ro for r...' == Line 1069 has weird spacing: '...l-tp-id bin...' == Line 1097 has weird spacing: '...logy-id te-...' == Line 1183 has weird spacing: '...-tp-ref bin...' == (112 more instances...) -- The document date (July 3, 2017) is 2489 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 733, but not defined == Missing Reference: 'R2' is mentioned on line 739, but not defined == Missing Reference: 'R3' is mentioned on line 733, but not defined == Missing Reference: 'R4' is mentioned on line 739, but not defined == Missing Reference: 'R5' is mentioned on line 652, but not defined == Missing Reference: 'R6' is mentioned on line 656, but not defined == Missing Reference: 'R7' is mentioned on line 656, but not defined == Missing Reference: 'R8' is mentioned on line 656, but not defined == Missing Reference: 'R9' is mentioned on line 656, but not defined == Missing Reference: 'A' is mentioned on line 733, but not defined == Missing Reference: 'E' is mentioned on line 733, but not defined == Missing Reference: 'B' is mentioned on line 739, but not defined == Missing Reference: 'F' is mentioned on line 739, but not defined Summary: 1 error (**), 0 flaws (~~), 20 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 Jabil 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 3, 2018 July 3, 2017 16 YANG Data Model for TE Topologies 17 draft-ietf-teas-yang-te-topo-11 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 3, 2018. 42 Copyright Notice 44 Copyright (c) 2017 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)...........................9 82 3.6. TE Tunnel Termination Point (TTP)........................10 83 3.7. TE Node Connectivity Matrix..............................10 84 3.8. TTP Local Link Connectivity List (LLCL)..................10 85 3.9. TE Path..................................................10 86 3.10. TE Inter-Layer Lock.....................................11 87 3.11. Underlay TE topology....................................12 88 3.12. Overlay TE topology.....................................12 89 3.13. Abstract TE topology....................................12 90 4. Model Applicability...........................................13 91 4.1. Native TE Topologies.....................................13 92 4.2. Customized TE Topologies.................................15 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.................................................21 96 5. Modeling Considerations.......................................24 97 5.1. Network topology building blocks.........................24 98 5.2. Technology agnostic TE Topology model....................24 99 5.3. Model Structure..........................................25 100 5.4. Topology Identifiers.....................................26 101 5.5. Generic TE Link Attributes...............................26 102 5.6. Generic TE Node Attributes...............................27 103 5.7. TED Information Sources..................................28 104 5.8. Overlay/Underlay Relationship............................29 105 5.9. Templates................................................30 106 5.10. Scheduling Parameters...................................31 107 5.11. Notifications...........................................31 108 6. Tree Structure................................................32 109 7. TE Topology Yang Module.......................................68 110 8. Security Considerations......................................115 111 9. IANA Considerations..........................................115 112 10. References..................................................116 113 10.1. Normative References...................................116 114 10.2. Informative References.................................116 115 11. Acknowledgments.............................................116 116 Appendix A. Companion YANG Model for Non-NMDA Compliant 117 Implementations.................................................118 118 A.1. TE Topology State Yang Module...........................118 119 Contributors....................................................125 120 Authors' Addresses..............................................126 122 1. Introduction 124 The Traffic Engineering Database (TED) is an essential component of 125 Traffic Engineered (TE) systems that are based on MPLS-TE [RFC2702] 126 and GMPLS [RFC3945]. The TED is a collection of all TE information 127 about all TE nodes and TE links in the network. The TE Topology is a 128 schematic arrangement of TE nodes and TE links present in a given 129 TED. There could be one or more TE Topologies present in a given 130 Traffic Engineered system. The TE Topology is the topology on which 131 path computational algorithms are run to compute Traffic Engineered 132 Paths (TE Paths). 134 This document defines a YANG [RFC6020] data model for representing 135 and manipulating TE Topologies. This model contains technology 136 agnostic TE Topology building blocks that can be augmented and used 137 by other technology-specific TE Topology models. 139 1.1. Terminology 141 TED: The Traffic Engineering Database is a collection of all TE 142 information about all TE nodes and TE links in a given network. 144 TE-Topology: The TE Topology is a schematic arrangement of TE nodes 145 and TE links in a given TED. It forms the basis for a graph suitable 146 for TE path computations. 148 Native TE Topology: Native TE Topology is a topology that is native 149 to a given provider network. Native TE topology could be discovered 150 via various routing protocols and/or subscribe/publish techniques. 151 This is the topology on which path computational algorithms are run 152 to compute TE Paths. 154 Customized TE Topology: Customized TE Topology is a custom topology 155 that is produced by a provider for a given Client. This topology 156 typically augments the Client's Native TE Topology. Path 157 computational algorithms aren't typically run on the Customized TE 158 Topology; they are run on the Client's augmented Native TE Topology. 160 1.2. Tree Structure - Legend 162 A simplified graphical representation of the data model is presented 163 in Section 6. of this document. The following notations are used for 164 the YANG model data tree representation. 166 168 is one of: 169 + for current 170 x for deprecated 171 o for obsolete 173 is one of: 174 rw for read-write configuration data 175 ro for read-only non-configuration data 176 -x for execution rpcs 177 -n for notifications 179 is the name of the node 181 If the node is augmented into the tree from another module, its 182 name is printed as : 184 is one of: 185 ? for an optional leaf or node 186 ! for a presence container 187 * for a leaf-list or list 188 Brackets [] for a list's keys 189 Curly braces {} for optional feature that make node 190 conditional 192 Colon : for marking case nodes 193 Ellipses ("...") subtree contents not shown 195 Parentheses enclose choice and case nodes, and case nodes are 196 also marked with a colon (":"). 198 is the name of the type for leafs and leaf-lists. 200 1.3. Prefixes in Data Node Names 202 In this document, names of data nodes and other data model objects 203 are prefixed using the standard prefix associated with the 204 corresponding YANG imported modules, as shown in Table 1. 206 +--------+-----------------+-----------+ 207 | Prefix | YANG module | Reference | 208 +--------+-----------------+-----------+ 209 | yang | ietf-yang-types | [RFC6991] | 210 | inet | ietf-inet-types | [RFC6991] | 211 +--------+-----------------+-----------+ 213 Table 1: Prefixes and corresponding YANG modules 215 2. Characterizing TE Topologies 217 The data model proposed by this document takes the following 218 characteristics of TE Topologies into account: 220 - TE Topology is an abstract control-plane representation of the 221 data-plane topology. Hence attributes specific to the data-plane 222 must make their way into the corresponding TE Topology modeling. 223 The TE Topology comprises of dynamic auto-discovered data (data 224 that may change frequently - example: unreserved bandwidth 225 available on data-plane links) as well as fairly static data (data 226 that rarely changes- examples: layer network identification, 227 switching and adaptation capabilities and limitations, fate 228 sharing, administrative colors) associated with data-plane nodes 229 and links. It is possible for a single TE Topology to encompass TE 230 information at multiple switching layers. 232 - TE Topologies are protocol independent. Information about 233 topological elements may be learnt via link-state protocols, but 234 the topology can exist without being dependent on any particular 235 protocol. 237 - TE Topology may not be congruent to the routing topology (topology 238 constructed based on routing adjacencies) in a given TE System. 239 There isn't always a one-to-one association between a TE-link and 240 a routing adjacency. For example, the presence of a TE link 241 between a pair of nodes doesn't necessarily imply the existence of 242 a routing-adjacency between these nodes. 244 - Each TE Topological element has an information source associated 245 with it. In some scenarios, there could be more than one 246 information source associated with each topological element. 248 - TE Topologies can be hierarchical. Each node and link of a given 249 TE Topology can be associated with respective underlay topology. 250 This means that each node and link of a given TE Topology can be 251 associated with an independent stack of supporting TE Topologies. 253 - TE Topologies can be customized. TE topologies of a given network 254 presented by the network provider to its client could be 255 customized on per-client request basis. This customization could 256 be performed by provider, by client or by provider/client 257 negotiation. The relationship between a customized topology (as 258 presented to the client) and provider's native topology (as known 259 in its entirety to the provider itself) could be captured as 260 hierarchical (overlay-underlay), but otherwise the two topologies 261 are decoupled from each other. 263 3. Modeling Abstractions and Transformations 265 Node-1 Node-3 266 +------------+ +------------+ 267 | TTP-1 | | TTP-1 | 268 |LTP __ | TE-Tunel-1 | __ | 269 |-6 \/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\/ | 270 o * * oLTP-1 Node-2 LTP-6o * * o 271 | * * | +------------+ | * * | 272 | * TTP-2* | | | | * TTP-2* | 273 | * __ * |LTP-2 LTP-6| |LTP-1 LTP-5| * __ * | 274 o* \/ *o-----------o************o-----------o* \/ *o 275 |LTP * * | Link-12 | * | Link-23 | * * | 276 |-5 * * | LTP-5| * |LTP-2 | * * | 277 +--o------o--+ o************o +--o------o--+ 278 LTP-4 LTP-3 | * * * | LTP-4 LTP-3 279 | ** * | 280 +--o------o--+ 281 LTP-4 LTP-3 283 Figure 1: TE Topology Modeling Abstractions 285 3.1. TE Topology 287 TE topology is a traffic engineering representation of one or more 288 layers of network topologies. TE topology is comprised of TE nodes 289 (TE graph vertices) interconnected via TE links (TE graph edges). A 290 TE topology is mapped to a TE graph. 292 3.2. TE Node 294 TE node is an element of a TE topology (presented as a vertex on TE 295 graph). TE node represents one or several nodes (physical switches), 296 or a fraction of a node. TE node belongs to and is fully defined in 297 exactly one TE topology. TE node is assigned with the TE topology 298 scope unique ID. TE node attributes include information related to 299 the data plane aspects of the associated node(s) (e.g. connectivity 300 matrix), as well as configuration data (such as TE node name). A 301 given TE node can be reached on the TE graph over one of TE links 302 terminated by the TE node. 304 Multi-layer TE nodes providing switching functions at multiple 305 network layers are an example where a physical node can be decomposed 306 into multiple logical TE nodes (fractions of a node). Some of these 307 (logical) TE nodes may reside in the client layer TE topology while 308 the remaining TE nodes belong to the server layer TE topology. 310 In Figure 1, Node-1, Node-2, and Node-3 are TE nodes. 312 3.3. TE Link 314 TE link is an element of a TE topology (presented as an edge on TE 315 graph, arrows indicate one or both directions of the TE link). TE 316 link represents one or several (physical) links or a fraction of a 317 link. TE link belongs to and is fully defined in exactly one TE 318 topology. TE link is assigned with the TE topology scope unique ID. 319 TE link attributes include parameters related to the data plane 320 aspects of the associated link(s) (e.g. unreserved bandwidth, 321 resource maps/pools, etc.), as well as the configuration data (such 322 as remote node/link IDs, SRLGs, administrative colors, etc.). TE link 323 is connected to TE node, terminating the TE link via exactly one TE 324 link termination point (LTP). 326 In Figure 1, Link-12 and Link-23 are TE links. 328 3.4. Transitional TE Link for Multi-Layer Topologies 330 Networks are typically composed of multiple network layers where one 331 or multiple signals in the client layer network can be multiplexed 332 and encapsulated into a server layer signal. The server layer signal 333 can be carried in the server layer network across multiple nodes 334 until the server layer signal is terminated and the client layer 335 signals reappear in the node that terminates the server layer signal. 336 Examples of multi-layer networks are: IP over MPLS over Ethernet, low 337 order ODUk signals multiplexed into a high order ODUl (l>k) carried 338 over an OCh signal (optical transport network). 340 TE links as defined in 3.3. can be used to represent links within a 341 network layer. In case of a multi-layer network, TE nodes and TE 342 links only allow representation of each network layer as a separate 343 TE topology Each of these single layer TE topologies would be 344 isolated from their client and their server layer TE topology, if 345 present (the highest and the lowest network layer in the hierarchy 346 only have a single adjacent layer below or above, respectively). 347 Multiplexing of client layer signals and encapsulating them into a 348 server layer signal requires a function that is provided inside a 349 node (typically realized in hardware). This function is also called 350 layer transition. 352 One of the key requirements for path computation is to be able to 353 calculate a path between two endpoints across a multi-layer network 354 based on the TE topology representing this multi-layer network. This 355 means that an additional TE construct is needed that represents 356 potential layer transitions in the multi-layer TE-topology that 357 connects the TE-topologies representing each separate network layer. 358 The so-called transitional TE link is such a construct and it 359 represents the layer transition function residing inside a node that 360 is decomposed into multiple logical nodes that are represented as TE 361 nodes. Hence, a transitional TE link connects a client layer node 362 with a server layer node. A TE link as defined in 3.3. has LTPs of 363 exactly the same kind on each link end whereas the transitional TE 364 link has client layer LTPs on the client side of the transitional 365 link and in most cases a single server layer LTP on the server side. 366 It should be noted that transitional links are a helper construct in 367 the multi-layer TE topology and they only exist as long as they are 368 not in use (as they represent potential connectivity). When the 369 server layer trail has been established between the server layer LTP 370 of two transitional links in the server layer network, the resulting 371 client layer link in the data plane will be represented as a normal 372 TE link in the client layer topology. The transitional TE links will 373 re-appear when the server layer trail has been torn down. 375 +------------------+ 376 | +------+ | +------+ 377 -----|Client|------+ | Client -----|Client| 378 | |Layer |---+ | | Layer |Layer | 379 -----|Switch|-+ | | | Links -----|Node | 380 | +------+ | | | | +------+ 381 | | | | | Client | | | 382 | | | ---_| Layer --- --- 383 ***|**********|*| \ /*|***************************\ /*\ /**** 384 | --- | | Server Transitional | | 385 | Layer \ / | | Layer Links | | 386 | Term. | | | | | 387 | | | | | | 388 | +------+ | +------+ 389 =============|Server|===== Server ====|Server|==== 390 | |Layer | | Layer |Layer | 391 =============|Switch|===== Links ====|Node |==== 392 | +------+ | +------+ 393 +------------------+ 395 Physical Node View TE-Topology View 397 Figure 2: Modeling a Multi-Layer Node (Dual-Layer Example) 399 3.5. TE Link Termination Point (LTP) 401 TE link termination point (LTP) is a conceptual point of connection 402 of a TE node to one of the TE links, terminated by the TE node. 403 Cardinality between an LTP and the associated TE link is 1:0..1. 405 In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6. 407 3.6. TE Tunnel Termination Point (TTP) 409 TE tunnel termination point (TTP) is an element of TE topology 410 representing one or several of potential transport service 411 termination points (i.e. service client adaptation points such as 412 WDM/OCh transponder). TTP is associated with (hosted by) exactly one 413 TE node. TTP is assigned with the TE node scope unique ID. Depending 414 on the TE node's internal constraints, a given TTP hosted by the TE 415 node could be accessed via one, several or all TE links terminated by 416 the TE node. 418 In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2. 420 3.7. TE Node Connectivity Matrix 422 TE node connectivity matrix is a TE node's attribute describing the 423 TE node's switching limitations in a form of valid switching 424 combinations of the TE node's LTPs (see below). From the point of 425 view of a potential TE path arriving at the TE node at a given 426 inbound LTP, the node's connectivity matrix describes valid 427 (permissible) outbound LTPs for the TE path to leave the TE node 428 from. 430 In Figure 1, the connectivity matrix on Node-2 is: 431 {, , , , 432 } 434 3.8. TTP Local Link Connectivity List (LLCL) 436 TTP Local Link Connectivity List (LLCL) is a List of TE links 437 terminated by the TTP hosting TE node (i.e. list of the TE link 438 LTPs), which the TTP could be connected to. From the point of view of 439 a potential TE path LLCL provides a list of valid TE links the TE 440 path needs to start/stop on for the connection, taking the TE path, 441 to be successfully terminated on the TTP in question. 443 In Figure 1, the LLCL on Node-1 is: 444 {, , , } 446 3.9. TE Path 448 TE path is an ordered list of TE links and/or TE nodes on the TE 449 topology graph, inter-connecting a pair of TTPs to be taken by a 450 potential connection. TE paths, for example, could be a product of 451 successful path computation performed for a given transport service. 453 In Figure 1, the TE Path for TE-Tunnel-1 is: 454 {Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} 456 3.10. TE Inter-Layer Lock 458 TE inter-layer lock is a modeling concept describing client-server 459 layer adaptation relationships and hence important for the multi- 460 layer traffic engineering. It is an association of M client layer 461 LTPs and N server layer TTPs, within which data arriving at any of 462 the client layer LTPs could be adopted onto any of the server layer 463 TTPs. TE inter-layer lock is identified by inter-layer lock ID, which 464 is unique across all TE topologies provided by the same provider. The 465 client layer LIPs and the server layer TTPs associated within a given 466 TE inter-layer lock are decorated with the same inter-layer lock ID 467 attribute. 469 (IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1) 470 --------O (IL-1) O-------- 471 (IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1) 472 --------O __ 0-------- 473 (IL-1) C-LTP-5 | *\/* | C-LTP-5 (IL-1) 474 --------O * * O-------- 475 | *(IL-1)* | 476 S-LTP-3 | * S-TTP-2* | S-LTP-4 477 --------o* __ *o-------- 478 | *\/* | 479 | * * | 480 +--o------o--+ 481 S-LTP-1 | | S-LTP-2 483 Figure 3: TE Inter-Layer Lock ID Associations 485 On the picture above a TE inter-layer lock with IL_1 ID associates 6 486 client layer LTPs (C-LTP-1 - C-LTP-6) with two server layer TTPs (S- 487 TTP-1 and S-TTP-2). They all have the same attribute - TE inter-layer 488 lock ID: IL-1, which is the only thing that indicates the 489 association. A given LTP may have 0, 1 or more inter-layer lock IDs. 490 In the latter case this means that the data arriving at the LTP may 491 be adopted onto any of TTPs associated with all specified inter-layer 492 locks. For example, C-LTP-1 could have two inter-layer lock IDs - IL- 493 1 and IL-2. This would mean that C-LTP-1 for adaptation purposes 494 could use not just TTPs associated with inter-layer lock IL-1 (i.e. 495 S-TTP-1 and S-TTP-2 on the picture), but any of TTPs associated with 496 inter-layer lock IL-2 as well. Likewise, a given TTP may have one or 497 more inter-layer lock IDs, meaning that it can offer the adaptation 498 service to any of client layer LTPs with inter-layer lock ID matching 499 one of its own. Additionally, each TTP has an attribute - Unreserved 500 Adaptation Bandwidth, which announces its remaining adaptation 501 resources sharable between all potential client LTPs. 503 LTPs and TTPs associated within the same TE inter-layer lock may be 504 hosted by the same (hybrid, multi-layer) TE node or multiple TE nodes 505 located in the same or separate TE topologies. The latter is 506 especially important since TE topologies of different layer networks 507 could be modeled by separate augmentations of the basic (common to 508 all layers) TE topology model. 510 3.11. Underlay TE topology 512 Underlay TE topology is a TE topology that serves as a base for 513 constructing of overlay TE topologies 515 3.12. Overlay TE topology 517 Overlay TE topology is a TE topology constructed based on one or more 518 underlay TE topologies. Each TE node of the overlay TE topology 519 represents an arbitrary segment of an underlay TE topology; each TE 520 link of the overlay TE topology represents an arbitrary TE path in 521 one of the underlay TE topologies. The overlay TE topology and the 522 supporting underlay TE topologies may represent distinct layer 523 networks (e.g. OTN/ODUk and WDM/OCh respectively) or the same layer 524 network. 526 3.13. Abstract TE topology 528 Abstract TE topology is a topology that contains abstract topological 529 elements (nodes, links, tunnel termination points). Abstract TE 530 topology is an overlay TE topology created by a topology provider and 531 customized for a topology provider's client based on one or more of 532 the provider's native TE topologies (underlay TE topologies), the 533 provider's policies and the client's preferences. For example, a 534 first level topology provider (such as Domain Controller) can create 535 an abstract TE topology for its client (e.g. Multi-Domain Service 536 Coordinator) based on the provider's one or more native TE 537 topologies, local policies/profiles and the client's TE topology 538 configuration requests 540 Figure 4 shows an example of abstract TE topology. 542 +---+ +---+ 543 |s31|--------------|S5 | 544 +---+\ / +---+ 545 \ / 546 \ / 547 \+---+/ +---+ 548 /|AN1|\----------------|S8 | 549 / +---+ \ +---+ 550 +---+ / \ +---+ 551 |S9 |-------------|S11| 552 +---+ +---+ 553 Abstract TE Topology 555 +---+ +---+ 556 |S1 |--------------------|S2 | 557 +---+ +---+ 558 / \ 559 / \ 560 +---+ / +---+ \ +---+ 561 |s3 |--------------------|S4 |---------|S5 | 562 +---+\ +---+ +---+ 563 \ \ \ 564 \ \ \ 565 \+---+ +---+ +---+ 566 /|S6 |\ |S7 |---------|S8 | 567 / +---+ \ +---+\ /+---+ 568 +---+ / \ +---+ +---+ / 569 |S9 |-------------|S10|--------------|S11|/ 570 +---+ +---+ +---+ 571 Native TE Topology 573 Figure 4: Abstract TE Topology 575 4. Model Applicability 577 4.1. Native TE Topologies 579 The model discussed in this draft can be used to represent and 580 retrieve native TE topologies on a given TE system. 582 +---+ +---+ +---+ +---+ +---+ 583 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 584 +---+ +---+ +---+ +---+ +---+ 585 | / \ / \ / 586 | / \ / \ / 587 | / \ / \ / 588 | / \ / \ / 589 | / \ / \ / 590 +---+ +---+ +---+ +---+ 591 | R6|-------------| R7| | R8|---------| R9| 592 +---+ +---+ +---+ +---+ 594 Figure 5a: Example Network Topology 596 Consider the network topology depicted in Figure 5a (R1 .. R9 are 597 nodes representing routers). An implementation MAY choose to 598 construct a native TE Topology using all nodes and links present in 599 the given TED as depicted in Figure 5b. The data model proposed in 600 this document can be used to retrieve/represent this TE topology. 602 --------------- 603 | Native | | [ ] TE Node 604 | TE-Topology | | +++ TE Link 605 --------------- o-------------- 607 [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] 608 + + + + + + 609 + + + + + + 610 + + ++ ++ 611 [R6] +++++++++ [R7] [R8] ++++ [R9] 613 Figure 5b: Native TE Topology as seen on Node R3 615 Consider the case of the topology being split in a way that some 616 nodes participate in OSPF-TE while others participate in ISIS-TE 617 (Figure 6a). An implementation MAY choose to construct separate TE 618 Topologies based on the information source. The native TE Topologies 619 constructed using only nodes and links that were learnt via a 620 specific information source are depicted in Figure 6b. The data model 621 proposed in this document can be used to retrieve/represent these TE 622 topologies. 624 Similarly, the data model can be used to represent/retrieve a TE 625 Topology that is constructed using only nodes and links that belong 626 to a particular technology layer. The data model is flexible enough 627 to retrieve and represent many such native TE Topologies. 629 : 630 TE info distributed via ISIS-TE : TE info distributed via OSPF-TE 631 : 632 +---+ +---+ +---+ +---+ +---+ 633 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 634 +---+ +---+ +---+ +---+ +---+ 635 | / : \ / \ / 636 | / : \ / \ / 637 | / : \ / \ / 638 | / : \ / \ / 639 | / : \ / \ / 640 +---+ +---+ : +---+ +---+ 641 | R6|-------------| R7| : | R8|---------| R9| 642 +---+ +---+ : +---+ +---+ 643 : 645 Figure 6a: Example Network Topology 647 ----------------------- : ----------------------- 648 |Native TE Topology | : |Native TE Topology | 649 |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | 650 ----------------------- : ----------------------- 651 : 652 [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] 653 + + : + + + + 654 + + : + + + + 655 + + : ++ ++ 656 [R6] +++++++++ [R7] : [R8] ++++ [R9] 658 Figure 6b: Native TE Topologies as seen on Node R3 660 4.2. Customized TE Topologies 662 Customized TE topology is a topology that was modified by the 663 provider to honor a particular client's requirements or preferences. 664 The model discussed in this draft can be used to represent, retrieve 665 and manipulate customized TE Topologies. The model allows the 666 provider to present the network in abstract TE Terms on a per client 667 basis. These customized topologies contain sufficient information for 668 the path computing client to select paths according to its policies. 670 | +---+ /-\ 671 | | | Router ( ) WDM 672 | +---+ Node \-/ node 673 | 674 o---------------------------- 676 +---+ /-\ /-\ /-\ +---+ 677 | R1|-------( A )--------( C )---------( E )---------| R3| 678 +---+ \-/ \-/ \-/ +---+ 679 / \ / \ 680 / \ / \ 681 / \ / \ 682 / \ / \ 683 / \ / \ 684 +---+ /-\ /-\ /-\ +---+ 685 | R2|---------( B )---------( D )---------( F )---------| R4| 686 +---+ \-/ \-/ \-/ +---+ 688 Figure 7: Example packet optical topology 690 Consider the network topology depicted in Figure 7. This is a typical 691 packet optical transport deployment scenario where the WDM layer 692 network domain serves as a Server Network Domain providing transport 693 connectivity to the packet layer network Domain (Client Network 694 Domain). Nodes R1, R2, R3 and R4 are IP routers that are connected to 695 an Optical WDM transport network. A, B, C, D, E and F are WDM nodes 696 that constitute the Server Network Domain. 698 | ***** B-F WDM Path 699 | @@@@@ B-E WDM Path 700 | $$$$$ A-E WDM Path 701 o-------------------- 703 +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ 704 | R1|-------( A )--------( C )---------( E )---------| R3| 705 +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ 706 @/ \ / \ 707 @/ \ / \ 708 @/ \ / \ 709 @/ \ / \ 710 @/ \ / \ 711 +---+ /-\ ********* /-\ ********* /-\ +---+ 712 | R2|---------( B )---------( D )---------( F )---------| R4| 713 +---+ \-/ \-/ \-/ +---+ 715 Figure 8a: Paths within the provider domain 716 ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ 717 +++++ 718 ++++ 719 ++++ 720 ++++ 721 ++++ 722 ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ 724 Figure 8b: Customized TE Topology provided to the Client 726 The goal here is to augment the Client TE Topology with a customized 727 TE Topology provided by the WDM network. Given the availability of 728 the paths A-E, B-F and B-E (Figure 8a), a customized TE Topology as 729 depicted in Figure 8b is provided to the Client. This customized TE 730 Topology is merged with the Client's Native TE Topology and the 731 resulting topology is depicted in Figure 8c. 733 [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] 734 +++++ 735 ++++ 736 ++++ 737 ++++ 738 ++++ 739 [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] 741 Figure 8c: Customized TE Topology merged with the Client's Native TE 742 Topology 744 The data model proposed in this document can be used to 745 retrieve/represent/manipulate the customized TE Topology depicted in 746 Figure 8b. 748 A customized TE topology is not necessarily an abstract TE topology. 749 he provider may produce, for example, an abstract TE topology of 750 certain type (e.g. single-abstract-node-with-connectivit-matrix 751 topology, a border_nodes_connected_via_mesh_of_abstract_links 752 topology, etc.) and expose it to all/some clients in expectation that 753 the clients will use it without customization. 754 On the other hand, a client may request a customized version of the 755 provider's native TE topology (e.g. by requesting removal of TE links 756 which belong to certain layers, are too slow, not protected and/or 757 have a certain affinity). Note that the resulting TE topology will 758 not be abstract (because it will not contain abstract elements), but 759 customized (modified upon client's instructions). 761 The client ID field in the TE topology identifier (Section 5.4. 762 indicates which client the TE topology is customized for. Although a 763 authorized client MAY receive a TE topology with the client ID field 764 matching some other client, the client can customize only TE 765 topologies with the client ID field either 0 or matching the ID of 766 the client in question. If the client starts reconfiguration of a 767 topology its client ID will be automatically set in the topology ID 768 field for all future configurations and updates wrt. the topology in 769 question. 771 The provider MAY tell the client that a given TE topology cannot be 772 re-negotiated, by setting its own (provider's) ID in the client ID 773 field of the topology ID. 775 4.3. Merging TE Topologies Provided by Multiple Providers 777 A client may receive TE topologies provided by multiple providers, 778 each of which managing a separate domain of multi-domain network. In 779 order to make use of said topologies, the client is expected to merge 780 the provided TE topologies into one or more client's native TE 781 topologies, each of which homogeneously representing the multi-domain 782 network. This makes it possible for the client to select end-to-end 783 TE paths for its services traversing multiple domains. 785 In particular, the process of merging TE topologies includes: 787 - Identifying neighboring domains and locking their topologies 788 horizontally by connecting their inter-domain open-ended TE links; 789 - Renaming TE node, link, and SRLG IDs to ones allocated from a 790 separate name space; this is necessary because all TE topologies 791 are considered to be, generally speaking, independent with a 792 possibility of clashes among TE node, link or SRLG IDs; 793 - Locking, vertically, TE topologies associated with different layer 794 networks, according to provided topology inter-layer locks; this is 795 to facilitate inter-layer path computations across multiple TE 796 topologies provided by the same topology provider. 798 /---\ +---+ +---+ +---+ +---+ /---\ 799 |s3 |------|S13|----|S15|------|S23|----|S25|------|C21| 800 \---/ +---+\ +---+ +---+ /+---+ \---/ 801 \ / 802 \ / 803 \+---+ +---+/ +---+ /---\ 804 |S18|------|S24| |S28|------|C22| 805 +---+ +---+\ /+---+ \---/ 806 \/ 807 /\ 808 /---\ +---+ +---+ +---+/ \+---+ /---\ 809 |C12|------|S19|----|S17|------|S29|----|S27|------|C23| 810 \---/ +---+ +---+ +---+ +---+ \---/ 812 Domain 1 TE Topology Domain 2 TE Topology 814 +---+ +---+ +---+ +---+ 815 -----|S13|----|S15|---- ----|S23|----|S25|---- 816 +---+\ +---+ +---+ /+---+ 817 \ / 818 \ / 819 \+---+ +---+/ +---+ 820 |S18|---- ----|S24| |S28|---- 821 +---+ +---+\ /+---+ 822 \/ 823 /\ 824 +---+ +---+ +---+/ \+---+ 825 -----|S19|----|S17|---- ----|S29|----|S27|---- 826 +---+ +---+ +---+ +---+ 828 Figure 9: Merging Domain TE Topologies 830 Figure 9 illustrates the process of merging, by the client, of TE 831 topologies provided by the client's providers. In the Figure, each of 832 the two providers caters to the client (abstract or native) TE 833 topology, describing the network domain under the respective 834 provider's control. The client, by consulting the attributes of the 835 inter-domain TE links - such as inter-domain plug IDs or remote TE 836 node/link IDs (as defined by the TE Topology model) - is able to 837 determine that: 839 a) the two domains are adjacent and are inter-connected via three 840 inter-domain TE links, and; 842 b) each domain is connected to a separate customer site, connecting 843 the left domain in the Figure to customer devices C-11 and C-12, 844 and the right domain to customer devices C-21, C-22 and C-23. 846 Therefore, the client inter-connects the open-ended TE links, as 847 shown on the upper part of the Figure. 849 As mentioned, one way to inter-connect the open-ended inter-domain TE 850 links of neighboring domains is to mandate the providers to specify 851 remote nodeID/linkID attribute in the provided inter-domain TE links. 852 This, however, may prove to be not flexible. For example, the 853 providers may not know the respective remote nodeIDs/ linkIDs. More 854 importantly, this option does not allow for the client to mix-n-match 855 multiple (more than one) topologies catered by the same providers 856 (see below). Another, more flexible, option to resolve the open-ended 857 inter-domain TE links is by decorating them with the inter-domain 858 plug ID attribute. Inter-domain plug ID is a network-wide unique 859 number that identifies on the network a connectivity supporting a 860 given inter-domain TE link. Instead of specifying remote node ID/link 861 ID, an inter-domain TE link may provide a non-zero inert-domain plug 862 ID. It is expected that two neighboring domain TE topologies 863 (provided by separate providers) will have each at least one open- 864 ended inter-domain TE link with an inter-domain plug ID matching to 865 one provided by its neighbor. For example, the inter-domain TE link 866 originating from node S5 of the Domain 1 TE topology (Figure 1) and 867 the inter-domain TE link coming from node S3 of Domain2 TE topology 868 may specify matching inter-domain plug ID (e.g. 175344) This allows 869 for the client to identify adjacent nodes in the separate neighboring 870 TE topologies and resolve the inter-domain TE links connecting them 871 regardless of their respective nodeIDs/linkIDs (which, as mentioned, 872 could be allocated from independent name spaces). Inter-domain plug 873 IDs may be assigned and managed by a central network authority. 874 Alternatively, inter-domain plug IDs could be dynamically auto- 875 discovered (e.g. via LMP protocol). 877 Furthermore, the client renames the TE nodes, links and SRLGs offered 878 in the abstract TE topologies by assigning to them IDs allocated from 879 a separate name space managed by the client. Such renaming is 880 necessary, because the two abstract TE topologies may have their own 881 name spaces, generally speaking, independent one from another; hence, 882 ID overlaps/clashes are possible. For example, both TE topologies 883 have TE nodes named S7, which, after renaming, appear in the merged 884 TE topology as S17 and S27, respectively. 886 Once the merging process is complete, the client can use the merged 887 TE topology for path computations across both domains, for example, 888 to compute a TE path connecting C-11 to C-23. 890 4.4. Dealing with Multiple Abstract TE Topologies Provided by the Same 891 Provider 893 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 895 +---+ +---+ +---+ +---+ 896 -----|S13|----|S15|---- ----|S23|----|S25|---- 897 +---+\ +---+ +---+ /+---+ 898 \ / 899 \ / 900 \+---+ +---+/ +---+ 901 |S18|---- ----|S24| |S28|---- 902 +---+ +---+\ /+---+ 903 \/ 904 /\ 905 +---+ +---+ +---+/ \+---+ 906 -----|S19|----|S17|---- ----|S29|----|S27|---- 907 +---+ +---+ +---+ +---+ 909 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 911 +------------+ +------------+ 912 -----| |---- ----| |---- 913 | | | | 914 | AN1 |---- ----| AN1 |---- 915 | | | | 916 -----| |---- ----| |---- 917 +------------+ +------------+ 919 Figure 10: Merging Domain TE Topologies 921 Based on local configuration, templates and/or policies pushed by the 922 client, a given provider may expose more than one abstract TE 923 topology to the client. For example, one abstract TE topology could 924 be optimized based on a lowest-cost criterion, while another one 925 could be based on best possible delay metrics, while yet another one 926 could be based on maximum bandwidth availability for the client 927 services. Furthermore, the client may request all or some providers 928 to expose additional abstract TE topologies, possibly of a different 929 type and/or optimized differently, as compared to already-provided TE 930 topologies. In any case, the client should be prepared for a provider 931 to offer to the client more than one abstract TE topology. 933 It should be up to the client (based on the client's local 934 configuration and/or policies conveyed to the client by the client's 935 clients) to decide how to mix-and-match multiple abstract TE 936 topologies provided by each or some of the providers, as well as how 937 to merge them into the client's native TE topologies. The client also 938 decides how many such merged TE topologies it needs to produce and 939 maintain. For example, in addition to the merged TE topology depicted 940 in the upper part of Figure 1, the client may merge the abstract TE 941 topologies received from the two providers, as shown in Figure 10, 942 into the client's additional native TE topologies, as shown in Figure 943 11. 945 Note that allowing for the client mix-n-matching of multiple TE 946 topologies assumes that inter-domain plug IDs (rather than remote 947 nodeID/linkID) option is used for identifying neighboring domains and 948 inter-domain TE link resolution. 950 Client's Merged TE Topology 2 952 /---\ +------------+ +------------+ /---\ 953 |s3 |------| |------| |------|C21| 954 \---/ | | | | \---/ 955 | | | | 956 | | | | 957 | | | | /---\ 958 | AN11 |------| AN21 |------|C22| 959 | | | | \---/ 960 | | | | 961 | | | | 962 /---\ | | | | /---\ 963 |C12|------| |------| |------|C23| 964 \---/ +------------+ +------------+ \---/ 966 Client's Merged TE Topology 3 968 /---\ +------------+ +---+ +---+ /---\ 969 |s3 |------| |------|S23|----|S25|------|C21| 970 \---/ | | +---+ /+---+ \---/ 971 | | / 972 | | / 973 | | +---+/ +---+ /---\ 974 | AN11 |------|S24| |S28|------|C22| 975 | | +---+\ /+---+ \---/ 976 | | \/ 977 | | /\ 978 /---\ | | +---+/ \+---+ /---\ 979 |C12|------| |------|S29|----|S27|------|C23| 980 \---/ +------------+ +---+ +---+ \---/ 982 Figure 11: Multiple Native (Merged) Client's TE Topologies 984 It is important to note that each of the three native (merged) TE 985 topologies could be used by the client for computing TE paths for any 986 of the multi-domain services. The choice as to which topology to use 987 for a given service depends on the service parameters/requirements 988 and the topology's style, optimization criteria and the level of 989 details. 991 5. Modeling Considerations 993 5.1. Network topology building blocks 995 The network topology building blocks are discussed in [YANG-NET- 996 TOPO]. The TE Topology model proposed in this document augments and 997 uses the ietf-network-topology module defined in [YANG-NET-TOPO]. 999 +------------------------+ 1000 | | 1001 | Network Topology Model | 1002 | (ietf-network-topology)| 1003 +------------------------+ 1004 | 1005 | 1006 | 1007 V 1008 +------------------------+ 1009 | TE Topology | 1010 | Model | 1011 | | 1012 +------------------------+ 1014 Figure 12: Augmenting the Network Topology Model 1016 5.2. Technology agnostic TE Topology model 1018 The TE Topology model proposed in this document is meant to be 1019 network technology agnostic. Other technology specific TE Topology 1020 models can augment and use the building blocks provided by the 1021 proposed model. 1023 +-----------------------------+ 1024 | TE Topology Model | 1025 | (Defined in This Document) | 1026 +-----------------------------+ 1027 | 1028 +-------------+-------------+-------------+ 1029 | | | | 1030 V V V V 1031 +------------+ +------------+ 1032 | Technology | | Technology | 1033 | Specific | ...................... | Specific | 1034 | TE Topology| | TE Topology| 1035 | Model 1 | | Model n | 1036 +------------+ +------------+ 1038 Figure 13: Augmenting the Technology agnostic TE Topology model 1040 5.3. Model Structure 1042 The high-level model structure proposed by this document is as shown 1043 below: 1045 module: ietf-te-topology 1046 augment /nw:networks/nw:network/nw:network-types: 1047 +--rw te-topology! 1049 augment /nw:networks: 1050 +--rw te! 1051 +--rw templates 1052 +--rw node-template* [name] {template}? 1053 | ............ 1054 +--rw link-template* [name] {template}? 1055 ............ 1057 augment /nw:networks/nw:network: 1058 +--rw provider-id? te-types:te-global-id 1059 +--rw client-id? te-types:te-global-id 1060 +--rw te-topology-id? te-types:te-topology-id 1061 +--rw te! 1062 | ............ 1064 augment /nw:networks/nw:network/nw:node: 1065 +--rw te-node-id? te-types:te-node-id 1066 +--rw te! 1067 | ............ 1068 +--rw tunnel-termination-point* [tunnel-tp-id] 1069 +--rw tunnel-tp-id binary 1070 | ............ 1071 +--rw supporting-tunnel-termination-point* [node-ref tunnel- 1072 tp-ref] 1073 | ............ 1075 augment /nw:networks/nw:network/nt:link: 1076 +--rw te! 1077 | .......... 1079 augment /nw:networks/nw:network/nw:node/nt:termination-point: 1080 +--rw te-tp-id? te-types:te-tp-id 1081 +--rw te! 1082 | ............ 1084 5.4. Topology Identifiers 1086 The TE-Topology is uniquely identified by a key that has 3 1087 constituents - te-topology-id, provider-id and client-id. The 1088 combination of provider-id and te-topology-id uniquely identifies a 1089 native TE Topology on a given provider. The client-id is used only 1090 when Customized TE Topologies come into play; a value of "0" is used 1091 as the client-id for native TE Topologies. 1093 augment /nw:networks/nw:network: 1094 +--rw te! 1095 +--rw provider-id te-global-id 1096 +--rw client-id te-global-id 1097 +--rw te-topology-id te-topology-id 1099 5.5. Generic TE Link Attributes 1101 The model covers the definitions for generic TE Link attributes - 1102 bandwidth, admin groups, SRLGs, switching capabilities, TE metric 1103 extensions etc. 1105 +--rw te-link-attributes 1106 ..................... 1107 +--rw admin-status? te-admin-status 1108 | ..................... 1109 +--rw link-index? uint64 1110 +--rw administrative-group? te-types:admin-groups 1111 +--rw link-protection-type? enumeration 1112 +--rw max-link-bandwidth? te-bandwidth 1113 +--rw max-resv-link-bandwidth? te-bandwidth 1114 +--rw unreserved-bandwidth* [priority] 1115 | ..................... 1117 +--rw te-default-metric? uint32 1118 | ..................... 1119 +--rw te-srlgs 1120 +--rw te-nsrlgs {nsrlg}? ..................... 1122 5.6. Generic TE Node Attributes 1124 The model covers the definitions for generic TE Node attributes. 1126 The definition of a generic connectivity matrix is shown below: 1128 +--rw te-node-attributes 1129 ........... 1130 +--rw connectivity-matrices 1131 ........... 1132 | +--rw connectivity-matrix* [id] 1133 | | +--rw id uint32 1134 | | +--rw from 1135 | | | +--rw tp-ref? leafref 1136 | | | +--rw label-restriction* [inclusive-exclusive label- 1137 start] 1138 | | +--rw to 1139 | | | +--rw tp-ref? leafref 1140 | | | +--rw label-restriction* [inclusive-exclusive label- 1141 start] 1142 | | +--rw is-allowed? boolean 1143 ........... 1144 | | +--rw underlay! {te-topology-hierarchy}? 1145 ........... 1146 | | +--rw path-constraints 1147 ........... 1148 | | +--rw optimizations 1149 ........... 1150 | | +--ro computed-path-properties 1151 ........... 1153 The definition of a TTP Local Link Connectivity List is shown below: 1155 +--rw tunnel-termination-point* [tunnel-tp-id] 1156 +--rw tunnel-tp-id binary 1157 +--rw admin-status? te-types:te-admin-status 1158 +--rw name? string 1159 +--rw switching-capability? identityref 1160 +--rw encoding? identityref 1161 +--rw inter-layer-lock-id? uint32 1162 +--rw protection-type? Identityref 1163 +--rw client-layer-adaptation 1164 ........... 1165 +--rw local-link-connectivities 1166 ........... 1167 | +--rw local-link-connectivity* [link-tp-ref] 1168 | +--rw link-tp-ref leafref 1169 | +--rw label-restriction* [inclusive-exclusive label-start] 1170 ........... 1171 | +--rw is-allowed? boolean 1172 | +--rw underlay {te-topology-hierarchy}? 1173 ........... 1174 | +--rw path-constraints 1175 ........... 1176 | +--rw optimizations 1177 ........... 1178 | +--ro computed-path-properties 1179 ........... 1180 +--rw supporting-tunnel-termination-point* [node-ref tunnel-tp- 1181 ref] 1182 +--rw node-ref inet:uri 1183 +--rw tunnel-tp-ref binary 1185 The attributes directly under container connectivity-matrices are the 1186 default attributes for all connectivity-matrix entries when the per 1187 entry corresponding attribute is not specified. When a per entry 1188 attribute is specified, it overrides the cooresponding attribute 1189 directly under the container connectivity-matrices. The same rule 1190 applies to the attributes directly under container local-link- 1191 connectivities. 1193 Each TTP (Tunnel Termination Point) MAY be supported by one or more 1194 supporting TTPs. If the TE node hosting the TTP in question refers to 1195 a supporting TE node, then the supporting TTPs are hosted by the 1196 supporting TE node. If the TE node refers to an underlay TE topology, 1197 the supporting TTPs are hosted by one or more specified TE nodes of 1198 the underlay TE topology. 1200 5.7. TED Information Sources 1202 The model allows each TE topological element to have multiple TE 1203 information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, 1204 System-Processed, Other). Each information source is associated with 1205 a credibility preference to indicate precedence. In scenarios where a 1206 customized TE Topology is merged into a Client's native TE Topology, 1207 the merged topological elements would point to the corresponding 1208 customized TE Topology as its information source. 1210 augment /nw:networks/nw:network/nw:node: 1211 +--rw te! 1212 ........... 1213 +--ro information-source? te-info-source 1214 +--ro information-source-state 1215 | +--ro credibility-preference? uint16 1216 | +--ro logical-network-element? string 1217 | +--ro network-instance? string 1218 | +--ro topology 1219 | +--ro node-ref? leafref 1220 | +--ro network-ref? leafref 1221 +--ro information-source-entry* [information-source] 1222 | +--ro information-source te-info-source 1223 ............ 1225 augment /nw:networks/nw:network/nt:link: 1226 +--rw te! 1227 ........... 1228 +--ro information-source? te-info-source 1229 +--ro information-source-state 1230 | +--ro credibility-preference? uint16 1231 | +--ro logical-network-element? string 1232 | +--ro network-instance? string 1233 | +--ro topology 1234 | +--ro link-ref? leafref 1235 | +--ro network-ref? leafref 1236 +--ro information-source-entry* [information-source] 1237 | +--ro information-source te-info-source 1238 ............ 1240 5.8. Overlay/Underlay Relationship 1242 The model captures overlay and underlay relationship for TE 1243 nodes/links. For example - in networks where multiple TE Topologies 1244 are built hierarchically, this model allows the user to start from a 1245 specific topological element in the top most topology and traverse 1246 all the way down to the supporting topological elements in the bottom 1247 most topology. 1249 This relationship is captured via the "underlay-topology" field for 1250 the node and via the "underlay" field for the link. The use of these 1251 fields is optional and this functionality is tagged as a "feature" 1252 ("te-topology-hierarchy"). 1254 augment /nw:networks/nw:network/nw:node: 1255 +--rw te-node-id? te-types:te-node-id 1256 +--rw te! 1257 +--rw te-node-template* leafref {template}? 1258 +--rw te-node-attributes 1259 | +--rw admin-status? te-types:te-admin-status 1260 | | .................... 1261 | +--rw underlay-topology {te-topology-hierarchy}? 1262 | +--rw network-ref? leafref 1264 augment /nw:networks/nw:network/nt:link: 1265 +--rw te! 1266 +--rw te-link-attributes 1267 | .................... 1268 | +--rw underlay {te-topology-hierarchy}? 1269 | | +--rw enabled? boolean 1270 | | +--rw primary-path 1271 | | | +--rw network-ref? leafref 1272 | | | .................... 1273 | | +--rw backup-path* [index] 1274 | | | +--rw index uint32 1275 | | | +--rw network-ref? leafref 1276 | | | .................... 1277 | | +--rw protection-type? identityref 1278 | | +--rw tunnel-termination-points 1279 | | | +--rw source? binary 1280 | | | +--rw destination? binary 1281 | | +--rw tunnels 1282 | | | .................... 1284 5.9. Templates 1286 The data model provides the users with the ability to define 1287 templates and apply them to link and node configurations. The use of 1288 "template" configuration is optional and this functionality is tagged 1289 as a "feature" ("template"). 1291 +--rw topology* [provider-id client-id te-topology-id] 1292 | ........... 1293 | +--rw node* [te-node-id] 1294 | | +--rw te-node-template? leafref {template}? 1295 | | .......... 1296 | +--rw link* [source-te-node-id source-te-link-id dest-te-node-id 1297 dest-te-link-id] 1298 | +--rw te-link-template? leafref {template}? 1299 | .......... 1301 augment /nw:networks: 1302 +--rw te! 1303 +--rw templates 1304 +--rw node-template* [name] {template}? 1305 | +--rw name te-types:te-template- 1306 name 1307 | +--rw priority? uint16 1308 | +--rw reference-change-policy? enumeration 1309 | +--rw te-node-attributes 1310 .......... 1311 +--rw link-template* [name] {template}? 1312 +--rw name te-types:te-template- 1313 name 1314 +--rw priority? uint16 1315 +--rw reference-change-policy? enumeration 1316 +--rw te-link-attributes 1317 .......... 1319 Multiple templates can be specified to a configuration element. When 1320 two or more templates specify values for the same configuration 1321 field, the value from the template with the highest priority is used. 1322 The reference-change-policy specifies the action that needs to be 1323 taken when the template changes on a configuration element that has a 1324 reference to this template. The choices of action include taking no 1325 action, rejecting the change to the template and applying the change 1326 to the corresponding configuration. [Editor's Note: The notion of 1327 "templates" has wider applicability. It is possible for this to be 1328 discussed in a separate document.] 1330 5.10. Scheduling Parameters 1332 The model allows time scheduling parameters to be specified for each 1333 topological element or for the topology as a whole. These parameters 1334 allow the provider to present different topological views to the 1335 client at different time slots. The use of "scheduling parameters" is 1336 optional. 1338 The YANG data model for configuration scheduling is defined in [YANG- 1339 SCHEDULE], which allows specifying configuration schedules without 1340 altering this data model. 1342 5.11. Notifications 1344 Notifications are a key component of any topology data model. 1346 [YANG-PUSH] and [RFC5277bis] define a subscription and push mechanism 1347 for YANG datastores. This mechanism currently allows the user to: 1349 - Subscribe notifications on a per client basis 1350 - Specify subtree filters or xpath filters so that only interested 1351 contents will be sent. 1352 - Specify either periodic or on-demand notifications. 1354 6. Tree Structure 1356 module: ietf-te-topology 1357 augment /nw:networks/nw:network/nw:network-types: 1358 +--rw te-topology! 1359 augment /nw:networks: 1360 +--rw te! 1361 +--rw templates 1362 +--rw node-template* [name] {template}? 1363 | +--rw name te-types:te-template- 1364 name 1365 | +--rw priority? uint16 1366 | +--rw reference-change-policy? enumeration 1367 | +--rw te-node-attributes 1368 | +--rw admin-status? te-types:te-admin-status 1369 | +--rw domain-id? uint32 1370 | +--rw is-abstract? empty 1371 | +--rw name? inet:domain-name 1372 | +--rw signaling-address* inet:ip-address 1373 | +--rw underlay-topology {te-topology-hierarchy}? 1374 | +--rw network-ref? leafref 1375 +--rw link-template* [name] {template}? 1376 +--rw name te-types:te-template- 1377 name 1378 +--rw priority? uint16 1379 +--rw reference-change-policy? enumeration 1380 +--rw te-link-attributes 1381 +--rw access-type? te-types:te- 1382 link-access-type 1383 +--rw external-domain 1384 | +--rw network-ref? leafref 1385 | +--rw remote-te-node-id? te-types:te-node-id 1386 | +--rw remote-te-link-tp-id? te-types:te-tp-id 1387 | +--rw plug-id? uint32 1388 +--rw is-abstract? empty 1389 +--rw name? string 1390 +--rw underlay {te-topology-hierarchy}? 1391 | +--rw enabled? boolean 1392 | +--rw primary-path 1393 | | +--rw network-ref? leafref 1394 | | +--rw path-element* [path-element-id] 1395 | | +--rw path-element-id uint32 1396 | | +--rw index? uint32 1397 | | +--rw (type)? 1398 | | +--:(numbered) 1399 | | | +--rw numbered-hop 1400 | | | +--rw address? te-types:te-tp-id 1401 | | | +--rw hop-type? te-hop-type 1402 | | +--:(as-number) 1403 | | | +--rw as-number-hop 1404 | | | +--rw as-number? binary 1405 | | | +--rw hop-type? te-hop-type 1406 | | +--:(unnumbered) 1407 | | | +--rw unnumbered-hop 1408 | | | +--rw node-id? te-types:te- 1409 node-id 1410 | | | +--rw link-tp-id? te-types:te-tp- 1411 id 1412 | | | +--rw hop-type? te-hop-type 1413 | | +--:(label) 1414 | | | +--rw label-hop 1415 | | | +--rw value? rt-types:generalized- 1416 label 1417 | | +--:(sid) 1418 | | +--rw sid-hop 1419 | | +--rw sid? rt-types:generalized- 1420 label 1421 | +--rw backup-path* [index] 1422 | | +--rw index uint32 1423 | | +--rw network-ref? leafref 1424 | | +--rw path-element* [path-element-id] 1425 | | +--rw path-element-id uint32 1426 | | +--rw index? uint32 1427 | | +--rw (type)? 1428 | | +--:(numbered) 1429 | | | +--rw numbered-hop 1430 | | | +--rw address? te-types:te-tp-id 1431 | | | +--rw hop-type? te-hop-type 1432 | | +--:(as-number) 1433 | | | +--rw as-number-hop 1434 | | | +--rw as-number? binary 1435 | | | +--rw hop-type? te-hop-type 1436 | | +--:(unnumbered) 1437 | | | +--rw unnumbered-hop 1438 | | | +--rw node-id? te-types:te- 1439 node-id 1440 | | | +--rw link-tp-id? te-types:te-tp- 1441 id 1442 | | | +--rw hop-type? te-hop-type 1443 | | +--:(label) 1444 | | | +--rw label-hop 1445 | | | +--rw value? rt-types:generalized- 1446 label 1447 | | +--:(sid) 1448 | | +--rw sid-hop 1449 | | +--rw sid? rt-types:generalized- 1450 label 1451 | +--rw protection-type? identityref 1452 | +--rw tunnel-termination-points 1453 | | +--rw source? binary 1454 | | +--rw destination? binary 1455 | +--rw tunnels 1456 | +--rw sharing? boolean 1457 | +--rw tunnel* [tunnel-name] 1458 | +--rw tunnel-name string 1459 | +--rw sharing? boolean 1460 +--rw admin-status? te-types:te- 1461 admin-status 1462 +--rw link-index? uint64 1463 +--rw administrative-group? te- 1464 types:admin-groups 1465 +--rw interface-switching-capability* [switching- 1466 capability encoding] 1467 | +--rw switching-capability identityref 1468 | +--rw encoding identityref 1469 | +--rw max-lsp-bandwidth* [priority] 1470 | +--rw priority uint8 1471 | +--rw bandwidth 1472 | +--rw te-bandwidth 1473 | +--rw (technology)? 1474 | +--:(psc) 1475 | | +--rw psc? rt-types:bandwidth- 1476 ieee-float32 1477 | +--:(otn) 1478 | | +--rw otn* [rate-type] 1479 | | +--rw rate-type identityref 1480 | | +--rw counter? uint16 1481 | +--:(lsc) 1482 | | +--rw wdm* [spectrum slot] 1483 | | +--rw spectrum identityref 1484 | | +--rw slot int16 1485 | | +--rw width? uint16 1486 | +--:(generic) 1487 | +--rw generic? te-bandwidth 1488 +--rw label-restriction* [inclusive-exclusive label- 1489 start] 1490 | +--rw inclusive-exclusive enumeration 1491 | +--rw label-start rt-types:generalized- 1492 label 1493 | +--rw label-end? rt-types:generalized- 1494 label 1495 | +--rw range-bitmap? binary 1496 +--rw link-protection-type? enumeration 1497 +--rw max-link-bandwidth 1498 | +--rw te-bandwidth 1499 | +--rw (technology)? 1500 | +--:(psc) 1501 | | +--rw psc? rt-types:bandwidth-ieee- 1502 float32 1503 | +--:(otn) 1504 | | +--rw otn* [rate-type] 1505 | | +--rw rate-type identityref 1506 | | +--rw counter? uint16 1507 | +--:(lsc) 1508 | | +--rw wdm* [spectrum slot] 1509 | | +--rw spectrum identityref 1510 | | +--rw slot int16 1511 | | +--rw width? uint16 1512 | +--:(generic) 1513 | +--rw generic? te-bandwidth 1514 +--rw max-resv-link-bandwidth 1515 | +--rw te-bandwidth 1516 | +--rw (technology)? 1517 | +--:(psc) 1518 | | +--rw psc? rt-types:bandwidth-ieee- 1519 float32 1520 | +--:(otn) 1521 | | +--rw otn* [rate-type] 1522 | | +--rw rate-type identityref 1523 | | +--rw counter? uint16 1524 | +--:(lsc) 1525 | | +--rw wdm* [spectrum slot] 1526 | | +--rw spectrum identityref 1527 | | +--rw slot int16 1528 | | +--rw width? uint16 1529 | +--:(generic) 1530 | +--rw generic? te-bandwidth 1531 +--rw unreserved-bandwidth* [priority] 1532 | +--rw priority uint8 1533 | +--rw bandwidth 1534 | +--rw te-bandwidth 1535 | +--rw (technology)? 1536 | +--:(psc) 1537 | | +--rw psc? rt-types:bandwidth- 1538 ieee-float32 1539 | +--:(otn) 1540 | | +--rw otn* [rate-type] 1541 | | +--rw rate-type identityref 1542 | | +--rw counter? uint16 1543 | +--:(lsc) 1544 | | +--rw wdm* [spectrum slot] 1545 | | +--rw spectrum identityref 1546 | | +--rw slot int16 1547 | | +--rw width? uint16 1548 | +--:(generic) 1549 | +--rw generic? te-bandwidth 1550 +--rw te-default-metric? uint32 1551 +--rw te-delay-metric? uint32 1552 +--rw te-igp-metric? uint32 1553 +--rw te-srlgs 1554 | +--rw value* te-types:srlg 1555 +--rw te-nsrlgs {nsrlg}? 1556 +--rw id* uint32 1557 augment /nw:networks/nw:network: 1558 +--rw provider-id? te-types:te-global-id 1559 +--rw client-id? te-types:te-global-id 1560 +--rw te-topology-id? te-types:te-topology-id 1561 +--rw te! 1562 +--rw preference? uint8 1563 +--rw optimization-criterion? identityref 1564 +--rw nsrlg* [id] {nsrlg}? 1565 | +--rw id uint32 1566 | +--rw disjointness? te-types:te-path-disjointness 1567 +--ro geolocation 1568 +--ro altitude? int64 1569 +--ro latitude? geographic-coordinate-degree 1570 +--ro longitude? geographic-coordinate-degree 1571 augment /nw:networks/nw:network/nw:node: 1572 +--rw te-node-id? te-types:te-node-id 1573 +--rw te! 1574 +--rw te-node-template* leafref {template}? 1575 +--rw te-node-attributes 1576 | +--rw admin-status? te-types:te-admin-status 1577 | +--rw connectivity-matrices 1578 | | +--rw number-of-entries? uint16 1579 | | +--rw label-restriction* [inclusive-exclusive label- 1580 start] 1581 | | | +--rw inclusive-exclusive enumeration 1582 | | | +--rw label-start rt-types:generalized- 1583 label 1584 | | | +--rw label-end? rt-types:generalized- 1585 label 1586 | | | +--rw range-bitmap? binary 1587 | | +--rw is-allowed? boolean 1588 | | +--rw underlay {te-topology-hierarchy}? 1589 | | | +--rw enabled? boolean 1590 | | | +--rw primary-path 1591 | | | | +--rw network-ref? leafref 1592 | | | | +--rw path-element* [path-element-id] 1593 | | | | +--rw path-element-id uint32 1594 | | | | +--rw index? uint32 1595 | | | | +--rw (type)? 1596 | | | | +--:(numbered) 1597 | | | | | +--rw numbered-hop 1598 | | | | | +--rw address? te-types:te-tp-id 1599 | | | | | +--rw hop-type? te-hop-type 1600 | | | | +--:(as-number) 1601 | | | | | +--rw as-number-hop 1602 | | | | | +--rw as-number? binary 1603 | | | | | +--rw hop-type? te-hop-type 1604 | | | | +--:(unnumbered) 1605 | | | | | +--rw unnumbered-hop 1606 | | | | | +--rw node-id? te-types:te-node-id 1607 | | | | | +--rw link-tp-id? te-types:te-tp-id 1608 | | | | | +--rw hop-type? te-hop-type 1609 | | | | +--:(label) 1610 | | | | | +--rw label-hop 1611 | | | | | +--rw value? rt-types:generalized- 1612 label 1613 | | | | +--:(sid) 1614 | | | | +--rw sid-hop 1615 | | | | +--rw sid? rt-types:generalized-label 1616 | | | +--rw backup-path* [index] 1617 | | | | +--rw index uint32 1618 | | | | +--rw network-ref? leafref 1619 | | | | +--rw path-element* [path-element-id] 1620 | | | | +--rw path-element-id uint32 1621 | | | | +--rw index? uint32 1622 | | | | +--rw (type)? 1623 | | | | +--:(numbered) 1624 | | | | | +--rw numbered-hop 1625 | | | | | +--rw address? te-types:te-tp-id 1626 | | | | | +--rw hop-type? te-hop-type 1627 | | | | +--:(as-number) 1628 | | | | | +--rw as-number-hop 1629 | | | | | +--rw as-number? binary 1630 | | | | | +--rw hop-type? te-hop-type 1631 | | | | +--:(unnumbered) 1632 | | | | | +--rw unnumbered-hop 1633 | | | | | +--rw node-id? te-types:te-node-id 1634 | | | | | +--rw link-tp-id? te-types:te-tp-id 1635 | | | | | +--rw hop-type? te-hop-type 1636 | | | | +--:(label) 1637 | | | | | +--rw label-hop 1638 | | | | | +--rw value? rt-types:generalized- 1639 label 1640 | | | | +--:(sid) 1641 | | | | +--rw sid-hop 1642 | | | | +--rw sid? rt-types:generalized-label 1643 | | | +--rw protection-type? identityref 1644 | | | +--rw tunnel-termination-points 1645 | | | | +--rw source? binary 1646 | | | | +--rw destination? binary 1647 | | | +--rw tunnels 1648 | | | +--rw sharing? boolean 1649 | | | +--rw tunnel* [tunnel-name] 1650 | | | +--rw tunnel-name string 1651 | | | +--rw sharing? boolean 1652 | | +--rw path-constraints 1653 | | | +--rw path-metric-bound* [metric-type] 1654 | | | | +--rw metric-type identityref 1655 | | | | +--rw upper-bound? uint64 1656 | | | +--rw topology-id? te-types:te-topology-id 1657 | | | +--rw ignore-overload? boolean 1658 | | | +--rw bandwidth-generic 1659 | | | | +--rw te-bandwidth 1660 | | | | +--rw (technology)? 1661 | | | | +--:(psc) 1662 | | | | | +--rw psc? rt-types:bandwidth-ieee- 1663 float32 1664 | | | | +--:(otn) 1665 | | | | | +--rw otn* [rate-type] 1666 | | | | | +--rw rate-type identityref 1667 | | | | | +--rw counter? uint16 1668 | | | | +--:(lsc) 1669 | | | | | +--rw wdm* [spectrum slot] 1670 | | | | | +--rw spectrum identityref 1671 | | | | | +--rw slot int16 1672 | | | | | +--rw width? uint16 1673 | | | | +--:(generic) 1674 | | | | +--rw generic? te-bandwidth 1675 | | | +--rw disjointness? te-types:te-path- 1676 disjointness 1677 | | | +--rw setup-priority? uint8 1678 | | | +--rw hold-priority? uint8 1679 | | | +--rw signaling-type? identityref 1680 | | | +--rw path-affinities 1681 | | | | +--rw constraint* [usage] 1682 | | | | +--rw usage identityref 1683 | | | | +--rw value? admin-groups 1684 | | | +--rw path-srlgs 1685 | | | +--rw usage? identityref 1686 | | | +--rw values* srlg 1687 | | +--rw optimizations 1688 | | | +--rw (algorithm)? 1689 | | | +--:(metric) {path-optimization-metric}? 1690 | | | | +--rw optimization-metric* [metric-type] 1691 | | | | | +--rw metric-type identityref 1692 | | | | | +--rw weight? uint8 1693 | | | | +--rw tiebreakers 1694 | | | | +--rw tiebreaker* [tiebreaker-type] 1695 | | | | +--rw tiebreaker-type identityref 1696 | | | +--:(objective-function) {path-optimization- 1697 objective-function}? 1698 | | | +--rw objective-function 1699 | | | +--rw objective-function-type? identityref 1700 | | +--ro computed-path-properties 1701 | | | +--ro path-metric* [metric-type] 1702 | | | | +--ro metric-type identityref 1703 | | | | +--ro accumulative-value? uint64 1704 | | | +--ro path-affinities 1705 | | | | +--ro constraint* [usage] 1706 | | | | +--ro usage identityref 1707 | | | | +--ro value? admin-groups 1708 | | | +--ro path-srlgs 1709 | | | | +--ro usage? identityref 1710 | | | | +--ro values* srlg 1711 | | | +--ro path-computed-route-objects 1712 | | | +--ro path-computed-route-object* [index] 1713 | | | +--ro index uint32 1714 | | | +--ro (type)? 1715 | | | +--:(numbered) 1716 | | | | +--ro numbered-hop 1717 | | | | +--ro address? te-types:te-tp-id 1718 | | | | +--ro hop-type? te-hop-type 1719 | | | +--:(as-number) 1720 | | | | +--ro as-number-hop 1721 | | | | +--ro as-number? binary 1722 | | | | +--ro hop-type? te-hop-type 1723 | | | +--:(unnumbered) 1724 | | | | +--ro unnumbered-hop 1725 | | | | +--ro node-id? te-types:te-node-id 1726 | | | | +--ro link-tp-id? te-types:te-tp-id 1727 | | | | +--ro hop-type? te-hop-type 1728 | | | +--:(label) 1729 | | | | +--ro label-hop 1730 | | | | +--ro value? rt-types:generalized- 1731 label 1732 | | | +--:(sid) 1733 | | | +--ro sid-hop 1734 | | | +--ro sid? rt-types:generalized-label 1735 | | +--rw connectivity-matrix* [id] 1736 | | +--rw id uint32 1737 | | +--rw from 1738 | | | +--rw tp-ref? leafref 1739 | | | +--rw label-restriction* [inclusive-exclusive 1740 label-start] 1741 | | | +--rw inclusive-exclusive enumeration 1742 | | | +--rw label-start rt- 1743 types:generalized-label 1744 | | | +--rw label-end? rt- 1745 types:generalized-label 1746 | | | +--rw range-bitmap? binary 1747 | | +--rw to 1748 | | | +--rw tp-ref? leafref 1749 | | | +--rw label-restriction* [inclusive-exclusive 1750 label-start] 1751 | | | +--rw inclusive-exclusive enumeration 1752 | | | +--rw label-start rt- 1753 types:generalized-label 1754 | | | +--rw label-end? rt- 1755 types:generalized-label 1756 | | | +--rw range-bitmap? binary 1757 | | +--rw is-allowed? boolean 1758 | | +--rw underlay {te-topology-hierarchy}? 1759 | | | +--rw enabled? boolean 1760 | | | +--rw primary-path 1761 | | | | +--rw network-ref? leafref 1762 | | | | +--rw path-element* [path-element-id] 1763 | | | | +--rw path-element-id uint32 1764 | | | | +--rw index? uint32 1765 | | | | +--rw (type)? 1766 | | | | +--:(numbered) 1767 | | | | | +--rw numbered-hop 1768 | | | | | +--rw address? te-types:te-tp-id 1769 | | | | | +--rw hop-type? te-hop-type 1770 | | | | +--:(as-number) 1771 | | | | | +--rw as-number-hop 1772 | | | | | +--rw as-number? binary 1773 | | | | | +--rw hop-type? te-hop-type 1774 | | | | +--:(unnumbered) 1775 | | | | | +--rw unnumbered-hop 1776 | | | | | +--rw node-id? te-types:te- 1777 node-id 1778 | | | | | +--rw link-tp-id? te-types:te-tp- 1779 id 1780 | | | | | +--rw hop-type? te-hop-type 1781 | | | | +--:(label) 1782 | | | | | +--rw label-hop 1783 | | | | | +--rw value? rt-types:generalized- 1784 label 1785 | | | | +--:(sid) 1786 | | | | +--rw sid-hop 1787 | | | | +--rw sid? rt-types:generalized- 1788 label 1789 | | | +--rw backup-path* [index] 1790 | | | | +--rw index uint32 1791 | | | | +--rw network-ref? leafref 1792 | | | | +--rw path-element* [path-element-id] 1793 | | | | +--rw path-element-id uint32 1794 | | | | +--rw index? uint32 1795 | | | | +--rw (type)? 1796 | | | | +--:(numbered) 1797 | | | | | +--rw numbered-hop 1798 | | | | | +--rw address? te-types:te-tp-id 1799 | | | | | +--rw hop-type? te-hop-type 1800 | | | | +--:(as-number) 1801 | | | | | +--rw as-number-hop 1802 | | | | | +--rw as-number? binary 1803 | | | | | +--rw hop-type? te-hop-type 1804 | | | | +--:(unnumbered) 1805 | | | | | +--rw unnumbered-hop 1806 | | | | | +--rw node-id? te-types:te- 1807 node-id 1808 | | | | | +--rw link-tp-id? te-types:te-tp- 1809 id 1810 | | | | | +--rw hop-type? te-hop-type 1811 | | | | +--:(label) 1812 | | | | | +--rw label-hop 1813 | | | | | +--rw value? rt-types:generalized- 1814 label 1815 | | | | +--:(sid) 1816 | | | | +--rw sid-hop 1817 | | | | +--rw sid? rt-types:generalized- 1818 label 1819 | | | +--rw protection-type? identityref 1820 | | | +--rw tunnel-termination-points 1821 | | | | +--rw source? binary 1822 | | | | +--rw destination? binary 1823 | | | +--rw tunnels 1824 | | | +--rw sharing? boolean 1825 | | | +--rw tunnel* [tunnel-name] 1826 | | | +--rw tunnel-name string 1827 | | | +--rw sharing? boolean 1828 | | +--rw path-constraints 1829 | | | +--rw path-metric-bound* [metric-type] 1830 | | | | +--rw metric-type identityref 1831 | | | | +--rw upper-bound? uint64 1832 | | | +--rw topology-id? te-types:te-topology-id 1833 | | | +--rw ignore-overload? boolean 1834 | | | +--rw bandwidth-generic 1835 | | | | +--rw te-bandwidth 1836 | | | | +--rw (technology)? 1837 | | | | +--:(psc) 1838 | | | | | +--rw psc? rt-types:bandwidth- 1839 ieee-float32 1840 | | | | +--:(otn) 1841 | | | | | +--rw otn* [rate-type] 1842 | | | | | +--rw rate-type identityref 1843 | | | | | +--rw counter? uint16 1844 | | | | +--:(lsc) 1845 | | | | | +--rw wdm* [spectrum slot] 1846 | | | | | +--rw spectrum identityref 1847 | | | | | +--rw slot int16 1848 | | | | | +--rw width? uint16 1849 | | | | +--:(generic) 1850 | | | | +--rw generic? te-bandwidth 1851 | | | +--rw disjointness? te-types:te-path- 1852 disjointness 1853 | | | +--rw setup-priority? uint8 1854 | | | +--rw hold-priority? uint8 1855 | | | +--rw signaling-type? identityref 1856 | | | +--rw path-affinities 1857 | | | | +--rw constraint* [usage] 1858 | | | | +--rw usage identityref 1859 | | | | +--rw value? admin-groups 1860 | | | +--rw path-srlgs 1861 | | | +--rw usage? identityref 1862 | | | +--rw values* srlg 1863 | | +--rw optimizations 1864 | | | +--rw (algorithm)? 1865 | | | +--:(metric) {path-optimization-metric}? 1866 | | | | +--rw optimization-metric* [metric-type] 1867 | | | | | +--rw metric-type identityref 1868 | | | | | +--rw weight? uint8 1869 | | | | +--rw tiebreakers 1870 | | | | +--rw tiebreaker* [tiebreaker-type] 1871 | | | | +--rw tiebreaker-type identityref 1872 | | | +--:(objective-function) {path-optimization- 1873 objective-function}? 1874 | | | +--rw objective-function 1875 | | | +--rw objective-function-type? 1876 identityref 1877 | | +--ro computed-path-properties 1878 | | +--ro path-metric* [metric-type] 1879 | | | +--ro metric-type identityref 1880 | | | +--ro accumulative-value? uint64 1881 | | +--ro path-affinities 1882 | | | +--ro constraint* [usage] 1883 | | | +--ro usage identityref 1884 | | | +--ro value? admin-groups 1885 | | +--ro path-srlgs 1886 | | | +--ro usage? identityref 1887 | | | +--ro values* srlg 1888 | | +--ro path-computed-route-objects 1889 | | +--ro path-computed-route-object* [index] 1890 | | +--ro index uint32 1891 | | +--ro (type)? 1892 | | +--:(numbered) 1893 | | | +--ro numbered-hop 1894 | | | +--ro address? te-types:te-tp-id 1895 | | | +--ro hop-type? te-hop-type 1896 | | +--:(as-number) 1897 | | | +--ro as-number-hop 1898 | | | +--ro as-number? binary 1899 | | | +--ro hop-type? te-hop-type 1900 | | +--:(unnumbered) 1901 | | | +--ro unnumbered-hop 1902 | | | +--ro node-id? te-types:te- 1903 node-id 1904 | | | +--ro link-tp-id? te-types:te-tp- 1905 id 1906 | | | +--ro hop-type? te-hop-type 1907 | | +--:(label) 1908 | | | +--ro label-hop 1909 | | | +--ro value? rt-types:generalized- 1910 label 1911 | | +--:(sid) 1912 | | +--ro sid-hop 1913 | | +--ro sid? rt-types:generalized- 1914 label 1915 | +--rw domain-id? uint32 1916 | +--rw is-abstract? empty 1917 | +--rw name? inet:domain-name 1918 | +--rw signaling-address* inet:ip-address 1919 | +--rw underlay-topology {te-topology-hierarchy}? 1920 | +--rw network-ref? leafref 1921 +--ro oper-status? te-types:te-oper-status 1922 +--ro geolocation 1923 | +--ro altitude? int64 1924 | +--ro latitude? geographic-coordinate-degree 1925 | +--ro longitude? geographic-coordinate-degree 1926 +--ro is-multi-access-dr? empty 1927 +--ro information-source? te-info-source 1928 +--ro information-source-state 1929 | +--ro credibility-preference? uint16 1930 | +--ro logical-network-element? string 1931 | +--ro network-instance? string 1932 | +--ro topology 1933 | +--ro node-ref? leafref 1934 | +--ro network-ref? leafref 1935 +--ro information-source-entry* [information-source] 1936 | +--ro information-source te-info-source 1937 | +--ro information-source-state 1938 | | +--ro credibility-preference? uint16 1939 | | +--ro logical-network-element? string 1940 | | +--ro network-instance? string 1941 | | +--ro topology 1942 | | +--ro node-ref? leafref 1943 | | +--ro network-ref? leafref 1944 | +--ro connectivity-matrices 1945 | | +--ro number-of-entries? uint16 1946 | | +--ro label-restriction* [inclusive-exclusive label- 1947 start] 1948 | | | +--ro inclusive-exclusive enumeration 1949 | | | +--ro label-start rt-types:generalized- 1950 label 1951 | | | +--ro label-end? rt-types:generalized- 1952 label 1953 | | | +--ro range-bitmap? binary 1954 | | +--ro is-allowed? boolean 1955 | | +--ro underlay {te-topology-hierarchy}? 1956 | | | +--ro enabled? boolean 1957 | | | +--ro primary-path 1958 | | | | +--ro network-ref? leafref 1959 | | | | +--ro path-element* [path-element-id] 1960 | | | | +--ro path-element-id uint32 1961 | | | | +--ro index? uint32 1962 | | | | +--ro (type)? 1963 | | | | +--:(numbered) 1964 | | | | | +--ro numbered-hop 1965 | | | | | +--ro address? te-types:te-tp-id 1966 | | | | | +--ro hop-type? te-hop-type 1967 | | | | +--:(as-number) 1968 | | | | | +--ro as-number-hop 1969 | | | | | +--ro as-number? binary 1970 | | | | | +--ro hop-type? te-hop-type 1971 | | | | +--:(unnumbered) 1972 | | | | | +--ro unnumbered-hop 1973 | | | | | +--ro node-id? te-types:te-node-id 1974 | | | | | +--ro link-tp-id? te-types:te-tp-id 1975 | | | | | +--ro hop-type? te-hop-type 1976 | | | | +--:(label) 1977 | | | | | +--ro label-hop 1978 | | | | | +--ro value? rt-types:generalized- 1979 label 1980 | | | | +--:(sid) 1981 | | | | +--ro sid-hop 1982 | | | | +--ro sid? rt-types:generalized-label 1983 | | | +--ro backup-path* [index] 1984 | | | | +--ro index uint32 1985 | | | | +--ro network-ref? leafref 1986 | | | | +--ro path-element* [path-element-id] 1987 | | | | +--ro path-element-id uint32 1988 | | | | +--ro index? uint32 1989 | | | | +--ro (type)? 1990 | | | | +--:(numbered) 1991 | | | | | +--ro numbered-hop 1992 | | | | | +--ro address? te-types:te-tp-id 1993 | | | | | +--ro hop-type? te-hop-type 1994 | | | | +--:(as-number) 1995 | | | | | +--ro as-number-hop 1996 | | | | | +--ro as-number? binary 1997 | | | | | +--ro hop-type? te-hop-type 1998 | | | | +--:(unnumbered) 1999 | | | | | +--ro unnumbered-hop 2000 | | | | | +--ro node-id? te-types:te-node-id 2001 | | | | | +--ro link-tp-id? te-types:te-tp-id 2002 | | | | | +--ro hop-type? te-hop-type 2003 | | | | +--:(label) 2004 | | | | | +--ro label-hop 2005 | | | | | +--ro value? rt-types:generalized- 2006 label 2007 | | | | +--:(sid) 2008 | | | | +--ro sid-hop 2009 | | | | +--ro sid? rt-types:generalized-label 2010 | | | +--ro protection-type? identityref 2011 | | | +--ro tunnel-termination-points 2012 | | | | +--ro source? binary 2013 | | | | +--ro destination? binary 2014 | | | +--ro tunnels 2015 | | | +--ro sharing? boolean 2016 | | | +--ro tunnel* [tunnel-name] 2017 | | | +--ro tunnel-name string 2018 | | | +--ro sharing? boolean 2019 | | +--ro path-constraints 2020 | | | +--ro path-metric-bound* [metric-type] 2021 | | | | +--ro metric-type identityref 2022 | | | | +--ro upper-bound? uint64 2023 | | | +--ro topology-id? te-types:te-topology-id 2024 | | | +--ro ignore-overload? boolean 2025 | | | +--ro bandwidth-generic 2026 | | | | +--ro te-bandwidth 2027 | | | | +--ro (technology)? 2028 | | | | +--:(psc) 2029 | | | | | +--ro psc? rt-types:bandwidth-ieee- 2030 float32 2031 | | | | +--:(otn) 2032 | | | | | +--ro otn* [rate-type] 2033 | | | | | +--ro rate-type identityref 2034 | | | | | +--ro counter? uint16 2035 | | | | +--:(lsc) 2036 | | | | | +--ro wdm* [spectrum slot] 2037 | | | | | +--ro spectrum identityref 2038 | | | | | +--ro slot int16 2039 | | | | | +--ro width? uint16 2040 | | | | +--:(generic) 2041 | | | | +--ro generic? te-bandwidth 2042 | | | +--ro disjointness? te-types:te-path- 2043 disjointness 2044 | | | +--ro setup-priority? uint8 2045 | | | +--ro hold-priority? uint8 2046 | | | +--ro signaling-type? identityref 2047 | | | +--ro path-affinities 2048 | | | | +--ro constraint* [usage] 2049 | | | | +--ro usage identityref 2050 | | | | +--ro value? admin-groups 2051 | | | +--ro path-srlgs 2052 | | | +--ro usage? identityref 2053 | | | +--ro values* srlg 2054 | | +--ro optimizations 2055 | | | +--ro (algorithm)? 2056 | | | +--:(metric) {path-optimization-metric}? 2057 | | | | +--ro optimization-metric* [metric-type] 2058 | | | | | +--ro metric-type identityref 2059 | | | | | +--ro weight? uint8 2060 | | | | +--ro tiebreakers 2061 | | | | +--ro tiebreaker* [tiebreaker-type] 2062 | | | | +--ro tiebreaker-type identityref 2063 | | | +--:(objective-function) {path-optimization- 2064 objective-function}? 2065 | | | +--ro objective-function 2066 | | | +--ro objective-function-type? identityref 2067 | | +--ro computed-path-properties 2068 | | | +--ro path-metric* [metric-type] 2069 | | | | +--ro metric-type identityref 2070 | | | | +--ro accumulative-value? uint64 2071 | | | +--ro path-affinities 2072 | | | | +--ro constraint* [usage] 2073 | | | | +--ro usage identityref 2074 | | | | +--ro value? admin-groups 2075 | | | +--ro path-srlgs 2076 | | | | +--ro usage? identityref 2077 | | | | +--ro values* srlg 2078 | | | +--ro path-computed-route-objects 2079 | | | +--ro path-computed-route-object* [index] 2080 | | | +--ro index uint32 2081 | | | +--ro (type)? 2082 | | | +--:(numbered) 2083 | | | | +--ro numbered-hop 2084 | | | | +--ro address? te-types:te-tp-id 2085 | | | | +--ro hop-type? te-hop-type 2086 | | | +--:(as-number) 2087 | | | | +--ro as-number-hop 2088 | | | | +--ro as-number? binary 2089 | | | | +--ro hop-type? te-hop-type 2090 | | | +--:(unnumbered) 2091 | | | | +--ro unnumbered-hop 2092 | | | | +--ro node-id? te-types:te-node-id 2093 | | | | +--ro link-tp-id? te-types:te-tp-id 2094 | | | | +--ro hop-type? te-hop-type 2095 | | | +--:(label) 2096 | | | | +--ro label-hop 2097 | | | | +--ro value? rt-types:generalized- 2098 label 2099 | | | +--:(sid) 2100 | | | +--ro sid-hop 2101 | | | +--ro sid? rt-types:generalized-label 2102 | | +--ro connectivity-matrix* [id] 2103 | | +--ro id uint32 2104 | | +--ro from 2105 | | | +--ro tp-ref? leafref 2106 | | | +--ro label-restriction* [inclusive-exclusive 2107 label-start] 2108 | | | +--ro inclusive-exclusive enumeration 2109 | | | +--ro label-start rt- 2110 types:generalized-label 2111 | | | +--ro label-end? rt- 2112 types:generalized-label 2113 | | | +--ro range-bitmap? binary 2114 | | +--ro to 2115 | | | +--ro tp-ref? leafref 2116 | | | +--ro label-restriction* [inclusive-exclusive 2117 label-start] 2118 | | | +--ro inclusive-exclusive enumeration 2119 | | | +--ro label-start rt- 2120 types:generalized-label 2121 | | | +--ro label-end? rt- 2122 types:generalized-label 2123 | | | +--ro range-bitmap? binary 2124 | | +--ro is-allowed? boolean 2125 | | +--ro underlay {te-topology-hierarchy}? 2126 | | | +--ro enabled? boolean 2127 | | | +--ro primary-path 2128 | | | | +--ro network-ref? leafref 2129 | | | | +--ro path-element* [path-element-id] 2130 | | | | +--ro path-element-id uint32 2131 | | | | +--ro index? uint32 2132 | | | | +--ro (type)? 2133 | | | | +--:(numbered) 2134 | | | | | +--ro numbered-hop 2135 | | | | | +--ro address? te-types:te-tp-id 2136 | | | | | +--ro hop-type? te-hop-type 2137 | | | | +--:(as-number) 2138 | | | | | +--ro as-number-hop 2139 | | | | | +--ro as-number? binary 2140 | | | | | +--ro hop-type? te-hop-type 2141 | | | | +--:(unnumbered) 2142 | | | | | +--ro unnumbered-hop 2143 | | | | | +--ro node-id? te-types:te- 2144 node-id 2145 | | | | | +--ro link-tp-id? te-types:te-tp- 2146 id 2147 | | | | | +--ro hop-type? te-hop-type 2148 | | | | +--:(label) 2149 | | | | | +--ro label-hop 2150 | | | | | +--ro value? rt-types:generalized- 2151 label 2152 | | | | +--:(sid) 2153 | | | | +--ro sid-hop 2154 | | | | +--ro sid? rt-types:generalized- 2155 label 2156 | | | +--ro backup-path* [index] 2157 | | | | +--ro index uint32 2158 | | | | +--ro network-ref? leafref 2159 | | | | +--ro path-element* [path-element-id] 2160 | | | | +--ro path-element-id uint32 2161 | | | | +--ro index? uint32 2162 | | | | +--ro (type)? 2163 | | | | +--:(numbered) 2164 | | | | | +--ro numbered-hop 2165 | | | | | +--ro address? te-types:te-tp-id 2166 | | | | | +--ro hop-type? te-hop-type 2167 | | | | +--:(as-number) 2168 | | | | | +--ro as-number-hop 2169 | | | | | +--ro as-number? binary 2170 | | | | | +--ro hop-type? te-hop-type 2171 | | | | +--:(unnumbered) 2172 | | | | | +--ro unnumbered-hop 2173 | | | | | +--ro node-id? te-types:te- 2174 node-id 2175 | | | | | +--ro link-tp-id? te-types:te-tp- 2176 id 2177 | | | | | +--ro hop-type? te-hop-type 2178 | | | | +--:(label) 2179 | | | | | +--ro label-hop 2180 | | | | | +--ro value? rt-types:generalized- 2181 label 2182 | | | | +--:(sid) 2183 | | | | +--ro sid-hop 2184 | | | | +--ro sid? rt-types:generalized- 2185 label 2186 | | | +--ro protection-type? identityref 2187 | | | +--ro tunnel-termination-points 2188 | | | | +--ro source? binary 2189 | | | | +--ro destination? binary 2190 | | | +--ro tunnels 2191 | | | +--ro sharing? boolean 2192 | | | +--ro tunnel* [tunnel-name] 2193 | | | +--ro tunnel-name string 2194 | | | +--ro sharing? boolean 2195 | | +--ro path-constraints 2196 | | | +--ro path-metric-bound* [metric-type] 2197 | | | | +--ro metric-type identityref 2198 | | | | +--ro upper-bound? uint64 2199 | | | +--ro topology-id? te-types:te-topology-id 2200 | | | +--ro ignore-overload? boolean 2201 | | | +--ro bandwidth-generic 2202 | | | | +--ro te-bandwidth 2203 | | | | +--ro (technology)? 2204 | | | | +--:(psc) 2205 | | | | | +--ro psc? rt-types:bandwidth- 2206 ieee-float32 2207 | | | | +--:(otn) 2208 | | | | | +--ro otn* [rate-type] 2209 | | | | | +--ro rate-type identityref 2210 | | | | | +--ro counter? uint16 2211 | | | | +--:(lsc) 2212 | | | | | +--ro wdm* [spectrum slot] 2213 | | | | | +--ro spectrum identityref 2214 | | | | | +--ro slot int16 2215 | | | | | +--ro width? uint16 2216 | | | | +--:(generic) 2217 | | | | +--ro generic? te-bandwidth 2218 | | | +--ro disjointness? te-types:te-path- 2219 disjointness 2220 | | | +--ro setup-priority? uint8 2221 | | | +--ro hold-priority? uint8 2222 | | | +--ro signaling-type? identityref 2223 | | | +--ro path-affinities 2224 | | | | +--ro constraint* [usage] 2225 | | | | +--ro usage identityref 2226 | | | | +--ro value? admin-groups 2227 | | | +--ro path-srlgs 2228 | | | +--ro usage? identityref 2229 | | | +--ro values* srlg 2230 | | +--ro optimizations 2231 | | | +--ro (algorithm)? 2232 | | | +--:(metric) {path-optimization-metric}? 2233 | | | | +--ro optimization-metric* [metric-type] 2234 | | | | | +--ro metric-type identityref 2235 | | | | | +--ro weight? uint8 2236 | | | | +--ro tiebreakers 2237 | | | | +--ro tiebreaker* [tiebreaker-type] 2238 | | | | +--ro tiebreaker-type identityref 2239 | | | +--:(objective-function) {path-optimization- 2240 objective-function}? 2241 | | | +--ro objective-function 2242 | | | +--ro objective-function-type? 2243 identityref 2244 | | +--ro computed-path-properties 2245 | | +--ro path-metric* [metric-type] 2246 | | | +--ro metric-type identityref 2247 | | | +--ro accumulative-value? uint64 2248 | | +--ro path-affinities 2249 | | | +--ro constraint* [usage] 2250 | | | +--ro usage identityref 2251 | | | +--ro value? admin-groups 2252 | | +--ro path-srlgs 2253 | | | +--ro usage? identityref 2254 | | | +--ro values* srlg 2255 | | +--ro path-computed-route-objects 2256 | | +--ro path-computed-route-object* [index] 2257 | | +--ro index uint32 2258 | | +--ro (type)? 2259 | | +--:(numbered) 2260 | | | +--ro numbered-hop 2261 | | | +--ro address? te-types:te-tp-id 2262 | | | +--ro hop-type? te-hop-type 2263 | | +--:(as-number) 2264 | | | +--ro as-number-hop 2265 | | | +--ro as-number? binary 2266 | | | +--ro hop-type? te-hop-type 2267 | | +--:(unnumbered) 2268 | | | +--ro unnumbered-hop 2269 | | | +--ro node-id? te-types:te- 2270 node-id 2271 | | | +--ro link-tp-id? te-types:te-tp- 2272 id 2273 | | | +--ro hop-type? te-hop-type 2274 | | +--:(label) 2275 | | | +--ro label-hop 2276 | | | +--ro value? rt-types:generalized- 2277 label 2278 | | +--:(sid) 2279 | | +--ro sid-hop 2280 | | +--ro sid? rt-types:generalized- 2281 label 2282 | +--ro domain-id? uint32 2283 | +--ro is-abstract? empty 2284 | +--ro name? inet:domain-name 2285 | +--ro signaling-address* inet:ip-address 2286 | +--ro underlay-topology {te-topology-hierarchy}? 2287 | +--ro network-ref? leafref 2288 +--ro statistics 2289 | +--ro discontinuity-time yang:date-and-time 2290 | +--ro node 2291 | | +--ro disables? yang:counter32 2292 | | +--ro enables? yang:counter32 2293 | | +--ro maintenance-sets? yang:counter32 2294 | | +--ro maintenance-clears? yang:counter32 2295 | | +--ro modifies? yang:counter32 2296 | +--ro connectivity-matrix-entry 2297 | +--ro creates? yang:counter32 2298 | +--ro deletes? yang:counter32 2299 | +--ro disables? yang:counter32 2300 | +--ro enables? yang:counter32 2301 | +--ro modifies? yang:counter32 2302 +--rw tunnel-termination-point* [tunnel-tp-id] 2303 +--rw tunnel-tp-id binary 2304 +--rw admin-status? te-types:te- 2305 admin-status 2306 +--rw name? string 2307 +--rw switching-capability? identityref 2308 +--rw encoding? identityref 2309 +--rw inter-layer-lock-id* uint32 2310 +--rw protection-type? identityref 2311 +--rw client-layer-adaptation 2312 | +--rw switching-capability* [switching-capability 2313 encoding] 2314 | +--rw switching-capability identityref 2315 | +--rw encoding identityref 2316 | +--rw bandwidth 2317 | +--rw te-bandwidth 2318 | +--rw (technology)? 2319 | +--:(psc) 2320 | | +--rw psc? rt-types:bandwidth-ieee- 2321 float32 2322 | +--:(otn) 2323 | | +--rw otn* [rate-type] 2324 | | +--rw rate-type identityref 2325 | | +--rw counter? uint16 2326 | +--:(lsc) 2327 | | +--rw wdm* [spectrum slot] 2328 | | +--rw spectrum identityref 2329 | | +--rw slot int16 2330 | | +--rw width? uint16 2331 | +--:(generic) 2332 | +--rw generic? te-bandwidth 2333 +--rw local-link-connectivities 2334 | +--rw number-of-entries? uint16 2335 | +--rw label-restriction* [inclusive-exclusive label- 2336 start] 2337 | | +--rw inclusive-exclusive enumeration 2338 | | +--rw label-start rt-types:generalized- 2339 label 2340 | | +--rw label-end? rt-types:generalized- 2341 label 2342 | | +--rw range-bitmap? binary 2343 | +--rw is-allowed? boolean 2344 | +--rw underlay {te-topology-hierarchy}? 2345 | | +--rw enabled? boolean 2346 | | +--rw primary-path 2347 | | | +--rw network-ref? leafref 2348 | | | +--rw path-element* [path-element-id] 2349 | | | +--rw path-element-id uint32 2350 | | | +--rw index? uint32 2351 | | | +--rw (type)? 2352 | | | +--:(numbered) 2353 | | | | +--rw numbered-hop 2354 | | | | +--rw address? te-types:te-tp-id 2355 | | | | +--rw hop-type? te-hop-type 2356 | | | +--:(as-number) 2357 | | | | +--rw as-number-hop 2358 | | | | +--rw as-number? binary 2359 | | | | +--rw hop-type? te-hop-type 2360 | | | +--:(unnumbered) 2361 | | | | +--rw unnumbered-hop 2362 | | | | +--rw node-id? te-types:te-node-id 2363 | | | | +--rw link-tp-id? te-types:te-tp-id 2364 | | | | +--rw hop-type? te-hop-type 2365 | | | +--:(label) 2366 | | | | +--rw label-hop 2367 | | | | +--rw value? rt-types:generalized- 2368 label 2369 | | | +--:(sid) 2370 | | | +--rw sid-hop 2371 | | | +--rw sid? rt-types:generalized-label 2372 | | +--rw backup-path* [index] 2373 | | | +--rw index uint32 2374 | | | +--rw network-ref? leafref 2375 | | | +--rw path-element* [path-element-id] 2376 | | | +--rw path-element-id uint32 2377 | | | +--rw index? uint32 2378 | | | +--rw (type)? 2379 | | | +--:(numbered) 2380 | | | | +--rw numbered-hop 2381 | | | | +--rw address? te-types:te-tp-id 2382 | | | | +--rw hop-type? te-hop-type 2383 | | | +--:(as-number) 2384 | | | | +--rw as-number-hop 2385 | | | | +--rw as-number? binary 2386 | | | | +--rw hop-type? te-hop-type 2387 | | | +--:(unnumbered) 2388 | | | | +--rw unnumbered-hop 2389 | | | | +--rw node-id? te-types:te-node-id 2390 | | | | +--rw link-tp-id? te-types:te-tp-id 2391 | | | | +--rw hop-type? te-hop-type 2392 | | | +--:(label) 2393 | | | | +--rw label-hop 2394 | | | | +--rw value? rt-types:generalized- 2395 label 2396 | | | +--:(sid) 2397 | | | +--rw sid-hop 2398 | | | +--rw sid? rt-types:generalized-label 2399 | | +--rw protection-type? identityref 2400 | | +--rw tunnel-termination-points 2401 | | | +--rw source? binary 2402 | | | +--rw destination? binary 2403 | | +--rw tunnels 2404 | | +--rw sharing? boolean 2405 | | +--rw tunnel* [tunnel-name] 2406 | | +--rw tunnel-name string 2407 | | +--rw sharing? boolean 2408 | +--rw path-constraints 2409 | | +--rw path-metric-bound* [metric-type] 2410 | | | +--rw metric-type identityref 2411 | | | +--rw upper-bound? uint64 2412 | | +--rw topology-id? te-types:te-topology-id 2413 | | +--rw ignore-overload? boolean 2414 | | +--rw bandwidth-generic 2415 | | | +--rw te-bandwidth 2416 | | | +--rw (technology)? 2417 | | | +--:(psc) 2418 | | | | +--rw psc? rt-types:bandwidth-ieee- 2419 float32 2420 | | | +--:(otn) 2421 | | | | +--rw otn* [rate-type] 2422 | | | | +--rw rate-type identityref 2423 | | | | +--rw counter? uint16 2424 | | | +--:(lsc) 2425 | | | | +--rw wdm* [spectrum slot] 2426 | | | | +--rw spectrum identityref 2427 | | | | +--rw slot int16 2428 | | | | +--rw width? uint16 2429 | | | +--:(generic) 2430 | | | +--rw generic? te-bandwidth 2431 | | +--rw disjointness? te-types:te-path- 2432 disjointness 2433 | | +--rw setup-priority? uint8 2434 | | +--rw hold-priority? uint8 2435 | | +--rw signaling-type? identityref 2436 | | +--rw path-affinities 2437 | | | +--rw constraint* [usage] 2438 | | | +--rw usage identityref 2439 | | | +--rw value? admin-groups 2440 | | +--rw path-srlgs 2441 | | +--rw usage? identityref 2442 | | +--rw values* srlg 2443 | +--rw optimizations 2444 | | +--rw (algorithm)? 2445 | | +--:(metric) {path-optimization-metric}? 2446 | | | +--rw optimization-metric* [metric-type] 2447 | | | | +--rw metric-type identityref 2448 | | | | +--rw weight? uint8 2449 | | | +--rw tiebreakers 2450 | | | +--rw tiebreaker* [tiebreaker-type] 2451 | | | +--rw tiebreaker-type identityref 2452 | | +--:(objective-function) {path-optimization- 2453 objective-function}? 2454 | | +--rw objective-function 2455 | | +--rw objective-function-type? identityref 2456 | +--ro computed-path-properties 2457 | | +--ro path-metric* [metric-type] 2458 | | | +--ro metric-type identityref 2459 | | | +--ro accumulative-value? uint64 2460 | | +--ro path-affinities 2461 | | | +--ro constraint* [usage] 2462 | | | +--ro usage identityref 2463 | | | +--ro value? admin-groups 2464 | | +--ro path-srlgs 2465 | | | +--ro usage? identityref 2466 | | | +--ro values* srlg 2467 | | +--ro path-computed-route-objects 2468 | | +--ro path-computed-route-object* [index] 2469 | | +--ro index uint32 2470 | | +--ro (type)? 2471 | | +--:(numbered) 2472 | | | +--ro numbered-hop 2473 | | | +--ro address? te-types:te-tp-id 2474 | | | +--ro hop-type? te-hop-type 2475 | | +--:(as-number) 2476 | | | +--ro as-number-hop 2477 | | | +--ro as-number? binary 2478 | | | +--ro hop-type? te-hop-type 2479 | | +--:(unnumbered) 2480 | | | +--ro unnumbered-hop 2481 | | | +--ro node-id? te-types:te-node-id 2482 | | | +--ro link-tp-id? te-types:te-tp-id 2483 | | | +--ro hop-type? te-hop-type 2484 | | +--:(label) 2485 | | | +--ro label-hop 2486 | | | +--ro value? rt-types:generalized- 2487 label 2488 | | +--:(sid) 2489 | | +--ro sid-hop 2490 | | +--ro sid? rt-types:generalized-label 2491 | +--rw local-link-connectivity* [link-tp-ref] 2492 | +--rw link-tp-ref leafref 2493 | +--rw label-restriction* [inclusive-exclusive label- 2494 start] 2495 | | +--rw inclusive-exclusive enumeration 2496 | | +--rw label-start rt-types:generalized- 2497 label 2498 | | +--rw label-end? rt-types:generalized- 2499 label 2500 | | +--rw range-bitmap? binary 2501 | +--rw is-allowed? boolean 2502 | +--rw underlay {te-topology-hierarchy}? 2503 | | +--rw enabled? boolean 2504 | | +--rw primary-path 2505 | | | +--rw network-ref? leafref 2506 | | | +--rw path-element* [path-element-id] 2507 | | | +--rw path-element-id uint32 2508 | | | +--rw index? uint32 2509 | | | +--rw (type)? 2510 | | | +--:(numbered) 2511 | | | | +--rw numbered-hop 2512 | | | | +--rw address? te-types:te-tp-id 2513 | | | | +--rw hop-type? te-hop-type 2514 | | | +--:(as-number) 2515 | | | | +--rw as-number-hop 2516 | | | | +--rw as-number? binary 2517 | | | | +--rw hop-type? te-hop-type 2518 | | | +--:(unnumbered) 2519 | | | | +--rw unnumbered-hop 2520 | | | | +--rw node-id? te-types:te- 2521 node-id 2522 | | | | +--rw link-tp-id? te-types:te-tp- 2523 id 2524 | | | | +--rw hop-type? te-hop-type 2525 | | | +--:(label) 2526 | | | | +--rw label-hop 2527 | | | | +--rw value? rt-types:generalized- 2528 label 2529 | | | +--:(sid) 2530 | | | +--rw sid-hop 2531 | | | +--rw sid? rt-types:generalized- 2532 label 2533 | | +--rw backup-path* [index] 2534 | | | +--rw index uint32 2535 | | | +--rw network-ref? leafref 2536 | | | +--rw path-element* [path-element-id] 2537 | | | +--rw path-element-id uint32 2538 | | | +--rw index? uint32 2539 | | | +--rw (type)? 2540 | | | +--:(numbered) 2541 | | | | +--rw numbered-hop 2542 | | | | +--rw address? te-types:te-tp-id 2543 | | | | +--rw hop-type? te-hop-type 2544 | | | +--:(as-number) 2545 | | | | +--rw as-number-hop 2546 | | | | +--rw as-number? binary 2547 | | | | +--rw hop-type? te-hop-type 2548 | | | +--:(unnumbered) 2549 | | | | +--rw unnumbered-hop 2550 | | | | +--rw node-id? te-types:te- 2551 node-id 2552 | | | | +--rw link-tp-id? te-types:te-tp- 2553 id 2554 | | | | +--rw hop-type? te-hop-type 2555 | | | +--:(label) 2556 | | | | +--rw label-hop 2557 | | | | +--rw value? rt-types:generalized- 2558 label 2559 | | | +--:(sid) 2560 | | | +--rw sid-hop 2561 | | | +--rw sid? rt-types:generalized- 2562 label 2563 | | +--rw protection-type? identityref 2564 | | +--rw tunnel-termination-points 2565 | | | +--rw source? binary 2566 | | | +--rw destination? binary 2567 | | +--rw tunnels 2568 | | +--rw sharing? boolean 2569 | | +--rw tunnel* [tunnel-name] 2570 | | +--rw tunnel-name string 2571 | | +--rw sharing? boolean 2572 | +--rw path-constraints 2573 | | +--rw path-metric-bound* [metric-type] 2574 | | | +--rw metric-type identityref 2575 | | | +--rw upper-bound? uint64 2576 | | +--rw topology-id? te-types:te-topology-id 2577 | | +--rw ignore-overload? boolean 2578 | | +--rw bandwidth-generic 2579 | | | +--rw te-bandwidth 2580 | | | +--rw (technology)? 2581 | | | +--:(psc) 2582 | | | | +--rw psc? rt-types:bandwidth- 2583 ieee-float32 2584 | | | +--:(otn) 2585 | | | | +--rw otn* [rate-type] 2586 | | | | +--rw rate-type identityref 2587 | | | | +--rw counter? uint16 2588 | | | +--:(lsc) 2589 | | | | +--rw wdm* [spectrum slot] 2590 | | | | +--rw spectrum identityref 2591 | | | | +--rw slot int16 2592 | | | | +--rw width? uint16 2593 | | | +--:(generic) 2594 | | | +--rw generic? te-bandwidth 2595 | | +--rw disjointness? te-types:te-path- 2596 disjointness 2597 | | +--rw setup-priority? uint8 2598 | | +--rw hold-priority? uint8 2599 | | +--rw signaling-type? identityref 2600 | | +--rw path-affinities 2601 | | | +--rw constraint* [usage] 2602 | | | +--rw usage identityref 2603 | | | +--rw value? admin-groups 2604 | | +--rw path-srlgs 2605 | | +--rw usage? identityref 2606 | | +--rw values* srlg 2607 | +--rw optimizations 2608 | | +--rw (algorithm)? 2609 | | +--:(metric) {path-optimization-metric}? 2610 | | | +--rw optimization-metric* [metric-type] 2611 | | | | +--rw metric-type identityref 2612 | | | | +--rw weight? uint8 2613 | | | +--rw tiebreakers 2614 | | | +--rw tiebreaker* [tiebreaker-type] 2615 | | | +--rw tiebreaker-type identityref 2616 | | +--:(objective-function) {path-optimization- 2617 objective-function}? 2618 | | +--rw objective-function 2619 | | +--rw objective-function-type? 2620 identityref 2621 | +--ro computed-path-properties 2622 | +--ro path-metric* [metric-type] 2623 | | +--ro metric-type identityref 2624 | | +--ro accumulative-value? uint64 2625 | +--ro path-affinities 2626 | | +--ro constraint* [usage] 2627 | | +--ro usage identityref 2628 | | +--ro value? admin-groups 2629 | +--ro path-srlgs 2630 | | +--ro usage? identityref 2631 | | +--ro values* srlg 2632 | +--ro path-computed-route-objects 2633 | +--ro path-computed-route-object* [index] 2634 | +--ro index uint32 2635 | +--ro (type)? 2636 | +--:(numbered) 2637 | | +--ro numbered-hop 2638 | | +--ro address? te-types:te-tp-id 2639 | | +--ro hop-type? te-hop-type 2640 | +--:(as-number) 2641 | | +--ro as-number-hop 2642 | | +--ro as-number? binary 2643 | | +--ro hop-type? te-hop-type 2644 | +--:(unnumbered) 2645 | | +--ro unnumbered-hop 2646 | | +--ro node-id? te-types:te- 2647 node-id 2648 | | +--ro link-tp-id? te-types:te-tp- 2649 id 2650 | | +--ro hop-type? te-hop-type 2651 | +--:(label) 2652 | | +--ro label-hop 2653 | | +--ro value? rt-types:generalized- 2654 label 2655 | +--:(sid) 2656 | +--ro sid-hop 2657 | +--ro sid? rt-types:generalized- 2658 label 2659 +--ro oper-status? te-types:te- 2660 oper-status 2661 +--ro geolocation 2662 | +--ro altitude? int64 2663 | +--ro latitude? geographic-coordinate-degree 2664 | +--ro longitude? geographic-coordinate-degree 2665 +--ro statistics 2666 | +--ro discontinuity-time yang:date-and-time 2667 | +--ro tunnel-termination-point 2668 | | +--ro disables? yang:counter32 2669 | | +--ro enables? yang:counter32 2670 | | +--ro maintenance-clears? yang:counter32 2671 | | +--ro maintenance-sets? yang:counter32 2672 | | +--ro modifies? yang:counter32 2673 | | +--ro downs? yang:counter32 2674 | | +--ro ups? yang:counter32 2675 | | +--ro in-service-clears? yang:counter32 2676 | | +--ro in-service-sets? yang:counter32 2677 | +--ro local-link-connectivity 2678 | +--ro creates? yang:counter32 2679 | +--ro deletes? yang:counter32 2680 | +--ro disables? yang:counter32 2681 | +--ro enables? yang:counter32 2682 | +--ro modifies? yang:counter32 2683 +--rw supporting-tunnel-termination-point* [node-ref tunnel- 2684 tp-ref] 2685 +--rw node-ref inet:uri 2686 +--rw tunnel-tp-ref binary 2687 augment /nw:networks/nw:network/nt:link: 2688 +--rw te! 2689 +--rw (bundle-stack-level)? 2690 | +--:(bundle) 2691 | | +--rw bundled-links 2692 | | +--rw bundled-link* [sequence] 2693 | | +--rw sequence uint32 2694 | | +--rw src-tp-ref? leafref 2695 | | +--rw des-tp-ref? leafref 2696 | +--:(component) 2697 | +--rw component-links 2698 | +--rw component-link* [sequence] 2699 | +--rw sequence uint32 2700 | +--rw src-interface-ref? string 2701 | +--rw des-interface-ref? string 2702 +--rw te-link-template* leafref {template}? 2703 +--rw te-link-attributes 2704 | +--rw access-type? te-types:te-link- 2705 access-type 2706 | +--rw external-domain 2707 | | +--rw network-ref? leafref 2708 | | +--rw remote-te-node-id? te-types:te-node-id 2709 | | +--rw remote-te-link-tp-id? te-types:te-tp-id 2710 | | +--rw plug-id? uint32 2711 | +--rw is-abstract? empty 2712 | +--rw name? string 2713 | +--rw underlay {te-topology-hierarchy}? 2714 | | +--rw enabled? boolean 2715 | | +--rw primary-path 2716 | | | +--rw network-ref? leafref 2717 | | | +--rw path-element* [path-element-id] 2718 | | | +--rw path-element-id uint32 2719 | | | +--rw index? uint32 2720 | | | +--rw (type)? 2721 | | | +--:(numbered) 2722 | | | | +--rw numbered-hop 2723 | | | | +--rw address? te-types:te-tp-id 2724 | | | | +--rw hop-type? te-hop-type 2725 | | | +--:(as-number) 2726 | | | | +--rw as-number-hop 2727 | | | | +--rw as-number? binary 2728 | | | | +--rw hop-type? te-hop-type 2729 | | | +--:(unnumbered) 2730 | | | | +--rw unnumbered-hop 2731 | | | | +--rw node-id? te-types:te-node-id 2732 | | | | +--rw link-tp-id? te-types:te-tp-id 2733 | | | | +--rw hop-type? te-hop-type 2734 | | | +--:(label) 2735 | | | | +--rw label-hop 2736 | | | | +--rw value? rt-types:generalized-label 2737 | | | +--:(sid) 2738 | | | +--rw sid-hop 2739 | | | +--rw sid? rt-types:generalized-label 2740 | | +--rw backup-path* [index] 2741 | | | +--rw index uint32 2742 | | | +--rw network-ref? leafref 2743 | | | +--rw path-element* [path-element-id] 2744 | | | +--rw path-element-id uint32 2745 | | | +--rw index? uint32 2746 | | | +--rw (type)? 2747 | | | +--:(numbered) 2748 | | | | +--rw numbered-hop 2749 | | | | +--rw address? te-types:te-tp-id 2750 | | | | +--rw hop-type? te-hop-type 2751 | | | +--:(as-number) 2752 | | | | +--rw as-number-hop 2753 | | | | +--rw as-number? binary 2754 | | | | +--rw hop-type? te-hop-type 2755 | | | +--:(unnumbered) 2756 | | | | +--rw unnumbered-hop 2757 | | | | +--rw node-id? te-types:te-node-id 2758 | | | | +--rw link-tp-id? te-types:te-tp-id 2759 | | | | +--rw hop-type? te-hop-type 2760 | | | +--:(label) 2761 | | | | +--rw label-hop 2762 | | | | +--rw value? rt-types:generalized-label 2763 | | | +--:(sid) 2764 | | | +--rw sid-hop 2765 | | | +--rw sid? rt-types:generalized-label 2766 | | +--rw protection-type? identityref 2767 | | +--rw tunnel-termination-points 2768 | | | +--rw source? binary 2769 | | | +--rw destination? binary 2770 | | +--rw tunnels 2771 | | +--rw sharing? boolean 2772 | | +--rw tunnel* [tunnel-name] 2773 | | +--rw tunnel-name string 2774 | | +--rw sharing? boolean 2775 | +--rw admin-status? te-types:te-admin- 2776 status 2777 | +--rw link-index? uint64 2778 | +--rw administrative-group? te-types:admin- 2779 groups 2780 | +--rw interface-switching-capability* [switching-capability 2781 encoding] 2782 | | +--rw switching-capability identityref 2783 | | +--rw encoding identityref 2784 | | +--rw max-lsp-bandwidth* [priority] 2785 | | +--rw priority uint8 2786 | | +--rw bandwidth 2787 | | +--rw te-bandwidth 2788 | | +--rw (technology)? 2789 | | +--:(psc) 2790 | | | +--rw psc? rt-types:bandwidth-ieee- 2791 float32 2792 | | +--:(otn) 2793 | | | +--rw otn* [rate-type] 2794 | | | +--rw rate-type identityref 2795 | | | +--rw counter? uint16 2796 | | +--:(lsc) 2797 | | | +--rw wdm* [spectrum slot] 2798 | | | +--rw spectrum identityref 2799 | | | +--rw slot int16 2800 | | | +--rw width? uint16 2801 | | +--:(generic) 2802 | | +--rw generic? te-bandwidth 2803 | +--rw label-restriction* [inclusive-exclusive label-start] 2804 | | +--rw inclusive-exclusive enumeration 2805 | | +--rw label-start rt-types:generalized-label 2806 | | +--rw label-end? rt-types:generalized-label 2807 | | +--rw range-bitmap? binary 2808 | +--rw link-protection-type? enumeration 2809 | +--rw max-link-bandwidth 2810 | | +--rw te-bandwidth 2811 | | +--rw (technology)? 2812 | | +--:(psc) 2813 | | | +--rw psc? rt-types:bandwidth-ieee-float32 2814 | | +--:(otn) 2815 | | | +--rw otn* [rate-type] 2816 | | | +--rw rate-type identityref 2817 | | | +--rw counter? uint16 2818 | | +--:(lsc) 2819 | | | +--rw wdm* [spectrum slot] 2820 | | | +--rw spectrum identityref 2821 | | | +--rw slot int16 2822 | | | +--rw width? uint16 2823 | | +--:(generic) 2824 | | +--rw generic? te-bandwidth 2825 | +--rw max-resv-link-bandwidth 2826 | | +--rw te-bandwidth 2827 | | +--rw (technology)? 2828 | | +--:(psc) 2829 | | | +--rw psc? rt-types:bandwidth-ieee-float32 2830 | | +--:(otn) 2831 | | | +--rw otn* [rate-type] 2832 | | | +--rw rate-type identityref 2833 | | | +--rw counter? uint16 2834 | | +--:(lsc) 2835 | | | +--rw wdm* [spectrum slot] 2836 | | | +--rw spectrum identityref 2837 | | | +--rw slot int16 2838 | | | +--rw width? uint16 2839 | | +--:(generic) 2840 | | +--rw generic? te-bandwidth 2841 | +--rw unreserved-bandwidth* [priority] 2842 | | +--rw priority uint8 2843 | | +--rw bandwidth 2844 | | +--rw te-bandwidth 2845 | | +--rw (technology)? 2846 | | +--:(psc) 2847 | | | +--rw psc? rt-types:bandwidth-ieee- 2848 float32 2849 | | +--:(otn) 2850 | | | +--rw otn* [rate-type] 2851 | | | +--rw rate-type identityref 2852 | | | +--rw counter? uint16 2853 | | +--:(lsc) 2854 | | | +--rw wdm* [spectrum slot] 2855 | | | +--rw spectrum identityref 2856 | | | +--rw slot int16 2857 | | | +--rw width? uint16 2858 | | +--:(generic) 2859 | | +--rw generic? te-bandwidth 2860 | +--rw te-default-metric? uint32 2861 | +--rw te-delay-metric? uint32 2862 | +--rw te-igp-metric? uint32 2863 | +--rw te-srlgs 2864 | | +--rw value* te-types:srlg 2865 | +--rw te-nsrlgs {nsrlg}? 2866 | +--rw id* uint32 2867 +--ro oper-status? te-types:te-oper-status 2868 +--ro is-transitional? empty 2869 +--ro information-source? te-info-source 2870 +--ro information-source-state 2871 | +--ro credibility-preference? uint16 2872 | +--ro logical-network-element? string 2873 | +--ro network-instance? string 2874 | +--ro topology 2875 | +--ro link-ref? leafref 2876 | +--ro network-ref? leafref 2877 +--ro information-source-entry* [information-source] 2878 | +--ro information-source te-info-source 2879 | +--ro information-source-state 2880 | | +--ro credibility-preference? uint16 2881 | | +--ro logical-network-element? string 2882 | | +--ro network-instance? string 2883 | | +--ro topology 2884 | | +--ro link-ref? leafref 2885 | | +--ro network-ref? leafref 2886 | +--ro link-index? uint64 2887 | +--ro administrative-group? te-types:admin- 2888 groups 2889 | +--ro interface-switching-capability* [switching-capability 2890 encoding] 2891 | | +--ro switching-capability identityref 2892 | | +--ro encoding identityref 2893 | | +--ro max-lsp-bandwidth* [priority] 2894 | | +--ro priority uint8 2895 | | +--ro bandwidth 2896 | | +--ro te-bandwidth 2897 | | +--ro (technology)? 2898 | | +--:(psc) 2899 | | | +--ro psc? rt-types:bandwidth-ieee- 2900 float32 2901 | | +--:(otn) 2902 | | | +--ro otn* [rate-type] 2903 | | | +--ro rate-type identityref 2904 | | | +--ro counter? uint16 2905 | | +--:(lsc) 2906 | | | +--ro wdm* [spectrum slot] 2907 | | | +--ro spectrum identityref 2908 | | | +--ro slot int16 2909 | | | +--ro width? uint16 2910 | | +--:(generic) 2911 | | +--ro generic? te-bandwidth 2912 | +--ro label-restriction* [inclusive-exclusive label-start] 2913 | | +--ro inclusive-exclusive enumeration 2914 | | +--ro label-start rt-types:generalized-label 2915 | | +--ro label-end? rt-types:generalized-label 2916 | | +--ro range-bitmap? binary 2917 | +--ro link-protection-type? enumeration 2918 | +--ro max-link-bandwidth 2919 | | +--ro te-bandwidth 2920 | | +--ro (technology)? 2921 | | +--:(psc) 2922 | | | +--ro psc? rt-types:bandwidth-ieee-float32 2923 | | +--:(otn) 2924 | | | +--ro otn* [rate-type] 2925 | | | +--ro rate-type identityref 2926 | | | +--ro counter? uint16 2927 | | +--:(lsc) 2928 | | | +--ro wdm* [spectrum slot] 2929 | | | +--ro spectrum identityref 2930 | | | +--ro slot int16 2931 | | | +--ro width? uint16 2932 | | +--:(generic) 2933 | | +--ro generic? te-bandwidth 2934 | +--ro max-resv-link-bandwidth 2935 | | +--ro te-bandwidth 2936 | | +--ro (technology)? 2937 | | +--:(psc) 2938 | | | +--ro psc? rt-types:bandwidth-ieee-float32 2939 | | +--:(otn) 2940 | | | +--ro otn* [rate-type] 2941 | | | +--ro rate-type identityref 2942 | | | +--ro counter? uint16 2943 | | +--:(lsc) 2944 | | | +--ro wdm* [spectrum slot] 2945 | | | +--ro spectrum identityref 2946 | | | +--ro slot int16 2947 | | | +--ro width? uint16 2948 | | +--:(generic) 2949 | | +--ro generic? te-bandwidth 2950 | +--ro unreserved-bandwidth* [priority] 2951 | | +--ro priority uint8 2952 | | +--ro bandwidth 2953 | | +--ro te-bandwidth 2954 | | +--ro (technology)? 2955 | | +--:(psc) 2956 | | | +--ro psc? rt-types:bandwidth-ieee- 2957 float32 2958 | | +--:(otn) 2959 | | | +--ro otn* [rate-type] 2960 | | | +--ro rate-type identityref 2961 | | | +--ro counter? uint16 2962 | | +--:(lsc) 2963 | | | +--ro wdm* [spectrum slot] 2964 | | | +--ro spectrum identityref 2965 | | | +--ro slot int16 2966 | | | +--ro width? uint16 2967 | | +--:(generic) 2968 | | +--ro generic? te-bandwidth 2969 | +--ro te-default-metric? uint32 2970 | +--ro te-delay-metric? uint32 2971 | +--ro te-igp-metric? uint32 2972 | +--ro te-srlgs 2973 | | +--ro value* te-types:srlg 2974 | +--ro te-nsrlgs {nsrlg}? 2975 | +--ro id* uint32 2976 +--ro recovery 2977 | +--ro restoration-status? te-types:te-recovery-status 2978 | +--ro protection-status? te-types:te-recovery-status 2979 +--ro underlay {te-topology-hierarchy}? 2980 | +--ro dynamic? boolean 2981 | +--ro committed? boolean 2982 +--ro statistics 2983 +--ro discontinuity-time yang:date-and-time 2984 +--ro disables? yang:counter32 2985 +--ro enables? yang:counter32 2986 +--ro maintenance-clears? yang:counter32 2987 +--ro maintenance-sets? yang:counter32 2988 +--ro modifies? yang:counter32 2989 +--ro downs? yang:counter32 2990 +--ro ups? yang:counter32 2991 +--ro fault-clears? yang:counter32 2992 +--ro fault-detects? yang:counter32 2993 +--ro protection-switches? yang:counter32 2994 +--ro protection-reverts? yang:counter32 2995 +--ro restoration-failures? yang:counter32 2996 +--ro restoration-starts? yang:counter32 2997 +--ro restoration-successes? yang:counter32 2998 +--ro restoration-reversion-failures? yang:counter32 2999 +--ro restoration-reversion-starts? yang:counter32 3000 +--ro restoration-reversion-successes? yang:counter32 3001 augment /nw:networks/nw:network/nw:node/nt:termination-point: 3002 +--rw te-tp-id? te-types:te-tp-id 3003 +--rw te! 3004 +--rw admin-status? te-types:te-admin- 3005 status 3006 +--rw name? string 3007 +--rw interface-switching-capability* [switching-capability 3008 encoding] 3009 | +--rw switching-capability identityref 3010 | +--rw encoding identityref 3011 | +--rw max-lsp-bandwidth* [priority] 3012 | +--rw priority uint8 3013 | +--rw bandwidth 3014 | +--rw te-bandwidth 3015 | +--rw (technology)? 3016 | +--:(psc) 3017 | | +--rw psc? rt-types:bandwidth-ieee- 3018 float32 3019 | +--:(otn) 3020 | | +--rw otn* [rate-type] 3021 | | +--rw rate-type identityref 3022 | | +--rw counter? uint16 3023 | +--:(lsc) 3024 | | +--rw wdm* [spectrum slot] 3025 | | +--rw spectrum identityref 3026 | | +--rw slot int16 3027 | | +--rw width? uint16 3028 | +--:(generic) 3029 | +--rw generic? te-bandwidth 3030 +--rw inter-layer-lock-id* uint32 3031 +--ro oper-status? te-types:te-oper-status 3032 +--ro geolocation 3033 +--ro altitude? int64 3034 +--ro latitude? geographic-coordinate-degree 3035 +--ro longitude? geographic-coordinate-degree 3037 7. TE Topology Yang Module 3039 file "ietf-te-topology@2017-07-02.yang" 3040 module ietf-te-topology { 3041 yang-version 1.1; 3042 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; 3044 prefix "tet"; 3046 import ietf-yang-types { 3047 prefix "yang"; 3048 } 3050 import ietf-inet-types { 3051 prefix "inet"; 3052 } 3054 import ietf-te-types { 3055 prefix "te-types"; 3056 } 3058 import ietf-network { 3059 prefix "nw"; 3060 } 3062 import ietf-network-topology { 3063 prefix "nt"; 3064 } 3066 import ietf-routing-types { 3067 prefix "rt-types"; 3068 } 3070 organization 3071 "Traffic Engineering Architecture and Signaling (TEAS) 3072 Working Group"; 3074 contact 3075 "WG Web: 3076 WG List: 3077 WG Chair: Lou Berger 3078 3080 WG Chair: Vishnu Pavan Beeram 3081 3083 Editor: Xufeng Liu 3084 3086 Editor: Igor Bryskin 3087 3089 Editor: Vishnu Pavan Beeram 3090 3092 Editor: Tarek Saad 3093 3095 Editor: Himanshu Shah 3096 3098 Editor: Oscar Gonzalez De Dios 3099 "; 3101 description "TE topology model"; 3103 revision "2017-07-02" { 3104 description "Initial revision"; 3105 reference "TBD"; 3106 } 3108 /* 3109 * Features 3110 */ 3111 feature nsrlg { 3112 description 3113 "This feature indicates that the system supports NSRLG 3114 (Not Sharing Risk Link Group)."; 3115 } 3117 feature te-topology-hierarchy { 3118 description 3119 "This feature indicates that the system allows underlay 3120 and/or overlay TE topology hierarchy."; 3121 } 3123 feature template { 3124 description 3125 "This feature indicates that the system supports 3126 template configuration."; 3127 } 3129 /* 3130 * Typedefs 3131 */ 3132 typedef geographic-coordinate-degree { 3133 type decimal64 { 3134 fraction-digits 8; 3135 } 3136 description 3137 "Decimal degree (DD) used to express latitude and longitude 3138 geographic coordinates."; 3139 } // geographic-coordinate-degree 3141 typedef te-info-source { 3142 type enumeration { 3143 enum "unknown" { 3144 description "The source is unknown."; 3145 } 3146 enum "locally-configured" { 3147 description "Configured entity."; 3148 } 3149 enum "ospfv2" { 3150 description "OSPFv2."; 3151 } 3152 enum "ospfv3" { 3153 description "OSPFv3."; 3154 } 3155 enum "isis" { 3156 description "ISIS."; 3157 } 3158 enum "bgp-ls" { 3159 description "BGP-LS."; 3160 reference 3161 "RFC7752: North-Bound Distribution of Link-State and 3162 Traffic Engineering (TE) Information Using BGP"; 3163 } 3164 enum "system-processed" { 3165 description "System processed entity."; 3166 } 3167 enum "other" { 3168 description "Other source."; 3169 } 3170 } 3171 description 3172 "Describining the type of source that has provided the 3173 related information, and the source credibility."; 3174 } // te-info-source 3176 /* 3177 * Groupings 3178 */ 3179 grouping connectivity-label-restriction-list { 3180 description 3181 "List of abel restrictions specifying what labels may or may 3182 not be used on a link connectivity."; 3183 list label-restriction { 3184 key "inclusive-exclusive label-start"; 3185 description 3186 "List of abel restrictions specifying what labels may or may 3187 not be used on a link connectivity."; 3188 reference 3189 "RFC7579: General Network Element Constraint Encoding 3190 for GMPLS-Controlled Networks"; 3191 leaf inclusive-exclusive { 3192 type enumeration { 3193 enum inclusive { 3194 description "The label or label range is inclusive."; 3195 } 3196 enum exclusive { 3197 description "The label or label range is exclusive."; 3198 } 3199 } 3200 description 3201 "Whether the list item is inclusive or exclusive."; 3202 } 3203 leaf label-start { 3204 type rt-types:generalized-label; 3205 description 3206 "This is the starting lable if a lable range is specified. 3207 This is the lable value if a single lable is specified, 3208 in which case, attribute 'label-end' is not set."; 3209 } 3210 leaf label-end { 3211 type rt-types:generalized-label; 3212 description 3213 "The ending lable if a lable range is specified; 3214 This attribute is not set, If a single lable is 3215 specified."; 3216 } 3217 leaf range-bitmap { 3218 type binary; 3219 description 3220 "When there are gaps between label-start and label-end, 3221 this attribute is used to specified the possitions 3222 of the used labels."; 3223 } 3224 } 3225 } // connectivity-label-restriction-list 3227 grouping connectivity-matrix-entry-path-attributes { 3228 description 3229 "Attributes of connectivity matrix entry."; 3230 leaf is-allowed { 3231 type boolean; 3232 description 3233 "true - switching is allowed, 3234 false - switching is disallowed."; 3235 } 3236 container underlay { 3237 if-feature te-topology-hierarchy; 3238 description "Attributes of the te-link underlay."; 3239 reference 3240 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3241 Generalized Multi-Protocol Label Switching (GMPLS) 3242 Traffic Engineering (TE)"; 3244 uses te-link-underlay-attributes; 3245 } // underlay 3247 uses te-types:generic-path-constraints; 3248 uses te-types:generic-path-optimization; 3249 uses te-types:generic-computed-path-properties; 3250 } // connectivity-matrix-entry-path-attributes 3252 grouping geolocation-container { 3253 description 3254 "A container containing a GPS location."; 3255 container geolocation{ 3256 config false; 3257 description 3258 "A container containing a GPS location."; 3259 leaf altitude { 3260 type int64; 3261 units millimeter; 3262 description 3263 "Distance above the sea level."; 3264 } 3265 leaf latitude { 3266 type geographic-coordinate-degree { 3267 range "-90..90"; 3268 } 3269 description 3270 "Relative position north or south on the Earth's surface."; 3271 } 3272 leaf longitude { 3273 type geographic-coordinate-degree { 3274 range "-180..180"; 3275 } 3276 description 3277 "Angular distance east or west on the Earth's surface."; 3278 } 3279 } // gps-location 3280 } // geolocation-container 3281 grouping information-source-state-attributes { 3282 description 3283 "The attributes identifying source that has provided the 3284 related information, and the source credibility."; 3285 leaf credibility-preference { 3286 type uint16; 3287 description 3288 "The preference value to calculate the traffic 3289 engineering database credibility value used for 3290 tie-break selection between different 3291 information-source values. 3292 Higher value is more preferable."; 3293 } 3294 leaf logical-network-element { 3295 type string; 3296 description 3297 "When applicable, this is the name of a logical network 3298 element from which the information is learned."; 3299 } // logical-network-element 3300 leaf network-instance { 3301 type string; 3302 description 3303 "When applicable, this is the name of a network-instance 3304 from which the information is learned."; 3305 } // network-instance 3306 } // information-source-state-attributes 3308 grouping information-source-per-link-attributes { 3309 description 3310 "Per node container of the attributes identifying source that 3311 has provided the related information, and the source 3312 credibility."; 3313 leaf information-source { 3314 type te-info-source; 3315 config false; 3316 description 3317 "Indicates the source of the information."; 3318 } 3319 container information-source-state { 3320 config false; 3321 description 3322 "The container contains state attributes related to 3323 the information source."; 3324 uses information-source-state-attributes; 3325 container topology { 3326 description 3327 "When the information is processed by the system, 3328 the attributes in this container indicate which topology 3329 is used to process to generate the result information."; 3330 uses nt:link-ref; 3331 } // topology 3332 } // information-source-state 3333 } // information-source-per-link-attributes 3335 grouping information-source-per-node-attributes { 3336 description 3337 "Per node container of the attributes identifying source that 3338 has provided the related information, and the source 3339 credibility."; 3340 leaf information-source { 3341 type te-info-source; 3342 config false; 3343 description 3344 "Indicates the source of the information."; 3345 } 3346 container information-source-state { 3347 config false; 3348 description 3349 "The container contains state attributes related to 3350 the information source."; 3351 uses information-source-state-attributes; 3352 container topology { 3353 description 3354 "When the information is processed by the system, 3355 the attributes in this container indicate which topology 3356 is used to process to generate the result information."; 3357 uses nw:node-ref; 3358 } // topology 3359 } // information-source-state 3360 } // information-source-per-node-attributes 3362 grouping interface-switching-capability-list { 3363 description 3364 "List of Interface Switching Capabilities Descriptors (ISCD)"; 3365 list interface-switching-capability { 3366 key "switching-capability encoding"; 3367 description 3368 "List of Interface Switching Capabilities Descriptors (ISCD) 3369 for this link."; 3370 reference 3371 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS) 3372 Signaling Functional Description. 3373 RFC4203: OSPF Extensions in Support of Generalized 3374 Multi-Protocol Label Switching (GMPLS)."; 3375 leaf switching-capability { 3376 type identityref { 3377 base te-types:switching-capabilities; 3378 } 3379 description 3380 "Switching Capability for this interface."; 3381 } 3382 leaf encoding { 3383 type identityref { 3384 base te-types:lsp-encoding-types; 3385 } 3386 description 3387 "Encoding supported by this interface."; 3388 } 3389 uses te-link-iscd-attributes; 3390 } // interface-switching-capability 3391 } // interface-switching-capability-list 3393 grouping statistics-per-link { 3394 description 3395 "Statistics attributes per TE link."; 3396 leaf discontinuity-time { 3397 type yang:date-and-time; 3398 mandatory true; 3399 description 3400 "The time on the most recent occasion at which any one or 3401 more of this interface's counters suffered a 3402 discontinuity. If no such discontinuities have occurred 3403 since the last re-initialization of the local management 3404 subsystem, then this node contains the time the local 3405 management subsystem re-initialized itself."; 3406 } 3407 /* Administrative attributes */ 3408 leaf disables { 3409 type yang:counter32; 3410 description 3411 "Number of times that link was disabled."; 3412 } 3413 leaf enables { 3414 type yang:counter32; 3415 description 3416 "Number of times that link was enabled."; 3417 } 3418 leaf maintenance-clears { 3419 type yang:counter32; 3420 description 3421 "Number of times that link was put out of maintenance."; 3422 } 3423 leaf maintenance-sets { 3424 type yang:counter32; 3425 description 3426 "Number of times that link was put in maintenance."; 3427 } 3428 leaf modifies { 3429 type yang:counter32; 3430 description 3431 "Number of times that link was modified."; 3432 } 3433 /* Operational attributes */ 3434 leaf downs { 3435 type yang:counter32; 3436 description 3437 "Number of times that link was set to operational down."; 3438 } 3439 leaf ups { 3440 type yang:counter32; 3441 description 3442 "Number of times that link was set to operational up."; 3443 } 3444 /* Recovery attributes */ 3445 leaf fault-clears { 3446 type yang:counter32; 3447 description 3448 "Number of times that link experienced fault clear event."; 3449 } 3450 leaf fault-detects { 3451 type yang:counter32; 3452 description 3453 "Number of times that link experienced fault detection."; 3454 } 3455 leaf protection-switches { 3456 type yang:counter32; 3457 description 3458 "Number of times that link experienced protection 3459 switchover."; 3460 } 3461 leaf protection-reverts { 3462 type yang:counter32; 3463 description 3464 "Number of times that link experienced protection 3465 reversion."; 3466 } 3467 leaf restoration-failures { 3468 type yang:counter32; 3469 description 3470 "Number of times that link experienced restoration 3471 failure."; 3472 } 3473 leaf restoration-starts { 3474 type yang:counter32; 3475 description 3476 "Number of times that link experienced restoration 3477 start."; 3478 } 3479 leaf restoration-successes { 3480 type yang:counter32; 3481 description 3482 "Number of times that link experienced restoration 3483 success."; 3484 } 3485 leaf restoration-reversion-failures { 3486 type yang:counter32; 3487 description 3488 "Number of times that link experienced restoration reversion 3489 failure."; 3490 } 3491 leaf restoration-reversion-starts { 3492 type yang:counter32; 3493 description 3494 "Number of times that link experienced restoration reversion 3495 start."; 3496 } 3497 leaf restoration-reversion-successes { 3498 type yang:counter32; 3499 description 3500 "Number of times that link experienced restoration reversion 3501 success."; 3502 } 3503 } // statistics-per-link 3505 grouping statistics-per-node { 3506 description 3507 "Statistics attributes per TE node."; 3508 leaf discontinuity-time { 3509 type yang:date-and-time; 3510 mandatory true; 3511 description 3512 "The time on the most recent occasion at which any one or 3513 more of this interface's counters suffered a 3514 discontinuity. If no such discontinuities have occurred 3515 since the last re-initialization of the local management 3516 subsystem, then this node contains the time the local 3517 management subsystem re-initialized itself."; 3518 } 3519 container node { 3520 description 3521 "Containing TE node level statistics attributes."; 3522 leaf disables { 3523 type yang:counter32; 3524 description 3525 "Number of times that node was disabled."; 3526 } 3527 leaf enables { 3528 type yang:counter32; 3529 description 3530 "Number of times that node was enabled."; 3531 } 3532 leaf maintenance-sets { 3533 type yang:counter32; 3534 description 3535 "Number of times that node was put in maintenance."; 3536 } 3537 leaf maintenance-clears { 3538 type yang:counter32; 3539 description 3540 "Number of times that node was put out of maintenance."; 3541 } 3542 leaf modifies { 3543 type yang:counter32; 3544 description 3545 "Number of times that node was modified."; 3546 } 3547 } // node 3548 container connectivity-matrix-entry { 3549 description 3550 "Containing connectivity matrix entry level statistics 3551 attributes."; 3552 leaf creates { 3553 type yang:counter32; 3554 description 3555 "Number of times that a connectivity matrix entry was 3556 created."; 3557 reference 3558 "RFC6241. Section 7.2 for 'create' operation. "; 3559 } 3560 leaf deletes { 3561 type yang:counter32; 3562 description 3563 "Number of times that a connectivity matrix entry was 3564 deleted."; 3565 reference 3566 "RFC6241. Section 7.2 for 'delete' operation. "; 3567 } 3568 leaf disables { 3569 type yang:counter32; 3570 description 3571 "Number of times that a connectivity matrix entry was 3572 disabled."; 3573 } 3574 leaf enables { 3575 type yang:counter32; 3576 description 3577 "Number of times that a connectivity matrix entry was 3578 enabled."; 3579 } 3580 leaf modifies { 3581 type yang:counter32; 3582 description 3583 "Number of times that a connectivity matrix entry was 3584 modified."; 3585 } 3586 } // connectivity-matrix-entry 3587 } // statistics-per-node 3589 grouping statistics-per-ttp { 3590 description 3591 "Statistics attributes per TE TTP (Tunnel Termination Point)."; 3592 leaf discontinuity-time { 3593 type yang:date-and-time; 3594 mandatory true; 3595 description 3596 "The time on the most recent occasion at which any one or 3597 more of this interface's counters suffered a 3598 discontinuity. If no such discontinuities have occurred 3599 since the last re-initialization of the local management 3600 subsystem, then this node contains the time the local 3601 management subsystem re-initialized itself."; 3602 } 3603 container tunnel-termination-point { 3604 description 3605 "Containing TE TTP (Tunnel Termination Point) level 3606 statistics attributes."; 3607 /* Administrative attributes */ 3608 leaf disables { 3609 type yang:counter32; 3610 description 3611 "Number of times that TTP was disabled."; 3612 } 3613 leaf enables { 3614 type yang:counter32; 3615 description 3616 "Number of times that TTP was enabled."; 3617 } 3618 leaf maintenance-clears { 3619 type yang:counter32; 3620 description 3621 "Number of times that TTP was put out of maintenance."; 3622 } 3623 leaf maintenance-sets { 3624 type yang:counter32; 3625 description 3626 "Number of times that TTP was put in maintenance."; 3627 } 3628 leaf modifies { 3629 type yang:counter32; 3630 description 3631 "Number of times that TTP was modified."; 3632 } 3633 /* Operational attributes */ 3634 leaf downs { 3635 type yang:counter32; 3636 description 3637 "Number of times that TTP was set to operational down."; 3638 } 3639 leaf ups { 3640 type yang:counter32; 3641 description 3642 "Number of times that TTP was set to operational up."; 3643 } 3644 leaf in-service-clears { 3645 type yang:counter32; 3646 description 3647 "Number of times that TTP was taken out of service 3648 (TE tunnel was released)."; 3649 } 3650 leaf in-service-sets { 3651 type yang:counter32; 3652 description 3653 "Number of times that TTP was put in service by a TE 3654 tunnel (TE tunnel was set up)."; 3655 } 3656 } // tunnel-termination-point 3658 container local-link-connectivity { 3659 description 3660 "Containing TE LLCL (Local Link Connectivity List) level 3661 statistics attributes."; 3662 leaf creates { 3663 type yang:counter32; 3664 description 3665 "Number of times that an LLCL entry was created."; 3666 reference 3667 "RFC6241. Section 7.2 for 'create' operation. "; 3668 } 3669 leaf deletes { 3670 type yang:counter32; 3671 description 3672 "Number of times that an LLCL entry was deleted."; 3673 reference 3674 "RFC6241. Section 7.2 for 'delete' operation."; 3675 } 3676 leaf disables { 3677 type yang:counter32; 3678 description 3679 "Number of times that an LLCL entry was disabled."; 3680 } 3681 leaf enables { 3682 type yang:counter32; 3683 description 3684 "Number of times that an LLCL entry was enabled."; 3685 } 3686 leaf modifies { 3687 type yang:counter32; 3688 description 3689 "Number of times that an LLCL entry was modified."; 3690 } 3692 } // local-link-connectivity 3693 } // statistics-per-ttp 3695 grouping te-link-augment { 3696 description 3697 "Augmentation for TE link."; 3698 uses te-link-config; 3699 uses te-link-state-derived; 3700 container statistics { 3701 config false; 3702 description 3703 "Statistics data."; 3704 uses statistics-per-link; 3705 } // statistics 3706 } // te-link-augment 3708 grouping te-link-config { 3709 description 3710 "TE link configuration grouping."; 3711 choice bundle-stack-level { 3712 description 3713 "The TE link can be partitioned into bundled 3714 links, or component links."; 3715 case bundle { 3716 container bundled-links { 3717 description 3718 "A set of bundled links."; 3719 reference 3720 "RFC4201: Link Bundling in MPLS Traffic Engineering 3721 (TE)."; 3722 list bundled-link { 3723 key "sequence"; 3724 description 3725 "Specify a bundled interface that is 3726 further partitioned."; 3727 leaf sequence { 3728 type uint32; 3729 description 3730 "Identify the sequence in the bundle."; 3731 } 3732 } // list bundled-link 3734 } 3735 } 3736 case component { 3737 container component-links { 3738 description 3739 "A set of component links"; 3740 list component-link { 3741 key "sequence"; 3742 description 3743 "Specify a component interface that is 3744 sufficient to unambiguously identify the 3745 appropriate resources"; 3747 leaf sequence { 3748 type uint32; 3749 description 3750 "Identify the sequence in the bundle."; 3751 } 3752 leaf src-interface-ref { 3753 type string; 3754 description 3755 "Reference to component link interface on the 3756 source node."; 3757 } 3758 leaf des-interface-ref { 3759 type string; 3760 description 3761 "Reference to component link interface on the 3762 destinatioin node."; 3763 } 3764 } 3765 } 3766 } 3767 } // bundle-stack-level 3769 leaf-list te-link-template { 3770 if-feature template; 3771 type leafref { 3772 path "../../../../te/templates/link-template/name"; 3773 } 3774 description 3775 "The reference to a TE link template."; 3776 } 3777 uses te-link-config-attributes; 3778 } // te-link-config 3780 grouping te-link-config-attributes { 3781 description 3782 "Link configuration attributes in a TE topology."; 3783 container te-link-attributes { 3784 description "Link attributes in a TE topology."; 3785 leaf access-type { 3786 type te-types:te-link-access-type; 3787 description 3788 "Link access type, which can be point-to-point or 3789 multi-access."; 3790 } 3791 container external-domain { 3792 description 3793 "For an inter-domain link, specify the attributes of 3794 the remote end of link, to facilitate the signalling at 3795 local end."; 3796 uses nw:network-ref; 3797 leaf remote-te-node-id { 3798 type te-types:te-node-id; 3799 description 3800 "Remote TE node identifier, used together with 3801 remote-te-link-id to identify the remote link 3802 termination point in a different domain."; 3803 } 3804 leaf remote-te-link-tp-id { 3805 type te-types:te-tp-id; 3806 description 3807 "Remote TE link termination point identifier, used 3808 together with remote-te-node-id to identify the remote 3809 link termination point in a different domain."; 3810 } 3811 leaf plug-id { 3812 type uint32; 3813 description 3814 "A topology-wide unique number that identifies on the 3815 network a connectivity supporting a given inter-domain 3816 TE link. This is more flexible alternative to specifying 3817 remote-te-node-id and remote-te-link-tp-id, when the 3818 provider does not know remote-te-node-id and 3819 remote-te-link-tp-id or need to give client the 3820 flexibility to mix-n-match multiple topologies."; 3821 } 3822 } 3823 leaf is-abstract { 3824 type empty; 3825 description "Present if the link is abstract."; 3826 } 3827 leaf name { 3828 type string; 3829 description "Link Name."; 3830 } 3831 container underlay { 3832 if-feature te-topology-hierarchy; 3833 description "Attributes of the te-link underlay."; 3834 reference 3835 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3836 Generalized Multi-Protocol Label Switching (GMPLS) 3837 Traffic Engineering (TE)"; 3839 uses te-link-underlay-attributes; 3840 } // underlay 3841 leaf admin-status { 3842 type te-types:te-admin-status; 3843 description 3844 "The administrative state of the link."; 3845 } 3847 uses te-link-info-attributes; 3848 } // te-link-attributes 3849 } // te-link-config-attributes 3851 grouping te-link-info-attributes { 3852 description 3853 "Advertised TE information attributes."; 3854 leaf link-index { 3855 type uint64; 3856 description 3857 "The link identifier. If OSPF is used, this represents an 3858 ospfLsdbID. If IS-IS is used, this represents an isisLSPID. 3859 If a locally configured link is used, this object represents 3860 a unique value, which is locally defined in a router."; 3861 } 3862 leaf administrative-group { 3863 type te-types:admin-groups; 3864 description 3865 "Administrative group or color of the link. 3866 This attribute covers both administrative group (defined in 3867 RFC3630, RFC5329, and RFC5305), and extended administrative 3868 group (defined in RFC7308)."; 3869 } 3871 uses interface-switching-capability-list; 3872 uses connectivity-label-restriction-list; 3874 leaf link-protection-type { 3875 type enumeration { 3876 enum "unprotected" { 3877 description "Unprotected."; 3878 } 3879 enum "extra-traffic" { 3880 description "Extra traffic."; 3881 } 3882 enum "shared" { 3883 description "Shared."; 3884 } 3885 enum "1-for-1" { 3886 description "One for one protection."; 3887 } 3888 enum "1-plus-1" { 3889 description "One plus one protection."; 3890 } 3891 enum "enhanced" { 3892 description "Enhanced protection."; 3893 } 3894 } 3895 description 3896 "Link Protection Type desired for this link."; 3897 reference 3898 "RFC4202: Routing Extensions in Support of 3899 Generalized Multi-Protocol Label Switching (GMPLS)."; 3900 } 3902 container max-link-bandwidth { 3903 uses te-types:te-bandwidth; 3904 description 3905 "Maximum bandwidth that can be seen on this link in this 3906 direction. Units in bytes per second."; 3907 reference 3908 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3909 Version 2. 3910 RFC5305: IS-IS Extensions for Traffic Engineering."; 3911 } 3912 container max-resv-link-bandwidth { 3913 uses te-types:te-bandwidth; 3914 description 3915 "Maximum amount of bandwidth that can be reserved in this 3916 direction in this link. Units in bytes per second."; 3917 reference 3918 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3919 Version 2. 3920 RFC5305: IS-IS Extensions for Traffic Engineering."; 3921 } 3922 list unreserved-bandwidth { 3923 key "priority"; 3924 max-elements "8"; 3925 description 3926 "Unreserved bandwidth for 0-7 priority levels. Units in 3927 bytes per second."; 3928 reference 3929 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3930 Version 2. 3931 RFC5305: IS-IS Extensions for Traffic Engineering."; 3932 leaf priority { 3933 type uint8 { 3934 range "0..7"; 3935 } 3936 description "Priority."; 3937 } 3938 container bandwidth { 3939 uses te-types:te-bandwidth; 3940 description 3941 "Unreserved bandwidth for this level."; 3942 } 3943 } 3944 leaf te-default-metric { 3945 type uint32; 3946 description 3947 "Traffic engineering metric."; 3948 reference 3949 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3950 Version 2. 3951 RFC5305: IS-IS Extensions for Traffic Engineering."; 3952 } 3953 leaf te-delay-metric { 3954 type uint32; 3955 description 3956 "Traffic engineering delay metric."; 3957 reference 3958 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 3959 } 3960 leaf te-igp-metric { 3961 type uint32; 3962 description 3963 "IGP metric used for traffic engineering."; 3964 reference 3965 "RFC3785: Use of Interior Gateway Protocol (IGP) Metric as a 3966 Second MPLS Traffic Engineering (TE) Metric."; 3967 } 3968 container te-srlgs { 3969 description 3970 "Containing a list of SLRGs."; 3971 leaf-list value { 3972 type te-types:srlg; 3973 description "SRLG value."; 3974 reference 3975 "RFC4202: Routing Extensions in Support of 3976 Generalized Multi-Protocol Label Switching (GMPLS)."; 3977 } 3978 } 3979 container te-nsrlgs { 3980 if-feature nsrlg; 3981 description 3982 "Containing a list of NSRLGs (Not Sharing Risk Link 3983 Groups). 3984 When an abstract TE link is configured, this list specifies 3985 the request that underlay TE paths need to be mutually 3986 disjoint with other TE links in the same groups."; 3987 leaf-list id { 3988 type uint32; 3989 description 3990 "NSRLG ID, uniquely configured within a topology."; 3991 reference 3992 "RFC4872: RSVP-TE Extensions in Support of End-to-End 3993 Generalized Multi-Protocol Label Switching (GMPLS) 3994 Recovery"; 3995 } 3996 } 3997 } // te-link-info-attributes 3999 grouping te-link-iscd-attributes { 4000 description 4001 "TE link ISCD (Interface Switching Capability Descriptor) 4002 attributes."; 4003 reference 4004 "Sec 1.4, RFC4203: OSPF Extensions in Support of Generalized 4005 Multi-Protocol Label Switching (GMPLS). Section 1.4."; 4006 list max-lsp-bandwidth { 4007 key "priority"; 4008 max-elements "8"; 4009 description 4010 "Maximum LSP Bandwidth at priorities 0-7."; 4011 leaf priority { 4012 type uint8 { 4013 range "0..7"; 4014 } 4015 description "Priority."; 4016 } 4017 container bandwidth { 4018 uses te-types:te-bandwidth; 4019 description 4020 "Max LSP Bandwidth for this level"; 4022 } 4023 } 4024 } // te-link-iscd-attributes 4026 grouping te-link-state-derived { 4027 description 4028 "Link state attributes in a TE topology."; 4029 leaf oper-status { 4030 type te-types:te-oper-status; 4031 config false; 4032 description 4033 "The current operational state of the link."; 4034 } 4035 leaf is-transitional { 4036 type empty; 4037 config false; 4038 description 4039 "Present if the link is transitional, used as an 4040 alternative approach in lieu of inter-layer-lock-id 4041 for path computation in a TE topology covering multiple 4042 layers or multiple regions."; 4043 reference 4044 "RFC5212: Requirements for GMPLS-Based Multi-Region and 4045 Multi-Layer Networks (MRN/MLN). 4046 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4047 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4048 } 4049 uses information-source-per-link-attributes; 4050 list information-source-entry { 4051 key "information-source"; 4052 config false; 4053 description 4054 "A list of information sources learned, including the one 4055 used."; 4056 uses information-source-per-link-attributes; 4057 uses te-link-info-attributes; 4058 } 4059 container recovery { 4060 config false; 4061 description 4062 "Status of the recovery process."; 4064 leaf restoration-status { 4065 type te-types:te-recovery-status; 4066 description 4067 "Restoration status."; 4068 } 4069 leaf protection-status { 4070 type te-types:te-recovery-status; 4071 description 4072 "Protection status."; 4073 } 4074 } 4075 container underlay { 4076 if-feature te-topology-hierarchy; 4077 config false; 4078 description "State attributes for te-link underlay."; 4079 leaf dynamic { 4080 type boolean; 4081 description 4082 "true if the underlay is dynamically created."; 4083 } 4084 leaf committed { 4085 type boolean; 4086 description 4087 "true if the underlay is committed."; 4088 } 4089 } 4090 } // te-link-state-derived 4092 grouping te-link-underlay-attributes { 4093 description "Attributes for te-link underlay."; 4094 reference 4095 "RFC4206: Label Switched Paths (LSP) Hierarchy with 4096 Generalized Multi-Protocol Label Switching (GMPLS) 4097 Traffic Engineering (TE)"; 4098 leaf enabled { 4099 type boolean; 4100 description 4101 "'true' if the underlay is enabled. 4102 'false' if the underlay is disabled."; 4103 } 4104 container primary-path { 4105 description 4106 "The service path on the underlay topology that 4107 supports this link."; 4108 uses nw:network-ref; 4109 list path-element { 4110 key "path-element-id"; 4111 description 4112 "A list of path elements describing the service path."; 4113 leaf path-element-id { 4114 type uint32; 4115 description "To identify the element in a path."; 4116 } 4117 uses te-path-element; 4118 } 4119 } // primary-path 4120 list backup-path { 4121 key "index"; 4122 description 4123 "A list of backup service paths on the underlay topology that 4124 protect the underlay primary path. If the primary path is 4125 not protected, the list contains zero elements. If the 4126 primary path is protected, the list contains one or more 4127 elements."; 4128 leaf index { 4129 type uint32; 4130 description 4131 "A sequence number to identify a backup path."; 4132 } 4133 uses nw:network-ref; 4134 list path-element { 4135 key "path-element-id"; 4136 description 4137 "A list of path elements describing the backup service 4138 path"; 4139 leaf path-element-id { 4140 type uint32; 4141 description "To identify the element in a path."; 4142 } 4143 uses te-path-element; 4144 } 4145 } // underlay-backup-path 4146 leaf protection-type { 4147 type identityref { 4148 base te-types:lsp-prot-type; 4149 } 4150 description 4151 "Underlay protection type desired for this link."; 4152 } 4153 container tunnel-termination-points { 4154 description 4155 "Underlay TTP(Tunnel Termination Points) desired for this 4156 link."; 4157 leaf source { 4158 type binary; 4159 description 4160 "Source tunnel termination point identifier."; 4161 } 4162 leaf destination { 4163 type binary; 4164 description 4165 "Destination tunnel termination point identifier."; 4166 } 4167 } 4168 container tunnels { 4169 description 4170 "Underlay TE tunnels supporting this TE link."; 4171 leaf sharing { 4172 type boolean; 4173 default true; 4174 description 4175 "'true' if the underlay tunnel can be shared with other 4176 TE links; 4177 'false' if the underlay tunnel is dedicated to this 4178 TE link. 4179 This leaf is the default option for all TE tunnels, 4180 and may be overridden by the per TE tunnel value."; 4181 } 4182 list tunnel { 4183 key "tunnel-name"; 4184 description 4185 "Zero, one or more underlay TE tunnels that support this TE 4186 link."; 4188 leaf tunnel-name { 4189 type string; 4190 description 4191 "A tunnel name uniquely identifies an underlay TE tunnel, 4192 used together with the source-node of this link. 4193 The detailed information of this tunnel can be retrieved 4194 from the ietf-te model."; 4195 reference "RFC3209"; 4196 } 4197 leaf sharing { 4198 type boolean; 4199 description 4200 "'true' if the underlay tunnel can be shared with other 4201 TE links; 4202 'false' if the underlay tunnel is dedicated to this 4203 TE link."; 4204 } 4205 } // tunnel 4206 } // tunnels 4207 } // te-link-underlay-attributes 4209 grouping te-node-augment { 4210 description 4211 "Augmentation for TE node."; 4212 uses te-node-config; 4213 uses te-node-state-derived; 4214 container statistics { 4215 config false; 4216 description 4217 "Statistics data."; 4218 uses statistics-per-node; 4219 } // statistics 4221 list tunnel-termination-point { 4222 key "tunnel-tp-id"; 4223 description 4224 "A termination point can terminate a tunnel."; 4225 leaf tunnel-tp-id { 4226 type binary; 4227 description 4228 "Tunnel termination point identifier."; 4230 } 4232 uses te-node-tunnel-termination-point-config; 4233 leaf oper-status { 4234 type te-types:te-oper-status; 4235 config false; 4236 description 4237 "The current operational state of the tunnel 4238 termination point."; 4239 } 4240 uses geolocation-container; 4241 container statistics { 4242 config false; 4243 description 4244 "Statistics data."; 4245 uses statistics-per-ttp; 4246 } // statistics 4248 // Relations to other tunnel termination points 4249 list supporting-tunnel-termination-point { 4250 key "node-ref tunnel-tp-ref"; 4251 description 4252 "Identifies the tunnel termination points, that this 4253 tunnel termination point is depending on."; 4254 leaf node-ref { 4255 type inet:uri; 4256 description 4257 "This leaf identifies the node in which the supporting 4258 tunnel termination point is present. 4259 This node is either the supporting node or a node in 4260 an underlay topology."; 4261 } 4262 leaf tunnel-tp-ref { 4263 type binary; 4264 description 4265 "Reference to a tunnel terminiation point, which is 4266 either in the supporting node or a node in an 4267 underlay topology."; 4268 } 4269 } // supporting-tunnel-termination-point 4270 } // tunnel-termination-point 4272 } // te-node-augment 4274 grouping te-node-config { 4275 description "TE node configuration grouping."; 4276 leaf-list te-node-template { 4277 if-feature template; 4278 type leafref { 4279 path "../../../../te/templates/node-template/name"; 4280 } 4281 description 4282 "The reference to a TE node template."; 4283 } 4284 uses te-node-config-attributes; 4285 } // te-node-config 4287 grouping te-node-config-attributes { 4288 description "Configuration node attributes in a TE topology."; 4289 container te-node-attributes { 4290 description "Containing node attributes in a TE topology."; 4291 leaf admin-status { 4292 type te-types:te-admin-status; 4293 description 4294 "The administrative state of the link."; 4295 } 4296 uses te-node-connectivity-matrices; 4297 uses te-node-info-attributes; 4298 } // te-node-attributes 4299 } // te-node-config-attributes 4301 grouping te-node-config-attributes-template { 4302 description 4303 "Configuration node attributes for template in a TE topology."; 4304 container te-node-attributes { 4305 description "Containing node attributes in a TE topology."; 4306 leaf admin-status { 4307 type te-types:te-admin-status; 4308 description 4309 "The administrative state of the link."; 4310 } 4311 uses te-node-info-attributes; 4312 } // te-node-attributes 4314 } // te-node-config-attributes-template 4316 grouping te-node-connectivity-matrices { 4317 description "Connectivity matrix on a TE node."; 4318 container connectivity-matrices { 4319 description 4320 "Containing connectivity matrix on a TE node."; 4321 leaf number-of-entries { 4322 type uint16; 4323 description 4324 "The number of connectivity matrix entries. 4325 If this number is speficied in the configuration request, 4326 the number is requested number of entries, which may not 4327 all be listed in the list; 4328 if this number is reported in the state data, 4329 the number is the current number of operational entries."; 4330 } 4331 uses connectivity-label-restriction-list; 4332 uses connectivity-matrix-entry-path-attributes; 4333 list connectivity-matrix { 4334 key "id"; 4335 description 4336 "Represents node's switching limitations, i.e. limitations 4337 in interconnecting network TE links across the node."; 4338 reference 4339 "RFC7579: General Network Element Constraint Encoding 4340 for GMPLS-Controlled Networks."; 4341 leaf id { 4342 type uint32; 4343 description "Identifies the connectivity-matrix entry."; 4344 } 4345 } // connectivity-matrix 4346 } // connectivity-matrices 4347 } // te-node-connectivity-matrices 4349 grouping te-node-connectivity-matrix-attributes { 4350 description 4351 "Termination point references of a connectivity matrix entry."; 4352 container from { 4353 description 4354 "Reference to source link termination point."; 4356 leaf tp-ref { 4357 type leafref { 4358 path "../../../../../../nt:termination-point/nt:tp-id"; 4359 } 4360 description 4361 "Relative reference to a termination point."; 4362 } 4363 uses connectivity-label-restriction-list; 4364 } 4365 container to { 4366 description 4367 "Reference to destination link termination point."; 4368 leaf tp-ref { 4369 type leafref { 4370 path "../../../../../../nt:termination-point/nt:tp-id"; 4371 } 4372 description 4373 "Relative reference to a termination point."; 4374 } 4375 uses connectivity-label-restriction-list; 4376 } 4377 uses connectivity-matrix-entry-path-attributes; 4378 } // te-node-connectivity-matrix-attributes 4380 grouping te-node-info-attributes { 4381 description 4382 "Advertised TE information attributes."; 4383 leaf domain-id { 4384 type uint32; 4385 description 4386 "Identifies the domain that this node belongs. 4387 This attribute is used to support inter-domain links."; 4388 reference 4389 "RFC5152: A Per-Domain Path Computation Method for 4390 Establishing Inter-Domain Traffic Engineering (TE) 4391 Label Switched Paths (LSPs). 4392 RFC5392: OSPF Extensions in Support of Inter-Autonomous 4393 System (AS) MPLS and GMPLS Traffic Engineering. 4394 RFC5316: ISIS Extensions in Support of Inter-Autonomous 4395 System (AS) MPLS and GMPLS Traffic Engineering."; 4396 } 4397 leaf is-abstract { 4398 type empty; 4399 description 4400 "Present if the node is abstract, not present if the node 4401 is actual."; 4402 } 4403 leaf name { 4404 type inet:domain-name; 4405 description "Node name."; 4406 } 4407 leaf-list signaling-address { 4408 type inet:ip-address; 4409 description "Node signaling address."; 4410 } 4411 container underlay-topology { 4412 if-feature te-topology-hierarchy; 4413 description 4414 "When an abstract node encapsulates a topology, 4415 the attributes in this container point to said topology."; 4416 uses nw:network-ref; 4417 } 4418 } // te-node-info-attributes 4420 grouping te-node-state-derived { 4421 description "Node state attributes in a TE topology."; 4422 leaf oper-status { 4423 type te-types:te-oper-status; 4424 config false; 4425 description 4426 "The current operational state of the node."; 4427 } 4428 uses geolocation-container; 4429 leaf is-multi-access-dr { 4430 type empty; 4431 config false; 4432 description 4433 "The presence of this attribute indicates that this TE node 4434 is a pseudonode elected as a designated router."; 4435 reference 4436 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 4437 Version 2. 4439 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 4440 Environments."; 4441 } 4442 uses information-source-per-node-attributes; 4443 list information-source-entry { 4444 key "information-source"; 4445 config false; 4446 description 4447 "A list of information sources learned, including the one 4448 used."; 4449 uses information-source-per-node-attributes; 4450 uses te-node-connectivity-matrices; 4451 uses te-node-info-attributes; 4452 } 4453 } // te-node-state-derived 4455 grouping te-node-tunnel-termination-point-config { 4456 description 4457 "Termination capability of a tunnel termination point on a 4458 TE node."; 4459 uses te-node-tunnel-termination-point-config-attributes; 4460 container local-link-connectivities { 4461 description 4462 "Containing local link connectivity list for 4463 a tunnel termination point on a TE node."; 4464 leaf number-of-entries { 4465 type uint16; 4466 description 4467 "The number of local link connectivity list entries. 4468 If this number is speficied in the configuration request, 4469 the number is requested number of entries, which may not 4470 all be listed in the list; 4471 if this number is reported in the state data, 4472 the number is the current number of operational entries."; 4473 } 4474 uses connectivity-label-restriction-list; 4475 uses connectivity-matrix-entry-path-attributes; 4476 } // local-link-connectivities 4477 } // te-node-tunnel-termination-point-config 4479 grouping te-node-tunnel-termination-point-config-attributes { 4480 description 4481 "Configuration attributes of a tunnel termination point on a 4482 TE node."; 4483 leaf admin-status { 4484 type te-types:te-admin-status; 4485 description 4486 "The administrative state of the tunnel termination point."; 4487 } 4488 leaf name { 4489 type string; 4490 description 4491 "A descriptive name for the tunnel termination point."; 4492 } 4493 leaf switching-capability { 4494 type identityref { 4495 base te-types:switching-capabilities; 4496 } 4497 description 4498 "Switching Capability for this interface."; 4499 } 4500 leaf encoding { 4501 type identityref { 4502 base te-types:lsp-encoding-types; 4503 } 4504 description 4505 "Encoding supported by this interface."; 4506 } 4507 leaf-list inter-layer-lock-id { 4508 type uint32; 4509 description 4510 "Inter layer lock ID, used for path computation in a TE 4511 topology covering multiple layers or multiple regions."; 4512 reference 4513 "RFC5212: Requirements for GMPLS-Based Multi-Region and 4514 Multi-Layer Networks (MRN/MLN). 4515 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4516 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4517 } 4518 leaf protection-type { 4519 type identityref { 4520 base te-types:lsp-prot-type; 4522 } 4523 description 4524 "The protection type that this tunnel termination point 4525 is capable of."; 4526 } 4528 container client-layer-adaptation { 4529 description 4530 "Containing capability information to support a client layer 4531 adaption in multi-layer topology."; 4532 list switching-capability { 4533 key "switching-capability encoding"; 4534 description 4535 "List of supported switching capabilities"; 4536 reference 4537 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4538 for Multi-Layer and Multi-Region Networks (MLN/MRN). 4539 RFC4202: Routing Extensions in Support of 4540 Generalized Multi-Protocol Label Switching (GMPLS)."; 4541 leaf switching-capability { 4542 type identityref { 4543 base te-types:switching-capabilities; 4544 } 4545 description 4546 "Switching Capability for the client layer adaption."; 4547 } 4548 leaf encoding { 4549 type identityref { 4550 base te-types:lsp-encoding-types; 4551 } 4552 description 4553 "Encoding supported by the client layer adaption."; 4554 } 4555 container bandwidth { 4556 uses te-types:te-bandwidth; 4557 description 4558 "Bandwidth available for the client layer adaption."; 4559 } 4560 } 4561 } 4562 } // te-node-tunnel-termination-point-config-attributes 4563 grouping te-node-tunnel-termination-point-llc-list { 4564 description 4565 "Local link connectivity list of a tunnel termination 4566 point on a TE node."; 4567 list local-link-connectivity { 4568 key "link-tp-ref"; 4569 description 4570 "The termination capabilities between 4571 tunnel-termination-point and link termination-point. 4572 The capability information can be used to compute 4573 the tunnel path. 4574 The Interface Adjustment Capability Descriptors (IACD) 4575 [RFC6001] on each link-tp can be derived from this 4576 local-link-connectivity list."; 4577 reference 4578 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4579 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4581 leaf link-tp-ref { 4582 type leafref { 4583 path "../../../../../nt:termination-point/nt:tp-id"; 4584 } 4585 description 4586 "Link termination point."; 4587 } 4588 uses connectivity-label-restriction-list; 4589 uses connectivity-matrix-entry-path-attributes; 4590 } // local-link-connectivity 4591 } // te-node-tunnel-termination-point-config 4593 grouping te-path-element { 4594 description 4595 "A group of attributes defining an element in a TE path 4596 such as TE node, TE link, TE atomic resource or label."; 4597 uses te-types:explicit-route-hop_config; 4598 } // te-path-element 4600 grouping te-termination-point-augment { 4601 description 4602 "Augmentation for TE termination point."; 4604 leaf te-tp-id { 4605 type te-types:te-tp-id; 4606 description 4607 "An identifier to uniquely identify a TE termination 4608 point."; 4609 } 4610 container te { 4611 must "../te-tp-id"; 4612 presence "TE support."; 4613 description 4614 "Indicates TE support."; 4616 uses te-termination-point-config; 4617 leaf oper-status { 4618 type te-types:te-oper-status; 4619 config false; 4620 description 4621 "The current operational state of the link termination 4622 point."; 4623 } 4624 uses geolocation-container; 4625 } // te 4626 } // te-termination-point-augment 4628 grouping te-termination-point-config { 4629 description 4630 "TE termination point configuration grouping."; 4631 leaf admin-status { 4632 type te-types:te-admin-status; 4633 description 4634 "The administrative state of the link termination point."; 4635 } 4636 leaf name { 4637 type string; 4638 description 4639 "A descriptive name for the link termination point."; 4640 } 4641 uses interface-switching-capability-list; 4642 leaf-list inter-layer-lock-id { 4643 type uint32; 4644 description 4645 "Inter layer lock ID, used for path computation in a TE 4646 topology covering multiple layers or multiple regions."; 4647 reference 4648 "RFC5212: Requirements for GMPLS-Based Multi-Region and 4649 Multi-Layer Networks (MRN/MLN). 4650 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 4651 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 4652 } 4653 } // te-termination-point-config 4655 grouping te-topologies-augment { 4656 description 4657 "Augmentation for TE topologies."; 4658 container te { 4659 presence "TE support."; 4660 description 4661 "Indicates TE support."; 4663 container templates { 4664 description 4665 "Configuration parameters for templates used for TE 4666 topology."; 4668 list node-template { 4669 if-feature template; 4670 key "name"; 4671 leaf name { 4672 type te-types:te-template-name; 4673 description 4674 "The name to identify a TE node template."; 4675 } 4676 description 4677 "The list of TE node templates used to define sharable 4678 and reusable TE node attributes."; 4679 uses template-attributes; 4680 uses te-node-config-attributes-template; 4681 } // node-template 4683 list link-template { 4684 if-feature template; 4685 key "name"; 4686 leaf name { 4687 type te-types:te-template-name; 4688 description 4689 "The name to identify a TE link template."; 4690 } 4691 description 4692 "The list of TE link templates used to define sharable 4693 and reusable TE link attributes."; 4694 uses template-attributes; 4695 uses te-link-config-attributes; 4696 } // link-template 4697 } // templates 4698 } // te 4699 } // te-topologies-augment 4701 grouping te-topology-augment { 4702 description 4703 "Augmentation for TE topology."; 4704 leaf provider-id { 4705 type te-types:te-global-id; 4706 description 4707 "An identifier to uniquely identify a provider."; 4708 } 4709 leaf client-id { 4710 type te-types:te-global-id; 4711 description 4712 "An identifier to uniquely identify a client."; 4713 } 4714 leaf te-topology-id { 4715 type te-types:te-topology-id; 4716 description 4717 "It is presumed that a datastore will contain many 4718 topologies. To distinguish between topologies it is 4719 vital to have UNIQUE topology identifiers."; 4720 } 4722 container te { 4723 must "../provider-id and ../client-id and ../te-topology-id"; 4724 presence "TE support."; 4725 description 4726 "Indicates TE support."; 4728 uses te-topology-config; 4729 uses geolocation-container; 4730 } // te 4731 } // te-topology-augment 4733 grouping te-topology-config { 4734 description 4735 "TE topology configuration grouping."; 4736 leaf preference { 4737 type uint8 { 4738 range "1..255"; 4739 } 4740 description 4741 "Specifies a preference for this topology. A lower number 4742 indicates a higher preference."; 4743 } 4744 leaf optimization-criterion { 4745 type identityref { 4746 base te-types:te-optimization-criterion; 4747 } 4748 description 4749 "Optimization criterion applied to this topology."; 4750 reference 4751 "RFC3272: Overview and Principles of Internet Traffic 4752 Engineering."; 4753 } 4754 list nsrlg { 4755 if-feature nsrlg; 4756 key "id"; 4757 description 4758 "List of NSRLGs (Not Sharing Risk Link Groups)."; 4759 reference 4760 "RFC4872: RSVP-TE Extensions in Support of End-to-End 4761 Generalized Multi-Protocol Label Switching (GMPLS) 4762 Recovery"; 4763 leaf id { 4764 type uint32; 4765 description 4766 "Identify the NSRLG entry."; 4767 } 4768 leaf disjointness { 4769 type te-types:te-path-disjointness; 4770 description 4771 "The type of resource disjointness."; 4772 } 4773 } // nsrlg 4774 } // te-topology-config 4776 grouping template-attributes { 4777 description 4778 "Common attributes for all templates."; 4779 leaf priority { 4780 type uint16; 4781 description 4782 "The preference value to resolve conflicts between different 4783 templates. When two or more templates specify values for 4784 one configuration attribute, the value from the template 4785 with the highest priority is used."; 4786 } 4787 leaf reference-change-policy { 4788 type enumeration { 4789 enum no-action { 4790 description 4791 "When an attribute changes in this template, the 4792 configuration node referring to this template does 4793 not take any action."; 4794 } 4795 enum not-allowed { 4796 description 4797 "When any configuration object has a reference to this 4798 template, changing this template is not allowed."; 4799 } 4800 enum cascade { 4801 description 4802 "When an attribute changes in this template, the 4803 configuration object referring to this template applies 4804 the new attribute value to the corresponding 4805 configuration."; 4806 } 4807 } 4808 description 4809 "This attribute specifies the action taken to a configuration 4810 node that has a reference to this template."; 4811 } 4812 } // template-attributes 4814 /* 4815 * Data nodes 4816 */ 4817 augment "/nw:networks/nw:network/nw:network-types" { 4818 description 4819 "Introduce new network type for TE topology."; 4820 container te-topology { 4821 presence "Indicates TE topology."; 4822 description 4823 "Its presence identifies the TE topology type."; 4824 } 4825 } 4827 augment "/nw:networks" { 4828 description 4829 "Augmentation parameters for TE topologies."; 4830 uses te-topologies-augment; 4831 } 4833 augment "/nw:networks/nw:network" { 4834 when "nw:network-types/te-topology" { 4835 description 4836 "Augmentation parameters apply only for networks with 4837 TE topology type."; 4838 } 4839 description 4840 "Configuration parameters for TE topology."; 4841 uses te-topology-augment; 4842 } 4844 augment "/nw:networks/nw:network/nw:node" { 4845 when "../nw:network-types/te-topology" { 4846 description 4847 "Augmentation parameters apply only for networks with 4848 TE topology type."; 4849 } 4850 description 4851 "Configuration parameters for TE at node level."; 4852 leaf te-node-id { 4853 type te-types:te-node-id; 4854 description 4855 "The identifier of a node in the TE topology. 4856 A node is specific to a topology to which it belongs."; 4857 } 4858 container te { 4859 must "../te-node-id" { 4860 description 4861 "te-node-id is mandatory."; 4862 } 4863 must "count(../nw:supporting-node)<=1" { 4864 description 4865 "For a node in a TE topology, there cannot be more 4866 than 1 supporting node. If multiple nodes are abstracted, 4867 the underlay-topology is used."; 4868 } 4869 presence "TE support."; 4870 description 4871 "Indicates TE support."; 4872 uses te-node-augment; 4873 } // te 4874 } 4876 augment "/nw:networks/nw:network/nt:link" { 4877 when "../nw:network-types/te-topology" { 4878 description 4879 "Augmentation parameters apply only for networks with 4880 TE topology type."; 4881 } 4882 description 4883 "Configuration parameters for TE at link level."; 4884 container te { 4885 must "count(../nt:supporting-link)<=1" { 4886 description 4887 "For a link in a TE topology, there cannot be more 4888 than 1 supporting link. If one or more link paths are 4889 abstracted, the underlay is used."; 4890 } 4891 presence "TE support."; 4892 description 4893 "Indicates TE support."; 4894 uses te-link-augment; 4895 } // te 4896 } 4898 augment "/nw:networks/nw:network/nw:node/" 4899 + "nt:termination-point" { 4900 when "../../nw:network-types/te-topology" { 4901 description 4902 "Augmentation parameters apply only for networks with 4903 TE topology type."; 4904 } 4905 description 4906 "Configuration parameters for TE at termination point level."; 4907 uses te-termination-point-augment; 4908 } 4910 augment 4911 "/nw:networks/nw:network/nt:link/te/bundle-stack-level/" 4912 + "bundle/bundled-links/bundled-link" { 4913 when "../../../../nw:network-types/te-topology" { 4914 description 4915 "Augmentation parameters apply only for networks with 4916 TE topology type."; 4917 } 4918 description 4919 "Augment TE link bundled link."; 4920 leaf src-tp-ref { 4921 type leafref { 4922 path "../../../../../nw:node[nw:node-id = " 4923 + "current()/../../../../nt:source/" 4924 + "nt:source-node]/" 4925 + "nt:termination-point/nt:tp-id"; 4926 require-instance true; 4927 } 4928 description 4929 "Reference to another TE termination point on the 4930 same souruce node."; 4931 } 4932 leaf des-tp-ref { 4933 type leafref { 4934 path "../../../../../nw:node[nw:node-id = " 4935 + "current()/../../../../nt:destination/" 4936 + "nt:dest-node]/" 4937 + "nt:termination-point/nt:tp-id"; 4938 require-instance true; 4939 } 4940 description 4941 "Reference to another TE termination point on the 4942 same destination node."; 4943 } 4944 } 4946 augment 4947 "/nw:networks/nw:network/nw:node/te/" 4948 + "information-source-entry/connectivity-matrices/" 4949 + "connectivity-matrix" { 4950 when "../../../../../nw:network-types/te-topology" { 4951 description 4952 "Augmentation parameters apply only for networks with 4953 TE topology type."; 4954 } 4955 description 4956 "Augment TE node connectivity-matrix."; 4957 uses te-node-connectivity-matrix-attributes; 4958 } 4960 augment 4961 "/nw:networks/nw:network/nw:node/te/te-node-attributes/" 4962 + "connectivity-matrices/connectivity-matrix" { 4963 when "../../../../../nw:network-types/te-topology" { 4964 description 4965 "Augmentation parameters apply only for networks with 4966 TE topology type."; 4967 } 4968 description 4969 "Augment TE node connectivity-matrix."; 4970 uses te-node-connectivity-matrix-attributes; 4971 } 4972 augment 4973 "/nw:networks/nw:network/nw:node/te/" 4974 + "tunnel-termination-point/local-link-connectivities" { 4975 when "../../../../nw:network-types/te-topology" { 4976 description 4977 "Augmentation parameters apply only for networks with 4978 TE topology type."; 4979 } 4980 description 4981 "Augment TE node tunnel termination point LLCs 4982 (Local Link Connectivities)."; 4983 uses te-node-tunnel-termination-point-llc-list; 4984 } 4985 } 4986 4988 8. Security Considerations 4990 The transport protocol used for retrieving/manipulating the TE 4991 topology data MUST support authentication and SHOULD support 4992 encryption. The data-model by itself does not create any security 4993 implications. 4995 9. IANA Considerations 4997 This document registers the following URIs in the IETF XML registry 4998 [RFC3688]. Following the format in [RFC3688], the following 4999 registration is requested to be made. 5001 URI: urn:ietf:params:xml:ns:yang:ietf-te-topology 5002 XML: N/A, the requested URI is an XML namespace. 5004 URI: urn:ietf:params:xml:ns:yang:ietf-te-topology-state 5005 XML: N/A, the requested URI is an XML namespace. 5007 This document registers a YANG module in the YANG Module Names 5008 registry [RFC6020]. 5010 name: ietf-te-topology 5011 namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology 5012 prefix: tet 5014 name: ietf-te-topology-state 5015 namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology-state 5016 prefix: tet-s 5018 10. References 5020 10.1. Normative References 5022 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5023 Requirement Levels", BCP 14, RFC 2119, March 1997. 5025 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 5026 January 2004. 5028 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 5029 Network Configuration Protocol (NETCONF)", RFC 6020, 5030 October 2010. 5032 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 5033 July 2013. 5035 [RFC3945] Mannie, E., "Generalized Multi-Protocol Label Switching 5036 (GMPLS) Architecture", October 2004. 5038 [YANG-NET-TOPO] Clemm, A., "A Data Model for Network Topologies", 5039 draft-ietf-i2rs-yang-network-topo (Work in Progress). 5041 [YANG-PUSH] Clemm, A., "Subscribing to YANG datastore push updates", 5042 draft-clemm-netconf-yang-push (Work in Progress). 5044 [RFC5277bis] Clemm, A., "Subscribing to Event Notifications", 5045 draft-ietf-netconf-rfc5277bis (Work in Progress). 5047 [YANG-SCHEDULE] Liu, X., "A YANG Data Model for Configuration 5048 Scheduling", draft-liu-netmod-yang-schedule (Work in 5049 Progress). 5051 [YANG-NMDA] Bjorklund, M., Schoenwaelder, J., Shafer, P., 5052 Watsen, K., and R. Wilton, "Network Management Datastore 5053 Architecture", draft-ietf-netmod-revised-datastores (Work 5054 in Progress). 5056 10.2. Informative References 5058 [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over 5059 MPLS", RFC 2702, September 1999. 5061 11. Acknowledgments 5062 The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, 5063 Cyril Margaria and Zafar Ali for participating in design discussions 5064 and providing valuable insights. 5066 Appendix A. Companion YANG Model for Non-NMDA Compliant Implementations 5068 The YANG module ietf-te-topology defined in this document is designed 5069 to be used in conjunction with implementations that support the 5070 Network Management Datastore Architecture (NMDA) defined in [YANG- 5071 NMDA]. In order to allow implementations to use the model even in 5072 cases when NMDA is not supported, the following companion module 5073 ietf-te-topology-state is defined as a state model, which mirrors the 5074 module ietf-te-topology defined earlier in this document. However, 5075 all data nodes in the companion module are non-configurable, to 5076 represent the applied configuration or the derived operational 5077 states. 5079 The companion module, ietf-te-topology-state, is redundant and SHOULD 5080 NOT be supported by implementations that support NMDA. 5082 As the structure of the module ietf-te-topology-state mirrors that of 5083 the module ietf-te-topology. The YANG tree of the module ietf-te- 5084 topology-state is not depicted separately. 5086 A.1. TE Topology State Yang Module 5088 file "ietf-te-topology-state@2017-07-02.yang" 5089 module ietf-te-topology-state { 5090 yang-version 1.1; 5091 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-state"; 5093 prefix "tet-s"; 5095 import ietf-te-types { 5096 prefix "te-types"; 5097 } 5099 import ietf-te-topology { 5100 prefix "tet"; 5101 } 5103 import ietf-network-state { 5104 prefix "nw-s"; 5105 } 5107 import ietf-network-topology-state { 5108 prefix "nt-s"; 5109 } 5110 organization 5111 "Traffic Engineering Architecture and Signaling (TEAS) 5112 Working Group"; 5114 contact 5115 "WG Web: 5116 WG List: 5118 WG Chair: Lou Berger 5119 5121 WG Chair: Vishnu Pavan Beeram 5122 5124 Editor: Xufeng Liu 5125 5127 Editor: Igor Bryskin 5128 5130 Editor: Vishnu Pavan Beeram 5131 5133 Editor: Tarek Saad 5134 5136 Editor: Himanshu Shah 5137 5139 Editor: Oscar Gonzalez De Dios 5140 "; 5142 description "TE topology state model"; 5144 revision "2017-07-02" { 5145 description "Initial revision"; 5146 reference "TBD"; 5147 } 5149 /* 5150 * Groupings 5151 */ 5152 grouping te-node-connectivity-matrix-attributes { 5153 description 5154 "Termination point references of a connectivity matrix entry."; 5155 container from { 5156 description 5157 "Reference to source link termination point."; 5158 leaf tp-ref { 5159 type leafref { 5160 path "../../../../../../nt-s:termination-point/nt-s:tp-id"; 5161 } 5162 description 5163 "Relative reference to a termination point."; 5164 } 5165 uses tet:connectivity-label-restriction-list; 5166 } 5167 container to { 5168 description 5169 "Reference to destination link termination point."; 5170 leaf tp-ref { 5171 type leafref { 5172 path "../../../../../../nt-s:termination-point/nt-s:tp-id"; 5173 } 5174 description 5175 "Relative reference to a termination point."; 5176 } 5177 uses tet:connectivity-label-restriction-list; 5178 } 5179 uses tet:connectivity-matrix-entry-path-attributes; 5180 } // te-node-connectivity-matrix-attributes 5182 grouping te-node-tunnel-termination-point-llc-list { 5183 description 5184 "Local link connectivity list of a tunnel termination 5185 point on a TE node."; 5186 list local-link-connectivity { 5187 key "link-tp-ref"; 5188 description 5189 "The termination capabilities between 5190 tunnel-termination-point and link termination-point. 5192 The capability information can be used to compute 5193 the tunnel path. 5194 The Interface Adjustment Capability Descriptors (IACD) 5195 [RFC6001] on each link-tp can be derived from this 5196 local-link-connectivity list."; 5197 reference 5198 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 5199 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 5201 leaf link-tp-ref { 5202 type leafref { 5203 path "../../../../../nt-s:termination-point/nt-s:tp-id"; 5204 } 5205 description 5206 "Link termination point."; 5207 } 5208 uses tet:connectivity-label-restriction-list; 5209 uses tet:connectivity-matrix-entry-path-attributes; 5210 } // local-link-connectivity 5211 } // te-node-tunnel-termination-point-config 5213 /* 5214 * Data nodes 5215 */ 5216 augment "/nw-s:networks/nw-s:network/nw-s:network-types" { 5217 description 5218 "Introduce new network type for TE topology."; 5219 container te-topology { 5220 presence "Indicates TE topology."; 5221 description 5222 "Its presence identifies the TE topology type."; 5223 } 5224 } 5226 augment "/nw-s:networks" { 5227 description 5228 "Augmentation parameters for TE topologies."; 5229 uses tet:te-topologies-augment; 5230 } 5232 augment "/nw-s:networks/nw-s:network" { 5233 when "nw-s:network-types/te-topology" { 5234 description 5235 "Augmentation parameters apply only for networks with 5236 TE topology type."; 5237 } 5238 description 5239 "Configuration parameters for TE topology."; 5240 uses tet:te-topology-augment; 5241 } 5243 augment "/nw-s:networks/nw-s:network/nw-s:node" { 5244 when "../nw-s:network-types/te-topology" { 5245 description 5246 "Augmentation parameters apply only for networks with 5247 TE topology type."; 5248 } 5249 description 5250 "Configuration parameters for TE at node level."; 5251 leaf te-node-id { 5252 type te-types:te-node-id; 5253 description 5254 "The identifier of a node in the TE topology. 5255 A node is specific to a topology to which it belongs."; 5256 } 5257 container te { 5258 must "../te-node-id" { 5259 description 5260 "te-node-id is mandatory."; 5261 } 5262 must "count(../nw-s:supporting-node)<=1" { 5263 description 5264 "For a node in a TE topology, there cannot be more 5265 than 1 supporting node. If multiple nodes are abstracted, 5266 the underlay-topology is used."; 5267 } 5268 presence "TE support."; 5269 description 5270 "Indicates TE support."; 5271 uses tet:te-node-augment; 5272 } // te 5273 } 5274 augment "/nw-s:networks/nw-s:network/nt-s:link" { 5275 when "../nw-s:network-types/te-topology" { 5276 description 5277 "Augmentation parameters apply only for networks with 5278 TE topology type."; 5279 } 5280 description 5281 "Configuration parameters for TE at link level."; 5282 container te { 5283 must "count(../nt-s:supporting-link)<=1" { 5284 description 5285 "For a link in a TE topology, there cannot be more 5286 than 1 supporting link. If one or more link paths are 5287 abstracted, the underlay is used."; 5288 } 5289 presence "TE support."; 5290 description 5291 "Indicates TE support."; 5292 uses tet:te-link-augment; 5293 } // te 5294 } 5296 augment "/nw-s:networks/nw-s:network/nw-s:node/" 5297 + "nt-s:termination-point" { 5298 when "../../nw-s:network-types/te-topology" { 5299 description 5300 "Augmentation parameters apply only for networks with 5301 TE topology type."; 5302 } 5303 description 5304 "Configuration parameters for TE at termination point level."; 5305 uses tet:te-termination-point-augment; 5306 } 5308 augment 5309 "/nw-s:networks/nw-s:network/nt-s:link/te/bundle-stack-level/" 5310 + "bundle/bundled-links/bundled-link" { 5311 when "../../../../nw-s:network-types/te-topology" { 5312 description 5313 "Augmentation parameters apply only for networks with 5314 TE topology type."; 5315 } 5316 description 5317 "Augment TE link bundled link."; 5318 leaf src-tp-ref { 5319 type leafref { 5320 path "../../../../../nw-s:node[nw-s:node-id = " 5321 + "current()/../../../../nt-s:source/" 5322 + "nt-s:source-node]/" 5323 + "nt-s:termination-point/nt-s:tp-id"; 5324 require-instance true; 5325 } 5326 description 5327 "Reference to another TE termination point on the 5328 same souruce node."; 5329 } 5330 leaf des-tp-ref { 5331 type leafref { 5332 path "../../../../../nw-s:node[nw-s:node-id = " 5333 + "current()/../../../../nt-s:destination/" 5334 + "nt-s:dest-node]/" 5335 + "nt-s:termination-point/nt-s:tp-id"; 5336 require-instance true; 5337 } 5338 description 5339 "Reference to another TE termination point on the 5340 same destination node."; 5341 } 5342 } 5344 augment 5345 "/nw-s:networks/nw-s:network/nw-s:node/te/" 5346 + "information-source-entry/connectivity-matrices/" 5347 + "connectivity-matrix" { 5348 when "../../../../../nw-s:network-types/te-topology" { 5349 description 5350 "Augmentation parameters apply only for networks with 5351 TE topology type."; 5352 } 5353 description 5354 "Augment TE node connectivity-matrix."; 5356 uses te-node-connectivity-matrix-attributes; 5357 } 5359 augment 5360 "/nw-s:networks/nw-s:network/nw-s:node/te/te-node-attributes/" 5361 + "connectivity-matrices/connectivity-matrix" { 5362 when "../../../../../nw-s:network-types/te-topology" { 5363 description 5364 "Augmentation parameters apply only for networks with 5365 TE topology type."; 5366 } 5367 description 5368 "Augment TE node connectivity-matrix."; 5369 uses te-node-connectivity-matrix-attributes; 5370 } 5372 augment 5373 "/nw-s:networks/nw-s:network/nw-s:node/te/" 5374 + "tunnel-termination-point/local-link-connectivities" { 5375 when "../../../../nw-s:network-types/te-topology" { 5376 description 5377 "Augmentation parameters apply only for networks with 5378 TE topology type."; 5379 } 5380 description 5381 "Augment TE node tunnel termination point LLCs 5382 (Local Link Connectivities)."; 5383 uses te-node-tunnel-termination-point-llc-list; 5384 } 5385 } 5386 5388 Contributors 5390 Sergio Belotti 5391 Nokia 5392 Email: sergio.belotti@nokia.com 5394 Dieter Beller 5395 Nokia 5396 Email: Dieter.Beller@nokia.com 5398 Carlo Perocchio 5399 Ericsson 5400 Email: carlo.perocchio@ericsson.com 5402 Italo Busi 5403 Huawei Technologies 5404 Email: Italo.Busi@huawei.com 5406 Authors' Addresses 5408 Xufeng Liu 5409 Jabil 5410 Email: Xufeng_Liu@jabil.com 5412 Igor Bryskin 5413 Huawei Technologies 5414 Email: Igor.Bryskin@huawei.com 5416 Vishnu Pavan Beeram 5417 Juniper Networks 5418 Email: vbeeram@juniper.net 5420 Tarek Saad 5421 Cisco Systems Inc 5422 Email: tsaad@cisco.com 5424 Himanshu Shah 5425 Ciena 5426 Email: hshah@ciena.com 5428 Oscar Gonzalez De Dios 5429 Telefonica 5430 Email: oscar.gonzalezdedios@telefonica.com