idnits 2.17.1 draft-liu-teas-yang-te-topo-01.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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There is 1 instance of too long lines in the document, the longest one being 4 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 102 has weird spacing: '... rw for r...' == Line 103 has weird spacing: '... ro for r...' == Line 258 has weird spacing: '...logy-id te-...' == Line 304 has weird spacing: '...-prefix ine...' == Line 329 has weird spacing: '...ment-id uin...' == (20 more instances...) == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (March 25, 2015) is 3312 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: 'RFC6991' is mentioned on line 137, but not defined == Missing Reference: 'YANG-NET-TOPO' is mentioned on line 244, but not defined Summary: 3 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group X. Liu 3 Internet-Draft Ericsson 4 Intended status: Standards Track I. Bryskin 5 Expires: September 26, 2015 ADVA Optical Networking 6 V. Beeram 7 Juniper Networks 8 T. Saad 9 Cisco Systems Inc. 10 H. Shah 11 Ciena 12 March 25, 2015 14 YANG Data Model for TE Topologies 15 draft-liu-teas-yang-te-topo-01 17 Abstract 19 This document defines a YANG data model for representing and 20 manipulating TE Topologies. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at http://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on September 26, 2015. 39 Copyright Notice 41 Copyright (c) 2015 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 1.1. Tree Structure - Legend . . . . . . . . . . . . . . . . . 2 58 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 59 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 60 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 4 61 2.1. Generic extensible Model . . . . . . . . . . . . . . . . 4 62 2.1.1. Generic TE Link Attributes . . . . . . . . . . . . . 4 63 2.1.2. Generic TE Node Attributes . . . . . . . . . . . . . 4 64 2.1.3. TED Information Sources . . . . . . . . . . . . . . . 4 65 2.2. Overlay/Underlay Relationship . . . . . . . . . . . . . . 5 66 2.3. Scheduling Parameters . . . . . . . . . . . . . . . . . . 5 67 2.4. Abstract TE Topologies . . . . . . . . . . . . . . . . . 5 68 2.5. Open Items . . . . . . . . . . . . . . . . . . . . . . . 6 69 3. Tree Structure . . . . . . . . . . . . . . . . . . . . . . . 6 70 3.1. TE Topology Yang Module . . . . . . . . . . . . . . . . . 29 71 4. Normative References . . . . . . . . . . . . . . . . . . . . 49 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 74 1. Introduction 76 YANG [RFC6020] a data definition language that was introduced to 77 define the contents of a conceptual data store that allows networked 78 devices to be managed using NETCONF [RFC6241]. YANG is proving 79 relevant beyond its initial confines, as bindings to other interfaces 80 (e.g. ReST) and encoding other than XML (e.g. JSON) are being 81 defined. Furthermore, YANG data models can be used as the basis of 82 implementation for other interface, such as CLI and programmatic 83 APIs. This document defines a YANG data model for representing and 84 manipulating TE Topologies. This model contains technology agnostic 85 TE Topology building blocks that can be augmented and used by other 86 technology-specific TE Topology models. 88 1.1. Tree Structure - Legend 90 A simplified graphical representation of the data model is presented 91 in Section 3 of this document. The following notations are used for 92 the YANG model data tree representation. 94 96 is one of: 97 + for current 98 x for deprecated 99 o for obsolete 101 is one of: 102 rw for read-write configuration data 103 ro for read-only non-configuration data 104 -x for execution rpcs 105 -n for notifications 107 is the name of the node 109 If the node is augmented into the tree from another module, its name 110 is printed as : 112 is one of: 113 ? for an optional leaf or node 114 ! for a presence container 115 * for a leaf-list or list 116 Brackets [] for a list's keys 117 Curly braces {} for optional feature that make node 118 conditional 119 Colon : for marking case nodes 120 Ellipses ("...") subtree contents not shown 122 Parentheses enclose choice and case nodes, and case nodes are 123 also marked with a colon (":"). 125 is the name of the type for leafs and leaf-lists. 127 1.2. Prefixes in Data Node Names 129 In this document, names of data nodes and other data model objects 130 are prefixed using the standard prefix associated with the 131 corresponding YANG imported modules, as shown in Table 1. 133 +--------+-----------------+-----------+ 134 | Prefix | YANG module | Reference | 135 +--------+-----------------+-----------+ 136 | yang | ietf-yang-types | [RFC6991] | 137 | inet | ietf-inet-types | [RFC6991] | 138 +--------+-----------------+-----------+ 140 Table 1: Prefixes and corresponding YANG modules 142 1.3. Terminology 144 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 145 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 146 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 147 [RFC2119]. 149 2. Design Considerations 151 2.1. Generic extensible Model 153 The TE Topology model proposed in this document is meant to be 154 technology agnostic. Other technology specific TE Topology models 155 can augment and use the building blocks provided by the proposed 156 model. 158 2.1.1. Generic TE Link Attributes 160 The model covers the definitions for generic TE Link attributes - 161 bandwidth, admin groups, SRLGs, switching capabilities, TE metric 162 extensions etc. 164 2.1.2. Generic TE Node Attributes 166 The model covers the definitions for generic TE Node attributes like 167 connectivity matrix. 169 +--rw connectivity-matrix* [id] 170 +--rw id uint32 171 +--rw from-link 172 +--rw topo-ref? leafref 173 +--rw node-ref? leafref 174 +--rw link-end-ref? leafref 175 +--rw to-link 176 +--rw topo-ref? leafref 177 +--rw node-ref? leafref 178 +--rw link-end-ref? leafref 179 +--rw is-allowed? Boolean 181 2.1.3. TED Information Sources 183 The model allows each TE topological element to have multiple TE 184 information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, 185 Other). Each information source is associated with a credibility 186 preference to indicate precedence. 188 The model captures overlay and underlay relationship for TE nodes/ 189 links. For example - in networks where multiple TE Topologies are 190 built hierarchically, this model allows the user to start from a 191 specific topological element in the top most topology and traverse 192 all the way down to the supporting topological elements in the bottom 193 most topology. 195 2.2. Overlay/Underlay Relationship 197 +--rw node* [te-node-id] 198 : 199 +--rw te-node-attributes 200 : 201 +--rw underlay-topology? leafref {te-topology-hierarchy}? 203 +--rw link* [source-te-node-id source-te-link-id dest-te-node-id 204 dest-te-link-id] 205 : 206 +--rw te-link-attributes 207 +--rw underlay! {te-topology-hierarchy}? 208 +--rw underlay-path 209 : 210 +--rw underlay-backup-path 211 : 212 +--rw underlay-protection-type? uint16 213 +--rw underlay-trail-src 214 : 215 +--rw underlay-trail-des 216 : 218 2.3. Scheduling Parameters 220 The model allows time scheduling parameters to be specified for each 221 topological element. These parameters allow the provider to present 222 different topological views to the client at different time slots. 224 +--rw schedules* [schedule-id] 225 | +--rw schedule-id uint32 226 | +--rw start? yang:date-and-time 227 | +--rw schedule-duration? string 228 | +--rw repeat-interval? string 230 2.4. Abstract TE Topologies 232 The model allows the provider to present the network in abstract 233 terms on per client basis and facilitates the notion of "TE Topology 234 as a service". These topologies are typically decoupled from the 235 actual network topology and are supposed to be fully comprehensible 236 by the clients and contain sufficient information for the client path 237 computers to select service paths according to the client policies. 238 The model also allows the client to request changes to the abstract 239 TE Topology that is presented to it and thus manipulate it. 241 2.5. Open Items 243 o Relationship with "generic network topology" model: The generic 244 network topology building blocks are discussed in [YANG-NET-TOPO]. 245 This version of the document does not use any of those building 246 blocks. The authors would like to explore the possibility of 247 doing that in future revisions of this document. 249 o Incremental notifications: The model proposed in this version does 250 not cover incremental notifications. The authors intend to add 251 this in future revisions of the document. 253 3. Tree Structure 255 module: ietf-te-topology 256 +--rw te-topologies 257 | +--rw topology* [te-topology-id] 258 | | +--rw te-topology-id te-topology-id 259 | | +--rw topology-types 260 | | | +--rw te-topology! 261 | | +--rw node* [te-node-id] 262 | | | +--rw te-node-id te-node-id 263 | | | +--rw te-node-template? leafref 264 | | | +--rw te-node-attributes 265 | | | +--rw schedules* [schedule-id] 266 | | | | +--rw schedule-id uint32 267 | | | | +--rw start? yang:date-and-time 268 | | | | +--rw schedule-duration? string 269 | | | | +--rw repeat-interval? string 270 | | | +--rw name? inet:domain-name 271 | | | +--rw signaling-address* inet:ip-address 272 | | | +--rw flag* flag-type 273 | | | +--rw is-abstract? boolean 274 | | | +--rw underlay-topology? leafref 275 {te-topology-hierarchy}? 276 | | | +--rw te-link* [te-link-id] 277 | | | | +--rw te-link-id te-link-id 278 | | | | +--rw (stack-level)? 279 | | | | +--:(bundle) 280 | | | | | +--rw bundled-links 281 | | | | | +--rw bundled-link* [sequence] 282 | | | | | +--rw sequence uint32 283 | | | | | +--rw te-link-ref? leafref 284 | | | | +--:(component) 285 | | | | +--rw component-links 286 | | | | +--rw component-link* [sequence] 287 | | | | +--rw sequence uint32 288 | | | | +--rw component-link-ref? leafref 289 | | | +--rw connectivity-matrix* [id] 290 | | | | +--rw id uint32 291 | | | | +--rw from-link 292 | | | | | +--rw topo-ref? leafref 293 | | | | | +--rw node-ref? leafref 294 | | | | | +--rw link-end-ref? leafref 295 | | | | +--rw to-link 296 | | | | | +--rw topo-ref? leafref 297 | | | | | +--rw node-ref? leafref 298 | | | | | +--rw link-end-ref? leafref 299 | | | | +--rw is-allowed? boolean 300 | | | +--rw ted 301 | | | +--rw te-router-id-ipv4? inet:ipv4-address 302 | | | +--rw te-router-id-ipv6? inet:ipv6-address 303 | | | +--rw ipv4-local-address* [ipv4-prefix] 304 | | | | +--rw ipv4-prefix inet:ipv4-prefix 305 | | | +--rw ipv6-local-address* [ipv6-prefix] 306 | | | | +--rw ipv6-prefix inet:ipv6-prefix 307 | | | | +--rw prefix-option? uint8 308 | | | +--rw pcc-capabilities? pcc-capabilities 309 | | +--rw link* [source-te-node-id source-te-link-id 310 dest-te-node-id dest-te-link-id] 311 | | +--rw source-te-node-id leafref 312 | | +--rw source-te-link-id leafref 313 | | +--rw dest-te-node-id leafref 314 | | +--rw dest-te-link-id leafref 315 | | +--rw te-link-template? leafref 316 | | +--rw te-link-attributes 317 | | +--rw schedules* [schedule-id] 318 | | | +--rw schedule-id uint32 319 | | | +--rw start? yang:date-and-time 320 | | | +--rw schedule-duration? string 321 | | | +--rw repeat-interval? string 322 | | +--rw name? string 323 | | +--rw flag* flag-type 324 | | +--rw is-abstract? boolean 325 | | +--rw underlay! {te-topology-hierarchy}? 326 | | | +--rw underlay-path 327 | | | | +--rw topology-id? leafref 328 | | | | +--rw path-element* [path-element-id] 329 | | | | +--rw path-element-id uint32 330 | | | | +--rw loose? boolean 331 | | | | +--rw (element-type)? 332 | | | | +--:(numbered-link) 333 | | | | | +--rw link-ip-address? inet:ip-address 334 | | | | +--:(unnumbered-link) 335 | | | | | +--rw link-node-id? uint32 336 | | | | | +--rw te-link-id? uint32 337 | | | | +--:(node) 338 | | | | | +--rw te-node-id? uint32 339 | | | | +--:(label) 340 | | | | +--rw label? uint32 341 | | | +--rw underlay-backup-path 342 | | | | +--rw topology-id? leafref 343 | | | | +--rw path-element* [path-element-id] 344 | | | | +--rw path-element-id uint32 345 | | | | +--rw loose? boolean 346 | | | | +--rw (element-type)? 347 | | | | +--:(numbered-link) 348 | | | | | +--rw link-ip-address? inet:ip-address 349 | | | | +--:(unnumbered-link) 350 | | | | | +--rw link-node-id? uint32 351 | | | | | +--rw te-link-id? uint32 352 | | | | +--:(node) 353 | | | | | +--rw te-node-id? uint32 354 | | | | +--:(label) 355 | | | | +--rw label? uint32 356 | | | +--rw underlay-protection-type? uint16 357 | | | +--rw underlay-trail-src 358 | | | | +--rw topo-ref? leafref 359 | | | | +--rw node-ref? leafref 360 | | | | +--rw link-end-ref? leafref 361 | | | +--rw underlay-trail-des 362 | | | +--rw topo-ref? leafref 363 | | | +--rw node-ref? leafref 364 | | | +--rw link-end-ref? leafref 365 | | +--rw ted 366 | | +--rw admin-status? enumeration 367 | | +--rw oper-status? enumeration 368 | | +--rw area-id? binary 369 | | +--rw performance-metric-throttle 370 {te-performance-metric}? 371 | | | +--rw unidirectional-delay-offset? uint32 372 | | | +--rw measure-interval? uint32 373 | | | +--rw advertisement-interval? uint32 374 | | | +--rw suppression-interval? uint32 375 | | | +--rw threshold-out 376 | | | | +--rw unidirectional-delay? uint32 377 | | | | +--rw unidirectional-min-delay? uint32 378 | | | | +--rw unidirectional-max-delay? uint32 379 | | | | +--rw unidirectional-delay-variation? uint32 380 | | | | +--rw unidirectional-packet-loss? decimal64 381 | | | | +--rw unidirectional-residual-bandwidth? 382 decimal64 383 | | | | +--rw unidirectional-available-bandwidth? 384 decimal64 385 | | | | +--rw unidirectional-utilized-bandwidth? 386 decimal64 387 | | | +--rw threshold-in 388 | | | | +--rw unidirectional-delay? 389 uint32 390 | | | | +--rw unidirectional-min-delay? 391 uint32 392 | | | | +--rw unidirectional-max-delay? 393 uint32 394 | | | | +--rw unidirectional-delay-variation? 395 uint32 396 | | | | +--rw unidirectional-packet-loss? 397 decimal64 398 | | | | +--rw unidirectional-residual-bandwidth? 399 decimal64 400 | | | | +--rw unidirectional-available-bandwidth? 401 decimal64 402 | | | | +--rw unidirectional-utilized-bandwidth? 403 decimal64 404 | | | +--rw threshold-accelerated-advertisement 405 | | | +--rw unidirectional-delay? uint32 406 | | | +--rw unidirectional-min-delay? uint32 407 | | | +--rw unidirectional-max-delay? uint32 408 | | | +--rw unidirectional-delay-variation? uint32 409 | | | +--rw unidirectional-packet-loss? decimal64 410 | | | +--rw unidirectional-residual-bandwidth? 411 decimal64 412 | | | +--rw unidirectional-available-bandwidth? 413 decimal64 414 | | | +--rw unidirectional-utilized-bandwidth? 415 decimal64 416 | | +--rw information-source? enumeration 417 | | +--rw credibility-preference? uint16 418 | | +--rw link-index? uint64 419 | | +--rw administrative-group* [sequence] 420 | | | +--rw sequence uint32 421 | | | +--rw ag-element? uint32 422 | | +--rw max-link-bandwidth? decimal64 423 | | +--rw max-resv-link-bandwidth? decimal64 424 | | +--rw unreserved-bandwidth* [priority] 425 | | | +--rw priority uint8 426 | | | +--rw bandwidth? decimal64 427 | | +--rw te-default-metric? uint32 428 | | +--rw performance-metric {te-performance-metric}? 429 | | | +--rw measurement 430 | | | | +--rw unidirectional-delay? uint32 431 | | | | +--rw unidirectional-min-delay? uint32 432 | | | | +--rw unidirectional-max-delay? uint32 433 | | | | +--rw unidirectional-delay-variation? uint32 434 | | | | +--rw unidirectional-packet-loss? decimal64 435 | | | | +--rw unidirectional-residual-bandwidth? 436 decimal64 437 | | | | +--rw unidirectional-available-bandwidth? 438 decimal64 439 | | | | +--rw unidirectional-utilized-bandwidth? 440 decimal64 441 | | | +--rw normality 442 | | | +--rw unidirectional-delay? 443 performance-metric-normality 444 | | | +--rw unidirectional-min-delay? 445 performance-metric-normality 446 | | | +--rw unidirectional-max-delay? 447 performance-metric-normality 448 | | | +--rw unidirectional-delay-variation? 449 performance-metric-normality 450 | | | +--rw unidirectional-packet-loss? 451 performance-metric-normality 452 | | | +--rw unidirectional-residual-bandwidth? 453 performance-metric-normality 454 | | | +--rw unidirectional-available-bandwidth? 455 performance-metric-normality 456 | | | +--rw unidirectional-utilized-bandwidth? 457 performance-metric-normality 458 | | +--rw link-protection-type? 459 enumeration 460 | | +--rw interface-switching-capabilities* 461 [switching-capability] 462 | | | +--rw switching-capability 463 ted:switching-capabilities 464 | | | +--rw encoding? 465 ted:encoding-type 466 | | | +--rw max-lsp-bandwidth* [priority] 467 | | | | +--rw priority uint8 468 | | | | +--rw bandwidth? decimal64 469 | | | +--rw packet-switch-capable 470 | | | | +--rw minimum-lsp-bandwidth? decimal64 471 | | | | +--rw interface-mtu? uint16 472 | | | +--rw time-division-multiplex-capable 473 | | | +--rw minimum-lsp-bandwidth? decimal64 474 | | | +--rw indication? enumeration 475 | | +--rw srlg 476 | | | +--rw srlg-values* [srlg-value] 477 | | | +--rw srlg-value uint32 478 | | +--rw alt-information-sources* [information-source] 479 | | +--rw information-source enumeration 480 | | +--rw credibility-preference? uint16 481 | | +--rw link-index? uint64 482 | | +--rw administrative-group* [sequence] 483 | | | +--rw sequence uint32 484 | | | +--rw ag-element? uint32 485 | | +--rw max-link-bandwidth? decimal64 486 | | +--rw max-resv-link-bandwidth? decimal64 487 | | +--rw unreserved-bandwidth* [priority] 488 | | | +--rw priority uint8 489 | | | +--rw bandwidth? decimal64 490 | | +--rw te-default-metric? uint32 491 | | +--rw performance-metric 492 {te-performance-metric}? 493 | | | +--rw measurement 494 | | | | +--rw unidirectional-delay? uint32 495 | | | | +--rw unidirectional-min-delay? uint32 496 | | | | +--rw unidirectional-max-delay? uint32 497 | | | | +--rw unidirectional-delay-variation? 498 uint32 499 | | | | +--rw unidirectional-packet-loss? 500 decimal64 501 | | | | +--rw unidirectional-residual-bandwidth? 502 decimal64 503 | | | | +--rw unidirectional-available-bandwidth? 504 decimal64 505 | | | | +--rw unidirectional-utilized-bandwidth? 506 decimal64 507 | | | +--rw normality 508 | | | +--rw unidirectional-delay? 509 performance-metric-normality 510 | | | +--rw unidirectional-min-delay? 511 performance-metric-normality 512 | | | +--rw unidirectional-max-delay? 513 performance-metric-normality 514 | | | +--rw unidirectional-delay-variation? 515 performance-metric-normality 516 | | | +--rw unidirectional-packet-loss? 517 performance-metric-normality 518 | | | +--rw unidirectional-residual-bandwidth? 519 performance-metric-normality 520 | | | +--rw unidirectional-available-bandwidth? 521 performance-metric-normality 522 | | | +--rw unidirectional-utilized-bandwidth? 523 performance-metric-normality 524 | | +--rw link-protection-type? 526 enumeration 527 | | +--rw interface-switching-capabilities* 528 [switching-capability] 529 | | | +--rw switching-capability 530 ted:switching-capabilities 531 | | | +--rw encoding? 532 ted:encoding-type 533 | | | +--rw max-lsp-bandwidth* [priority] 534 | | | | +--rw priority uint8 535 | | | | +--rw bandwidth? decimal64 536 | | | +--rw packet-switch-capable 537 | | | | +--rw minimum-lsp-bandwidth? decimal64 538 | | | | +--rw interface-mtu? uint16 539 | | | +--rw time-division-multiplex-capable 540 | | | +--rw minimum-lsp-bandwidth? decimal64 541 | | | +--rw indication? enumeration 542 | | +--rw srlg 543 | | +--rw srlg-values* [srlg-value] 544 | | +--rw srlg-value uint32 545 | +--rw node-template* [name] 546 | | +--rw name te-template-name 547 | | +--rw te-node-attributes 548 | | +--rw schedules* [schedule-id] 549 | | | +--rw schedule-id uint32 550 | | | +--rw start? yang:date-and-time 551 | | | +--rw schedule-duration? string 552 | | | +--rw repeat-interval? string 553 | | +--rw name? inet:domain-name 554 | | +--rw signaling-address* inet:ip-address 555 | | +--rw flag* flag-type 556 | | +--rw is-abstract? boolean 557 | | +--rw underlay-topology? leafref 558 {te-topology-hierarchy}? 559 | | +--rw te-link* [te-link-id] 560 | | | +--rw te-link-id te-link-id 561 | | | +--rw (stack-level)? 562 | | | +--:(bundle) 563 | | | | +--rw bundled-links 564 | | | | +--rw bundled-link* [sequence] 565 | | | | +--rw sequence uint32 566 | | | | +--rw te-link-ref? leafref 567 | | | +--:(component) 568 | | | +--rw component-links 569 | | | +--rw component-link* [sequence] 570 | | | +--rw sequence uint32 571 | | | +--rw component-link-ref? leafref 572 | | +--rw connectivity-matrix* [id] 573 | | | +--rw id uint32 574 | | | +--rw from-link 575 | | | | +--rw topo-ref? leafref 576 | | | | +--rw node-ref? leafref 577 | | | | +--rw link-end-ref? leafref 578 | | | +--rw to-link 579 | | | | +--rw topo-ref? leafref 580 | | | | +--rw node-ref? leafref 581 | | | | +--rw link-end-ref? leafref 582 | | | +--rw is-allowed? boolean 583 | | +--rw ted 584 | | +--rw te-router-id-ipv4? inet:ipv4-address 585 | | +--rw te-router-id-ipv6? inet:ipv6-address 586 | | +--rw ipv4-local-address* [ipv4-prefix] 587 | | | +--rw ipv4-prefix inet:ipv4-prefix 588 | | +--rw ipv6-local-address* [ipv6-prefix] 589 | | | +--rw ipv6-prefix inet:ipv6-prefix 590 | | | +--rw prefix-option? uint8 591 | | +--rw pcc-capabilities? pcc-capabilities 592 | +--rw link-template* [name] 593 | +--rw name te-template-name 594 | +--rw te-link-attributes 595 | +--rw schedules* [schedule-id] 596 | | +--rw schedule-id uint32 597 | | +--rw start? yang:date-and-time 598 | | +--rw schedule-duration? string 599 | | +--rw repeat-interval? string 600 | +--rw name? string 601 | +--rw flag* flag-type 602 | +--rw is-abstract? boolean 603 | +--rw underlay! {te-topology-hierarchy}? 604 | | +--rw underlay-path 605 | | | +--rw topology-id? leafref 606 | | | +--rw path-element* [path-element-id] 607 | | | +--rw path-element-id uint32 608 | | | +--rw loose? boolean 609 | | | +--rw (element-type)? 610 | | | +--:(numbered-link) 611 | | | | +--rw link-ip-address? inet:ip-address 612 | | | +--:(unnumbered-link) 613 | | | | +--rw link-node-id? uint32 614 | | | | +--rw te-link-id? uint32 615 | | | +--:(node) 616 | | | | +--rw te-node-id? uint32 617 | | | +--:(label) 618 | | | +--rw label? uint32 619 | | +--rw underlay-backup-path 620 | | | +--rw topology-id? leafref 621 | | | +--rw path-element* [path-element-id] 622 | | | +--rw path-element-id uint32 623 | | | +--rw loose? boolean 624 | | | +--rw (element-type)? 625 | | | +--:(numbered-link) 626 | | | | +--rw link-ip-address? inet:ip-address 627 | | | +--:(unnumbered-link) 628 | | | | +--rw link-node-id? uint32 629 | | | | +--rw te-link-id? uint32 630 | | | +--:(node) 631 | | | | +--rw te-node-id? uint32 632 | | | +--:(label) 633 | | | +--rw label? uint32 634 | | +--rw underlay-protection-type? uint16 635 | | +--rw underlay-trail-src 636 | | | +--rw topo-ref? leafref 637 | | | +--rw node-ref? leafref 638 | | | +--rw link-end-ref? leafref 639 | | +--rw underlay-trail-des 640 | | +--rw topo-ref? leafref 641 | | +--rw node-ref? leafref 642 | | +--rw link-end-ref? leafref 643 | +--rw ted 644 | +--rw admin-status? enumeration 645 | +--rw oper-status? enumeration 646 | +--rw area-id? binary 647 | +--rw performance-metric-throttle 648 {te-performance-metric}? 649 | | +--rw unidirectional-delay-offset? uint32 650 | | +--rw measure-interval? uint32 651 | | +--rw advertisement-interval? uint32 652 | | +--rw suppression-interval? uint32 653 | | +--rw threshold-out 654 | | | +--rw unidirectional-delay? uint32 655 | | | +--rw unidirectional-min-delay? uint32 656 | | | +--rw unidirectional-max-delay? uint32 657 | | | +--rw unidirectional-delay-variation? uint32 658 | | | +--rw unidirectional-packet-loss? decimal64 659 | | | +--rw unidirectional-residual-bandwidth? 660 decimal64 661 | | | +--rw unidirectional-available-bandwidth? 662 decimal64 663 | | | +--rw unidirectional-utilized-bandwidth? 664 decimal64 665 | | +--rw threshold-in 666 | | | +--rw unidirectional-delay? uint32 667 | | | +--rw unidirectional-min-delay? uint32 668 | | | +--rw unidirectional-max-delay? uint32 669 | | | +--rw unidirectional-delay-variation? uint32 670 | | | +--rw unidirectional-packet-loss? decimal64 671 | | | +--rw unidirectional-residual-bandwidth? 672 decimal64 673 | | | +--rw unidirectional-available-bandwidth? 674 decimal64 675 | | | +--rw unidirectional-utilized-bandwidth? 676 decimal64 677 | | +--rw threshold-accelerated-advertisement 678 | | +--rw unidirectional-delay? uint32 679 | | +--rw unidirectional-min-delay? uint32 680 | | +--rw unidirectional-max-delay? uint32 681 | | +--rw unidirectional-delay-variation? uint32 682 | | +--rw unidirectional-packet-loss? decimal64 683 | | +--rw unidirectional-residual-bandwidth? 684 decimal64 685 | | +--rw unidirectional-available-bandwidth? 686 decimal64 687 | | +--rw unidirectional-utilized-bandwidth? 688 decimal64 689 | +--rw information-source? enumeration 690 | +--rw credibility-preference? uint16 691 | +--rw link-index? uint64 692 | +--rw administrative-group* [sequence] 693 | | +--rw sequence uint32 694 | | +--rw ag-element? uint32 695 | +--rw max-link-bandwidth? decimal64 696 | +--rw max-resv-link-bandwidth? decimal64 697 | +--rw unreserved-bandwidth* [priority] 698 | | +--rw priority uint8 699 | | +--rw bandwidth? decimal64 700 | +--rw te-default-metric? uint32 701 | +--rw performance-metric {te-performance-metric}? 702 | | +--rw measurement 703 | | | +--rw unidirectional-delay? uint32 704 | | | +--rw unidirectional-min-delay? uint32 705 | | | +--rw unidirectional-max-delay? uint32 706 | | | +--rw unidirectional-delay-variation? uint32 707 | | | +--rw unidirectional-packet-loss? decimal64 708 | | | +--rw unidirectional-residual-bandwidth? 709 decimal64 710 | | | +--rw unidirectional-available-bandwidth? 711 decimal64 712 | | | +--rw unidirectional-utilized-bandwidth? 713 decimal64 714 | | +--rw normality 715 | | +--rw unidirectional-delay? 716 performance-metric-normality 717 | | +--rw unidirectional-min-delay? 719 performance-metric-normality 720 | | +--rw unidirectional-max-delay? 721 performance-metric-normality 722 | | +--rw unidirectional-delay-variation? 723 performance-metric-normality 724 | | +--rw unidirectional-packet-loss? 725 performance-metric-normality 726 | | +--rw unidirectional-residual-bandwidth? 727 performance-metric-normality 728 | | +--rw unidirectional-available-bandwidth? 729 performance-metric-normality 730 | | +--rw unidirectional-utilized-bandwidth? 731 performance-metric-normality 732 | +--rw link-protection-type? enumeration 733 | +--rw interface-switching-capabilities* 734 [switching-capability] 735 | | +--rw switching-capability 736 ted:switching-capabilities 737 | | +--rw encoding? ted:encoding-type 738 | | +--rw max-lsp-bandwidth* [priority] 739 | | | +--rw priority uint8 740 | | | +--rw bandwidth? decimal64 741 | | +--rw packet-switch-capable 742 | | | +--rw minimum-lsp-bandwidth? decimal64 743 | | | +--rw interface-mtu? uint16 744 | | +--rw time-division-multiplex-capable 745 | | +--rw minimum-lsp-bandwidth? decimal64 746 | | +--rw indication? enumeration 747 | +--rw srlg 748 | | +--rw srlg-values* [srlg-value] 749 | | +--rw srlg-value uint32 750 | +--rw alt-information-sources* [information-source] 751 | +--rw information-source enumeration 752 | +--rw credibility-preference? uint16 753 | +--rw link-index? uint64 754 | +--rw administrative-group* [sequence] 755 | | +--rw sequence uint32 756 | | +--rw ag-element? uint32 757 | +--rw max-link-bandwidth? decimal64 758 | +--rw max-resv-link-bandwidth? decimal64 759 | +--rw unreserved-bandwidth* [priority] 760 | | +--rw priority uint8 761 | | +--rw bandwidth? decimal64 762 | +--rw te-default-metric? uint32 763 | +--rw performance-metric {te-performance-metric}? 764 | | +--rw measurement 765 | | | +--rw unidirectional-delay? uint32 766 | | | +--rw unidirectional-min-delay? uint32 767 | | | +--rw unidirectional-max-delay? uint32 768 | | | +--rw unidirectional-delay-variation? uint32 769 | | | +--rw unidirectional-packet-loss? decimal64 770 | | | +--rw unidirectional-residual-bandwidth? 771 decimal64 772 | | | +--rw unidirectional-available-bandwidth? 773 decimal64 774 | | | +--rw unidirectional-utilized-bandwidth? 775 decimal64 776 | | +--rw normality 777 | | +--rw unidirectional-delay? 778 performance-metric-normality 779 | | +--rw unidirectional-min-delay? 780 performance-metric-normality 781 | | +--rw unidirectional-max-delay? 782 performance-metric-normality 783 | | +--rw unidirectional-delay-variation? 784 performance-metric-normality 785 | | +--rw unidirectional-packet-loss? 786 performance-metric-normality 787 | | +--rw unidirectional-residual-bandwidth? 788 performance-metric-normality 789 | | +--rw unidirectional-available-bandwidth? 790 performance-metric-normality 791 | | +--rw unidirectional-utilized-bandwidth? 792 performance-metric-normality 793 | +--rw link-protection-type? enumeration 794 | +--rw interface-switching-capabilities* 795 [switching-capability] 796 | | +--rw switching-capability 797 ted:switching-capabilities 798 | | +--rw encoding? ted:encoding-type 799 | | +--rw max-lsp-bandwidth* [priority] 800 | | | +--rw priority uint8 801 | | | +--rw bandwidth? decimal64 802 | | +--rw packet-switch-capable 803 | | | +--rw minimum-lsp-bandwidth? decimal64 804 | | | +--rw interface-mtu? uint16 805 | | +--rw time-division-multiplex-capable 806 | | +--rw minimum-lsp-bandwidth? decimal64 807 | | +--rw indication? enumeration 808 | +--rw srlg 809 | +--rw srlg-values* [srlg-value] 810 | +--rw srlg-value uint32 811 +--ro te-topologies-state 812 +--ro topology* [te-topology-id] 813 +--ro te-topology-id te-topology-id 814 +--ro server-provided? boolean 815 +--ro topology-types 816 | +--ro te-topology! 817 +--ro node* [te-node-id] 818 | +--ro te-node-id te-node-id 819 | +--ro te-node-template? leafref 820 | +--ro te-node-attributes 821 | | +--ro schedules* [schedule-id] 822 | | | +--ro schedule-id uint32 823 | | | +--ro start? yang:date-and-time 824 | | | +--ro schedule-duration? string 825 | | | +--ro repeat-interval? string 826 | | +--ro name? inet:domain-name 827 | | +--ro signaling-address* inet:ip-address 828 | | +--ro flag* flag-type 829 | | +--ro is-abstract? boolean 830 | | +--ro underlay-topology? leafref 831 {te-topology-hierarchy}? 832 | | +--ro te-link* [te-link-id] 833 | | | +--ro te-link-id te-link-id 834 | | | +--ro (stack-level)? 835 | | | +--:(bundle) 836 | | | | +--ro bundled-links 837 | | | | +--ro bundled-link* [sequence] 838 | | | | +--ro sequence uint32 839 | | | | +--ro te-link-ref? leafref 840 | | | +--:(component) 841 | | | +--ro component-links 842 | | | +--ro component-link* [sequence] 843 | | | +--ro sequence uint32 844 | | | +--ro component-link-ref? leafref 845 | | +--ro connectivity-matrix* [id] 846 | | | +--ro id uint32 847 | | | +--ro from-link 848 | | | | +--ro topo-ref? leafref 849 | | | | +--ro node-ref? leafref 850 | | | | +--ro link-end-ref? leafref 851 | | | +--ro to-link 852 | | | | +--ro topo-ref? leafref 853 | | | | +--ro node-ref? leafref 854 | | | | +--ro link-end-ref? leafref 855 | | | +--ro is-allowed? boolean 856 | | +--ro ted 857 | | +--ro te-router-id-ipv4? inet:ipv4-address 858 | | +--ro te-router-id-ipv6? inet:ipv6-address 859 | | +--ro ipv4-local-address* [ipv4-prefix] 860 | | | +--ro ipv4-prefix inet:ipv4-prefix 861 | | +--ro ipv6-local-address* [ipv6-prefix] 862 | | | +--ro ipv6-prefix inet:ipv6-prefix 863 | | | +--ro prefix-option? uint8 864 | | +--ro pcc-capabilities? pcc-capabilities 865 | +--ro te-node-state-attributes 866 | +--ro information-source? enumeration 867 | +--ro credibility-preference? uint16 868 +--ro link* [source-te-node-id source-te-link-id 869 dest-te-node-id dest-te-link-id] 870 +--ro source-te-node-id leafref 871 +--ro source-te-link-id leafref 872 +--ro dest-te-node-id leafref 873 +--ro dest-te-link-id leafref 874 +--ro te-link-template? leafref 875 +--ro te-link-attributes 876 | +--ro schedules* [schedule-id] 877 | | +--ro schedule-id uint32 878 | | +--ro start? yang:date-and-time 879 | | +--ro schedule-duration? string 880 | | +--ro repeat-interval? string 881 | +--ro name? string 882 | +--ro flag* flag-type 883 | +--ro is-abstract? boolean 884 | +--ro underlay! {te-topology-hierarchy}? 885 | | +--ro underlay-path 886 | | | +--ro topology-id? leafref 887 | | | +--ro path-element* [path-element-id] 888 | | | +--ro path-element-id uint32 889 | | | +--ro loose? boolean 890 | | | +--ro (element-type)? 891 | | | +--:(numbered-link) 892 | | | | +--ro link-ip-address? inet:ip-address 893 | | | +--:(unnumbered-link) 894 | | | | +--ro link-node-id? uint32 895 | | | | +--ro te-link-id? uint32 896 | | | +--:(node) 897 | | | | +--ro te-node-id? uint32 898 | | | +--:(label) 899 | | | +--ro label? uint32 900 | | +--ro underlay-backup-path 901 | | | +--ro topology-id? leafref 902 | | | +--ro path-element* [path-element-id] 903 | | | +--ro path-element-id uint32 904 | | | +--ro loose? boolean 905 | | | +--ro (element-type)? 906 | | | +--:(numbered-link) 907 | | | | +--ro link-ip-address? inet:ip-address 908 | | | +--:(unnumbered-link) 909 | | | | +--ro link-node-id? uint32 910 | | | | +--ro te-link-id? uint32 911 | | | +--:(node) 912 | | | | +--ro te-node-id? uint32 913 | | | +--:(label) 914 | | | +--ro label? uint32 915 | | +--ro underlay-protection-type? uint16 916 | | +--ro underlay-trail-src 917 | | | +--ro topo-ref? leafref 918 | | | +--ro node-ref? leafref 919 | | | +--ro link-end-ref? leafref 920 | | +--ro underlay-trail-des 921 | | | +--ro topo-ref? leafref 922 | | | +--ro node-ref? leafref 923 | | | +--ro link-end-ref? leafref 924 | | +--ro dynamic? boolean 925 | | +--ro committed? boolean 926 | +--ro ted 927 | +--ro admin-status? enumeration 928 | +--ro oper-status? enumeration 929 | +--ro area-id? binary 930 | +--ro performance-metric-throttle {te-performance-metric}? 931 | | +--ro unidirectional-delay-offset? uint32 932 | | +--ro measure-interval? uint32 933 | | +--ro advertisement-interval? uint32 934 | | +--ro suppression-interval? uint32 935 | | +--ro threshold-out 936 | | | +--ro unidirectional-delay? uint32 937 | | | +--ro unidirectional-min-delay? uint32 938 | | | +--ro unidirectional-max-delay? uint32 939 | | | +--ro unidirectional-delay-variation? uint32 940 | | | +--ro unidirectional-packet-loss? 941 decimal64 942 | | | +--ro unidirectional-residual-bandwidth? 943 decimal64 944 | | | +--ro unidirectional-available-bandwidth? 945 decimal64 946 | | | +--ro unidirectional-utilized-bandwidth? 947 decimal64 948 | | +--ro threshold-in 949 | | | +--ro unidirectional-delay? uint32 950 | | | +--ro unidirectional-min-delay? uint32 951 | | | +--ro unidirectional-max-delay? uint32 952 | | | +--ro unidirectional-delay-variation? uint32 953 | | | +--ro unidirectional-packet-loss? decimal64 954 | | | +--ro unidirectional-residual-bandwidth? 955 decimal64 956 | | | +--ro unidirectional-available-bandwidth? 957 decimal64 958 | | | +--ro unidirectional-utilized-bandwidth? 960 decimal64 961 | | +--ro threshold-accelerated-advertisement 962 | | +--ro unidirectional-delay? uint32 963 | | +--ro unidirectional-min-delay? uint32 964 | | +--ro unidirectional-max-delay? uint32 965 | | +--ro unidirectional-delay-variation? uint32 966 | | +--ro unidirectional-packet-loss? decimal64 967 | | +--ro unidirectional-residual-bandwidth? 968 decimal64 969 | | +--ro unidirectional-available-bandwidth? 970 decimal64 971 | | +--ro unidirectional-utilized-bandwidth? 972 decimal64 973 | +--ro information-source? enumeration 974 | +--ro credibility-preference? uint16 975 | +--ro link-index? uint64 976 | +--ro administrative-group* [sequence] 977 | | +--ro sequence uint32 978 | | +--ro ag-element? uint32 979 | +--ro max-link-bandwidth? decimal64 980 | +--ro max-resv-link-bandwidth? decimal64 981 | +--ro unreserved-bandwidth* [priority] 982 | | +--ro priority uint8 983 | | +--ro bandwidth? decimal64 984 | +--ro te-default-metric? uint32 985 | +--ro performance-metric {te-performance-metric}? 986 | | +--ro measurement 987 | | | +--ro unidirectional-delay? uint32 988 | | | +--ro unidirectional-min-delay? uint32 989 | | | +--ro unidirectional-max-delay? uint32 990 | | | +--ro unidirectional-delay-variation? uint32 991 | | | +--ro unidirectional-packet-loss? decimal64 992 | | | +--ro unidirectional-residual-bandwidth? 993 decimal64 994 | | | +--ro unidirectional-available-bandwidth? 995 decimal64 996 | | | +--ro unidirectional-utilized-bandwidth? 997 decimal64 998 | | +--ro normality 999 | | +--ro unidirectional-delay? 1000 performance-metric-normality 1001 | | +--ro unidirectional-min-delay? 1002 performance-metric-normality 1003 | | +--ro unidirectional-max-delay? 1004 performance-metric-normality 1005 | | +--ro unidirectional-delay-variation? 1006 performance-metric-normality 1007 | | +--ro unidirectional-packet-loss? 1009 performance-metric-normality 1010 | | +--ro unidirectional-residual-bandwidth? 1011 performance-metric-normality 1012 | | +--ro unidirectional-available-bandwidth? 1013 performance-metric-normality 1014 | | +--ro unidirectional-utilized-bandwidth? 1015 performance-metric-normality 1016 | +--ro link-protection-type? enumeration 1017 | +--ro interface-switching-capabilities* 1018 [switching-capability] 1019 | | +--ro switching-capability 1020 ted:switching-capabilities 1021 | | +--ro encoding? 1022 ted:encoding-type 1023 | | +--ro max-lsp-bandwidth* [priority] 1024 | | | +--ro priority uint8 1025 | | | +--ro bandwidth? decimal64 1026 | | +--ro packet-switch-capable 1027 | | | +--ro minimum-lsp-bandwidth? decimal64 1028 | | | +--ro interface-mtu? uint16 1029 | | +--ro time-division-multiplex-capable 1030 | | +--ro minimum-lsp-bandwidth? decimal64 1031 | | +--ro indication? enumeration 1032 | +--ro srlg 1033 | | +--ro srlg-values* [srlg-value] 1034 | | +--ro srlg-value uint32 1035 | +--ro alt-information-sources* [information-source] 1036 | +--ro information-source enumeration 1037 | +--ro credibility-preference? uint16 1038 | +--ro link-index? uint64 1039 | +--ro administrative-group* [sequence] 1040 | | +--ro sequence uint32 1041 | | +--ro ag-element? uint32 1042 | +--ro max-link-bandwidth? decimal64 1043 | +--ro max-resv-link-bandwidth? decimal64 1044 | +--ro unreserved-bandwidth* [priority] 1045 | | +--ro priority uint8 1046 | | +--ro bandwidth? decimal64 1047 | +--ro te-default-metric? uint32 1048 | +--ro performance-metric 1049 {te-performance-metric}? 1050 | | +--ro measurement 1051 | | | +--ro unidirectional-delay? uint32 1052 | | | +--ro unidirectional-min-delay? uint32 1053 | | | +--ro unidirectional-max-delay? uint32 1054 | | | +--ro unidirectional-delay-variation? 1055 uint32 1056 | | | +--ro unidirectional-packet-loss? 1058 decimal64 1059 | | | +--ro unidirectional-residual-bandwidth? 1060 decimal64 1061 | | | +--ro unidirectional-available-bandwidth? 1062 decimal64 1063 | | | +--ro unidirectional-utilized-bandwidth? 1064 decimal64 1065 | | +--ro normality 1066 | | +--ro unidirectional-delay? 1067 performance-metric-normality 1068 | | +--ro unidirectional-min-delay? 1069 performance-metric-normality 1070 | | +--ro unidirectional-max-delay? 1071 performance-metric-normality 1072 | | +--ro unidirectional-delay-variation? 1073 performance-metric-normality 1074 | | +--ro unidirectional-packet-loss? 1075 performance-metric-normality 1076 | | +--ro unidirectional-residual-bandwidth? 1077 performance-metric-normality 1078 | | +--ro unidirectional-available-bandwidth? 1079 performance-metric-normality 1080 | | +--ro unidirectional-utilized-bandwidth? 1081 performance-metric-normality 1082 | +--ro link-protection-type? enumeration 1083 | +--ro interface-switching-capabilities* 1084 [switching-capability] 1085 | | +--ro switching-capability 1086 ted:switching-capabilities 1087 | | +--ro encoding? ted:encoding-type 1088 | | +--ro max-lsp-bandwidth* [priority] 1089 | | | +--ro priority uint8 1090 | | | +--ro bandwidth? decimal64 1091 | | +--ro packet-switch-capable 1092 | | | +--ro minimum-lsp-bandwidth? decimal64 1093 | | | +--ro interface-mtu? uint16 1094 | | +--ro time-division-multiplex-capable 1095 | | +--ro minimum-lsp-bandwidth? decimal64 1096 | | +--ro indication? enumeration 1097 | +--ro srlg 1098 | +--ro srlg-values* [srlg-value] 1099 | +--ro srlg-value uint32 1100 +--ro te-link-state-attributes 1101 +--ro information-source? enumeration 1102 +--ro credibility-preference? uint16 1103 notifications: 1104 +---n te-node-event 1105 | +--ro event-type? te-topology-event-type 1106 | +--ro topo-ref? leafref 1107 | +--ro node-ref? leafref 1108 | +--ro te-topology! 1109 | +--ro te-node-attributes 1110 | +--ro schedules* [schedule-id] 1111 | | +--ro schedule-id uint32 1112 | | +--ro start? yang:date-and-time 1113 | | +--ro schedule-duration? string 1114 | | +--ro repeat-interval? string 1115 | +--ro name? inet:domain-name 1116 | +--ro signaling-address* inet:ip-address 1117 | +--ro flag* flag-type 1118 | +--ro is-abstract? boolean 1119 | +--ro underlay-topology? leafref {te-topology-hierarchy}? 1120 | +--ro te-link* [te-link-id] 1121 | | +--ro te-link-id te-link-id 1122 | | +--ro (stack-level)? 1123 | | +--:(bundle) 1124 | | | +--ro bundled-links 1125 | | | +--ro bundled-link* [sequence] 1126 | | | +--ro sequence uint32 1127 | | | +--ro te-link-ref? leafref 1128 | | +--:(component) 1129 | | +--ro component-links 1130 | | +--ro component-link* [sequence] 1131 | | +--ro sequence uint32 1132 | | +--ro component-link-ref? leafref 1133 | +--ro connectivity-matrix* [id] 1134 | | +--ro id uint32 1135 | | +--ro from-link 1136 | | | +--ro topo-ref? leafref 1137 | | | +--ro node-ref? leafref 1138 | | | +--ro link-end-ref? leafref 1139 | | +--ro to-link 1140 | | | +--ro topo-ref? leafref 1141 | | | +--ro node-ref? leafref 1142 | | | +--ro link-end-ref? leafref 1143 | | +--ro is-allowed? boolean 1144 | +--ro ted 1145 | +--ro te-router-id-ipv4? inet:ipv4-address 1146 | +--ro te-router-id-ipv6? inet:ipv6-address 1147 | +--ro ipv4-local-address* [ipv4-prefix] 1148 | | +--ro ipv4-prefix inet:ipv4-prefix 1149 | +--ro ipv6-local-address* [ipv6-prefix] 1150 | | +--ro ipv6-prefix inet:ipv6-prefix 1151 | | +--ro prefix-option? uint8 1152 | +--ro pcc-capabilities? pcc-capabilities 1153 +---n te-link-event 1154 +--ro event-type? te-topology-event-type 1155 +--ro topo-ref? leafref 1156 +--ro source-te-node-id-ref? leafref 1157 +--ro source-te-link-id-ref? leafref 1158 +--ro dest-te-node-id-ref? leafref 1159 +--ro dest-te-link-id-ref? leafref 1160 +--ro te-topology! 1161 +--ro te-link-attributes 1162 +--ro schedules* [schedule-id] 1163 | +--ro schedule-id uint32 1164 | +--ro start? yang:date-and-time 1165 | +--ro schedule-duration? string 1166 | +--ro repeat-interval? string 1167 +--ro name? string 1168 +--ro flag* flag-type 1169 +--ro is-abstract? boolean 1170 +--ro underlay! {te-topology-hierarchy}? 1171 | +--ro underlay-path 1172 | | +--ro topology-id? leafref 1173 | | +--ro path-element* [path-element-id] 1174 | | +--ro path-element-id uint32 1175 | | +--ro loose? boolean 1176 | | +--ro (element-type)? 1177 | | +--:(numbered-link) 1178 | | | +--ro link-ip-address? inet:ip-address 1179 | | +--:(unnumbered-link) 1180 | | | +--ro link-node-id? uint32 1181 | | | +--ro te-link-id? uint32 1182 | | +--:(node) 1183 | | | +--ro te-node-id? uint32 1184 | | +--:(label) 1185 | | +--ro label? uint32 1186 | +--ro underlay-backup-path 1187 | | +--ro topology-id? leafref 1188 | | +--ro path-element* [path-element-id] 1189 | | +--ro path-element-id uint32 1190 | | +--ro loose? boolean 1191 | | +--ro (element-type)? 1192 | | +--:(numbered-link) 1193 | | | +--ro link-ip-address? inet:ip-address 1194 | | +--:(unnumbered-link) 1195 | | | +--ro link-node-id? uint32 1196 | | | +--ro te-link-id? uint32 1197 | | +--:(node) 1198 | | | +--ro te-node-id? uint32 1199 | | +--:(label) 1200 | | +--ro label? uint32 1201 | +--ro underlay-protection-type? uint16 1202 | +--ro underlay-trail-src 1203 | | +--ro topo-ref? leafref 1204 | | +--ro node-ref? leafref 1205 | | +--ro link-end-ref? leafref 1206 | +--ro underlay-trail-des 1207 | | +--ro topo-ref? leafref 1208 | | +--ro node-ref? leafref 1209 | | +--ro link-end-ref? leafref 1210 | +--ro dynamic? boolean 1211 | +--ro committed? boolean 1212 +--ro ted 1213 +--ro admin-status? enumeration 1214 +--ro oper-status? enumeration 1215 +--ro area-id? binary 1216 +--ro performance-metric-throttle{te-performance-metric}? 1217 | +--ro unidirectional-delay-offset? uint32 1218 | +--ro measure-interval? uint32 1219 | +--ro advertisement-interval? uint32 1220 | +--ro suppression-interval? uint32 1221 | +--ro threshold-out 1222 | | +--ro unidirectional-delay? uint32 1223 | | +--ro unidirectional-min-delay? uint32 1224 | | +--ro unidirectional-max-delay? uint32 1225 | | +--ro unidirectional-delay-variation? uint32 1226 | | +--ro unidirectional-packet-loss? 1227 decimal64 1228 | | +--ro unidirectional-residual-bandwidth? 1229 decimal64 1230 | | +--ro unidirectional-available-bandwidth? 1231 decimal64 1232 | | +--ro unidirectional-utilized-bandwidth? 1233 decimal64 1234 | +--ro threshold-in 1235 | | +--ro unidirectional-delay? uint32 1236 | | +--ro unidirectional-min-delay? uint32 1237 | | +--ro unidirectional-max-delay? uint32 1238 | | +--ro unidirectional-delay-variation? uint32 1239 | | +--ro unidirectional-packet-loss? decimal64 1240 | | +--ro unidirectional-residual-bandwidth? decimal64 1241 | | +--ro unidirectional-available-bandwidth? decimal64 1242 | | +--ro unidirectional-utilized-bandwidth? decimal64 1243 | +--ro threshold-accelerated-advertisement 1244 | +--ro unidirectional-delay? uint32 1245 | +--ro unidirectional-min-delay? uint32 1246 | +--ro unidirectional-max-delay? uint32 1247 | +--ro unidirectional-delay-variation? uint32 1248 | +--ro unidirectional-packet-loss? decimal64 1249 | +--ro unidirectional-residual-bandwidth? decimal64 1250 | +--ro unidirectional-available-bandwidth? decimal64 1251 | +--ro unidirectional-utilized-bandwidth? decimal64 1252 +--ro information-source? enumeration 1253 +--ro credibility-preference? uint16 1254 +--ro link-index? uint64 1255 +--ro administrative-group* [sequence] 1256 | +--ro sequence uint32 1257 | +--ro ag-element? uint32 1258 +--ro max-link-bandwidth? decimal64 1259 +--ro max-resv-link-bandwidth? decimal64 1260 +--ro unreserved-bandwidth* [priority] 1261 | +--ro priority uint8 1262 | +--ro bandwidth? decimal64 1263 +--ro te-default-metric? uint32 1264 +--ro performance-metric {te-performance-metric}? 1265 | +--ro measurement 1266 | | +--ro unidirectional-delay? uint32 1267 | | +--ro unidirectional-min-delay? uint32 1268 | | +--ro unidirectional-max-delay? uint32 1269 | | +--ro unidirectional-delay-variation? uint32 1270 | | +--ro unidirectional-packet-loss? decimal64 1271 | | +--ro unidirectional-residual-bandwidth? decimal64 1272 | | +--ro unidirectional-available-bandwidth? decimal64 1273 | | +--ro unidirectional-utilized-bandwidth? decimal64 1274 | +--ro normality 1275 | +--ro unidirectional-delay? 1276 performance-metric-normality 1277 | +--ro unidirectional-min-delay? 1278 performance-metric-normality 1279 | +--ro unidirectional-max-delay? 1280 performance-metric-normality 1281 | +--ro unidirectional-delay-variation? 1282 performance-metric-normality 1283 | +--ro unidirectional-packet-loss? 1284 performance-metric-normality 1285 | +--ro unidirectional-residual-bandwidth? 1286 performance-metric-normality 1287 | +--ro unidirectional-available-bandwidth? 1288 performance-metric-normality 1289 | +--ro unidirectional-utilized-bandwidth? 1290 performance-metric-normality 1291 +--ro link-protection-type? enumeration 1292 +--ro interface-switching-capabilities* 1293 [switching-capability] 1294 | +--ro switching-capability ted:switching-capabilities 1295 | +--ro encoding? ted:encoding-type 1296 | +--ro max-lsp-bandwidth* [priority] 1297 | | +--ro priority uint8 1298 | | +--ro bandwidth? decimal64 1299 | +--ro packet-switch-capable 1300 | | +--ro minimum-lsp-bandwidth? decimal64 1301 | | +--ro interface-mtu? uint16 1302 | +--ro time-division-multiplex-capable 1303 | +--ro minimum-lsp-bandwidth? decimal64 1304 | +--ro indication? enumeration 1305 +--ro srlg 1306 | +--ro srlg-values* [srlg-value] 1307 | +--ro srlg-value uint32 1308 +--ro alt-information-sources* [information-source] 1309 +--ro information-source enumeration 1310 +--ro credibility-preference? uint16 1311 +--ro link-index? uint64 1312 +--ro administrative-group* [sequence] 1313 | +--ro sequence uint32 1314 | +--ro ag-element? uint32 1315 +--ro max-link-bandwidth? decimal64 1316 +--ro max-resv-link-bandwidth? decimal64 1317 +--ro unreserved-bandwidth* [priority] 1318 | +--ro priority uint8 1319 | +--ro bandwidth? decimal64 1320 +--ro te-default-metric? uint32 1321 +--ro performance-metric {te-performance-metric}? 1322 | +--ro measurement 1323 | | +--ro unidirectional-delay? uint32 1324 | | +--ro unidirectional-min-delay? uint32 1325 | | +--ro unidirectional-max-delay? uint32 1326 | | +--ro unidirectional-delay-variation? uint32 1327 | | +--ro unidirectional-packet-loss? decimal64 1328 | | +--ro unidirectional-residual-bandwidth? 1329 decimal64 1330 | | +--ro unidirectional-available-bandwidth? 1331 decimal64 1332 | | +--ro unidirectional-utilized-bandwidth? 1333 decimal64 1334 | +--ro normality 1335 | +--ro unidirectional-delay? 1336 performance-metric-normality 1337 | +--ro unidirectional-min-delay? 1338 performance-metric-normality 1339 | +--ro unidirectional-max-delay? 1340 performance-metric-normality 1341 | +--ro unidirectional-delay-variation? 1342 performance-metric-normality 1343 | +--ro unidirectional-packet-loss? 1344 performance-metric-normality 1345 | +--ro unidirectional-residual-bandwidth? 1347 performance-metric-normality 1348 | +--ro unidirectional-available-bandwidth? 1349 performance-metric-normality 1350 | +--ro unidirectional-utilized-bandwidth? 1351 performance-metric-normality 1352 +--ro link-protection-type? enumeration 1353 +--ro interface-switching-capabilities* 1354 [switching-capability] 1355 | +--ro switching-capability 1356 ted:switching-capabilities 1357 | +--ro encoding? ted:encoding-type 1358 | +--ro max-lsp-bandwidth* [priority] 1359 | | +--ro priority uint8 1360 | | +--ro bandwidth? decimal64 1361 | +--ro packet-switch-capable 1362 | | +--ro minimum-lsp-bandwidth? decimal64 1363 | | +--ro interface-mtu? uint16 1364 | +--ro time-division-multiplex-capable 1365 | +--ro minimum-lsp-bandwidth? decimal64 1366 | +--ro indication? enumeration 1367 +--ro srlg 1368 +--ro srlg-values* [srlg-value] 1369 +--ro srlg-value uint32 1371 3.1. TE Topology Yang Module 1373 file "ietf-te-topology@2015-03-23.yang" 1374 module ietf-te-topology { 1375 yang-version 1; 1376 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; 1377 // replace with IANA namespace when assigned 1379 prefix "tet"; 1381 import ietf-yang-types { 1382 prefix "yang"; 1383 } 1385 import ietf-inet-types { 1386 prefix "inet"; 1387 } 1389 import ted { 1390 prefix "ted"; 1391 } 1393 import ietf-interfaces { 1394 prefix "if"; 1395 } 1397 organization "TBD"; 1398 contact "TBD"; 1399 description "TE topology model"; 1401 revision "2015-03-23" { 1402 description "Initial revision"; 1403 reference "TBD"; 1404 } 1406 /* 1407 * Features 1408 */ 1410 feature te-topology-hierarchy { 1411 description 1412 "This feature indicates that the system allows underlay 1413 and/or overlay TE topology hierarchy."; 1414 } 1416 /* 1417 * Typedefs 1418 */ 1420 typedef te-topology-id { 1421 type string { 1422 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 1423 } 1424 description 1425 "An identifier for a topology."; 1426 } 1428 typedef te-template-name { 1429 type string { 1430 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 1431 } 1432 description 1433 "A type for the name of a TE node template or TE link 1434 template."; 1435 } 1437 typedef te-node-id { 1438 type inet:ip-address; 1439 description 1440 "An identifier for a node in a topology. 1441 The identifier is represented as an IPv4 or IPv6 address. 1443 The identifier SHOULD be chosen such that the same node in a 1444 real network topology will always be identified through the 1445 same identifier, even if the model is instantiated in 1446 separate datastores. An implementation MAY choose to capture 1447 semantics in the identifier, for example to indicate the type 1448 of node and/or the type of topology that the node is a part 1449 of."; 1450 } 1452 typedef te-link-id { 1453 type union { 1454 type uint32; // Unnumbered 1455 type inet:ip-address; // IPv4 or IPv6 address 1456 } 1457 description 1458 "An identifier for a TE link on a node. 1459 The identifier may be opaque. 1460 The identifier SHOULD be chosen such that the same TP in a 1461 real network topology will always be identified through the 1462 same identifier, even if the model is instantiated in 1463 separate datastores. An implementation MAY choose to capture 1464 semantics in the identifier, for example to indicate the type 1465 of TP and/or the type of node and topology that the TP is a 1466 part of."; 1467 } 1469 typedef te-topology-event-type { 1470 type enumeration { 1471 enum "add" { 1472 value 0; 1473 description 1474 "A TE node or te-link has 1475 been added"; 1476 } 1477 enum "remove" { 1478 value 1; 1479 description 1480 "A TE node or te-link has 1481 been removed"; 1482 } 1483 enum "update" { 1484 value 2; 1485 description 1486 "A TE node or te-link has 1487 been updated"; 1488 } 1489 } 1490 description "TE Event type for notifications"; 1491 } // te-topology-event-type 1493 /* 1494 * Identities 1495 */ 1497 identity flag-identity { 1498 description "Base type for flags"; 1499 } 1501 identity undefined-flag { 1502 base "flag-identity"; 1503 description "Undefined flag"; 1504 } 1506 typedef flag-type { 1507 type identityref { 1508 base "flag-identity"; 1509 } 1510 description "Type for flags"; 1511 } 1513 /* 1514 * Groupings 1515 */ 1517 grouping topo-ref { 1518 description 1519 "Grouping for an absolute reference to a topology instance."; 1520 leaf topo-ref { 1521 type leafref { 1522 path "/tet:te-topologies/tet:topology/tet:te-topology-id"; 1523 } 1524 description 1525 "An absolute reference to a topology instance."; 1526 } 1527 } 1529 grouping link-ref { 1530 description 1531 "Grouping for an absolute reference to a link instance."; 1532 uses topo-ref; 1533 leaf source-te-node-id-ref { 1534 type leafref { 1535 path "/tet:te-topologies/tet:topology" 1536 +"[tet:te-topology-id = current()/../topo-ref]" 1537 +"/tet:link/tet:source-te-node-id"; 1539 } 1540 description 1541 "An absolute reference to a link instance."; 1542 } 1543 leaf source-te-link-id-ref { 1544 type leafref { 1545 path "/tet:te-topologies/tet:topology" 1546 +"[tet:te-topology-id = current()/../topo-ref]" 1547 +"/tet:link/tet:source-te-link-id"; 1548 } 1549 description 1550 "An absolute reference to a link instance."; 1551 } 1552 leaf dest-te-node-id-ref { 1553 type leafref { 1554 path "/tet:te-topologies/tet:topology" 1555 +"[tet:te-topology-id = current()/../topo-ref]" 1556 +"/tet:link/tet:dest-te-node-id"; 1557 } 1558 description 1559 "An absolute reference to a link instance."; 1560 } 1561 leaf dest-te-link-id-ref { 1562 type leafref { 1563 path "/tet:te-topologies/tet:topology" 1564 +"[tet:te-topology-id = current()/../topo-ref]" 1565 +"/tet:link/tet:dest-te-link-id"; 1566 } 1567 description 1568 "An absolute reference to a link instance."; 1569 } 1570 } 1572 grouping node-ref { 1573 description 1574 "Grouping for an absolute reference to a node instance."; 1575 uses topo-ref; 1576 leaf node-ref { 1577 type leafref { 1578 path "/tet:te-topologies/tet:topology" 1579 +"[tet:te-topology-id = current()/../topo-ref]" 1580 +"/tet:node/tet:te-node-id"; 1581 } 1582 description 1583 "An absolute reference to a node instance."; 1584 } 1585 } 1586 grouping link-end-ref { 1587 description 1588 "Grouping for an absolute reference to a TE link end, which is 1589 the local representation of a TE link on a node."; 1590 uses node-ref; 1591 leaf link-end-ref { 1592 type leafref { 1593 path "/tet:te-topologies/tet:topology" 1594 +"[tet:te-topology-id = current()/../topo-ref]" 1595 +"/tet:node[tet:te-node-id = current()/../node-ref]" 1596 +"/tet:te-node-attributes/tet:te-link/tet:te-link-id"; 1597 } 1598 description 1599 "Grouping for an absolute reference to a TE link end."; 1600 } 1601 } 1603 grouping te-topology-type { 1604 description 1605 "Identifies the TE topology type."; 1606 container te-topology { 1607 presence "indicates TE topology"; 1608 description 1609 "Its presence identifies the TE topology type."; 1610 } 1611 } 1613 grouping te-path-element { 1614 description 1615 "A group of attributes defining an element in a TE path 1616 such as TE node, TE link, TE aotomic resource or label."; 1617 leaf loose { 1618 type boolean; 1619 description "true if the element is loose."; 1620 } 1621 choice element-type { 1622 description "Attributes for various element types."; 1623 case numbered-link { 1624 leaf link-ip-address { 1625 type inet:ip-address; 1626 description "IPv4 or IPv6 address."; 1627 } 1628 } 1629 case unnumbered-link { 1630 leaf link-node-id { 1631 type uint32; 1632 description 1633 "Node ID of the node where the link end point resides."; 1635 } 1636 leaf te-link-id { 1637 type uint32; 1638 description "Identifies the link end point."; 1639 } 1640 } 1641 case node { 1642 leaf te-node-id { 1643 type uint32; 1644 description "Identifies the node."; 1645 } 1646 } 1647 case label { 1648 leaf label { 1649 type uint32; 1650 description "Identifies atomic TE resource or label."; 1651 } 1652 } 1653 } 1654 } // te-path-element 1656 grouping config-schedule-attributes { 1657 description 1658 "A list of schedules defining when a particular 1659 configuration takes effect."; 1660 list schedules { 1661 key "schedule-id"; 1662 description "A list of schedule elements."; 1664 leaf schedule-id { 1665 type uint32; 1666 description "Identifies the schedule element."; 1667 } 1668 leaf start { 1669 type yang:date-and-time; 1670 description "Start time."; 1671 } 1672 leaf schedule-duration { 1673 type string { 1674 pattern 1675 'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?'; 1676 } 1677 description "Schedule duration in ISO 8601 format."; 1678 } 1679 leaf repeat-interval { 1680 type string { 1681 pattern 1682 'R\d*/P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?' 1683 + '(\d+S)?'; 1684 } 1685 description "Repeat interval in ISO 8601 format."; 1686 } 1687 } 1688 } 1690 grouping information-source-attributes { 1691 description 1692 "The attributes identifying source that has provided the 1693 related information, and the source credibility."; 1694 leaf information-source { 1695 type enumeration { 1696 enum "unknown" { 1697 description "The source is unknown"; 1698 } 1699 enum "locally-configured" { 1700 description "Configured TE link"; 1701 } 1702 enum "ospfv2" { 1703 description "OSPFv2"; 1704 } 1705 enum "ospfv3" { 1706 description "OSPFv3"; 1707 } 1708 enum "isis" { 1709 description "ISIS"; 1710 } 1711 enum "other" { 1712 description "Other source"; 1713 } 1714 } 1715 description 1716 "Indicates the source of the information."; 1717 } 1718 leaf credibility-preference { 1719 type uint16; 1720 description 1721 "The preference value to calculate the traffic 1722 engineering database credibility value used for 1723 tie-break selection between different 1724 information-source values. 1725 Higher value is more preferable."; 1726 } 1727 } 1729 grouping te-node-attributes { 1730 description "Node attributes in a TE topology."; 1731 container te-node-attributes { 1732 description "Node attributes in a TE topology."; 1733 uses config-schedule-attributes; 1734 leaf name { 1735 type inet:domain-name; 1736 description "Node name."; 1737 } 1738 leaf-list signaling-address { 1739 type inet:ip-address; 1740 description "Node signaling address."; 1741 } 1742 leaf-list flag { 1743 type flag-type; 1744 description "Node operational flags."; 1745 } 1746 leaf is-abstract { 1747 type boolean; 1748 description 1749 "true if the node is abstract, false when the node is 1750 actual."; 1751 } 1752 leaf underlay-topology { 1753 if-feature te-topology-hierarchy; 1754 type leafref { 1755 path "/tet:te-topologies/tet:topology/tet:te-topology-id"; 1756 } 1757 description 1758 "When an abstract node encapsulates a topology, 1759 this reference points to said topology."; 1760 } 1761 list te-link { 1762 key "te-link-id"; 1763 description 1764 "The local representation of a TE link, which 1765 interconnect TE nodes."; 1766 leaf te-link-id { 1767 type te-link-id; 1768 description 1769 "TE link identifier."; 1770 } 1771 choice stack-level { 1772 description 1773 "The TE link can be partitioned into bundled 1774 links, or component links."; 1775 case bundle { 1776 container bundled-links { 1777 description 1778 "A set of bundled links"; 1780 list bundled-link { 1781 key "sequence"; 1782 description 1783 "Specify a bundled interfface that is 1784 further partitioned."; 1785 leaf sequence { 1786 type uint32; 1787 description 1788 "Identify the sequence in the bundle."; 1789 } 1790 leaf te-link-ref { 1791 type leafref { 1792 path "../../../te-link-id"; 1793 require-instance "true"; 1794 } 1795 description 1796 "Reference to TE link on this node."; 1797 } 1798 } 1799 } 1800 } 1801 case component { 1802 container component-links { 1803 description 1804 "A set of component links"; 1805 list component-link { 1806 key "sequence"; 1807 description 1808 "Specify a component interfface that is 1809 sufficient to unambiguously identify the 1810 appropriate resources"; 1812 leaf sequence { 1813 type uint32; 1814 description 1815 "Identify the sequence in the bundle."; 1816 } 1817 leaf component-link-ref { 1818 type leafref { 1819 path "/if:interfaces/if:interface/if:name"; 1820 require-instance "false"; 1821 } 1822 description 1823 "Reference to component link on this 1824 node."; 1825 } 1826 } 1827 } 1829 } 1830 } 1831 } 1832 list connectivity-matrix { 1833 key "id"; 1834 description 1835 "Represents node's switching limitations, i.e. limitations 1836 in interconnecting network TE links across the node."; 1837 leaf id { 1838 type uint32; 1839 description "Identifies the connectivity-matrix entry."; 1840 } 1841 container from-link { 1842 uses tet:link-end-ref; 1843 description 1844 "Reference to source NTP."; 1845 } 1846 container to-link { 1847 uses tet:link-end-ref; 1848 description 1849 "Reference to destination NTP."; 1850 } 1851 leaf is-allowed { 1852 type boolean; 1853 description 1854 "true - switching is allowed, 1855 false - switching is disallowed."; 1856 } 1857 } 1858 container ted { 1859 description "Includes TE node attributes."; 1860 uses ted:ted-node-attributes; 1861 } 1862 } 1863 } // te-node-attributes 1865 grouping te-node-state-attributes { 1866 description "Node state attributes in a TE topology."; 1867 container te-node-state-attributes { 1868 description "Node state attributes in a TE topology."; 1869 uses information-source-attributes; 1870 } 1871 } // te-node-state-attributes 1873 grouping te-link-underlay-attributes { 1874 description "Attributes for te-link underlay."; 1875 container underlay-path { 1876 description 1877 "The service path on the underlay topology that 1878 supports this link."; 1879 leaf topology-id { 1880 type leafref { 1881 path "/tet:te-topologies/tet:topology/tet:te-topology-id"; 1882 require-instance false; 1883 } 1884 description 1885 "Identifies the topology where the path belongs."; 1886 } 1887 list path-element { 1888 key "path-element-id"; 1889 description 1890 "A list of path elements describing the service path"; 1891 leaf path-element-id { 1892 type uint32; 1893 description "To identify the element in a path."; 1894 } 1895 uses te-path-element; 1896 } 1897 } // underlay-path 1898 container underlay-backup-path { 1899 description 1900 "The backup service path on the underlay topology that 1901 supports this link."; 1902 leaf topology-id { 1903 type leafref { 1904 path "/tet:te-topologies/tet:topology/tet:te-topology-id"; 1905 require-instance false; 1906 } 1907 description 1908 "Identifies the topology where the path belongs."; 1909 } 1910 list path-element { 1911 key "path-element-id"; 1912 description 1913 "A list of path elements describing the backup service 1914 path"; 1915 leaf path-element-id { 1916 type uint32; 1917 description "To identify the element in a path."; 1918 } 1919 uses te-path-element; 1920 } 1921 } // underlay-backup-path 1922 leaf underlay-protection-type { 1923 type uint16; 1924 description 1925 "Underlay protection type desired for this link"; 1926 } 1927 container underlay-trail-src { 1928 uses tet:link-end-ref; 1929 description 1930 "Source TE link of the underlay trail."; 1931 } 1932 container underlay-trail-des { 1933 uses tet:link-end-ref; 1934 description 1935 "Destination TE link of the underlay trail."; 1936 } 1937 } // te-link-underlay-attributes 1939 grouping te-link-state-underlay-attributes { 1940 description "State attributes for te-link underlay."; 1941 leaf dynamic { 1942 type boolean; 1943 description 1944 "true if the underlay is dynamically created."; 1945 } 1946 leaf committed { 1947 type boolean; 1948 description 1949 "true if the underlay is committed."; 1950 } 1951 } // te-link-state-underlay-attributes 1953 grouping te-link-attributes { 1954 description 1955 "Link attributes in a TE topology."; 1956 container te-link-attributes { 1957 description "Link attributes in a TE topology."; 1958 uses config-schedule-attributes; 1959 leaf name { 1960 type string; 1961 description "Link Name"; 1962 } 1963 leaf-list flag { 1964 type flag-type; 1965 description "Link flags"; 1966 } 1967 leaf is-abstract { 1968 type boolean; 1969 description "true if the link is abstract."; 1970 } 1971 container underlay { 1972 if-feature te-topology-hierarchy; 1973 presence 1974 "Indicates the underlay exists for this link."; 1975 description "State of the underlay of this link."; 1977 uses te-link-underlay-attributes; 1978 } // underlay 1979 container ted { 1980 description "Includes TE link attributes."; 1981 uses ted:ted-link-attributes; 1982 } 1983 } 1984 } // te-link-attributes 1986 grouping te-link-state-attributes { 1987 description 1988 "Link state attributes in a TE topology."; 1989 container te-link-state-attributes { 1990 description "Link state attributes in a TE topology."; 1991 uses information-source-attributes; 1992 } 1993 } // te-link-state-attributes 1995 /* 1996 * Configuration data nodes 1997 */ 1999 container te-topologies { 2000 description 2001 "This container acts as the top-level data element of 2002 configuration data."; 2003 list topology { 2004 key "te-topology-id"; 2005 description 2006 "This is the model of an abstract topology. A topology 2007 contains nodes and links. Each topology MUST be identified 2008 by a unique te-topology-id for reason that a network could 2009 contain many topologies."; 2010 leaf te-topology-id { 2011 type te-topology-id; 2012 description 2013 "It is presumed that a datastore will contain many 2014 topologies. To distinguish between topologies it is 2015 vital to have UNIQUE topology identifiers."; 2016 } 2017 container topology-types { 2018 description 2019 "This container is used to identify the type, or types (as 2020 a topology can support several types simultaneously), of 2021 the topology. 2022 Topology types are the subject of several integrity 2023 constraints that an implementing server can validate in 2024 order to maintain integrity of the datastore. 2025 Topology types are indicated through separate data nodes; 2026 the set of topology types is expected to increase over 2027 time. 2028 To add support for a new topology, an augmenting module 2029 needs to augment this container with a new empty optional 2030 container to indicate the new topology type. 2031 The use of a container allows to indicate a 2032 subcategorization of topology types. 2033 The container SHALL NOT be augmented with any data nodes 2034 that serve a purpose other than identifying a particular 2035 topology type."; 2036 uses te-topology-type; // Defines the TE topology type. 2037 } 2038 list node { 2039 key "te-node-id"; 2040 leaf te-node-id { 2041 type te-node-id; 2042 description 2043 "The identifier of a node in the topology. 2044 A node is specific to a topology to which it belongs."; 2045 } 2046 description 2047 "The list of network nodes defined for the topology."; 2048 leaf te-node-template { 2049 type leafref { 2050 path "/te-topologies/node-template/name"; 2051 } 2052 description 2053 "The reference to a TE node template."; 2054 } 2055 uses te-node-attributes; 2056 } 2057 list link { 2058 key "source-te-node-id source-te-link-id " 2059 + "dest-te-node-id dest-te-link-id"; 2060 leaf source-te-node-id { 2061 type leafref { 2062 path "../../node/te-node-id"; 2063 } 2064 mandatory true; 2065 description 2066 "Source node identifier, must be in same topology."; 2067 } 2068 leaf source-te-link-id { 2069 type leafref { 2070 path "../../node[te-node-id = " 2071 + "current()/../source-te-node-id]/" 2072 + "te-node-attributes/te-link/te-link-id"; 2073 } 2074 mandatory true; 2075 description 2076 "Source TE link identifier, must be in same topology."; 2077 } 2078 leaf dest-te-node-id { 2079 type leafref { 2080 path "../../node/te-node-id"; 2081 } 2082 mandatory true; 2083 description 2084 "Destination node identifier, must be in the same 2085 topology."; 2086 } 2087 leaf dest-te-link-id { 2088 type leafref { 2089 path "../../node[te-node-id = " 2090 + "current()/../dest-te-node-id]/" 2091 + "te-node-attributes/te-link/te-link-id"; 2092 } 2093 mandatory true; 2094 description 2095 "Destination TE link identifier, must be in same 2096 topology."; 2097 } 2098 description 2099 "TE link is a logical construct that represents a way 2100 to group/map information about certain physical 2101 resources (and their properties) that interconnect TE 2102 nodes. 2103 A Network Link connects a by Local (Source) node and 2104 a Remote (Destination) Network Nodes via a set of the 2105 nodes' TE links. 2106 As it is possible to have several links between the 2107 same source and destination nodes, and as a link 2108 could potentially be re-homed, to ensure that we 2109 would always know to distinguish between 2110 links, every link is identified by a dedicated link 2111 identifier. 2112 Note that a link models a point-to-point link, not a 2113 multipoint link."; 2114 leaf te-link-template { 2115 type leafref { 2116 path "/te-topologies/link-template/name"; 2118 } 2119 description 2120 "The reference to a TE link template."; 2121 } 2122 uses te-link-attributes; 2123 } // link 2124 } // topology 2126 list node-template { 2127 key "name"; 2128 leaf name { 2129 type te-template-name; 2130 description 2131 "The name to identify a TE node template."; 2132 } 2133 description 2134 "The list of TE node templates used to define sharable 2135 and reusable TE node attributes."; 2136 uses te-node-attributes; 2137 } // node 2139 list link-template { 2140 key "name"; 2141 leaf name { 2142 type te-template-name; 2143 description 2144 "The name to identify a TE link template."; 2145 } 2146 description 2147 "The list of TE link templates used to define sharable 2148 and reusable TE link attributes."; 2149 uses te-link-attributes; 2150 } // link 2151 } // te-topologies 2153 /* 2154 * Operational state data nodes 2155 */ 2157 container te-topologies-state { 2158 config "false"; 2159 description 2160 "This container acts as the top-level state data element of 2161 operational data."; 2162 list topology { 2163 key "te-topology-id"; 2164 description 2165 "This is the model of an abstract topology. A topology 2166 contains nodes and links. Each topology MUST be identified 2167 by a unique te-topology-id for reason that a network could 2168 contain many topologies."; 2169 leaf te-topology-id { 2170 type te-topology-id; 2171 description 2172 "It is presumed that a datastore will contain many 2173 topologies. To distinguish between topologies it is 2174 vital to have UNIQUE topology identifiers."; 2175 } 2176 leaf server-provided { 2177 type boolean; 2178 config false; 2179 description 2180 "Indicates whether the topology is configurable by 2181 clients, or whether it is provided by the server. This 2182 leaf is populated by the server implementing the model. 2183 It is set to false for topologies that are created by a 2184 client; it is set to true otherwise. If it is set to 2185 true, any attempt to edit the topology MUST be rejected."; 2186 } 2187 container topology-types { 2188 description 2189 "This container is used to identify the type, or types (as 2190 a topology can support several types simultaneously), of 2191 the topology. 2192 Topology types are the subject of several integrity 2193 constraints that an implementing server can validate in 2194 order to maintain integrity of the datastore. 2195 Topology types are indicated through separate data nodes; 2196 the set of topology types is expected to increase over 2197 time. 2198 To add support for a new topology, an augmenting module 2199 needs to augment this container with a new empty optional 2200 container to indicate the new topology type. 2201 The use of a container allows to indicate a 2202 subcategorization of topology types. 2203 The container SHALL NOT be augmented with any data nodes 2204 that serve a purpose other than identifying a particular 2205 topology type."; 2206 uses te-topology-type; // Defines the TE topology type. 2207 } 2208 list node { 2209 key "te-node-id"; 2210 leaf te-node-id { 2211 type te-node-id; 2212 description 2213 "The identifier of a node in the topology. 2215 A node is specific to a topology to which it belongs."; 2216 } 2217 description 2218 "The list of network nodes defined for the topology."; 2219 leaf te-node-template { 2220 type leafref { 2221 path "/te-topologies/node-template/name"; 2222 } 2223 description 2224 "The reference to a TE node template."; 2225 } 2226 uses te-node-attributes; 2227 uses te-node-state-attributes; 2228 } 2229 list link { 2230 key "source-te-node-id source-te-link-id " 2231 + "dest-te-node-id dest-te-link-id"; 2232 leaf source-te-node-id { 2233 type leafref { 2234 path "../../node/te-node-id"; 2235 } 2236 mandatory true; 2237 description 2238 "Source node identifier, must be in same topology."; 2239 } 2240 leaf source-te-link-id { 2241 type leafref { 2242 path "../../node[te-node-id = " 2243 + "current()/../source-te-node-id]/" 2244 + "te-node-attributes/te-link/te-link-id"; 2245 } 2246 mandatory true; 2247 description 2248 "Source TE link identifier, must be in same topology."; 2249 } 2250 leaf dest-te-node-id { 2251 type leafref { 2252 path "../../node/te-node-id"; 2253 } 2254 mandatory true; 2255 description 2256 "Destination node identifier, must be in the same 2257 topology."; 2258 } 2259 leaf dest-te-link-id { 2260 type leafref { 2261 path "../../node[te-node-id = " 2262 + "current()/../dest-te-node-id]/" 2263 + "te-node-attributes/te-link/te-link-id"; 2264 } 2265 mandatory true; 2266 description 2267 "Destination TE link identifier, must be in same 2268 topology."; 2269 } 2270 description 2271 "TE link is a logical construct that represents a way 2272 to group/map information about certain physical 2273 resources (and their properties) that interconnect TE 2274 nodes. 2275 A Network Link connects a by Local (Source) node and 2276 a Remote (Destination) Network Nodes via a set of the 2277 nodes' TE links. 2278 As it is possible to have several links between the 2279 same source and destination nodes, and as a link 2280 could potentially be re-homed, to ensure that we 2281 would always know to distinguish between 2282 links, every link is identified by a dedicated link 2283 identifier. 2284 Note that a link models a point-to-point link, not a 2285 multipoint link."; 2286 leaf te-link-template { 2287 type leafref { 2288 path "/te-topologies/link-template/name"; 2289 } 2290 description 2291 "The reference to a TE link template."; 2292 } 2293 uses te-link-attributes; 2294 uses te-link-state-attributes; 2295 } // link 2296 } // topology 2297 } // te-topologies 2299 augment "/te-topologies-state/topology/link/te-link-attributes/" 2300 + "underlay" { 2301 description "Add state attributes to te-link underlay."; 2302 uses te-link-state-underlay-attributes; 2303 } 2305 /* 2306 * Notifications 2307 */ 2309 notification te-node-event { 2310 description "Notification event for TE node"; 2311 leaf event-type { 2312 type te-topology-event-type; 2313 description "Event type"; 2314 } 2315 uses node-ref; 2316 uses te-topology-type; 2317 uses tet:te-node-attributes; 2318 } 2320 notification te-link-event { 2321 description "Notification event for TE link"; 2322 leaf event-type { 2323 type te-topology-event-type; 2324 description "Event type"; 2325 } 2326 uses link-ref; 2327 uses te-topology-type; 2328 uses tet:te-link-attributes; 2329 } 2331 augment "/te-link-event/te-link-attributes/underlay" { 2332 description "Add state attributes to te-link underlay."; 2333 uses te-link-state-underlay-attributes; 2334 } 2335 } 2336 2338 4. Normative References 2340 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2341 Requirement Levels", BCP 14, RFC 2119, March 1997. 2343 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 2344 Network Configuration Protocol (NETCONF)", RFC 6020, 2345 October 2010. 2347 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 2348 Bierman, "Network Configuration Protocol (NETCONF)", RFC 2349 6241, June 2011. 2351 Authors' Addresses 2353 Xufeng Liu 2354 Ericsson 2356 Email: xufeng.liu@ericsson.com 2357 Igor Bryskin 2358 ADVA Optical Networking 2360 Email: ibryskin@advaoptical.com 2362 Vishnu Pavan Beeram 2363 Juniper Networks 2365 Email: vbeeram@juniper.net 2367 Tarek Saad 2368 Cisco Systems Inc. 2370 Email: tsaad@cisco.com 2372 Himanshu Shah 2373 Ciena 2375 Email: tsaad@cisco.com