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