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