idnits 2.17.1 draft-ietf-teas-yang-te-topo-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 171 has weird spacing: '... rw for r...' == Line 172 has weird spacing: '... ro for r...' == Line 683 has weird spacing: '...logy-id te-...' == Line 691 has weird spacing: '...node-id te-...' == Line 697 has weird spacing: '...l-tp-id bin...' == (12 more instances...) -- The document date (March 20, 2016) is 2951 days in the past. Is this intentional? 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 597, but not defined == Missing Reference: 'R2' is mentioned on line 603, but not defined == Missing Reference: 'R3' is mentioned on line 597, but not defined == Missing Reference: 'R4' is mentioned on line 603, but not defined == Missing Reference: 'R5' is mentioned on line 517, but not defined == Missing Reference: 'R6' is mentioned on line 521, but not defined == Missing Reference: 'R7' is mentioned on line 521, but not defined == Missing Reference: 'R8' is mentioned on line 521, but not defined == Missing Reference: 'R9' is mentioned on line 521, but not defined == Missing Reference: 'A' is mentioned on line 597, but not defined == Missing Reference: 'E' is mentioned on line 597, but not defined == Missing Reference: 'B' is mentioned on line 603, but not defined == Missing Reference: 'F' is mentioned on line 603, but not defined == Outdated reference: A later version (-05) exists of draft-liu-netmod-yang-schedule-00 Summary: 0 errors (**), 0 flaws (~~), 21 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 TEAS Working Group Xufeng Liu 2 Internet Draft Ericsson 3 Intended status: Standards Track Igor Bryskin 4 Huawei Technologies 5 Vishnu Pavan Beeram 6 Juniper Networks 7 Tarek Saad 8 Cisco Systems Inc 9 Himanshu Shah 10 Ciena 11 Oscar Gonzalez De Dios 12 Telefonica 14 Expires: September 20, 2016 March 20, 2016 16 YANG Data Model for TE Topologies 17 draft-ietf-teas-yang-te-topo-03 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 30 months and may be updated, replaced, or obsoleted by other documents 31 at any time. It is inappropriate to use Internet-Drafts as 32 reference 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 20, 2016. 42 Copyright Notice 44 Copyright (c) 2016 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with 52 respect to this document. Code Components extracted from this 53 document must include Simplified BSD License text as described in 54 Section 4.e of the Trust Legal Provisions and are provided without 55 warranty as 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 61 that 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. TE Link Termination Point (LTP)...........................8 81 3.5. TE Tunnel Termination Point (TTP).........................8 82 3.6. TE Node Connectivity Matrix...............................8 83 3.7. TTP Local Link Connectivity List (LLCL)...................9 84 3.8. TE Path...................................................9 85 3.9. Underlay TE topology......................................9 86 3.10. Overlay TE topology......................................9 87 3.11. Abstract TE topology.....................................9 88 4. Model Applicability...........................................11 89 4.1. Native TE Topologies.....................................11 90 4.2. Customized TE Topologies.................................13 91 5. Modeling Considerations.......................................15 92 5.1. Generic network topology building blocks.................15 93 5.2. Technology agnostic TE Topology model....................16 94 5.3. Model Structure..........................................16 95 5.4. Topology Identifiers.....................................18 96 5.5. Generic TE Link Attributes...............................18 97 5.6. Generic TE Node Attributes...............................19 98 5.7. TED Information Sources..................................19 99 5.8. Overlay/Underlay Relationship............................20 100 5.9. Scheduling Parameters....................................22 101 5.10. Templates...............................................22 102 5.11. Notifications...........................................23 103 5.12. Open Items..............................................23 104 6. Tree Structure................................................23 105 6.1. Base TE Topology Module..................................23 106 6.2. Packet Switching TE Topology Module......................49 107 7. TE Topology Yang Modules......................................50 108 7.1. Base TE Topology Module..................................50 109 7.2. Packet Switching TE Topology Module......................95 110 8. Security Considerations.......................................99 111 9. IANA Considerations...........................................99 112 10. References...................................................99 113 10.1. Normative References....................................99 114 10.2. Informative References.................................100 115 11. Acknowledgments.............................................100 116 Contributors....................................................100 117 Authors' Addresses..............................................100 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, 179 its 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 188 node 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 In Figure 1, Node-1, Node-2, and Node-3 are TE nodes. 304 3.3. TE Link 306 TE link is an element of a TE topology (presented as an edge on TE 307 graph, arrows indicate one or both directions of the TE link). TE 308 link represents one or several (physical) links or a fraction of a 309 link. TE link belongs to and is fully defined in exactly one TE 310 topology. TE link is assigned with the TE topology scope unique ID. 311 TE link attributes include parameters related to the data plane 312 aspects of the associated link(s) (e.g. unreserved bandwidth, 313 resource maps/pools, etc.), as well as the configuration data (such 314 as remote node/link IDs, SRLGs, administrative colors, etc.). TE 315 link is connected to TE node, terminating the TE link via exactly 316 one TE link termination point (LTP). 318 In Figure 1, Link-12 and Link-23 are TE links. 320 3.4. TE Link Termination Point (LTP) 322 TE link termination point (LTP) is a conceptual point of connection 323 of a TE node to one of the TE links, terminated by the TE node. 324 Cardinality between an LTP and the associated TE link is 1:0..1. 326 In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6. 328 3.5. TE Tunnel Termination Point (TTP) 330 TE tunnel termination point (TTP) is an element of TE topology 331 representing one or several of potential transport service 332 termination points (i.e. service client adaptation points such as 333 WDM/OCh transponder). TTP is associated with (hosted by) exactly one 334 TE node. TTP is assigned with the TE node scope unique ID. Depending 335 on the TE node's internal constraints, a given TTP hosted by the TE 336 node could be accessed via one, several or all TE links terminated 337 by the TE node. 339 In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2. 341 3.6. TE Node Connectivity Matrix 343 TE node connectivity matrix is a TE node's attribute describing the 344 TE node's switching limitations in a form of valid switching 345 combinations of the TE node's LTPs (see below). From the point of 346 view of a potential TE path arriving at the TE node at a given 347 inbound LTP, the node's connectivity matrix describes valid 348 (permissible) outbound LTPs for the TE path to leave the TE node 349 from. 351 In Figure 1, the connectivity matrix on Node-2 is: 352 {, , , , 353 } 355 3.7. TTP Local Link Connectivity List (LLCL) 357 TTP Local Link Connectivity List (LLCL) is a List of TE links 358 terminated by the TTP hosting TE node (i.e. list of the TE link 359 LTPs), which the TTP could be connected to. From the point of view 360 of a potential TE path LLCL provides a list of valid TE links the TE 361 path needs to start/stop on for the connection, taking the TE path, 362 to be successfully terminated on the TTP in question. 364 In Figure 1, the LLCL on Node-1 is: 365 {, , , } 367 3.8. TE Path 369 TE path is an ordered list of TE links and/or TE nodes on the TE 370 topology graph, inter-connecting a pair of TTPs to be taken by a 371 potential connection. TE paths, for example, could be a product of 372 successful path computation performed for a given transport service. 374 In Figure 1, the TE Path for TE-Tunnel-1 is: 375 {Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} 377 3.9. Underlay TE topology 379 Underlay TE topology is a TE topology that serves as a base for 380 constructing of overlay TE topologies 382 3.10. Overlay TE topology 384 Overlay TE topology is a TE topology constructed based on one or 385 more underlay TE topologies. Each TE node of the overlay TE topology 386 represents an arbitrary segment of an underlay TE topology; each TE 387 link of the overlay TE topology represents an arbitrary TE path in 388 one of the underlay TE topologies. The overlay TE topology and the 389 supporting underlay TE topologies may represent distinct layer 390 networks (e.g. OTN/ODUk and WDM/OCh respectively) or the same layer 391 network. 393 3.11. Abstract TE topology 395 Abstract TE topology is an overlay TE topology created by a topology 396 provider and customized for a topology provider's client based on 397 one or more of the provider's native TE topologies (underlay TE 398 topologies), the provider's policies and the client's preferences. 399 For example, a first level topology provider (such as Domain 400 Controller) can create an abstract TE topology for its client (e.g. 401 Super Controller) based on the provider's one or more native TE 402 topologies, local policies/profiles and the client's TE topology 403 configuration requests 405 Figure 2 shows an example of abstract TE topology. 407 +---+ +---+ 408 |s31|--------------|S5 | 409 +---+\ / +---+ 410 \ / 411 \ / 412 \+---+/ +---+ 413 /|AN1|\----------------|S8 | 414 / +---+ \ +---+ 415 +---+ / \ +---+ 416 |S9 |-------------|S11| 417 +---+ +---+ 418 Abstract TE Topology 420 +---+ +---+ 421 |S1 |--------------------|S2 | 422 +---+ +---+ 423 / \ 424 / \ 425 +---+ / +---+ \ +---+ 426 |s3 |--------------------|S4 |---------|S5 | 427 +---+\ +---+ +---+ 428 \ \ \ 429 \ \ \ 430 \+---+ +---+ +---+ 431 /|S6 |\ |S7 |---------|S8 | 432 / +---+ \ +---+\ /+---+ 433 +---+ / \ +---+ +---+ / 434 |S9 |-------------|S10|--------------|S11|/ 435 +---+ +---+ +---+ 436 Native TE Topology 438 Figure 2: Abstract TE Topology 440 4. Model Applicability 442 4.1. Native TE Topologies 444 The model discussed in this draft can be used to represent and 445 retrieve native TE topologies on a given TE system. 447 +---+ +---+ +---+ +---+ +---+ 448 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 449 +---+ +---+ +---+ +---+ +---+ 450 | / \ / \ / 451 | / \ / \ / 452 | / \ / \ / 453 | / \ / \ / 454 | / \ / \ / 455 +---+ +---+ +---+ +---+ 456 | R6|-------------| R7| | R8|---------| R9| 457 +---+ +---+ +---+ +---+ 459 Figure 3a: Example Network Topology 461 Consider the network topology depicted in Figure 3a (R1 .. R9 are 462 nodes representing routers). An implementation MAY choose to 463 construct a native TE Topology using all nodes and links present in 464 the given TED as depicted in Figure 3b. The data model proposed in 465 this document can be used to retrieve/represent this TE topology. 467 --------------- 468 | Native | | [ ] TE Node 469 | TE-Topology | | +++ TE Link 470 --------------- o-------------- 472 [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] 473 + + + + + + 474 + + + + + + 475 + + ++ ++ 476 [R6] +++++++++ [R7] [R8] ++++ [R9] 478 Figure 3b: Native TE Topology as seen on Node R3 480 Consider the case of the topology being split in a way that some 481 nodes participate in OSPF-TE while others participate in ISIS-TE 482 (Figure 4a). An implementation MAY choose to construct separate TE 483 Topologies based on the information source. The native TE Topologies 484 constructed using only nodes and links that were learnt via a 485 specific information source are depicted in Figure 4b. The data 486 model proposed in this document can be used to retrieve/represent 487 these TE topologies. 489 Similarly, the data model can be used to represent/retrieve a TE 490 Topology that is constructed using only nodes and links that belong 491 to a particular technology layer. The data model is flexible enough 492 to retrieve and represent many such native TE Topologies. 494 : 495 TE info distributed via ISIS-TE : TE info distributed via OSPF-TE 496 : 497 +---+ +---+ +---+ +---+ +---+ 498 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 499 +---+ +---+ +---+ +---+ +---+ 500 | / : \ / \ / 501 | / : \ / \ / 502 | / : \ / \ / 503 | / : \ / \ / 504 | / : \ / \ / 505 +---+ +---+ : +---+ +---+ 506 | R6|-------------| R7| : | R8|---------| R9| 507 +---+ +---+ : +---+ +---+ 508 : 510 Figure 4a: Example Network Topology 512 ----------------------- : ----------------------- 513 |Native TE Topology | : |Native TE Topology | 514 |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | 515 ----------------------- : ----------------------- 516 : 517 [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] 518 + + : + + + + 519 + + : + + + + 520 + + : ++ ++ 521 [R6] +++++++++ [R7] : [R8] ++++ [R9] 523 Figure 4b: Native TE Topologies as seen on Node R3 525 4.2. Customized TE Topologies 527 The model discussed in this draft can be used to represent, retrieve 528 and manipulate customized TE Topologies. The model allows the 529 provider to present the network in abstract TE Terms on a per client 530 basis. These customized topologies contain sufficient information 531 for the path computing client to select paths according to its 532 policies. 534 | +---+ /-\ 535 | | | Router ( ) WDM 536 | +---+ Node \-/ node 537 | 538 o---------------------------- 540 +---+ /-\ /-\ /-\ +---+ 541 | R1|-------( A )--------( C )---------( E )---------| R3| 542 +---+ \-/ \-/ \-/ +---+ 543 / \ / \ 544 / \ / \ 545 / \ / \ 546 / \ / \ 547 / \ / \ 548 +---+ /-\ /-\ /-\ +---+ 549 | R2|---------( B )---------( D )---------( F )---------| R4| 550 +---+ \-/ \-/ \-/ +---+ 552 Figure 5: Example packet optical topology 554 Consider the network topology depicted in Figure 5. This is a 555 typical packet optical transport deployment scenario where the WDM 556 layer network domain serves as a Server Network Domain providing 557 transport connectivity to the packet layer network Domain (Client 558 Network Domain). Nodes R1, R2, R3 and R4 are IP routers that are 559 connected to an Optical WDM transport network. A, B, C, D, E and F 560 are WDM nodes that constitute the Server Network Domain. 562 | ***** B-F WDM Path 563 | @@@@@ B-E WDM Path 564 | $$$$$ A-E WDM Path 565 o-------------------- 567 +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ 568 | R1|-------( A )--------( C )---------( E )---------| R3| 569 +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ 570 @/ \ / \ 571 @/ \ / \ 572 @/ \ / \ 573 @/ \ / \ 574 @/ \ / \ 575 +---+ /-\ ********* /-\ ********* /-\ +---+ 576 | R2|---------( B )---------( D )---------( F )---------| R4| 577 +---+ \-/ \-/ \-/ +---+ 579 Figure 6a: Paths within the provider domain 580 ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ 581 +++++ 582 ++++ 583 ++++ 584 ++++ 585 ++++ 586 ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ 588 Figure 6b: Customized TE Topology provided to the Client 590 The goal here is to augment the Client TE Topology with a customized 591 TE Topology provided by the WDM network. Given the availability of 592 the paths A-E, B-F and B-E (Figure 6a), a customized TE Topology as 593 depicted in Figure 6b is provided to the Client. This customized TE 594 Topology is merged with the Client's Native TE Topology and the 595 resulting topology is depicted in Figure 6c. 597 [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] 598 +++++ 599 ++++ 600 ++++ 601 ++++ 602 ++++ 603 [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] 605 Figure 6c: Customized TE Topology merged with the Client's Native TE 606 Topology 608 The data model proposed in this document can be used to 609 retrieve/represent/manipulate the customized TE Topology depicted in 610 Figure 6b. 612 5. Modeling Considerations 614 5.1. Generic network topology building blocks 616 The generic network topology building blocks are discussed in [YANG- 617 NET-TOPO]. The TE Topology model proposed in this document augments 618 and uses the ietf-network-topology module defined in [YANG-NET- 619 TOPO]. 621 +------------------------+ 622 | Generic | 623 | Network Topology Model | 624 | (ietf-network-topology)| 625 +------------------------+ 626 | 627 | 628 | 629 V 630 +------------------------+ 631 | TE Topology | 632 | Model | 633 | | 634 +------------------------+ 636 Figure 7: Augmenting the Generic Network Topology Model 638 5.2. Technology agnostic TE Topology model 640 The TE Topology model proposed in this document is meant to be 641 technology agnostic. Other technology specific TE Topology models 642 can augment and use the building blocks provided by the proposed 643 model. 645 +-------------------+ 646 | Generic | 647 | TE Topology Model | 648 +-------------------+ 649 | 650 +-------------+-------------+-------------+ 651 | | | | 652 V V V V 653 +------------+ +------------+ 654 | Technology | | Technology | 655 | Specific | ...................... | Specific | 656 | TE Topology| | TE Topology| 657 | Model 1 | | Model n | 658 +------------+ +------------+ 660 Figure 8: Augmenting the Technology agnostic TE Topology model 662 5.3. Model Structure 664 The high-level model structure proposed by this document is as shown 665 below: 667 module: ietf-te-topology 668 augment /nw:networks/nw:network/nw:network-types: 669 +--rw te-topology! 671 augment /nw:networks: 672 +--rw te! 673 +--rw templates 674 +--rw node-template* [name] {template}? 675 | ............ 676 +--rw link-template* [name] {template}? 677 ............ 679 augment /nw:networks/nw:network: 680 +--rw te! 681 +--rw provider-id te-global-id 682 +--rw client-id te-global-id 683 +--rw te-topology-id te-topology-id 684 +--rw config 685 | ............ 686 +--ro state 687 ............ 689 augment /nw:networks/nw:network/nw:node: 690 +--rw te! 691 +--rw te-node-id te-node-id 692 +--rw config 693 | ............ 694 +--ro state 695 | ............ 696 +--rw tunnel-termination-point* [tunnel-tp-id] 697 +--rw tunnel-tp-id binary 698 +--rw config 699 | ............ 700 +--ro state 702 augment /nw:networks/nw:network/nt:link: 703 +--rw te! 704 +--rw config 705 | .......... 706 +--ro state 707 .......... 709 augment /nw:networks/nw:network/nw:node/nt:termination-point: 710 +--rw te! 711 +--rw te-tp-id te-tp-id 712 +--rw config 713 | ............ 714 +--ro state 715 ............ 717 notifications: 718 +---n te-node-event 719 | ............ 720 +---n te-link-event 721 ............ 723 5.4. Topology Identifiers 725 The TE-Topology is uniquely identified by a key that has 3 726 constituents - te-topology-id, provider-id and client-id. The 727 combination of provider-id and te-topology-id uniquely identifies a 728 native TE Topology on a given provider. The client-id is used only 729 when Customized TE Topologies come into play; a value of "0" is used 730 as the client-id for native TE Topologies. 732 augment /nw:networks/nw:network: 733 +--rw te! 734 +--rw provider-id te-global-id 735 +--rw client-id te-global-id 736 +--rw te-topology-id te-topology-id 738 5.5. Generic TE Link Attributes 740 The model covers the definitions for generic TE Link attributes - 741 bandwidth, admin groups, SRLGs, switching capabilities, TE metric 742 extensions etc. 744 +--rw te-link-attributes 745 ..................... 746 +--rw admin-status? te-admin-status 747 +--rw performance-metric-throttle {te-performance-metric}? 748 | ..................... 749 +--rw link-index? uint64 750 +--rw administrative-group? te-types:admin-groups 751 +--rw max-link-bandwidth? decimal64 752 +--rw max-resv-link-bandwidth? decimal64 753 +--rw unreserved-bandwidth* [priority] 754 | ..................... 755 +--rw te-default-metric? uint32 756 +--rw performance-metric {te-performance-metric}? 757 | ..................... 758 +--rw link-protection-type? enumeration 759 +--rw interface-switching-capability* [switching-capability] 760 | ..................... 761 +--rw te-srlgs 762 ..................... 764 5.6. Generic TE Node Attributes 766 The model covers the definitions for generic TE Node attributes. 768 The definition of a generic connectivity matrix is shown below: 770 +--rw te-node-attributes 771 ........... 772 +--rw connectivity-matrix* [id] 773 | +--rw id uint32 774 | +--rw from 775 | | +--rw tp-ref? leafref 776 | +--rw to 777 | | +--rw tp-ref? leafref 778 | +--rw is-allowed? boolean 780 The definition of a TTP Local Link Connectivity List is shown below: 782 +--rw tunnel-termination-point* [tunnel-tp-id] 783 +--rw tunnel-tp-id binary 784 +--rw config 785 | +--rw termination-capability* [link-tp] 786 | +--rw link-tp leafref 787 +--ro state 788 +--ro termination-capability* [link-tp] 789 | +--ro link-tp leafref 790 +--ro switching-capability identityref 791 +--ro encoding identityref 793 5.7. TED Information Sources 795 The model allows each TE topological element to have multiple TE 796 information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, 797 System-Processed, Other). Each information source is associated with 798 a credibility preference to indicate precedence. In scenarios where 799 a customized TE Topology is merged into a Client's native TE 800 Topology, the merged topological elements would point to the 801 corresponding customized TE Topology as its information source. 803 augment /nw:networks/nw:network/nw:node: 804 +--rw te! 805 ........... 806 +--ro state 807 ........ 808 +--ro information-source? enumeration 809 +--ro information-source-state 810 +--ro credibility-preference? uint16 811 +--ro topology 812 | +--ro provider-id-ref? leafref 813 | +--ro client-id-ref? leafref 814 | +--ro te-topology-id-ref? leafref 815 | +--ro network-id-ref? leafref 816 +--ro routing-instance? string 818 augment /nw:networks/nw:network/nt:link: 819 +--rw te! 820 ........... 821 +--ro state 822 ......... 823 +--ro information-source? enumeration 824 +--ro information-source-state 825 | +--ro credibility-preference? uint16 826 | +--ro topology 827 | | +--ro provider-id-ref? leafref 828 | | +--ro client-id-ref? leafref 829 | | +--ro te-topology-id-ref? leafref 830 | | +--ro network-id-ref? leafref 831 | +--ro routing-instance? string 832 +--ro alt-information-sources* [information-source] 833 | ............ 835 5.8. Overlay/Underlay Relationship 837 The model captures overlay and underlay relationship for TE 838 nodes/links. For example - in networks where multiple TE Topologies 839 are built hierarchically, this model allows the user to start from a 840 specific topological element in the top most topology and traverse 841 all the way down to the supporting topological elements in the 842 bottom most topology. 844 This relationship is captured via the "underlay-topology" field for 845 the node and via the "underlay" field for the link. The use of these 846 fields is optional and this functionality is tagged as a "feature" 847 ("te-topology-hierarchy"). 849 augment /nw:networks/nw:network/nw:node: 850 +--rw te! 851 +--rw te-node-id te-node-id 852 +--rw config 853 | +--rw te-node-template* leafref {template}? 854 | +--rw te-node-attributes 855 | .................... 856 | +--rw underlay-topology {te-topology-hierarchy}? 857 | +--rw provider-id-ref? leafref 858 | +--rw client-id-ref? leafref 859 | +--rw te-topology-id-ref? leafref 860 | +--rw network-id-ref? leafref 862 augment /nw:networks/nw:network/nt:link: 863 +--rw te! 864 +--rw config 865 | ......... 866 | +--rw te-link-attributes 867 | .................... 868 | +--rw underlay! {te-topology-hierarchy}? 869 | | +--rw underlay-primary-path 870 | | | +--rw provider-id-ref? leafref 871 | | | +--rw client-id-ref? leafref 872 | | | +--rw te-topology-id-ref? leafref 873 | | | +--rw network-id-ref? leafref 874 | | | +--rw path-element* [path-element-id] 875 | | | ............... 876 | | +--rw underlay-backup-path* [index] 877 | | | +--rw index uint32 878 | | | +--rw provider-id-ref? leafref 879 | | | +--rw client-id-ref? leafref 880 | | | +--rw te-topology-id-ref? leafref 881 | | | +--rw network-id-ref? leafref 882 | | | +--rw path-element* [path-element-id] 883 | | | ............... 884 | | +--rw underlay-protection-type? uint16 885 | | +--rw underlay-trail-src 886 | | | ........... 887 | | | +--rw network-ref? leafref 888 | | +--rw underlay-trail-des 889 | | ........... 891 5.9. Scheduling Parameters 893 The model allows time scheduling parameters to be specified for each 894 topological element or for the topology as a whole. These parameters 895 allow the provider to present different topological views to the 896 client at different time slots. The use of "scheduling parameters" 897 is optional and this functionality is tagged as a "feature" 898 ("configuration-schedule"). The YANG data model for configuration 899 scheduling is defined in [YANG-SCHEDULE] and imported by the TE 900 Topology module. 902 5.10. Templates 904 The data model provides the users with the ability to define 905 templates and apply them to link and node configurations. The use of 906 "template" configuration is optional and this functionality is 907 tagged as a "feature" ("template"). 909 +--rw topology* [provider-id client-id te-topology-id] 910 | ........... 911 | +--rw node* [te-node-id] 912 | | +--rw te-node-template? leafref {template}? 913 | | .......... 914 | +--rw link* [source-te-node-id source-te-link-id dest-te-node- 915 id dest-te-link-id] 916 | +--rw te-link-template? leafref {template}? 917 | .......... 919 +--rw node-template* [name] {template}? 920 | +--rw name te-template-name 921 | +--rw priority? uint16 922 | +--rw reference-change-policy? enumeration 923 | +--rw te-node-attributes 924 | .......... 925 +--rw link-template* [name] {template}? 926 +--rw name te-template-name 927 +--rw priority? uint16 928 +--rw reference-change-policy? enumeration 929 +--rw te-link-attributes 930 .......... 932 Multiple templates can be specified to a configuration element. When 933 two or more templates specify values for the same configuration 934 field, the value from the template with the highest priority is 935 used. The reference-change-policy specifies the action that needs to 936 be taken when the template changes on a configuration element that 937 has a reference to this template. The choices of action include 938 taking no action, rejecting the change to the template and applying 939 the change to the corresponding configuration. [Editor's Note: The 940 notion of "templates" has wider applicability. It is possible for 941 this to be discussed in a separate document.] 943 5.11. Notifications 945 Notifications are a key component of any topology data model. 947 [YANG-PUSH] defines a subscription and push mechanism for YANG 948 datastores. This mechanism currently allows the user to: 950 - Subscribe notifications on a per client basis 951 - Specify subtree filters or xpath filters so that only interested 952 contents will be sent. 953 - Specify either periodic or on-demand notifications. 955 The authors would like to recommend the use of this mechanism for 956 the TE-Topology notifications. They would also like to suggest the 957 following extensions to [YANG-PUSH] 959 - Specify specific entities that will trigger the push 960 notifications. These entities can be specified by xpath, like the 961 way a filter is specified. 963 - Specify or limit the triggering event type, e.g. "add", "delete", 964 "modify", or "all". The system sends the push notifications only 965 when such events happen on the triggering entities. 967 - Have an option to request either "incremental" or "full" 968 notifications for an entity. For "incremental", the notification 969 will contain only the changed attributes. 971 5.12. Open Items 973 - Coordinating changes to [YANG-PUSH]: The changes to [YANG-PUSH] 974 discussed in Section 4.10 will need to be coordinated with the 975 authors of that draft. 977 6. Tree Structure 979 6.1. Base TE Topology Module 981 module: ietf-te-topology 982 augment /nw:networks/nw:network/nw:network-types: 983 +--rw te-topology! 984 augment /nw:networks: 985 +--rw te! 986 +--rw templates 987 +--rw node-template* [name] {template}? 988 | +--rw name te-template-name 989 | +--rw priority? uint16 990 | +--rw reference-change-policy? enumeration 991 | +--rw te-node-attributes 992 | +--rw schedules 993 | | +--rw schedule* [schedule-id] 994 | | +--rw schedule-id uint32 995 | | +--rw start? yang:date-and-time 996 | | +--rw schedule-duration? string 997 | | +--rw repeat-interval? string 998 | +--rw admin-status? te-admin-status 999 | +--rw domain-id? uint32 1000 | +--rw is-abstract? empty 1001 | +--rw name? inet:domain-name 1002 | +--rw signaling-address* inet:ip-address 1003 | +--rw underlay-topology {te-topology-hierarchy}? 1004 | +--rw provider-id-ref? leafref 1005 | +--rw client-id-ref? leafref 1006 | +--rw te-topology-id-ref? leafref 1007 | +--rw network-id-ref? leafref 1008 +--rw link-template* [name] {template}? 1009 +--rw name te-template-name 1010 +--rw priority? uint16 1011 +--rw reference-change-policy? enumeration 1012 +--rw te-link-attributes 1013 +--rw schedules 1014 | +--rw schedule* [schedule-id] 1015 | +--rw schedule-id uint32 1016 | +--rw start? yang:date-and-time 1017 | +--rw schedule-duration? string 1018 | +--rw repeat-interval? string 1019 +--rw access-type? te-link- 1020 access-type 1021 +--rw is-abstract? empty 1022 +--rw name? string 1023 +--rw underlay! {te-topology-hierarchy}? 1024 | +--rw underlay-primary-path 1025 | | +--rw provider-id-ref? leafref 1026 | | +--rw client-id-ref? leafref 1027 | | +--rw te-topology-id-ref? leafref 1028 | | +--rw network-id-ref? leafref 1029 | | +--rw path-element* [path-element-id] 1030 | | +--rw path-element-id uint32 1031 | | +--rw (type)? 1032 | | +--:(ipv4-address) 1033 | | | +--rw v4-address? inet:ipv4- 1034 address 1035 | | | +--rw v4-prefix-length? uint8 1036 | | | +--rw v4-loose? boolean 1037 | | +--:(ipv6-address) 1038 | | | +--rw v6-address? inet:ipv6- 1039 address 1040 | | | +--rw v6-prefix-length? uint8 1041 | | | +--rw v6-loose? boolean 1042 | | +--:(as-number) 1043 | | | +--rw as-number? uint16 1044 | | +--:(unnumbered-link) 1045 | | | +--rw router-id? inet:ip- 1046 address 1047 | | | +--rw interface-id? uint32 1048 | | +--:(label) 1049 | | +--rw value? uint32 1050 | +--rw underlay-backup-path* [index] 1051 | | +--rw index uint32 1052 | | +--rw provider-id-ref? leafref 1053 | | +--rw client-id-ref? leafref 1054 | | +--rw te-topology-id-ref? leafref 1055 | | +--rw network-id-ref? leafref 1056 | | +--rw path-element* [path-element-id] 1057 | | +--rw path-element-id uint32 1058 | | +--rw (type)? 1059 | | +--:(ipv4-address) 1060 | | | +--rw v4-address? inet:ipv4- 1061 address 1062 | | | +--rw v4-prefix-length? uint8 1063 | | | +--rw v4-loose? boolean 1064 | | +--:(ipv6-address) 1065 | | | +--rw v6-address? inet:ipv6- 1066 address 1067 | | | +--rw v6-prefix-length? uint8 1068 | | | +--rw v6-loose? boolean 1069 | | +--:(as-number) 1070 | | | +--rw as-number? uint16 1071 | | +--:(unnumbered-link) 1072 | | | +--rw router-id? inet:ip- 1073 address 1074 | | | +--rw interface-id? uint32 1075 | | +--:(label) 1076 | | +--rw value? uint32 1077 | +--rw underlay-protection-type? uint16 1078 | +--rw underlay-trail-src 1079 | | +--rw tp-ref? leafref 1080 | | +--rw node-ref? leafref 1081 | | +--rw network-ref? leafref 1082 | +--rw underlay-trail-des 1083 | +--rw tp-ref? leafref 1084 | +--rw node-ref? leafref 1085 | +--rw network-ref? leafref 1086 +--rw admin-status? te-admin- 1087 status 1088 +--rw performance-metric-throttle {te-performance- 1089 metric}? 1090 | +--rw unidirectional-delay-offset? 1091 uint32 1092 | +--rw measure-interval? 1093 uint32 1094 | +--rw advertisement-interval? 1095 uint32 1096 | +--rw suppression-interval? 1097 uint32 1098 | +--rw threshold-out 1099 | | +--rw unidirectional-delay? 1100 uint32 1101 | | +--rw unidirectional-min-delay? 1102 uint32 1103 | | +--rw unidirectional-max-delay? 1104 uint32 1105 | | +--rw unidirectional-delay-variation? 1106 uint32 1107 | | +--rw unidirectional-packet-loss? 1108 decimal64 1109 | | +--rw unidirectional-residual-bandwidth? 1110 decimal64 1111 | | +--rw unidirectional-available-bandwidth? 1112 decimal64 1113 | | +--rw unidirectional-utilized-bandwidth? 1114 decimal64 1115 | +--rw threshold-in 1116 | | +--rw unidirectional-delay? 1117 uint32 1118 | | +--rw unidirectional-min-delay? 1119 uint32 1120 | | +--rw unidirectional-max-delay? 1121 uint32 1122 | | +--rw unidirectional-delay-variation? 1123 uint32 1124 | | +--rw unidirectional-packet-loss? 1125 decimal64 1126 | | +--rw unidirectional-residual-bandwidth? 1127 decimal64 1128 | | +--rw unidirectional-available-bandwidth? 1129 decimal64 1130 | | +--rw unidirectional-utilized-bandwidth? 1131 decimal64 1132 | +--rw threshold-accelerated-advertisement 1133 | +--rw unidirectional-delay? 1134 uint32 1135 | +--rw unidirectional-min-delay? 1136 uint32 1137 | +--rw unidirectional-max-delay? 1138 uint32 1139 | +--rw unidirectional-delay-variation? 1140 uint32 1141 | +--rw unidirectional-packet-loss? 1142 decimal64 1143 | +--rw unidirectional-residual-bandwidth? 1144 decimal64 1145 | +--rw unidirectional-available-bandwidth? 1146 decimal64 1147 | +--rw unidirectional-utilized-bandwidth? 1148 decimal64 1149 +--rw link-index? uint64 1150 +--rw administrative-group? te- 1151 types:admin-groups 1152 +--rw max-link-bandwidth? decimal64 1153 +--rw max-resv-link-bandwidth? decimal64 1154 +--rw unreserved-bandwidth* [priority] 1155 | +--rw priority uint8 1156 | +--rw bandwidth? decimal64 1157 +--rw te-default-metric? uint32 1158 +--rw performance-metric {te-performance-metric}? 1159 | +--rw measurement 1160 | | +--rw unidirectional-delay? 1161 uint32 1162 | | +--rw unidirectional-min-delay? 1163 uint32 1164 | | +--rw unidirectional-max-delay? 1165 uint32 1166 | | +--rw unidirectional-delay-variation? 1167 uint32 1168 | | +--rw unidirectional-packet-loss? 1169 decimal64 1170 | | +--rw unidirectional-residual-bandwidth? 1171 decimal64 1172 | | +--rw unidirectional-available-bandwidth? 1173 decimal64 1174 | | +--rw unidirectional-utilized-bandwidth? 1175 decimal64 1176 | +--rw normality 1177 | +--rw unidirectional-delay? 1178 performance-metric-normality 1179 | +--rw unidirectional-min-delay? 1180 performance-metric-normality 1181 | +--rw unidirectional-max-delay? 1182 performance-metric-normality 1183 | +--rw unidirectional-delay-variation? 1184 performance-metric-normality 1185 | +--rw unidirectional-packet-loss? 1186 performance-metric-normality 1187 | +--rw unidirectional-residual-bandwidth? 1188 performance-metric-normality 1189 | +--rw unidirectional-available-bandwidth? 1190 performance-metric-normality 1191 | +--rw unidirectional-utilized-bandwidth? 1192 performance-metric-normality 1193 +--rw link-protection-type? enumeration 1194 +--rw interface-switching-capability* [switching- 1195 capability] 1196 | +--rw switching-capability 1197 identityref 1198 | +--rw encoding? 1199 identityref 1200 | +--rw max-lsp-bandwidth* [priority] 1201 | | +--rw priority uint8 1202 | | +--rw bandwidth? decimal64 1203 | +--rw time-division-multiplex-capable 1204 | | +--rw minimum-lsp-bandwidth? decimal64 1205 | | +--rw indication? enumeration 1206 | +--rw interface-adjustment-capability* [upper-sc] 1207 | +--rw upper-sc identityref 1208 | +--rw upper-encoding? identityref 1209 | +--rw max-lsp-bandwidth* [priority] 1210 | +--rw priority uint8 1211 | +--rw bandwidth? decimal64 1212 +--rw te-srlgs 1213 +--rw values* te-types:srlg 1214 augment /nw:networks/nw:network: 1215 +--rw te! 1216 +--rw provider-id te-global-id 1217 +--rw client-id te-global-id 1218 +--rw te-topology-id te-topology-id 1219 +--rw config 1220 | +--rw schedules 1221 | | +--rw schedule* [schedule-id] 1222 | | +--rw schedule-id uint32 1223 | | +--rw start? yang:date-and-time 1224 | | +--rw schedule-duration? string 1225 | | +--rw repeat-interval? string 1226 | +--rw preference? uint8 1227 +--ro state 1228 +--ro schedules 1229 | +--ro schedule* [schedule-id] 1230 | +--ro schedule-id uint32 1231 | +--ro start? yang:date-and-time 1232 | +--ro schedule-duration? string 1233 | +--ro repeat-interval? string 1234 +--ro preference? uint8 1235 augment /nw:networks/nw:network/nw:node: 1236 +--rw te! 1237 +--rw te-node-id te-node-id 1238 +--rw config 1239 | +--rw te-node-template* leafref {template}? 1240 | +--rw te-node-attributes 1241 | +--rw schedules 1242 | | +--rw schedule* [schedule-id] 1243 | | +--rw schedule-id uint32 1244 | | +--rw start? yang:date-and-time 1245 | | +--rw schedule-duration? string 1246 | | +--rw repeat-interval? string 1247 | +--rw admin-status? te-admin-status 1248 | +--rw connectivity-matrix* [id] 1249 | | +--rw id uint32 1250 | | +--rw from 1251 | | | +--rw tp-ref? leafref 1252 | | +--rw to 1253 | | | +--rw tp-ref? leafref 1254 | | +--rw is-allowed? boolean 1255 | +--rw domain-id? uint32 1256 | +--rw is-abstract? empty 1257 | +--rw name? inet:domain-name 1258 | +--rw signaling-address* inet:ip-address 1259 | +--rw underlay-topology {te-topology-hierarchy}? 1260 | +--rw provider-id-ref? leafref 1261 | +--rw client-id-ref? leafref 1262 | +--rw te-topology-id-ref? leafref 1263 | +--rw network-id-ref? leafref 1264 +--ro state 1265 | +--ro te-node-template* leafref {template}? 1266 | +--ro te-node-attributes 1267 | | +--ro schedules 1268 | | | +--ro schedule* [schedule-id] 1269 | | | +--ro schedule-id uint32 1270 | | | +--ro start? yang:date-and-time 1271 | | | +--ro schedule-duration? string 1272 | | | +--ro repeat-interval? string 1273 | | +--ro admin-status? te-admin-status 1274 | | +--ro connectivity-matrix* [id] 1275 | | | +--ro id uint32 1276 | | | +--ro from 1277 | | | | +--ro tp-ref? leafref 1278 | | | +--ro to 1279 | | | | +--ro tp-ref? leafref 1280 | | | +--ro is-allowed? boolean 1281 | | +--ro domain-id? uint32 1282 | | +--ro is-abstract? empty 1283 | | +--ro name? inet:domain-name 1284 | | +--ro signaling-address* inet:ip-address 1285 | | +--ro underlay-topology {te-topology-hierarchy}? 1286 | | +--ro provider-id-ref? leafref 1287 | | +--ro client-id-ref? leafref 1288 | | +--ro te-topology-id-ref? leafref 1289 | | +--ro network-id-ref? leafref 1290 | +--ro oper-status? te-oper-status 1291 | +--ro is-multi-access-dr? empty 1292 | +--ro information-source? enumeration 1293 | +--ro information-source-state 1294 | | +--ro credibility-preference? uint16 1295 | | +--ro topology 1296 | | | +--ro provider-id-ref? leafref 1297 | | | +--ro client-id-ref? leafref 1298 | | | +--ro te-topology-id-ref? leafref 1299 | | | +--ro network-id-ref? leafref 1300 | | +--ro routing-instance? string 1301 | +--ro alt-information-sources* [information-source] 1302 | +--ro information-source enumeration 1303 | +--ro information-source-state 1304 | | +--ro credibility-preference? uint16 1305 | | +--ro topology 1306 | | | +--ro provider-id-ref? leafref 1307 | | | +--ro client-id-ref? leafref 1308 | | | +--ro te-topology-id-ref? leafref 1309 | | | +--ro network-id-ref? leafref 1310 | | +--ro routing-instance? string 1311 | +--ro connectivity-matrix* [id] 1312 | | +--ro id uint32 1313 | | +--ro from 1314 | | | +--ro tp-ref? leafref 1315 | | +--ro to 1316 | | | +--ro tp-ref? leafref 1317 | | +--ro is-allowed? boolean 1318 | +--ro domain-id? uint32 1319 | +--ro is-abstract? empty 1320 | +--ro name? inet:domain-name 1321 | +--ro signaling-address* inet:ip-address 1322 | +--ro underlay-topology {te-topology-hierarchy}? 1323 | +--ro provider-id-ref? leafref 1324 | +--ro client-id-ref? leafref 1325 | +--ro te-topology-id-ref? leafref 1326 | +--ro network-id-ref? leafref 1327 +--rw tunnel-termination-point* [tunnel-tp-id] 1328 +--rw tunnel-tp-id binary 1329 +--rw config 1330 | +--rw termination-capability* [link-tp] 1331 | +--rw link-tp leafref 1332 +--ro state 1333 +--ro termination-capability* [link-tp] 1334 | +--ro link-tp leafref 1335 +--ro switching-capability identityref 1336 +--ro encoding identityref 1337 augment /nw:networks/nw:network/nt:link: 1338 +--rw te! 1339 +--rw config 1340 | +--rw (bundle-stack-level)? 1341 | | +--:(bundle) 1342 | | | +--rw bundled-links 1343 | | | +--rw bundled-link* [sequence] 1344 | | | +--rw sequence uint32 1345 | | | +--rw src-tp-ref? leafref 1346 | | | +--rw des-tp-ref? leafref 1347 | | +--:(component) 1348 | | +--rw component-links 1349 | | +--rw component-link* [sequence] 1350 | | +--rw sequence uint32 1351 | | +--rw src-interface-ref? string 1352 | | +--rw des-interface-ref? string 1353 | +--rw te-link-template* leafref {template}? 1354 | +--rw te-link-attributes 1355 | +--rw schedules 1356 | | +--rw schedule* [schedule-id] 1357 | | +--rw schedule-id uint32 1358 | | +--rw start? yang:date-and-time 1359 | | +--rw schedule-duration? string 1360 | | +--rw repeat-interval? string 1361 | +--rw access-type? te-link-access- 1362 type 1363 | +--rw is-abstract? empty 1364 | +--rw name? string 1365 | +--rw underlay! {te-topology-hierarchy}? 1366 | | +--rw underlay-primary-path 1367 | | | +--rw provider-id-ref? leafref 1368 | | | +--rw client-id-ref? leafref 1369 | | | +--rw te-topology-id-ref? leafref 1370 | | | +--rw network-id-ref? leafref 1371 | | | +--rw path-element* [path-element-id] 1372 | | | +--rw path-element-id uint32 1373 | | | +--rw (type)? 1374 | | | +--:(ipv4-address) 1375 | | | | +--rw v4-address? inet:ipv4- 1376 address 1377 | | | | +--rw v4-prefix-length? uint8 1378 | | | | +--rw v4-loose? boolean 1379 | | | +--:(ipv6-address) 1380 | | | | +--rw v6-address? inet:ipv6- 1381 address 1382 | | | | +--rw v6-prefix-length? uint8 1383 | | | | +--rw v6-loose? boolean 1384 | | | +--:(as-number) 1385 | | | | +--rw as-number? uint16 1386 | | | +--:(unnumbered-link) 1387 | | | | +--rw router-id? inet:ip-address 1388 | | | | +--rw interface-id? uint32 1389 | | | +--:(label) 1390 | | | +--rw value? uint32 1391 | | +--rw underlay-backup-path* [index] 1392 | | | +--rw index uint32 1393 | | | +--rw provider-id-ref? leafref 1394 | | | +--rw client-id-ref? leafref 1395 | | | +--rw te-topology-id-ref? leafref 1396 | | | +--rw network-id-ref? leafref 1397 | | | +--rw path-element* [path-element-id] 1398 | | | +--rw path-element-id uint32 1399 | | | +--rw (type)? 1400 | | | +--:(ipv4-address) 1401 | | | | +--rw v4-address? inet:ipv4- 1402 address 1403 | | | | +--rw v4-prefix-length? uint8 1404 | | | | +--rw v4-loose? boolean 1405 | | | +--:(ipv6-address) 1406 | | | | +--rw v6-address? inet:ipv6- 1407 address 1408 | | | | +--rw v6-prefix-length? uint8 1409 | | | | +--rw v6-loose? boolean 1410 | | | +--:(as-number) 1411 | | | | +--rw as-number? uint16 1412 | | | +--:(unnumbered-link) 1413 | | | | +--rw router-id? inet:ip-address 1414 | | | | +--rw interface-id? uint32 1415 | | | +--:(label) 1416 | | | +--rw value? uint32 1417 | | +--rw underlay-protection-type? uint16 1418 | | +--rw underlay-trail-src 1419 | | | +--rw tp-ref? leafref 1420 | | | +--rw node-ref? leafref 1421 | | | +--rw network-ref? leafref 1422 | | +--rw underlay-trail-des 1423 | | +--rw tp-ref? leafref 1424 | | +--rw node-ref? leafref 1425 | | +--rw network-ref? leafref 1426 | +--rw admin-status? te-admin-status 1427 | +--rw performance-metric-throttle {te-performance- 1428 metric}? 1429 | | +--rw unidirectional-delay-offset? uint32 1430 | | +--rw measure-interval? uint32 1431 | | +--rw advertisement-interval? uint32 1432 | | +--rw suppression-interval? uint32 1433 | | +--rw threshold-out 1434 | | | +--rw unidirectional-delay? uint32 1435 | | | +--rw unidirectional-min-delay? uint32 1436 | | | +--rw unidirectional-max-delay? uint32 1437 | | | +--rw unidirectional-delay-variation? uint32 1438 | | | +--rw unidirectional-packet-loss? 1439 decimal64 1440 | | | +--rw unidirectional-residual-bandwidth? 1441 decimal64 1442 | | | +--rw unidirectional-available-bandwidth? 1443 decimal64 1444 | | | +--rw unidirectional-utilized-bandwidth? 1445 decimal64 1446 | | +--rw threshold-in 1447 | | | +--rw unidirectional-delay? uint32 1448 | | | +--rw unidirectional-min-delay? uint32 1449 | | | +--rw unidirectional-max-delay? uint32 1450 | | | +--rw unidirectional-delay-variation? uint32 1451 | | | +--rw unidirectional-packet-loss? 1452 decimal64 1453 | | | +--rw unidirectional-residual-bandwidth? 1454 decimal64 1455 | | | +--rw unidirectional-available-bandwidth? 1456 decimal64 1457 | | | +--rw unidirectional-utilized-bandwidth? 1458 decimal64 1459 | | +--rw threshold-accelerated-advertisement 1460 | | +--rw unidirectional-delay? uint32 1461 | | +--rw unidirectional-min-delay? uint32 1462 | | +--rw unidirectional-max-delay? uint32 1463 | | +--rw unidirectional-delay-variation? uint32 1464 | | +--rw unidirectional-packet-loss? 1465 decimal64 1466 | | +--rw unidirectional-residual-bandwidth? 1467 decimal64 1468 | | +--rw unidirectional-available-bandwidth? 1469 decimal64 1470 | | +--rw unidirectional-utilized-bandwidth? 1471 decimal64 1472 | +--rw link-index? uint64 1473 | +--rw administrative-group? te-types:admin- 1474 groups 1475 | +--rw max-link-bandwidth? decimal64 1476 | +--rw max-resv-link-bandwidth? decimal64 1477 | +--rw unreserved-bandwidth* [priority] 1478 | | +--rw priority uint8 1479 | | +--rw bandwidth? decimal64 1480 | +--rw te-default-metric? uint32 1481 | +--rw performance-metric {te-performance-metric}? 1482 | | +--rw measurement 1483 | | | +--rw unidirectional-delay? uint32 1484 | | | +--rw unidirectional-min-delay? uint32 1485 | | | +--rw unidirectional-max-delay? uint32 1486 | | | +--rw unidirectional-delay-variation? uint32 1487 | | | +--rw unidirectional-packet-loss? 1488 decimal64 1489 | | | +--rw unidirectional-residual-bandwidth? 1490 decimal64 1491 | | | +--rw unidirectional-available-bandwidth? 1492 decimal64 1493 | | | +--rw unidirectional-utilized-bandwidth? 1494 decimal64 1495 | | +--rw normality 1496 | | +--rw unidirectional-delay? 1497 performance-metric-normality 1498 | | +--rw unidirectional-min-delay? 1499 performance-metric-normality 1500 | | +--rw unidirectional-max-delay? 1501 performance-metric-normality 1502 | | +--rw unidirectional-delay-variation? 1503 performance-metric-normality 1504 | | +--rw unidirectional-packet-loss? 1505 performance-metric-normality 1506 | | +--rw unidirectional-residual-bandwidth? 1507 performance-metric-normality 1508 | | +--rw unidirectional-available-bandwidth? 1509 performance-metric-normality 1510 | | +--rw unidirectional-utilized-bandwidth? 1511 performance-metric-normality 1512 | +--rw link-protection-type? enumeration 1513 | +--rw interface-switching-capability* [switching- 1514 capability] 1515 | | +--rw switching-capability identityref 1516 | | +--rw encoding? identityref 1517 | | +--rw max-lsp-bandwidth* [priority] 1518 | | | +--rw priority uint8 1519 | | | +--rw bandwidth? decimal64 1520 | | +--rw time-division-multiplex-capable 1521 | | | +--rw minimum-lsp-bandwidth? decimal64 1522 | | | +--rw indication? enumeration 1523 | | +--rw interface-adjustment-capability* [upper-sc] 1524 | | +--rw upper-sc identityref 1525 | | +--rw upper-encoding? identityref 1526 | | +--rw max-lsp-bandwidth* [priority] 1527 | | +--rw priority uint8 1528 | | +--rw bandwidth? decimal64 1529 | +--rw te-srlgs 1530 | +--rw values* te-types:srlg 1531 +--ro state 1532 +--ro (bundle-stack-level)? 1533 | +--:(bundle) 1534 | | +--ro bundled-links 1535 | | +--ro bundled-link* [sequence] 1536 | | +--ro sequence uint32 1537 | | +--ro src-tp-ref? leafref 1538 | | +--ro des-tp-ref? leafref 1539 | +--:(component) 1540 | +--ro component-links 1541 | +--ro component-link* [sequence] 1542 | +--ro sequence uint32 1543 | +--ro src-interface-ref? string 1544 | +--ro des-interface-ref? string 1545 +--ro te-link-template* leafref {template}? 1546 +--ro te-link-attributes 1547 | +--ro schedules 1548 | | +--ro schedule* [schedule-id] 1549 | | +--ro schedule-id uint32 1550 | | +--ro start? yang:date-and-time 1551 | | +--ro schedule-duration? string 1552 | | +--ro repeat-interval? string 1553 | +--ro access-type? te-link-access- 1554 type 1555 | +--ro is-abstract? empty 1556 | +--ro name? string 1557 | +--ro underlay! {te-topology-hierarchy}? 1558 | | +--ro underlay-primary-path 1559 | | | +--ro provider-id-ref? leafref 1560 | | | +--ro client-id-ref? leafref 1561 | | | +--ro te-topology-id-ref? leafref 1562 | | | +--ro network-id-ref? leafref 1563 | | | +--ro path-element* [path-element-id] 1564 | | | +--ro path-element-id uint32 1565 | | | +--ro (type)? 1566 | | | +--:(ipv4-address) 1567 | | | | +--ro v4-address? inet:ipv4- 1568 address 1569 | | | | +--ro v4-prefix-length? uint8 1570 | | | | +--ro v4-loose? boolean 1571 | | | +--:(ipv6-address) 1572 | | | | +--ro v6-address? inet:ipv6- 1573 address 1574 | | | | +--ro v6-prefix-length? uint8 1575 | | | | +--ro v6-loose? boolean 1576 | | | +--:(as-number) 1577 | | | | +--ro as-number? uint16 1578 | | | +--:(unnumbered-link) 1579 | | | | +--ro router-id? inet:ip-address 1580 | | | | +--ro interface-id? uint32 1581 | | | +--:(label) 1582 | | | +--ro value? uint32 1583 | | +--ro underlay-backup-path* [index] 1584 | | | +--ro index uint32 1585 | | | +--ro provider-id-ref? leafref 1586 | | | +--ro client-id-ref? leafref 1587 | | | +--ro te-topology-id-ref? leafref 1588 | | | +--ro network-id-ref? leafref 1589 | | | +--ro path-element* [path-element-id] 1590 | | | +--ro path-element-id uint32 1591 | | | +--ro (type)? 1592 | | | +--:(ipv4-address) 1593 | | | | +--ro v4-address? inet:ipv4- 1594 address 1595 | | | | +--ro v4-prefix-length? uint8 1596 | | | | +--ro v4-loose? boolean 1597 | | | +--:(ipv6-address) 1598 | | | | +--ro v6-address? inet:ipv6- 1599 address 1600 | | | | +--ro v6-prefix-length? uint8 1601 | | | | +--ro v6-loose? boolean 1602 | | | +--:(as-number) 1603 | | | | +--ro as-number? uint16 1604 | | | +--:(unnumbered-link) 1605 | | | | +--ro router-id? inet:ip-address 1606 | | | | +--ro interface-id? uint32 1607 | | | +--:(label) 1608 | | | +--ro value? uint32 1609 | | +--ro underlay-protection-type? uint16 1610 | | +--ro underlay-trail-src 1611 | | | +--ro tp-ref? leafref 1612 | | | +--ro node-ref? leafref 1613 | | | +--ro network-ref? leafref 1614 | | +--ro underlay-trail-des 1615 | | +--ro tp-ref? leafref 1616 | | +--ro node-ref? leafref 1617 | | +--ro network-ref? leafref 1618 | +--ro admin-status? te-admin-status 1619 | +--ro performance-metric-throttle {te-performance- 1620 metric}? 1621 | | +--ro unidirectional-delay-offset? uint32 1622 | | +--ro measure-interval? uint32 1623 | | +--ro advertisement-interval? uint32 1624 | | +--ro suppression-interval? uint32 1625 | | +--ro threshold-out 1626 | | | +--ro unidirectional-delay? uint32 1627 | | | +--ro unidirectional-min-delay? uint32 1628 | | | +--ro unidirectional-max-delay? uint32 1629 | | | +--ro unidirectional-delay-variation? uint32 1630 | | | +--ro unidirectional-packet-loss? 1631 decimal64 1632 | | | +--ro unidirectional-residual-bandwidth? 1633 decimal64 1634 | | | +--ro unidirectional-available-bandwidth? 1635 decimal64 1636 | | | +--ro unidirectional-utilized-bandwidth? 1637 decimal64 1638 | | +--ro threshold-in 1639 | | | +--ro unidirectional-delay? uint32 1640 | | | +--ro unidirectional-min-delay? uint32 1641 | | | +--ro unidirectional-max-delay? uint32 1642 | | | +--ro unidirectional-delay-variation? uint32 1643 | | | +--ro unidirectional-packet-loss? 1644 decimal64 1645 | | | +--ro unidirectional-residual-bandwidth? 1646 decimal64 1647 | | | +--ro unidirectional-available-bandwidth? 1648 decimal64 1649 | | | +--ro unidirectional-utilized-bandwidth? 1650 decimal64 1651 | | +--ro threshold-accelerated-advertisement 1652 | | +--ro unidirectional-delay? uint32 1653 | | +--ro unidirectional-min-delay? uint32 1654 | | +--ro unidirectional-max-delay? uint32 1655 | | +--ro unidirectional-delay-variation? uint32 1656 | | +--ro unidirectional-packet-loss? 1657 decimal64 1658 | | +--ro unidirectional-residual-bandwidth? 1659 decimal64 1660 | | +--ro unidirectional-available-bandwidth? 1661 decimal64 1662 | | +--ro unidirectional-utilized-bandwidth? 1663 decimal64 1664 | +--ro link-index? uint64 1665 | +--ro administrative-group? te-types:admin- 1666 groups 1667 | +--ro max-link-bandwidth? decimal64 1668 | +--ro max-resv-link-bandwidth? decimal64 1669 | +--ro unreserved-bandwidth* [priority] 1670 | | +--ro priority uint8 1671 | | +--ro bandwidth? decimal64 1672 | +--ro te-default-metric? uint32 1673 | +--ro performance-metric {te-performance-metric}? 1674 | | +--ro measurement 1675 | | | +--ro unidirectional-delay? uint32 1676 | | | +--ro unidirectional-min-delay? uint32 1677 | | | +--ro unidirectional-max-delay? uint32 1678 | | | +--ro unidirectional-delay-variation? uint32 1679 | | | +--ro unidirectional-packet-loss? 1680 decimal64 1681 | | | +--ro unidirectional-residual-bandwidth? 1682 decimal64 1683 | | | +--ro unidirectional-available-bandwidth? 1684 decimal64 1685 | | | +--ro unidirectional-utilized-bandwidth? 1686 decimal64 1687 | | +--ro normality 1688 | | +--ro unidirectional-delay? 1689 performance-metric-normality 1690 | | +--ro unidirectional-min-delay? 1691 performance-metric-normality 1692 | | +--ro unidirectional-max-delay? 1693 performance-metric-normality 1694 | | +--ro unidirectional-delay-variation? 1695 performance-metric-normality 1696 | | +--ro unidirectional-packet-loss? 1697 performance-metric-normality 1698 | | +--ro unidirectional-residual-bandwidth? 1699 performance-metric-normality 1700 | | +--ro unidirectional-available-bandwidth? 1701 performance-metric-normality 1702 | | +--ro unidirectional-utilized-bandwidth? 1703 performance-metric-normality 1704 | +--ro link-protection-type? enumeration 1705 | +--ro interface-switching-capability* [switching- 1706 capability] 1707 | | +--ro switching-capability identityref 1708 | | +--ro encoding? identityref 1709 | | +--ro max-lsp-bandwidth* [priority] 1710 | | | +--ro priority uint8 1711 | | | +--ro bandwidth? decimal64 1712 | | +--ro time-division-multiplex-capable 1713 | | | +--ro minimum-lsp-bandwidth? decimal64 1714 | | | +--ro indication? enumeration 1715 | | +--ro interface-adjustment-capability* [upper-sc] 1716 | | +--ro upper-sc identityref 1717 | | +--ro upper-encoding? identityref 1718 | | +--ro max-lsp-bandwidth* [priority] 1719 | | +--ro priority uint8 1720 | | +--ro bandwidth? decimal64 1721 | +--ro te-srlgs 1722 | +--ro values* te-types:srlg 1723 +--ro oper-status? te-oper-status 1724 +--ro information-source? enumeration 1725 +--ro information-source-state 1726 | +--ro credibility-preference? uint16 1727 | +--ro topology 1728 | | +--ro provider-id-ref? leafref 1729 | | +--ro client-id-ref? leafref 1730 | | +--ro te-topology-id-ref? leafref 1731 | | +--ro network-id-ref? leafref 1732 | +--ro routing-instance? string 1733 +--ro alt-information-sources* [information-source] 1734 | +--ro information-source enumeration 1735 | +--ro information-source-state 1736 | | +--ro credibility-preference? uint16 1737 | | +--ro topology 1738 | | | +--ro provider-id-ref? leafref 1739 | | | +--ro client-id-ref? leafref 1740 | | | +--ro te-topology-id-ref? leafref 1741 | | | +--ro network-id-ref? leafref 1742 | | +--ro routing-instance? string 1743 | +--ro link-index? uint64 1744 | +--ro administrative-group? te-types:admin- 1745 groups 1746 | +--ro max-link-bandwidth? decimal64 1747 | +--ro max-resv-link-bandwidth? decimal64 1748 | +--ro unreserved-bandwidth* [priority] 1749 | | +--ro priority uint8 1750 | | +--ro bandwidth? decimal64 1751 | +--ro te-default-metric? uint32 1752 | +--ro performance-metric {te-performance-metric}? 1753 | | +--ro measurement 1754 | | | +--ro unidirectional-delay? uint32 1755 | | | +--ro unidirectional-min-delay? uint32 1756 | | | +--ro unidirectional-max-delay? uint32 1757 | | | +--ro unidirectional-delay-variation? uint32 1758 | | | +--ro unidirectional-packet-loss? 1759 decimal64 1760 | | | +--ro unidirectional-residual-bandwidth? 1761 decimal64 1762 | | | +--ro unidirectional-available-bandwidth? 1763 decimal64 1764 | | | +--ro unidirectional-utilized-bandwidth? 1765 decimal64 1766 | | +--ro normality 1767 | | +--ro unidirectional-delay? 1768 performance-metric-normality 1769 | | +--ro unidirectional-min-delay? 1770 performance-metric-normality 1771 | | +--ro unidirectional-max-delay? 1772 performance-metric-normality 1773 | | +--ro unidirectional-delay-variation? 1774 performance-metric-normality 1775 | | +--ro unidirectional-packet-loss? 1776 performance-metric-normality 1777 | | +--ro unidirectional-residual-bandwidth? 1778 performance-metric-normality 1779 | | +--ro unidirectional-available-bandwidth? 1780 performance-metric-normality 1781 | | +--ro unidirectional-utilized-bandwidth? 1782 performance-metric-normality 1783 | +--ro link-protection-type? enumeration 1784 | +--ro interface-switching-capability* [switching- 1785 capability] 1786 | | +--ro switching-capability identityref 1787 | | +--ro encoding? identityref 1788 | | +--ro max-lsp-bandwidth* [priority] 1789 | | | +--ro priority uint8 1790 | | | +--ro bandwidth? decimal64 1791 | | +--ro time-division-multiplex-capable 1792 | | | +--ro minimum-lsp-bandwidth? decimal64 1793 | | | +--ro indication? enumeration 1794 | | +--ro interface-adjustment-capability* [upper-sc] 1795 | | +--ro upper-sc identityref 1796 | | +--ro upper-encoding? identityref 1797 | | +--ro max-lsp-bandwidth* [priority] 1798 | | +--ro priority uint8 1799 | | +--ro bandwidth? decimal64 1800 | +--ro te-srlgs 1801 | +--ro values* te-types:srlg 1802 +--ro recovery 1803 | +--ro restoration-status? te-recovery-status 1804 | +--ro protection-status? te-recovery-status 1805 +--ro underlay {te-topology-hierarchy}? 1806 +--ro dynamic? boolean 1807 +--ro committed? boolean 1809 augment /nw:networks/nw:network/nw:node/nt:termination-point: 1810 +--rw te! 1811 +--rw te-tp-id te-tp-id 1812 +--rw config 1813 | +--rw schedules 1814 | +--rw schedule* [schedule-id] 1815 | +--rw schedule-id uint32 1816 | +--rw start? yang:date-and-time 1817 | +--rw schedule-duration? string 1818 | +--rw repeat-interval? string 1819 +--ro state 1820 +--ro schedules 1821 +--ro schedule* [schedule-id] 1822 +--ro schedule-id uint32 1823 +--ro start? yang:date-and-time 1824 +--ro schedule-duration? string 1825 +--ro repeat-interval? string 1826 notifications: 1827 +---n te-node-event 1828 | +--ro event-type? te-topology-event-type 1829 | +--ro node-ref? leafref 1830 | +--ro network-ref? leafref 1831 | +--ro te-topology! 1832 | +--ro te-node-attributes 1833 | | +--ro schedules 1834 | | | +--ro schedule* [schedule-id] 1835 | | | +--ro schedule-id uint32 1836 | | | +--ro start? yang:date-and-time 1837 | | | +--ro schedule-duration? string 1838 | | | +--ro repeat-interval? string 1839 | | +--ro admin-status? te-admin-status 1840 | | +--ro connectivity-matrix* [id] 1841 | | | +--ro id uint32 1842 | | | +--ro from 1843 | | | | +--ro tp-ref? leafref 1844 | | | | +--ro node-ref? leafref 1845 | | | | +--ro network-ref? leafref 1846 | | | +--ro to 1847 | | | | +--ro tp-ref? leafref 1848 | | | | +--ro node-ref? leafref 1849 | | | | +--ro network-ref? leafref 1850 | | | +--ro is-allowed? boolean 1851 | | +--ro domain-id? uint32 1852 | | +--ro is-abstract? empty 1853 | | +--ro name? inet:domain-name 1854 | | +--ro signaling-address* inet:ip-address 1855 | | +--ro underlay-topology {te-topology-hierarchy}? 1856 | | +--ro provider-id-ref? leafref 1857 | | +--ro client-id-ref? leafref 1858 | | +--ro te-topology-id-ref? leafref 1859 | | +--ro network-id-ref? leafref 1860 | +--ro oper-status? te-oper-status 1861 | +--ro is-multi-access-dr? empty 1862 | +--ro information-source? enumeration 1863 | +--ro information-source-state 1864 | | +--ro credibility-preference? uint16 1865 | | +--ro topology 1866 | | | +--ro provider-id-ref? leafref 1867 | | | +--ro client-id-ref? leafref 1868 | | | +--ro te-topology-id-ref? leafref 1869 | | | +--ro network-id-ref? leafref 1870 | | +--ro routing-instance? string 1871 | +--ro alt-information-sources* [information-source] 1872 | +--ro information-source enumeration 1873 | +--ro information-source-state 1874 | | +--ro credibility-preference? uint16 1875 | | +--ro topology 1876 | | | +--ro provider-id-ref? leafref 1877 | | | +--ro client-id-ref? leafref 1878 | | | +--ro te-topology-id-ref? leafref 1879 | | | +--ro network-id-ref? leafref 1880 | | +--ro routing-instance? string 1881 | +--ro connectivity-matrix* [id] 1882 | | +--ro id uint32 1883 | | +--ro from 1884 | | | +--ro tp-ref? leafref 1885 | | | +--ro node-ref? leafref 1886 | | | +--ro network-ref? leafref 1887 | | +--ro to 1888 | | | +--ro tp-ref? leafref 1889 | | | +--ro node-ref? leafref 1890 | | | +--ro network-ref? leafref 1891 | | +--ro is-allowed? boolean 1892 | +--ro domain-id? uint32 1893 | +--ro is-abstract? empty 1894 | +--ro name? inet:domain-name 1895 | +--ro signaling-address* inet:ip-address 1896 | +--ro underlay-topology {te-topology-hierarchy}? 1897 | +--ro provider-id-ref? leafref 1898 | +--ro client-id-ref? leafref 1899 | +--ro te-topology-id-ref? leafref 1900 | +--ro network-id-ref? leafref 1901 +---n te-link-event 1902 +--ro event-type? te-topology-event-type 1903 +--ro link-ref? leafref 1904 +--ro network-ref? leafref 1905 +--ro te-topology! 1906 +--ro te-link-attributes 1907 | +--ro schedules 1908 | | +--ro schedule* [schedule-id] 1909 | | +--ro schedule-id uint32 1910 | | +--ro start? yang:date-and-time 1911 | | +--ro schedule-duration? string 1912 | | +--ro repeat-interval? string 1913 | +--ro access-type? te-link-access-type 1914 | +--ro is-abstract? empty 1915 | +--ro name? string 1916 | +--ro underlay! {te-topology-hierarchy}? 1917 | | +--ro underlay-primary-path 1918 | | | +--ro provider-id-ref? leafref 1919 | | | +--ro client-id-ref? leafref 1920 | | | +--ro te-topology-id-ref? leafref 1921 | | | +--ro network-id-ref? leafref 1922 | | | +--ro path-element* [path-element-id] 1923 | | | +--ro path-element-id uint32 1924 | | | +--ro (type)? 1925 | | | +--:(ipv4-address) 1926 | | | | +--ro v4-address? inet:ipv4-address 1927 | | | | +--ro v4-prefix-length? uint8 1928 | | | | +--ro v4-loose? boolean 1929 | | | +--:(ipv6-address) 1930 | | | | +--ro v6-address? inet:ipv6-address 1931 | | | | +--ro v6-prefix-length? uint8 1932 | | | | +--ro v6-loose? boolean 1933 | | | +--:(as-number) 1934 | | | | +--ro as-number? uint16 1935 | | | +--:(unnumbered-link) 1936 | | | | +--ro router-id? inet:ip-address 1937 | | | | +--ro interface-id? uint32 1938 | | | +--:(label) 1939 | | | +--ro value? uint32 1940 | | +--ro underlay-backup-path* [index] 1941 | | | +--ro index uint32 1942 | | | +--ro provider-id-ref? leafref 1943 | | | +--ro client-id-ref? leafref 1944 | | | +--ro te-topology-id-ref? leafref 1945 | | | +--ro network-id-ref? leafref 1946 | | | +--ro path-element* [path-element-id] 1947 | | | +--ro path-element-id uint32 1948 | | | +--ro (type)? 1949 | | | +--:(ipv4-address) 1950 | | | | +--ro v4-address? inet:ipv4-address 1951 | | | | +--ro v4-prefix-length? uint8 1952 | | | | +--ro v4-loose? boolean 1953 | | | +--:(ipv6-address) 1954 | | | | +--ro v6-address? inet:ipv6-address 1955 | | | | +--ro v6-prefix-length? uint8 1956 | | | | +--ro v6-loose? boolean 1957 | | | +--:(as-number) 1958 | | | | +--ro as-number? uint16 1959 | | | +--:(unnumbered-link) 1960 | | | | +--ro router-id? inet:ip-address 1961 | | | | +--ro interface-id? uint32 1962 | | | +--:(label) 1963 | | | +--ro value? uint32 1964 | | +--ro underlay-protection-type? uint16 1965 | | +--ro underlay-trail-src 1966 | | | +--ro tp-ref? leafref 1967 | | | +--ro node-ref? leafref 1968 | | | +--ro network-ref? leafref 1969 | | +--ro underlay-trail-des 1970 | | | +--ro tp-ref? leafref 1971 | | | +--ro node-ref? leafref 1972 | | | +--ro network-ref? leafref 1973 | | +--ro dynamic? boolean 1974 | | +--ro committed? boolean 1975 | +--ro admin-status? te-admin-status 1976 | +--ro performance-metric-throttle {te-performance-metric}? 1977 | | +--ro unidirectional-delay-offset? uint32 1978 | | +--ro measure-interval? uint32 1979 | | +--ro advertisement-interval? uint32 1980 | | +--ro suppression-interval? uint32 1981 | | +--ro threshold-out 1982 | | | +--ro unidirectional-delay? uint32 1983 | | | +--ro unidirectional-min-delay? uint32 1984 | | | +--ro unidirectional-max-delay? uint32 1985 | | | +--ro unidirectional-delay-variation? uint32 1986 | | | +--ro unidirectional-packet-loss? decimal64 1987 | | | +--ro unidirectional-residual-bandwidth? decimal64 1988 | | | +--ro unidirectional-available-bandwidth? decimal64 1989 | | | +--ro unidirectional-utilized-bandwidth? decimal64 1990 | | +--ro threshold-in 1991 | | | +--ro unidirectional-delay? uint32 1992 | | | +--ro unidirectional-min-delay? uint32 1993 | | | +--ro unidirectional-max-delay? uint32 1994 | | | +--ro unidirectional-delay-variation? uint32 1995 | | | +--ro unidirectional-packet-loss? decimal64 1996 | | | +--ro unidirectional-residual-bandwidth? decimal64 1997 | | | +--ro unidirectional-available-bandwidth? decimal64 1998 | | | +--ro unidirectional-utilized-bandwidth? decimal64 1999 | | +--ro threshold-accelerated-advertisement 2000 | | +--ro unidirectional-delay? uint32 2001 | | +--ro unidirectional-min-delay? uint32 2002 | | +--ro unidirectional-max-delay? uint32 2003 | | +--ro unidirectional-delay-variation? uint32 2004 | | +--ro unidirectional-packet-loss? decimal64 2005 | | +--ro unidirectional-residual-bandwidth? decimal64 2006 | | +--ro unidirectional-available-bandwidth? decimal64 2007 | | +--ro unidirectional-utilized-bandwidth? decimal64 2008 | +--ro link-index? uint64 2009 | +--ro administrative-group? te-types:admin- 2010 groups 2011 | +--ro max-link-bandwidth? decimal64 2012 | +--ro max-resv-link-bandwidth? decimal64 2013 | +--ro unreserved-bandwidth* [priority] 2014 | | +--ro priority uint8 2015 | | +--ro bandwidth? decimal64 2016 | +--ro te-default-metric? uint32 2017 | +--ro performance-metric {te-performance-metric}? 2018 | | +--ro measurement 2019 | | | +--ro unidirectional-delay? uint32 2020 | | | +--ro unidirectional-min-delay? uint32 2021 | | | +--ro unidirectional-max-delay? uint32 2022 | | | +--ro unidirectional-delay-variation? uint32 2023 | | | +--ro unidirectional-packet-loss? decimal64 2024 | | | +--ro unidirectional-residual-bandwidth? decimal64 2025 | | | +--ro unidirectional-available-bandwidth? decimal64 2026 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2027 | | +--ro normality 2028 | | +--ro unidirectional-delay? 2029 performance-metric-normality 2030 | | +--ro unidirectional-min-delay? 2031 performance-metric-normality 2032 | | +--ro unidirectional-max-delay? 2033 performance-metric-normality 2034 | | +--ro unidirectional-delay-variation? 2035 performance-metric-normality 2036 | | +--ro unidirectional-packet-loss? 2037 performance-metric-normality 2038 | | +--ro unidirectional-residual-bandwidth? 2039 performance-metric-normality 2040 | | +--ro unidirectional-available-bandwidth? 2041 performance-metric-normality 2042 | | +--ro unidirectional-utilized-bandwidth? 2043 performance-metric-normality 2044 | +--ro link-protection-type? enumeration 2045 | +--ro interface-switching-capability* [switching- 2046 capability] 2047 | | +--ro switching-capability identityref 2048 | | +--ro encoding? identityref 2049 | | +--ro max-lsp-bandwidth* [priority] 2050 | | | +--ro priority uint8 2051 | | | +--ro bandwidth? decimal64 2052 | | +--ro time-division-multiplex-capable 2053 | | | +--ro minimum-lsp-bandwidth? decimal64 2054 | | | +--ro indication? enumeration 2055 | | +--ro interface-adjustment-capability* [upper-sc] 2056 | | +--ro upper-sc identityref 2057 | | +--ro upper-encoding? identityref 2058 | | +--ro max-lsp-bandwidth* [priority] 2059 | | +--ro priority uint8 2060 | | +--ro bandwidth? decimal64 2061 | +--ro te-srlgs 2062 | +--ro values* te-types:srlg 2063 +--ro oper-status? te-oper-status 2064 +--ro information-source? enumeration 2065 +--ro information-source-state 2066 | +--ro credibility-preference? uint16 2067 | +--ro topology 2068 | | +--ro provider-id-ref? leafref 2069 | | +--ro client-id-ref? leafref 2070 | | +--ro te-topology-id-ref? leafref 2071 | | +--ro network-id-ref? leafref 2072 | +--ro routing-instance? string 2073 +--ro alt-information-sources* [information-source] 2074 | +--ro information-source enumeration 2075 | +--ro information-source-state 2076 | | +--ro credibility-preference? uint16 2077 | | +--ro topology 2078 | | | +--ro provider-id-ref? leafref 2079 | | | +--ro client-id-ref? leafref 2080 | | | +--ro te-topology-id-ref? leafref 2081 | | | +--ro network-id-ref? leafref 2082 | | +--ro routing-instance? string 2083 | +--ro link-index? uint64 2084 | +--ro administrative-group? te-types:admin- 2085 groups 2086 | +--ro max-link-bandwidth? decimal64 2087 | +--ro max-resv-link-bandwidth? decimal64 2088 | +--ro unreserved-bandwidth* [priority] 2089 | | +--ro priority uint8 2090 | | +--ro bandwidth? decimal64 2091 | +--ro te-default-metric? uint32 2092 | +--ro performance-metric {te-performance-metric}? 2093 | | +--ro measurement 2094 | | | +--ro unidirectional-delay? uint32 2095 | | | +--ro unidirectional-min-delay? uint32 2096 | | | +--ro unidirectional-max-delay? uint32 2097 | | | +--ro unidirectional-delay-variation? uint32 2098 | | | +--ro unidirectional-packet-loss? decimal64 2099 | | | +--ro unidirectional-residual-bandwidth? decimal64 2100 | | | +--ro unidirectional-available-bandwidth? decimal64 2101 | | | +--ro unidirectional-utilized-bandwidth? decimal64 2102 | | +--ro normality 2103 | | +--ro unidirectional-delay? 2104 performance-metric-normality 2105 | | +--ro unidirectional-min-delay? 2106 performance-metric-normality 2107 | | +--ro unidirectional-max-delay? 2108 performance-metric-normality 2109 | | +--ro unidirectional-delay-variation? 2110 performance-metric-normality 2111 | | +--ro unidirectional-packet-loss? 2112 performance-metric-normality 2113 | | +--ro unidirectional-residual-bandwidth? 2114 performance-metric-normality 2115 | | +--ro unidirectional-available-bandwidth? 2116 performance-metric-normality 2117 | | +--ro unidirectional-utilized-bandwidth? 2118 performance-metric-normality 2119 | +--ro link-protection-type? enumeration 2120 | +--ro interface-switching-capability* [switching- 2121 capability] 2122 | | +--ro switching-capability identityref 2123 | | +--ro encoding? identityref 2124 | | +--ro max-lsp-bandwidth* [priority] 2125 | | | +--ro priority uint8 2126 | | | +--ro bandwidth? decimal64 2127 | | +--ro time-division-multiplex-capable 2128 | | | +--ro minimum-lsp-bandwidth? decimal64 2129 | | | +--ro indication? enumeration 2130 | | +--ro interface-adjustment-capability* [upper-sc] 2131 | | +--ro upper-sc identityref 2132 | | +--ro upper-encoding? identityref 2133 | | +--ro max-lsp-bandwidth* [priority] 2134 | | +--ro priority uint8 2135 | | +--ro bandwidth? decimal64 2136 | +--ro te-srlgs 2137 | +--ro values* te-types:srlg 2138 +--ro recovery 2139 | +--ro restoration-status? te-recovery-status 2140 | +--ro protection-status? te-recovery-status 2141 +--ro underlay {te-topology-hierarchy}? 2142 +--ro dynamic? boolean 2143 +--ro committed? Boolean 2145 6.2. Packet Switching TE Topology Module 2147 module: ietf-te-topology-psc 2148 augment /nw:networks/tet:te/tet:templates/tet:link-template/tet:te- 2149 link-attributes/tet:interface-switching-capability: 2150 +--rw packet-switch-capable 2151 +--rw minimum-lsp-bandwidth? decimal64 2152 +--rw interface-mtu? uint16 2153 augment /nw:networks/nw:network/nt:link/tet:te/tet:config/tet:te- 2154 link-attributes/tet:interface-switching-capability: 2155 +--rw packet-switch-capable 2156 +--rw minimum-lsp-bandwidth? decimal64 2157 +--rw interface-mtu? uint16 2158 augment /nw:networks/nw:network/nt:link/tet:te/tet:state/tet:te- 2159 link-attributes/tet:interface-switching-capability: 2160 +--ro packet-switch-capable 2161 +--ro minimum-lsp-bandwidth? decimal64 2162 +--ro interface-mtu? uint16 2163 augment /nw:networks/nw:network/nt:link/tet:te/tet:state/tet:alt- 2164 information-sources/tet:interface-switching-capability: 2165 +--ro packet-switch-capable 2166 +--ro minimum-lsp-bandwidth? decimal64 2167 +--ro interface-mtu? uint16 2168 augment /tet:te-link-event/tet:te-link-attributes/tet:interface- 2169 switching-capability: 2170 +---- packet-switch-capable 2171 +---- minimum-lsp-bandwidth? decimal64 2172 +---- interface-mtu? uint16 2173 augment /tet:te-link-event/tet:alt-information- 2174 sources/tet:interface-switching-capability: 2175 +---- packet-switch-capable 2176 +---- minimum-lsp-bandwidth? decimal64 2177 +---- interface-mtu? uint16 2179 7. TE Topology Yang Modules 2181 7.1. Base TE Topology Module 2183 file "ietf-te-topology@2016-03-17.yang" 2184 module ietf-te-topology { 2185 yang-version 1.1; 2186 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; 2187 // replace with IANA namespace when assigned 2189 prefix "tet"; 2191 import ietf-inet-types { 2192 prefix "inet"; 2193 } 2195 import ietf-schedule { 2196 prefix "sch"; 2197 } 2199 import ietf-te-types { 2200 prefix "te-types"; 2201 } 2203 import ietf-network { 2204 prefix "nw"; 2205 } 2207 import ietf-network-topology { 2208 prefix "nt"; 2209 } 2211 organization 2212 "Traffic Engineering Architecture and Signaling (TEAS) 2213 Working Group"; 2215 contact 2216 "WG Web: 2217 WG List: 2219 WG Chair: Lou Berger 2220 2222 WG Chair: Vishnu Pavan Beeram 2223 2225 Editor: Xufeng Liu 2226 2228 Editor: Igor Bryskin 2229 2231 Editor: Vishnu Pavan Beeram 2232 2234 Editor: Tarek Saad 2235 2237 Editor: Himanshu Shah 2238 2240 Editor: Oscar Gonzalez De Dios 2241 "; 2243 description "TE topology model"; 2245 revision "2016-03-17" { 2246 description "Initial revision"; 2247 reference "TBD"; 2248 } 2250 /* 2251 * Features 2252 */ 2254 feature configuration-schedule { 2255 description 2256 "This feature indicates that the system supports 2257 configuration scheduling."; 2258 } 2260 feature te-topology-hierarchy { 2261 description 2262 "This feature indicates that the system allows underlay 2263 and/or overlay TE topology hierarchy."; 2264 } 2266 feature te-performance-metric { 2267 description 2268 "This feature indicates that the system supports 2269 TE performance metric defined in 2270 RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 2271 } 2273 feature template { 2274 description 2275 "This feature indicates that the system supports 2276 template configuration."; 2277 } 2279 /* 2280 * Typedefs 2281 */ 2282 typedef performance-metric-normality { 2283 type enumeration { 2284 enum "unknown" { 2285 value 0; 2286 description 2287 "Unknown."; 2288 } 2289 enum "normal" { 2290 value 1; 2291 description 2292 "Normal."; 2293 } 2294 enum "abnormal" { 2295 value 2; 2296 description 2297 "Abnormal. The anomalous bit is set."; 2298 } 2299 } 2300 description 2301 "Indicates whether a performance metric is normal, abnormal, 2302 or 2303 unknown."; 2304 reference 2305 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 2306 } 2308 typedef te-admin-status { 2309 type enumeration { 2310 enum up { 2311 description 2312 "Enabled."; 2313 } 2314 enum down { 2315 description 2316 "Disabled."; 2317 } 2318 enum testing { 2319 description 2320 "In some test mode."; 2321 } 2322 enum preparing-maintenance { 2323 description 2324 "Resource is disabled in the control plane to prepare for 2325 graceful shutdown for maintenance purposes."; 2326 reference 2327 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 2328 Traffic Engineering Networks"; 2329 } 2330 enum maintenance { 2331 description 2332 "Resource is disabled in the data plane for maintenance 2333 purposes."; 2334 } 2335 } 2336 description 2337 "Defines a type representing the administrative status of 2338 a TE resource."; 2339 } 2341 typedef te-global-id { 2342 type uint32; 2343 description 2344 "An identifier to uniquely identify an operator, which can be 2345 either a provider or a client. 2346 The definition of this type is taken from RFC6370 and 2347 RFC5003. 2348 This attribute type is used solely to provide a globally 2349 unique context for TE topologies."; 2350 } 2352 typedef te-link-access-type { 2353 type enumeration { 2354 enum point-to-point { 2355 description 2356 "The link is point-to-point."; 2357 } 2358 enum multi-access { 2359 description 2360 "The link is multi-access, including broacast and NBMA."; 2361 } 2362 } 2363 description 2364 "Defines a type representing the access type of a TE link."; 2365 reference 2366 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 2367 Version 2."; 2368 } 2370 typedef te-node-id { 2371 type inet:ip-address; 2372 description 2373 "An identifier for a node in a topology. 2374 The identifier is represented as an IPv4 or IPv6 address. 2375 This attribute is mapped to Router ID in 2376 RFC3630, RFC5329, RFC5305, and RFC 6119."; 2378 } 2380 typedef te-oper-status { 2381 type enumeration { 2382 enum up { 2383 description 2384 "Operational up."; 2385 } 2386 enum down { 2387 description 2388 "Operational down."; 2389 } 2390 enum testing { 2391 description 2392 "In some test mode."; 2393 } 2394 enum unknown { 2395 description 2396 "Status cannot be determined for some reason."; 2397 } 2398 enum preparing-maintenance { 2399 description 2400 "Resource is disabled in the control plane to prepare for 2401 graceful shutdown for maintenance purposes."; 2402 reference 2403 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 2404 Traffic Engineering Networks"; 2405 } 2406 enum maintenance { 2407 description 2408 "Resource is disabled in the data plane for maintenance 2409 purposes."; 2410 } 2411 } 2412 description 2413 "Defines a type representing the operational status of 2414 a TE resource."; 2415 } 2417 typedef te-recovery-status { 2418 type enumeration { 2419 enum normal { 2420 description 2421 "Both the recovery and working spans are fully 2422 allocated and active, data traffic is being 2423 transported over (or selected from) the working 2424 span, and no trigger events are reported."; 2425 } 2426 enum recovery-started { 2427 description 2428 "The recovery action has been started, but not 2429 completed."; 2430 } 2431 enum recovery-succeeded { 2432 description 2433 "The recovery action has succeeded. The working span has 2434 reported a failure/degrade condition and the user traffic 2435 is being transported (or selected) on the recovery 2436 span."; 2437 } 2438 enum recovery-failed { 2439 description 2440 "The recovery action has failed."; 2441 } 2442 enum reversion-started { 2443 description 2444 "The reversion has started."; 2445 } 2446 enum reversion-failed { 2447 description 2448 "The reversion has failed."; 2449 } 2450 enum recovery-unavailable { 2451 description 2452 "The recovery is unavailable -- either as a result of an 2453 operator Lockout command or a failure condition detected 2454 on the recovery span."; 2455 } 2456 enum recovery-admin { 2457 description 2458 "The operator has issued a command switching the user 2459 traffic to the recovery span."; 2460 } 2461 enum wait-to-restore { 2462 description 2463 "The recovery domain is recovering from a failuer/degrade 2464 condition on the working span that is being controlled by 2465 the Wait-to-Restore (WTR) timer."; 2466 } 2467 } 2468 description 2469 "Defines the status of a recovery action."; 2470 reference 2471 "RFC4427: Recovery (Protection and Restoration) Terminology 2472 for Generalized Multi-Protocol Label Switching (GMPLS). 2473 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 2474 } 2476 typedef te-template-name { 2477 type string { 2478 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 2479 } 2480 description 2481 "A type for the name of a TE node template or TE link 2482 template."; 2483 } 2485 typedef te-topology-event-type { 2486 type enumeration { 2487 enum "add" { 2488 value 0; 2489 description 2490 "A TE node or te-link has been added."; 2491 } 2492 enum "remove" { 2493 value 1; 2494 description 2495 "A TE node or te-link has been removed."; 2496 } 2497 enum "update" { 2498 value 2; 2499 description 2500 "A TE node or te-link has been updated."; 2501 } 2502 } 2503 description "TE Event type for notifications"; 2504 } // te-topology-event-type 2506 typedef te-topology-id { 2507 type string { 2508 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 2509 } 2510 description 2511 "An identifier for a topology."; 2512 } 2514 typedef te-tp-id { 2515 type union { 2516 type uint32; // Unnumbered 2517 type inet:ip-address; // IPv4 or IPv6 address 2518 } 2519 description 2520 "An identifier for a TE link endpoint on a node. 2521 This attribute is mapped to local or remote link identifier 2522 in 2523 RFC3630 and RFC5305."; 2524 } 2526 /* 2527 * Identities 2528 */ 2530 /* 2531 * Groupings 2532 */ 2533 grouping information-source-attributes { 2534 description 2535 "The attributes identifying source that has provided the 2536 related information, and the source credibility."; 2537 leaf information-source { 2538 type enumeration { 2539 enum "unknown" { 2540 description "The source is unknown."; 2541 } 2542 enum "locally-configured" { 2543 description "Configured entity."; 2544 } 2545 enum "ospfv2" { 2546 description "OSPFv2."; 2547 } 2548 enum "ospfv3" { 2549 description "OSPFv3."; 2550 } 2551 enum "isis" { 2552 description "ISIS."; 2553 } 2554 enum "system-processed" { 2555 description "System processed entity."; 2556 } 2557 enum "other" { 2558 description "Other source."; 2559 } 2560 } 2561 description 2562 "Indicates the source of the information."; 2563 } 2564 container information-source-state { 2565 description 2566 "The container contains state attributes related to 2567 the information source."; 2568 leaf credibility-preference { 2569 type uint16; 2570 description 2571 "The preference value to calculate the traffic 2572 engineering database credibility value used for 2573 tie-break selection between different 2574 information-source values. 2575 Higher value is more preferable."; 2576 } 2577 container topology { 2578 description 2579 "When the information is processed by the system, 2580 the attributes in this container indicate which topology 2581 is used to process to generate the result information."; 2582 uses te-topology-ref; 2583 } // topology 2584 leaf routing-instance { 2585 type string; 2586 description 2587 "When applicable, this is the name of a routing instance 2588 from which the information is learned."; 2589 } // routing-information 2590 } 2591 } // information-source-attributes 2593 grouping performance-metric-attributes { 2594 description 2595 "Link performance information in real time."; 2596 reference 2597 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 2598 leaf unidirectional-delay { 2599 type uint32 { 2600 range 0..16777215; 2601 } 2602 description "Delay or latency in micro seconds."; 2603 } 2604 leaf unidirectional-min-delay { 2605 type uint32 { 2606 range 0..16777215; 2607 } 2608 description "Minimum delay or latency in micro seconds."; 2609 } 2610 leaf unidirectional-max-delay { 2611 type uint32 { 2612 range 0..16777215; 2613 } 2614 description "Maximum delay or latency in micro seconds."; 2615 } 2616 leaf unidirectional-delay-variation { 2617 type uint32 { 2618 range 0..16777215; 2619 } 2620 description "Delay variation in micro seconds."; 2621 } 2622 leaf unidirectional-packet-loss { 2623 type decimal64 { 2624 fraction-digits 6; 2625 range "0 .. 50.331642"; 2626 } 2627 description 2628 "Packet loss as a percentage of the total traffic sent 2629 over a configurable interval. The finest precision is 2630 0.000003%."; 2631 } 2632 leaf unidirectional-residual-bandwidth { 2633 type decimal64 { 2634 fraction-digits 2; 2635 } 2636 description 2637 "Residual bandwidth that subtracts tunnel 2638 reservations from Maximum Bandwidth (or link capacity) 2639 [RFC3630] and provides an aggregated remainder across QoS 2640 classes."; 2641 } 2642 leaf unidirectional-available-bandwidth { 2643 type decimal64 { 2644 fraction-digits 2; 2645 } 2646 description 2647 "Available bandwidth that is defined to be residual 2648 bandwidth minus the measured bandwidth used for the 2649 actual forwarding of non-RSVP-TE LSP packets. For a 2650 bundled link, available bandwidth is defined to be the 2651 sum of the component link available bandwidths."; 2652 } 2653 leaf unidirectional-utilized-bandwidth { 2654 type decimal64 { 2655 fraction-digits 2; 2656 } 2657 description 2658 "Bandwidth utilization that represents the actual 2659 utilization of the link (i.e. as measured in the router). 2660 For a bundled link, bandwidth utilization is defined to 2661 be the sum of the component link bandwidth 2662 utilizations."; 2663 } 2664 } // performance-metric-attributes 2666 grouping performance-metric-normality-attributes { 2667 description 2668 "Link performance metric normality attributes."; 2669 reference 2670 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 2671 leaf unidirectional-delay { 2672 type performance-metric-normality; 2673 description "Delay normality."; 2674 } 2675 leaf unidirectional-min-delay { 2676 type performance-metric-normality; 2677 description "Minimum delay or latency normality."; 2678 } 2679 leaf unidirectional-max-delay { 2680 type performance-metric-normality; 2681 description "Maximum delay or latency normality."; 2682 } 2683 leaf unidirectional-delay-variation { 2684 type performance-metric-normality; 2685 description "Delay variation normality."; 2686 } 2687 leaf unidirectional-packet-loss { 2688 type performance-metric-normality; 2689 description "Packet loss normality."; 2690 } 2691 leaf unidirectional-residual-bandwidth { 2692 type performance-metric-normality; 2693 description "Residual bandwidth normality."; 2694 } 2695 leaf unidirectional-available-bandwidth { 2696 type performance-metric-normality; 2697 description "Available bandwidth normality."; 2699 } 2700 leaf unidirectional-utilized-bandwidth { 2701 type performance-metric-normality; 2702 description "Bandwidth utilization normality."; 2703 } 2704 } // performance-metric-normality-attributes 2706 grouping performance-metric-throttle-container { 2707 description 2708 "A container controlling performance metric throttle."; 2709 container performance-metric-throttle { 2710 if-feature te-performance-metric; 2711 must "suppression-interval >= measure-interval" { 2712 error-message 2713 "suppression-interval cannot be less then 2714 measure-interval."; 2715 description 2716 "Constraint on suppression-interval and 2717 measure-interval."; 2718 } 2719 description 2720 "Link performance information in real time."; 2721 reference 2722 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 2723 leaf unidirectional-delay-offset { 2724 type uint32 { 2725 range 0..16777215; 2726 } 2727 description 2728 "Offset value to be added to the measured delay value."; 2729 } 2730 leaf measure-interval { 2731 type uint32; 2732 default 30; 2733 description 2734 "Interval in seconds to measure the extended metric 2735 values."; 2736 } 2737 leaf advertisement-interval { 2738 type uint32; 2739 description 2740 "Interval in seconds to advertise the extended metric 2741 values."; 2742 } 2743 leaf suppression-interval { 2744 type uint32 { 2745 range "1 .. max"; 2746 } 2747 default 120; 2748 description 2749 "Interval in seconds to suppress advertising the extended 2750 metric values."; 2751 } 2752 container threshold-out { 2753 uses performance-metric-attributes; 2754 description 2755 "If the measured parameter falls outside an upper bound 2756 for all but the min delay metric (or lower bound for 2757 min-delay metric only) and the advertised value is not 2758 already outside that bound, anomalous announcement will 2759 be 2760 triggered."; 2761 } 2762 container threshold-in { 2763 uses performance-metric-attributes; 2764 description 2765 "If the measured parameter falls inside an upper bound 2766 for all but the min delay metric (or lower bound for 2767 min-delay metric only) and the advertised value is not 2768 already inside that bound, normal (anomalous-flag 2769 cleared) 2770 announcement will be triggered."; 2771 } 2772 container threshold-accelerated-advertisement { 2773 description 2774 "When the difference between the last advertised value and 2775 current measured value exceed this threshold, anomalous 2776 announcement will be triggered."; 2777 uses performance-metric-attributes; 2778 } 2780 } 2781 } // performance-metric-throttle-container 2783 grouping te-link-augment { 2784 description 2785 "Augmentation for TE link."; 2787 container te { 2788 presence "TE support."; 2789 description 2790 "Indicates TE support."; 2792 container config { 2793 description 2794 "Configuration data."; 2795 uses te-link-config; 2796 } // config 2797 container state { 2798 config false; 2799 description 2800 "Operational state data."; 2801 uses te-link-config; 2802 uses te-link-state-derived; 2803 } // state 2804 } // te 2805 } // te-link-augment 2807 grouping te-link-config { 2808 description 2809 "TE link configuration grouping."; 2810 choice bundle-stack-level { 2811 description 2812 "The TE link can be partitioned into bundled 2813 links, or component links."; 2814 case bundle { 2815 container bundled-links { 2816 description 2817 "A set of bundled links."; 2818 reference 2819 "RFC4201: Link Bundling in MPLS Traffic Engineering 2820 (TE)."; 2821 list bundled-link { 2822 key "sequence"; 2823 description 2824 "Specify a bundled interface that is 2825 further partitioned."; 2826 leaf sequence { 2827 type uint32; 2828 description 2829 "Identify the sequence in the bundle."; 2830 } 2831 leaf src-tp-ref { 2832 type leafref { 2833 path "../../../../../../nw:node[nw:node-id = " 2834 + "current()/../../../../../nt:source/" 2835 + "nt:source-node]/" 2836 + "nt:termination-point/nt:tp-id"; 2837 require-instance true; 2838 } 2839 description 2840 "Reference to another TE termination point on the 2841 same souruce node."; 2842 } 2843 leaf des-tp-ref { 2844 type leafref { 2845 path "../../../../../../nw:node[nw:node-id = " 2846 + "current()/../../../../../nt:destination/" 2847 + "nt:dest-node]/" 2848 + "nt:termination-point/nt:tp-id"; 2849 require-instance true; 2850 } 2851 description 2852 "Reference to another TE termination point on the 2853 same destination node."; 2854 } 2855 } // list bundled-link 2856 } 2857 } 2858 case component { 2859 container component-links { 2860 description 2861 "A set of component links"; 2862 list component-link { 2863 key "sequence"; 2864 description 2865 "Specify a component interface that is 2866 sufficient to unambiguously identify the 2867 appropriate resources"; 2869 leaf sequence { 2870 type uint32; 2871 description 2872 "Identify the sequence in the bundle."; 2873 } 2874 leaf src-interface-ref { 2875 type string; 2876 description 2877 "Reference to component link interface on the 2878 source node."; 2879 } 2880 leaf des-interface-ref { 2881 type string; 2882 description 2883 "Reference to component link interface on the 2884 destinatioin node."; 2885 } 2886 } 2887 } 2888 } 2889 } // bundle-stack-level 2891 leaf-list te-link-template { 2892 if-feature template; 2893 type leafref { 2894 path "../../../../../te/templates/link-template/name"; 2895 } 2896 description 2897 "The reference to a TE link template."; 2898 } 2899 uses te-link-config-attributes; 2901 } // te-link-config 2903 grouping te-link-config-attributes { 2904 description 2905 "Link configuration attributes in a TE topology."; 2906 container te-link-attributes { 2907 description "Link attributes in a TE topology."; 2908 uses sch:schedules; 2909 leaf access-type { 2910 type te-link-access-type; 2911 description 2912 "Link access type, which can be point-to-point or 2913 multi-access."; 2914 } 2915 leaf is-abstract { 2916 type empty; 2917 description "Present if the link is abstract."; 2918 } 2919 leaf name { 2920 type string; 2921 description "Link Name."; 2922 } 2923 container underlay { 2924 if-feature te-topology-hierarchy; 2925 presence 2926 "Indicates the underlay exists for this link."; 2927 description "Attributes of the te-link underlay."; 2928 reference 2929 "RFC4206: Label Switched Paths (LSP) Hierarchy with 2930 Generalized Multi-Protocol Label Switching (GMPLS) 2931 Traffic Engineering (TE)"; 2933 uses te-link-underlay-attributes; 2934 } // underlay 2935 leaf admin-status { 2936 type te-admin-status; 2937 description 2938 "The administrative state of the link."; 2939 } 2940 uses performance-metric-throttle-container; 2941 uses te-link-info-attributes; 2942 } // te-link-attributes 2943 } // te-link-config-attributes 2945 grouping te-link-info-attributes { 2946 description 2947 "Advertised TE information attributes."; 2948 leaf link-index { 2949 type uint64; 2950 description 2951 "The link identifier. If OSPF is used, this represents an 2952 ospfLsdbID. If IS-IS is used, this represents an 2953 isisLSPID. 2954 If a locally configured link is used, this object 2955 represents 2956 a unique value, which is locally defined in a router."; 2957 } 2958 leaf administrative-group { 2959 type te-types:admin-groups; 2960 description 2961 "Administrative group or color of the link. 2962 This attribute covers both administrative group (defined in 2963 RFC3630, RFC5329, and RFC5305), and extended administrative 2964 group (defined in RFC7308)."; 2965 } 2966 leaf max-link-bandwidth { 2967 type decimal64 { 2968 fraction-digits 2; 2969 } 2970 description 2971 "Maximum bandwidth that can be seen on this link in this 2972 direction. Units in bytes per second."; 2973 reference 2974 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 2975 Version 2. 2976 RFC5305: IS-IS Extensions for Traffic Engineering."; 2977 } 2978 leaf max-resv-link-bandwidth { 2979 type decimal64 { 2980 fraction-digits 2; 2981 } 2982 description 2983 "Maximum amount of bandwidth that can be reserved in this 2984 direction in this link. Units in bytes per second."; 2985 reference 2986 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 2987 Version 2. 2988 RFC5305: IS-IS Extensions for Traffic Engineering."; 2989 } 2990 list unreserved-bandwidth { 2991 key "priority"; 2992 max-elements "8"; 2993 description 2994 "Unreserved bandwidth for 0-7 priority levels. Units in 2995 bytes per second."; 2996 reference 2997 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 2998 Version 2. 2999 RFC5305: IS-IS Extensions for Traffic Engineering."; 3000 leaf priority { 3001 type uint8 { 3002 range "0..7"; 3003 } 3004 description "Priority."; 3005 } 3006 leaf bandwidth { 3007 type decimal64 { 3008 fraction-digits 2; 3009 } 3010 description 3011 "Unreserved bandwidth for this level."; 3012 } 3013 } 3014 leaf te-default-metric { 3015 type uint32; 3016 description 3017 "Traffic Engineering Metric."; 3018 } 3019 container performance-metric { 3020 if-feature te-performance-metric; 3021 description 3022 "Link performance information in real time."; 3023 reference 3024 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; 3025 container measurement { 3026 description 3027 "Measured performance metric values. Static configuration 3028 and manual overrides of these measurements are also 3029 allowed."; 3030 uses performance-metric-attributes; 3031 } 3032 container normality 3033 { 3034 description 3035 "Performance metric normality values."; 3036 uses performance-metric-normality-attributes; 3037 } 3038 } 3039 leaf link-protection-type { 3040 type enumeration { 3041 enum "unprotected" { 3042 description "Unprotected."; 3043 } 3044 enum "extra-traffic" { 3045 description "Extra traffic."; 3046 } 3047 enum "shared" { 3048 description "Shared."; 3049 } 3050 enum "1-for-1" { 3051 description "One for one protection."; 3052 } 3053 enum "1-plus-1" { 3054 description "One plus one protection."; 3055 } 3056 enum "enhanced" { 3057 description "Enhanced protection."; 3058 } 3059 } 3060 description 3061 "Link Protection Type desired for this link."; 3062 reference 3063 "RFC4202: Routing Extensions in Support of 3064 Generalized Multi-Protocol Label Switching (GMPLS)."; 3065 } 3066 list interface-switching-capability { 3067 key "switching-capability"; 3068 description 3069 "List of Interface Switching Capabilities Descriptors (ISCD) 3070 for this link."; 3071 reference 3072 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS) 3073 Signaling Functional Description. 3074 RFC4203: OSPF Extensions in Support of Generalized 3075 Multi-Protocol Label Switching (GMPLS)."; 3076 leaf switching-capability { 3077 type identityref { 3078 base te-types:switching-capabilities; 3079 } 3080 description 3081 "Switching Capability for this interface."; 3082 } 3083 leaf encoding { 3084 type identityref { 3085 base te-types:lsp-encoding-types; 3086 } 3087 description 3088 "Encoding supported by this interface."; 3089 } 3090 list max-lsp-bandwidth { 3091 key "priority"; 3092 max-elements "8"; 3093 description 3094 "Maximum LSP Bandwidth at priorities 0-7."; 3095 leaf priority { 3096 type uint8 { 3097 range "0..7"; 3098 } 3099 description "Priority."; 3101 } 3102 leaf bandwidth { 3103 type decimal64 { 3104 fraction-digits 2; 3105 } 3106 description 3107 "Max LSP Bandwidth for this level"; 3108 } 3109 } 3110 container time-division-multiplex-capable { 3111 when "../switching-capability = 'TDM'" { 3112 description "Valid only for TDM"; 3113 } 3114 description 3115 "Interface has time-division multiplex capabilities."; 3117 leaf minimum-lsp-bandwidth { 3118 type decimal64 { 3119 fraction-digits 2; 3120 } 3121 description 3122 "Minimum LSP Bandwidth. Units in bytes per second."; 3123 } 3124 leaf indication { 3125 type enumeration { 3126 enum "standard" { 3127 description 3128 "Indicates support of standard SONET/SDH."; 3129 } 3130 enum "arbitrary" { 3131 description 3132 "Indicates support of arbitrary SONET/SDH."; 3133 } 3134 } 3135 description 3136 "Indication whether the interface supports Standard or 3137 Arbitrary SONET/SDH"; 3138 } 3139 } 3140 list interface-adjustment-capability { 3141 key "upper-sc"; 3142 description 3143 "List of Interface Adjustment Capability Descriptors 3144 (IACD) 3145 for this link."; 3146 reference 3147 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3148 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3149 leaf upper-sc { 3150 type identityref { 3151 base te-types:switching-capabilities; 3152 } 3153 description 3154 "Switching Capability for this interface."; 3155 } 3156 leaf upper-encoding { 3157 type identityref { 3158 base te-types:lsp-encoding-types; 3159 } 3160 description 3161 "Encoding supported by this interface."; 3162 } 3163 list max-lsp-bandwidth { 3164 key "priority"; 3165 max-elements "8"; 3166 description 3167 "Maximum LSP Bandwidth at priorities 0-7."; 3168 leaf priority { 3169 type uint8 { 3170 range "0..7"; 3171 } 3172 description "Priority."; 3173 } 3174 leaf bandwidth { 3175 type decimal64 { 3176 fraction-digits 2; 3177 } 3178 description 3179 "Max LSP Bandwidth for this level."; 3180 } 3182 } 3183 } // interface-adjustment-capability 3184 } // interface-switching-capability 3185 container te-srlgs { 3186 description 3187 "A list of SLRGs."; 3188 leaf-list values { 3189 type te-types:srlg; 3190 description "SRLG value."; 3191 reference 3192 "RFC4202: Routing Extensions in Support of 3193 Generalized Multi-Protocol Label Switching (GMPLS)."; 3194 } 3195 } 3196 } // te-link-info-attributes 3198 grouping te-link-state-derived { 3199 description 3200 "Link state attributes in a TE topology."; 3201 leaf oper-status { 3202 type te-oper-status; 3203 description 3204 "The current operational state of the link."; 3205 } 3206 uses information-source-attributes; 3207 list alt-information-sources { 3208 key "information-source"; 3209 description 3210 "A list of information sources learned but not used."; 3211 uses information-source-attributes; 3212 uses te-link-info-attributes; 3213 } 3214 container recovery { 3215 description 3216 "Status of the recovery process."; 3217 leaf restoration-status { 3218 type te-recovery-status; 3219 description 3220 "Restoration status."; 3221 } 3222 leaf protection-status { 3223 type te-recovery-status; 3224 description 3225 "Protection status."; 3226 } 3227 } 3228 container underlay { 3229 if-feature te-topology-hierarchy; 3230 description "State attributes for te-link underlay."; 3231 uses te-link-state-underlay-attributes; 3232 } 3233 } // te-link-state-derived 3235 grouping te-link-state-underlay-attributes { 3236 description "State attributes for te-link underlay."; 3237 leaf dynamic { 3238 type boolean; 3239 description 3240 "true if the underlay is dynamically created."; 3241 } 3242 leaf committed { 3243 type boolean; 3244 description 3245 "true if the underlay is committed."; 3246 } 3247 } // te-link-state-underlay-attributes 3249 grouping te-link-underlay-attributes { 3250 description "Attributes for te-link underlay."; 3251 reference 3252 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3253 Generalized Multi-Protocol Label Switching (GMPLS) 3254 Traffic Engineering (TE)"; 3255 container underlay-primary-path { 3256 description 3257 "The service path on the underlay topology that 3258 supports this link."; 3259 uses te-topology-ref; 3260 list path-element { 3261 key "path-element-id"; 3262 description 3263 "A list of path elements describing the service path."; 3264 leaf path-element-id { 3265 type uint32; 3266 description "To identify the element in a path."; 3267 } 3268 uses te-path-element; 3269 } 3270 } // underlay-primary-path 3271 list underlay-backup-path { 3272 key "index"; 3273 description 3274 "A list of backup service paths on the underlay topology 3275 that 3276 protect the underlay primary path. If the primary path is 3277 not protected, the list contains zero elements. If the 3278 primary path is protected, the list contains one or more 3279 elements."; 3280 leaf index { 3281 type uint32; 3282 description 3283 "A sequence number to identify a backup path."; 3284 } 3285 uses te-topology-ref; 3286 list path-element { 3287 key "path-element-id"; 3288 description 3289 "A list of path elements describing the backup service 3290 path"; 3291 leaf path-element-id { 3292 type uint32; 3293 description "To identify the element in a path."; 3294 } 3295 uses te-path-element; 3296 } 3297 } // underlay-backup-path 3298 leaf underlay-protection-type { 3299 type uint16; 3300 description 3301 "Underlay protection type desired for this link"; 3303 } 3304 container underlay-trail-src { 3305 uses nt:tp-ref; 3306 description 3307 "Source TE link of the underlay trail."; 3308 } 3309 container underlay-trail-des { 3310 uses nt:tp-ref; 3311 description 3312 "Destination TE link of the underlay trail."; 3313 } 3314 } // te-link-underlay-attributes 3316 grouping te-node-augment { 3317 description 3318 "Augmentation for TE node."; 3320 container te { 3321 presence "TE support."; 3322 description 3323 "Indicates TE support."; 3325 leaf te-node-id { 3326 type te-node-id; 3327 mandatory true; 3328 description 3329 "The identifier of a node in the TE topology. 3330 A node is specific to a topology to which it belongs."; 3331 } 3333 container config { 3334 description 3335 "Configuration data."; 3336 uses te-node-config; 3337 } // config 3338 container state { 3339 config false; 3340 description 3341 "Operational state data."; 3343 uses te-node-config; 3344 uses te-node-state-derived; 3345 } // state 3347 list tunnel-termination-point { 3348 key "tunnel-tp-id"; 3349 description 3350 "A termination point can terminate a tunnel."; 3351 leaf tunnel-tp-id { 3352 type binary; 3353 description 3354 "Tunnel termination point identifier."; 3355 } 3357 container config { 3358 description 3359 "Configuration data."; 3360 uses te-node-tunnel-termination-capability; 3361 } 3363 container state { 3364 config false; 3365 description 3366 "Operational state data."; 3368 uses te-node-tunnel-termination-capability; 3369 leaf switching-capability { 3370 type identityref { 3371 base te-types:switching-capabilities; 3372 } 3373 mandatory true; 3374 description 3375 "Switching Capability."; 3376 } 3377 leaf encoding { 3378 type identityref { 3379 base te-types:lsp-encoding-types; 3380 } 3381 mandatory true; 3382 description 3383 "Encoding type."; 3384 } 3385 } // state 3387 } // tunnel-termination-point 3388 } // te 3389 } // te-node-augment 3391 grouping te-node-config { 3392 description "TE node configuration grouping."; 3394 leaf-list te-node-template { 3395 if-feature template; 3396 type leafref { 3397 path "../../../../../te/templates/node-template/name"; 3398 } 3399 description 3400 "The reference to a TE node template."; 3401 } 3402 uses te-node-config-attributes; 3403 } // te-node-config 3405 grouping te-node-config-attributes { 3406 description "Configuration node attributes in a TE topology."; 3407 container te-node-attributes { 3408 description "Containing node attributes in a TE topology."; 3409 uses sch:schedules; 3410 leaf admin-status { 3411 type te-admin-status; 3412 description 3413 "The administrative state of the link."; 3414 } 3415 uses te-node-connectivity-matrix; 3416 uses te-node-info-attributes; 3417 } // te-node-attributes 3418 } // te-node-config-attributes 3420 grouping te-node-config-attributes-notification { 3421 description 3422 "Configuration node attributes for template in a TE 3423 topology."; 3424 container te-node-attributes { 3425 description "Containing node attributes in a TE topology."; 3426 uses sch:schedules; 3427 leaf admin-status { 3428 type te-admin-status; 3429 description 3430 "The administrative state of the link."; 3431 } 3432 uses te-node-connectivity-matrix-abs; 3433 uses te-node-info-attributes; 3434 } // te-node-attributes 3435 } // te-node-config-attributes-notification 3437 grouping te-node-config-attributes-template { 3438 description 3439 "Configuration node attributes for template in a TE 3440 topology."; 3441 container te-node-attributes { 3442 description "Containing node attributes in a TE topology."; 3443 uses sch:schedules; 3444 leaf admin-status { 3445 type te-admin-status; 3446 description 3447 "The administrative state of the link."; 3448 } 3449 uses te-node-info-attributes; 3450 } // te-node-attributes 3451 } // te-node-config-attributes-template 3453 grouping te-node-connectivity-matrix { 3454 description "Connectivity matrix on a TE node."; 3455 list connectivity-matrix { 3456 key "id"; 3457 description 3458 "Represents node's switching limitations, i.e. limitations 3459 in interconnecting network TE links across the node."; 3460 reference 3461 "RFC7579: General Network Element Constraint Encoding 3462 for GMPLS-Controlled Networks."; 3463 leaf id { 3464 type uint32; 3465 description "Identifies the connectivity-matrix entry."; 3466 } 3467 container from { 3468 leaf tp-ref { 3469 type leafref { 3470 path "../../../../../../nt:termination-point/nt:tp-id"; 3471 } 3472 description 3473 "Relative reference to source termination point."; 3474 } 3475 description 3476 "Reference to source NTP."; 3477 } 3478 container to { 3479 leaf tp-ref { 3480 type leafref { 3481 path "../../../../../../nt:termination-point/nt:tp-id"; 3482 } 3483 description 3484 "Relative reference to destination termination point."; 3485 } 3486 description 3487 "Reference to destination NTP."; 3488 } 3489 leaf is-allowed { 3490 type boolean; 3491 description 3492 "true - switching is allowed, 3493 false - switching is disallowed."; 3494 } 3495 } 3496 } // te-node-connectivity-matrix 3498 grouping te-node-connectivity-matrix-abs { 3499 description 3500 "Connectivity matrix on a TE node, using absolute 3501 paths to reference termination points."; 3503 list connectivity-matrix { 3504 key "id"; 3505 description 3506 "Represents node's switching limitations, i.e. limitations 3507 in interconnecting network TE links across the node."; 3508 reference 3509 "RFC7579: General Network Element Constraint Encoding 3510 for GMPLS-Controlled Networks."; 3511 leaf id { 3512 type uint32; 3513 description "Identifies the connectivity-matrix entry."; 3514 } 3515 container from { 3516 uses nt:tp-ref; 3517 description 3518 "Reference to source NTP."; 3519 } 3520 container to { 3521 uses nt:tp-ref; 3522 description 3523 "Reference to destination NTP."; 3524 } 3525 leaf is-allowed { 3526 type boolean; 3527 description 3528 "true - switching is allowed, 3529 false - switching is disallowed."; 3530 } 3531 } 3532 } // te-node-connectivity-matrix-abs 3534 grouping te-node-info-attributes { 3535 description 3536 "Advertised TE information attributes."; 3537 leaf domain-id { 3538 type uint32; 3539 description 3540 "Identifies the domain that this node belongs. 3541 This attribute is used to support inter-domain links."; 3542 reference 3543 "RFC5152: A Per-Domain Path Computation Method for 3544 Establishing Inter-Domain Traffic Engineering (TE) 3545 Label Switched Paths (LSPs). 3546 RFC5392: OSPF Extensions in Support of Inter-Autonomous 3547 System (AS) MPLS and GMPLS Traffic Engineering. 3548 RFC5316: ISIS Extensions in Support of Inter-Autonomous 3549 System (AS) MPLS and GMPLS Traffic Engineering."; 3550 } 3551 leaf is-abstract { 3552 type empty; 3553 description 3554 "Present if the node is abstract, not present if the node 3555 is actual."; 3556 } 3557 leaf name { 3558 type inet:domain-name; 3559 description "Node name."; 3560 } 3561 leaf-list signaling-address { 3562 type inet:ip-address; 3563 description "Node signaling address."; 3564 } 3565 container underlay-topology { 3566 if-feature te-topology-hierarchy; 3567 description 3568 "When an abstract node encapsulates a topology, 3569 the attributes in this container point to said topology."; 3570 uses te-topology-ref; 3571 } 3572 } // te-node-info-attributes 3574 grouping te-node-state-derived { 3575 description "Node state attributes in a TE topology."; 3576 leaf oper-status { 3577 type te-oper-status; 3578 description 3579 "The current operational state of the node."; 3580 } 3581 leaf is-multi-access-dr { 3582 type empty; 3583 description 3584 "The presence of this attribute indicates that this TE node 3585 is a pseudonode elected as a designated router."; 3586 reference 3587 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3588 Version 2. 3589 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3590 Environments."; 3591 } 3592 uses information-source-attributes; 3593 list alt-information-sources { 3594 key "information-source"; 3595 description 3596 "A list of information sources learned but not used."; 3597 uses information-source-attributes; 3598 uses te-node-connectivity-matrix; 3599 uses te-node-info-attributes; 3600 } 3601 } // te-node-state-derived 3603 grouping te-node-state-derived-notification { 3604 description "Node state attributes in a TE topology."; 3605 leaf oper-status { 3606 type te-oper-status; 3607 description 3608 "The current operational state of the node."; 3609 } 3610 leaf is-multi-access-dr { 3611 type empty; 3612 description 3613 "The presence of this attribute indicates that this TE node 3614 is a pseudonode elected as a designated router."; 3615 reference 3616 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3617 Version 2. 3618 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3619 Environments."; 3620 } 3621 uses information-source-attributes; 3622 list alt-information-sources { 3623 key "information-source"; 3624 description 3625 "A list of information sources learned but not used."; 3626 uses information-source-attributes; 3627 uses te-node-connectivity-matrix-abs; 3628 uses te-node-info-attributes; 3629 } 3630 } // te-node-state-derived-notification 3632 grouping te-node-tunnel-termination-capability { 3633 description 3634 "Termination capability of a tunnel termination point on a 3635 TE node."; 3637 list termination-capability { 3638 key "link-tp"; 3639 description 3640 "The termination capabilities between 3641 tunnel-termination-point and link termination-point. 3642 The capability information can be used to compute 3643 the tunnel path."; 3644 leaf link-tp { 3645 type leafref { 3646 path "../../../../../nt:termination-point/nt:tp-id"; 3647 } 3648 description 3649 "Link termination point."; 3650 } 3651 } // termination-capability 3652 } // te-node-tunnel-termination-capability 3654 grouping te-path-element { 3655 description 3656 "A group of attributes defining an element in a TE path 3657 such as TE node, TE link, TE atomic resource or label."; 3658 uses te-types:explicit-route-subobject; 3659 } // te-path-element 3661 grouping te-termination-point-augment { 3662 description 3663 "Augmentation for TE termination point."; 3665 container te { 3666 presence "TE support."; 3667 description 3668 "Indicates TE support."; 3670 leaf te-tp-id { 3671 type te-tp-id; 3672 mandatory true; 3673 description 3674 "An identifier to uniquely identify a TE termination 3675 point."; 3676 } 3678 container config { 3679 description 3680 "Configuration data."; 3681 uses te-termination-point-config; 3682 } // config 3683 container state { 3684 config false; 3685 description 3686 "Operational state data."; 3687 uses te-termination-point-config; 3688 } // state 3689 } // te 3690 } // te-termination-point-augment 3692 grouping te-termination-point-config { 3693 description 3694 "TE termination point configuration grouping."; 3695 uses sch:schedules; 3696 } // te-termination-point-config 3698 grouping te-topologies-augment { 3699 description 3700 "Augmentation for TE topologies."; 3702 container te { 3703 presence "TE support."; 3704 description 3705 "Indicates TE support."; 3707 container templates { 3708 description 3709 "Configuration parameters for templates used for TE 3710 topology."; 3712 list node-template { 3713 if-feature template; 3714 key "name"; 3715 leaf name { 3716 type te-template-name; 3717 description 3718 "The name to identify a TE node template."; 3719 } 3720 description 3721 "The list of TE node templates used to define sharable 3722 and reusable TE node attributes."; 3723 uses template-attributes; 3724 uses te-node-config-attributes-template; 3725 } // node-template 3727 list link-template { 3728 if-feature template; 3729 key "name"; 3730 leaf name { 3731 type te-template-name; 3732 description 3733 "The name to identify a TE link template."; 3734 } 3735 description 3736 "The list of TE link templates used to define sharable 3737 and reusable TE link attributes."; 3738 uses template-attributes; 3739 uses te-link-config-attributes; 3740 } // link-template 3741 } // templates 3742 } // te 3744 } // te-topologies-augment 3746 grouping te-topology-augment { 3747 description 3748 "Augmentation for TE topology."; 3750 container te { 3751 presence "TE support."; 3752 description 3753 "Indicates TE support."; 3755 leaf provider-id { 3756 type te-global-id; 3757 mandatory true; 3758 description 3759 "An identifier to uniquely identify a provider."; 3760 } 3761 leaf client-id { 3762 type te-global-id; 3763 mandatory true; 3764 description 3765 "An identifier to uniquely identify a client."; 3766 } 3767 leaf te-topology-id { 3768 type te-topology-id; 3769 mandatory true; 3770 description 3771 "It is presumed that a datastore will contain many 3772 topologies. To distinguish between topologies it is 3773 vital to have UNIQUE topology identifiers."; 3774 } 3776 container config { 3777 description 3778 "Configuration data."; 3779 uses te-topology-config; 3780 } // config 3781 container state { 3782 config false; 3783 description 3784 "Operational state data."; 3785 uses te-topology-config; 3786 } // state 3787 } // te 3788 } // te-topology-augment 3790 grouping te-topology-config { 3791 description 3792 "TE topology configuration grouping."; 3793 uses sch:schedules; 3794 leaf preference { 3795 type uint8 { 3796 range "1..255"; 3797 } 3798 description 3799 "Specifies a preference for this topology. A lower number 3800 indicates a higher preference."; 3801 } 3802 } // te-topology-config 3804 grouping te-topology-ref { 3805 description 3806 "References a TE topology."; 3807 leaf provider-id-ref { 3808 type leafref { 3809 path "/nw:networks/nw:network[nw:network-id = " 3810 + "current()/../network-id-ref]/tet:te/tet:provider-id"; 3811 require-instance false; 3812 } 3813 description 3814 "A reference to a provider-id."; 3815 } 3816 leaf client-id-ref { 3817 type leafref { 3818 path "/nw:networks/nw:network[nw:network-id = " 3819 + "current()/../network-id-ref]/tet:te/tet:client-id"; 3820 require-instance false; 3821 } 3822 description 3823 "A reference to a client-id."; 3825 } 3826 leaf te-topology-id-ref { 3827 type leafref { 3828 path "/nw:networks/nw:network[nw:network-id = " 3829 + "current()/../network-id-ref]/tet:te/tet:te-topology- 3830 id"; 3831 require-instance false; 3832 } 3833 description 3834 "A reference to a te-topology-id."; 3835 } 3836 leaf network-id-ref { 3837 type leafref { 3838 path "/nw:networks/nw:network/nw:network-id"; 3839 require-instance false; 3840 } 3841 description 3842 "A reference to a network-id in base ietf-network module."; 3843 } 3844 } // te-topology-ref 3846 grouping te-topology-type { 3847 description 3848 "Identifies the TE topology type."; 3849 container te-topology { 3850 presence "Indicates TE topology."; 3851 description 3852 "Its presence identifies the TE topology type."; 3853 } 3854 } // te-topology-type 3856 grouping template-attributes { 3857 description 3858 "Common attributes for all templates."; 3860 leaf priority { 3861 type uint16; 3862 description 3863 "The preference value to resolve conflicts between different 3864 templates. When two or more templates specify values for 3865 one configuration attribute, the value from the template 3866 with the highest priority is used."; 3867 } 3868 leaf reference-change-policy { 3869 type enumeration { 3870 enum no-action { 3871 description 3872 "When an attribute changes in this template, the 3873 configuration node referring to this template does 3874 not take any action."; 3875 } 3876 enum not-allowed { 3877 description 3878 "When any configuration object has a reference to this 3879 template, changing this template is not allowed."; 3880 } 3881 enum cascade { 3882 description 3883 "When an attribute changes in this template, the 3884 configuration object referring to this template applies 3885 the new attribute value to the corresponding 3886 configuration."; 3887 } 3888 } 3889 description 3890 "This attribute specifies the action taken to a 3891 configuration 3892 node that has a reference to this template."; 3893 } 3894 } // template-attributes 3896 /* 3897 * Configuration data nodes 3898 */ 3899 augment "/nw:networks/nw:network/nw:network-types" { 3900 description 3901 "Introduce new network type for TE topology."; 3902 uses te-topology-type; 3903 } 3904 augment "/nw:networks" { 3905 description 3906 "Augmentation parameters for TE topologies."; 3907 uses te-topologies-augment; 3908 } 3910 augment "/nw:networks/nw:network" { 3911 when "nw:network-types/te-topology" { 3912 description 3913 "Augmentation parameters apply only for networks with 3914 TE topology type."; 3915 } 3916 description 3917 "Configuration parameters for TE topology."; 3918 uses te-topology-augment; 3919 } 3921 augment "/nw:networks/nw:network/nw:node" { 3922 when "../nw:network-types/te-topology" { 3923 description 3924 "Augmentation parameters apply only for networks with 3925 TE topology type."; 3926 } 3927 description 3928 "Configuration parameters for TE at node level."; 3929 uses te-node-augment; 3930 } 3932 augment "/nw:networks/nw:network/nt:link" { 3933 when "../nw:network-types/te-topology" { 3934 description 3935 "Augmentation parameters apply only for networks with 3936 TE topology type."; 3937 } 3938 description 3939 "Configuration parameters for TE at link level"; 3940 uses te-link-augment; 3941 } 3943 augment "/nw:networks/nw:network/nw:node/" 3944 + "nt:termination-point" { 3945 when "../../nw:network-types/te-topology" { 3946 description 3947 "Augmentation parameters apply only for networks with 3948 TE topology type."; 3949 } 3950 description 3951 "Configuration parameters for TE at termination point level"; 3952 uses te-termination-point-augment; 3953 } 3955 /* 3956 * Operational state data nodes 3957 */ 3959 /* 3960 * Notifications 3961 */ 3963 notification te-node-event { 3964 description "Notification event for TE node."; 3965 leaf event-type { 3966 type te-topology-event-type; 3967 description "Event type."; 3968 } 3969 uses nw:node-ref; 3970 uses te-topology-type; 3971 uses tet:te-node-config-attributes-notification; 3972 uses tet:te-node-state-derived-notification; 3973 } 3975 notification te-link-event { 3976 description "Notification event for TE link."; 3977 leaf event-type { 3978 type te-topology-event-type; 3979 description "Event type"; 3980 } 3981 uses nt:link-ref; 3982 uses te-topology-type; 3983 uses tet:te-link-config-attributes; 3984 uses tet:te-link-state-derived; 3985 } 3987 augment "/te-link-event/te-link-attributes/underlay" { 3988 description "Add state attributes to te-link underlay."; 3989 uses te-link-state-underlay-attributes; 3990 } 3991 } 3992 3994 7.2. Packet Switching TE Topology Module 3996 file "ietf-te-topology-psc@2016-03-17.yang" 3997 module ietf-te-topology-psc { 3998 yang-version 1; 3999 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-psc"; 4000 // replace with IANA namespace when assigned 4002 prefix "tet-psc"; 4004 import ietf-network { 4005 prefix "nw"; 4006 } 4008 import ietf-network-topology { 4009 prefix "nt"; 4010 } 4012 import ietf-te-topology { 4013 prefix "tet"; 4014 } 4016 organization 4017 "Traffic Engineering Architecture and Signaling (TEAS) 4018 Working Group"; 4020 contact 4021 "WG Web: 4022 WG List: 4024 WG Chair: Lou Berger 4025 4027 WG Chair: Vishnu Pavan Beeram 4028 4030 Editors: Xufeng Liu 4031 4033 Igor Bryskin 4034 4036 Vishnu Pavan Beeram 4037 4039 Tarek Saad 4040 4042 Himanshu Shah 4043 4045 Oscar Gonzalez De Dios 4046 "; 4048 description "TE topology model"; 4050 revision "2016-03-17" { 4051 description "Initial revision"; 4052 reference "TBD"; 4053 } 4055 /* 4056 * Groupings 4057 */ 4058 grouping packet-switch-capable-container { 4059 description 4060 "The container of packet switch capable attributes."; 4061 container packet-switch-capable { 4062 description 4063 "Interface has packet-switching capabilities."; 4064 leaf minimum-lsp-bandwidth { 4065 type decimal64 { 4066 fraction-digits 2; 4067 } 4068 description 4069 "Minimum LSP Bandwidth. Units in bytes per second"; 4070 } 4071 leaf interface-mtu { 4072 type uint16; 4073 description 4074 "Interface MTU."; 4075 } 4076 } 4077 } 4079 /* 4080 * Configuration data nodes 4081 */ 4082 augment "/nw:networks/tet:te/tet:templates/" 4083 + "tet:link-template/tet:te-link-attributes/" 4084 + "tet:interface-switching-capability" { 4085 when "switching-capability = 'switching-psc1' " { 4086 description "Valid only for PSC"; 4087 } 4088 description 4089 "Parameters for PSC TE topology."; 4090 uses packet-switch-capable-container; 4091 } 4093 augment "/nw:networks/nw:network/nt:link/tet:te/tet:config/" 4094 + "tet:te-link-attributes/" 4095 + "tet:interface-switching-capability" { 4096 when "switching-capability = 'switching-psc1' " { 4097 description "Valid only for PSC"; 4098 } 4099 description 4100 "Parameters for PSC TE topology."; 4101 uses packet-switch-capable-container; 4102 } 4104 /* 4105 * Operational state data nodes 4106 */ 4107 augment "/nw:networks/nw:network/nt:link/tet:te/tet:state/" 4108 + "tet:te-link-attributes/" 4109 + "tet:interface-switching-capability" { 4110 when "switching-capability = 'switching-psc1' " { 4111 description "Valid only for PSC"; 4112 } 4113 description 4114 "Parameters for PSC TE topology."; 4115 uses packet-switch-capable-container; 4116 } 4118 augment "/nw:networks/nw:network/nt:link/tet:te/tet:state/" 4119 + "tet:alt-information-sources/" 4120 + "tet:interface-switching-capability" { 4121 when "switching-capability = 'switching-psc1' " { 4122 description "Valid only for PSC"; 4123 } 4124 description 4125 "Parameters for PSC TE topology."; 4126 uses packet-switch-capable-container; 4127 } 4129 /* 4130 * Notifications 4131 */ 4132 augment "/tet:te-link-event/tet:te-link-attributes/" 4133 + "tet:interface-switching-capability" { 4134 when "switching-capability = 'switching-psc1' " { 4135 description "Valid only for PSC"; 4136 } 4137 description 4138 "Parameters for PSC TE topology."; 4139 uses packet-switch-capable-container; 4140 } 4142 augment "/tet:te-link-event/tet:alt-information-sources/" 4143 + "tet:interface-switching-capability" { 4144 when "switching-capability = 'switching-psc1' " { 4145 description "Valid only for PSC"; 4146 } 4147 description 4148 "Parameters for PSC TE topology."; 4149 uses packet-switch-capable-container; 4150 } 4151 } 4152 4154 8. Security Considerations 4156 The transport protocol used for retrieving/manipulating the TE 4157 topology data MUST support authentication and SHOULD support 4158 encryption. The data-model by itself does not create any security 4159 implications. 4161 9. IANA Considerations 4163 This document registers the following URIs in the IETF XML registry 4164 [RFC3688]. Following the format in [RFC3688], the following 4165 registration is requested to be made. 4167 URI: urn:ietf:params:xml:ns:yang:ietf-te-topology 4168 XML: N/A, the requested URI is an XML namespace. 4170 This document registers a YANG module in the YANG Module Names 4171 registry [RFC6020]. 4173 name: ietf-te-topology 4174 namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology 4175 prefix: tet 4177 10. References 4179 10.1. Normative References 4181 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4182 Requirement Levels", BCP 14, RFC 2119, March 1997. 4184 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 4185 January 2004. 4187 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 4188 Network Configuration Protocol (NETCONF)", RFC 6020, 4189 October 2010. 4191 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 4192 July 2013. 4194 [RFC3945] Mannie, E., "Generalized Multi-Protocol Label Switching 4195 (GMPLS) Architecture", October 2004. 4197 [YANG-NET-TOPO] Clemm, A., "A Data Model for Network Topologies", 4198 draft-ietf-i2rs-yang-network-topo (Work in Progress). 4200 [YANG-PUSH] Clemm, A., "Subscribing to YANG datastore push updates", 4201 draft-clemm-netconf-yang-push (Work in Progress). 4203 [YANG-SCHEDULE] Liu, X., " A YANG Data Model for Configuration 4204 Scheduling", draft-liu-netmod-yang-schedule-00 (Work in 4205 Progress). 4207 10.2. Informative References 4209 [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over 4210 MPLS", RFC 2702, September 1999. 4212 11. Acknowledgments 4214 The authors would like to thank Lou Berger, Sue Hares, Mazen 4215 Khaddam, Cyril Margaria and Zafar Ali for participating in design 4216 discussions and providing valuable insights. 4218 Contributors 4220 Sergio Belotti 4221 Alcatel Lucent 4222 Email: sergio.belotti@alcatel-lucent.com 4224 Dieter Beller 4225 Alcatel Lucent 4226 Email: dieter.beller@alcatel-lucent.com 4228 Authors' Addresses 4230 Xufeng Liu 4231 Ericsson 4232 Email: xliu@kuatrotech.com 4234 Igor Bryskin 4235 Huawei Technologies 4236 Email: Igor.Bryskin@huawei.com 4238 Vishnu Pavan Beeram 4239 Juniper Networks 4240 Email: vbeeram@juniper.net 4242 Tarek Saad 4243 Cisco Systems Inc 4244 Email: tsaad@cisco.com 4246 Himanshu Shah 4247 Ciena 4248 Email: hshah@ciena.com 4250 Oscar Gonzalez De Dios 4251 Telefonica 4252 Email: oscar.gonzalezdedios@telefonica.com