idnits 2.17.1 draft-ietf-teas-yang-te-topo-06.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 1041 has weird spacing: '...l-tp-id bin...' == Line 1074 has weird spacing: '...logy-id te-...' == Line 1129 has weird spacing: '...l-tp-id bin...' == (14 more instances...) -- The document date (October 28, 2016) is 2737 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'R1' is mentioned on line 727, but not defined == Missing Reference: 'R2' is mentioned on line 733, but not defined == Missing Reference: 'R3' is mentioned on line 727, but not defined == Missing Reference: 'R4' is mentioned on line 733, but not defined == Missing Reference: 'R5' is mentioned on line 648, but not defined == Missing Reference: 'R6' is mentioned on line 652, but not defined == Missing Reference: 'R7' is mentioned on line 652, but not defined == Missing Reference: 'R8' is mentioned on line 652, but not defined == Missing Reference: 'R9' is mentioned on line 652, but not defined == Missing Reference: 'A' is mentioned on line 727, but not defined == Missing Reference: 'E' is mentioned on line 727, but not defined == Missing Reference: 'B' is mentioned on line 733, but not defined == Missing Reference: 'F' is mentioned on line 733, but not defined == Outdated reference: A later version (-05) exists of draft-liu-netmod-yang-schedule-00 Summary: 0 errors (**), 0 flaws (~~), 21 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 TEAS Working Group Xufeng Liu 2 Internet Draft Kuatro Technologies 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: April 28, 2017 October 28, 2016 16 YANG Data Model for TE Topologies 17 draft-ietf-teas-yang-te-topo-06 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 April 28, 2017. 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. Transitional TE Link for Multi-Layer Topologies...........8 81 3.5. TE Link Termination Point (LTP)..........................10 82 3.6. TE Tunnel Termination Point (TTP)........................10 83 3.7. TE Node Connectivity Matrix..............................11 84 3.8. TTP Local Link Connectivity List (LLCL)..................11 85 3.9. TE Path..................................................11 86 3.10. TE Inter-Layer Lock.....................................11 87 3.11. Underlay TE topology....................................13 88 3.12. Overlay TE topology.....................................13 89 3.13. Abstract TE topology....................................13 90 4. Model Applicability...........................................14 91 4.1. Native TE Topologies.....................................14 92 4.2. Customized TE Topologies.................................16 93 4.3. Merging TE Topologies Provided by Multiple Providers.....18 94 4.4. Dealing with Multiple Abstract TE Topologies Provided by the 95 Same Provider.................................................22 96 5. Modeling Considerations.......................................25 97 5.1. Generic network topology building blocks.................25 98 5.2. Technology agnostic TE Topology model....................25 99 5.3. Model Structure..........................................26 100 5.4. Topology Identifiers.....................................27 101 5.5. Generic TE Link Attributes...............................27 102 5.6. Generic TE Node Attributes...............................28 103 5.7. TED Information Sources..................................30 104 5.8. Overlay/Underlay Relationship............................31 105 5.9. Templates................................................32 106 5.10. Scheduling Parameters...................................33 107 5.11. Notifications...........................................33 108 6. Tree Structure................................................33 109 7. TE Topology Yang Module.......................................52 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 Multi-layer TE nodes providing switching functions at multiple 303 network layers are an example where a physical node can be decomposed 304 into multiple logical TE nodes (fractions of a node). Some of these 305 (logical) TE nodes may reside in the client layer TE topology while 306 the remaining TE nodes belong to the server layer TE topology. 308 In Figure 1, Node-1, Node-2, and Node-3 are TE nodes. 310 3.3. TE Link 312 TE link is an element of a TE topology (presented as an edge on TE 313 graph, arrows indicate one or both directions of the TE link). TE 314 link represents one or several (physical) links or a fraction of a 315 link. TE link belongs to and is fully defined in exactly one TE 316 topology. TE link is assigned with the TE topology scope unique ID. 317 TE link attributes include parameters related to the data plane 318 aspects of the associated link(s) (e.g. unreserved bandwidth, 319 resource maps/pools, etc.), as well as the configuration data (such 320 as remote node/link IDs, SRLGs, administrative colors, etc.). TE link 321 is connected to TE node, terminating the TE link via exactly one TE 322 link termination point (LTP). 324 In Figure 1, Link-12 and Link-23 are TE links. 326 3.4. Transitional TE Link for Multi-Layer Topologies 328 Networks are typically composed of multiple network layers where one 329 or multiple signals in the client layer network can be multiplexed 330 and encapsulated into a server layer signal. The server layer signal 331 can be carried in the server layer network across multiple nodes 332 until the server layer signal is terminated and the client layer 333 signals reappear in the node that terminates the server layer signal. 334 Examples of multi-layer networks are: IP over MPLS over Ethernet, low 335 order ODUk signals multiplexed into a high order ODUl (l>k) carried 336 over an OCh signal (optical transport network). 338 TE links as defined in 3.3. can be used to represent links within a 339 network layer. In case of a multi-layer network, TE nodes and TE 340 links only allow representation of each network layer as a separate 341 TE topology Each of these single layer TE topologies would be 342 isolated from their client and their server layer TE topology, if 343 present (the highest and the lowest network layer in the hierarchy 344 only have a single adjacent layer below or above, respectively). 345 Multiplexing of client layer signals and encapsulating them into a 346 server layer signal requires a function that is provided inside a 347 node (typically realized in hardware). This function is also called 348 layer transition. 350 One of the key requirements for path computation is to be able to 351 calculate a path between two endpoints across a multi-layer network 352 based on the TE topology representing this multi-layer network. This 353 means that an additional TE construct is needed that represents 354 potential layer transitions in the multi-layer TE-topology that 355 connects the TE-topologies representing each separate network layer. 356 The so-called transitional TE link is such a construct and it 357 represents the layer transition function residing inside a node that 358 is decomposed into multiple logical nodes that are represented as TE 359 nodes. Hence, a transitional TE link connects a client layer node 360 with a server layer node. A TE link as defined in 3.3. has LTPs of 361 exactly the same kind on each link end whereas the transitional TE 362 link has client layer LTPs on the client side of the transitional 363 link and in most cases a single server layer LTP on the server side. 364 It should be noted that transitional links are a helper construct in 365 the multi-layer TE topology and they only exist as long as they are 366 not in use (as they represent potential connectivity). When the 367 server layer trail has been established between the server layer LTP 368 of two transitional links in the server layer network, the resulting 369 client layer link in the data plane will be represented as a normal 370 TE link in the client layer topology. The transitional TE links will 371 re-appear when the server layer trail has been torn down. 373 +------------------+ 374 | +------+ | +------+ 375 -----|Client|------+ | Client -----|Client| 376 | |Layer |---+ | | Layer |Layer | 377 -----|Switch|-+ | | | Links -----|Node | 378 | +------+ | | | | +------+ 379 | | | | | Client | | | 380 | | | ---_| Layer --- --- 381 ***|**********|*| \ /*|***************************\ /*\ /**** 382 | --- | | Server Transitional | | 383 | Layer \ / | | Layer Links | | 384 | Term. | | | | | 385 | | | | | | 386 | +------+ | +------+ 387 =============|Server|===== Server ====|Server|==== 388 | |Layer | | Layer |Layer | 389 =============|Switch|===== Links ====|Node |==== 390 | +------+ | +------+ 391 +------------------+ 393 Physical Node View TE-Topology View 395 Figure 2: Modeling a Multi-Layer Node (Dual-Layer Example) 397 3.5. TE Link Termination Point (LTP) 399 TE link termination point (LTP) is a conceptual point of connection 400 of a TE node to one of the TE links, terminated by the TE node. 401 Cardinality between an LTP and the associated TE link is 1:0..1. 403 In Figure 1, Node-2 has six LTPs: LTP-1 to LTP-6. 405 3.6. TE Tunnel Termination Point (TTP) 407 TE tunnel termination point (TTP) is an element of TE topology 408 representing one or several of potential transport service 409 termination points (i.e. service client adaptation points such as 410 WDM/OCh transponder). TTP is associated with (hosted by) exactly one 411 TE node. TTP is assigned with the TE node scope unique ID. Depending 412 on the TE node's internal constraints, a given TTP hosted by the TE 413 node could be accessed via one, several or all TE links terminated by 414 the TE node. 416 In Figure 1, Node-1 has two TTPs: TTP-1 and TTP-2. 418 3.7. TE Node Connectivity Matrix 420 TE node connectivity matrix is a TE node's attribute describing the 421 TE node's switching limitations in a form of valid switching 422 combinations of the TE node's LTPs (see below). From the point of 423 view of a potential TE path arriving at the TE node at a given 424 inbound LTP, the node's connectivity matrix describes valid 425 (permissible) outbound LTPs for the TE path to leave the TE node 426 from. 428 In Figure 1, the connectivity matrix on Node-2 is: 429 {, , , , 430 } 432 3.8. TTP Local Link Connectivity List (LLCL) 434 TTP Local Link Connectivity List (LLCL) is a List of TE links 435 terminated by the TTP hosting TE node (i.e. list of the TE link 436 LTPs), which the TTP could be connected to. From the point of view of 437 a potential TE path LLCL provides a list of valid TE links the TE 438 path needs to start/stop on for the connection, taking the TE path, 439 to be successfully terminated on the TTP in question. 441 In Figure 1, the LLCL on Node-1 is: 442 {, , , } 444 3.9. TE Path 446 TE path is an ordered list of TE links and/or TE nodes on the TE 447 topology graph, inter-connecting a pair of TTPs to be taken by a 448 potential connection. TE paths, for example, could be a product of 449 successful path computation performed for a given transport service. 451 In Figure 1, the TE Path for TE-Tunnel-1 is: 452 {Node-1:TTP-1, Link-12, Node-2, Link-23, Node-3:TTP1} 454 3.10. TE Inter-Layer Lock 456 TE inter-layer lock is a modeling concept describing client-server 457 layer adaptation relationships and hence important for the multi- 458 layer traffic engineering. It is an association of M client layer 459 LTPs and N server layer TTPs, within which data arriving at any of 460 the client layer LTPs could be adopted onto any of the server layer 461 TTPs. TE inter-layer lock is identified by inter-layer lock ID, which 462 is unique across all TE topologies provided by the same provider. The 463 client layer LIPs and the server layer TTPs associated within a given 464 TE inter-layer lock are decorated with the same inter-layer lock ID 465 attribute. 467 (IL-1) C-LTP-1 +------------+ C-LTP-2 (IL-1) 468 --------O (IL-1) O-------- 469 (IL-1) C-LTP-3 | S-TTP-1 | C-LTP-4 (IL-1) 470 --------O __ 0-------- 471 (IL-1) C-LTP-5 | *\/* | C-LTP-5 (IL-1) 472 --------O * * O-------- 473 | *(IL-1)* | 474 S-LTP-3 | * S-TTP-2* | S-LTP-4 475 --------o* __ *o-------- 476 | *\/* | 477 | * * | 478 +--o------o--+ 479 S-LTP-1 | | S-LTP-2 481 Figure 3: TE Inter-Layer Lock ID Associations 483 On the picture above a TE inter-layer lock with IL_1 ID associates 6 484 client layer LTPs (C-LTP-1 - C-LTP-6) with two server layer TTPs (S- 485 TTP-1 and S-TTP-2). They all have the same attribute - TE inter-layer 486 lock ID: IL-1, which is the only thing that indicates the 487 association. A given LTP may have 0, 1 or more inter-layer lock IDs. 488 In the latter case this means that the data arriving at the LTP may 489 be adopted onto any of TTPs associated with all specified inter-layer 490 locks. For example, C-LTP-1 could have two inter-layer lock IDs - IL- 491 1 and IL-2. This would mean that C-LTP-1 for adaptation purposes 492 could use not just TTPs associated with inter-layer lock IL-1 (i.e. 493 S-TTP-1 and S-TTP-2 on the picture), but any of TTPs associated with 494 inter-layer lock IL-2 as well. Likewise, a given TTP may have one or 495 more inter-layer lock IDs, meaning that it can offer the adaptation 496 service to any of client layer LTPs with inter-layer lock ID matching 497 one of its own. Additionally, each TTP has an attribute - Unreserved 498 Adaptation Bandwidth, which announces its remaining adaptation 499 resources sharable between all potential client LTPs. 501 LTPs and TTPs associated within the same TE inter-layer lock may be 502 hosted by the same (hybrid, multi-layer) TE node or multiple TE nodes 503 located in the same or separate TE topologies. The latter is 504 especially important since TE topologies of different layer networks 505 could be modeled by separate augmentations of the basic (common to 506 all layers) TE topology model. 508 3.11. Underlay TE topology 510 Underlay TE topology is a TE topology that serves as a base for 511 constructing of overlay TE topologies 513 3.12. Overlay TE topology 515 Overlay TE topology is a TE topology constructed based on one or more 516 underlay TE topologies. Each TE node of the overlay TE topology 517 represents an arbitrary segment of an underlay TE topology; each TE 518 link of the overlay TE topology represents an arbitrary TE path in 519 one of the underlay TE topologies. The overlay TE topology and the 520 supporting underlay TE topologies may represent distinct layer 521 networks (e.g. OTN/ODUk and WDM/OCh respectively) or the same layer 522 network. 524 3.13. Abstract TE topology 526 Abstract TE topology is an overlay TE topology created by a topology 527 provider and customized for a topology provider's client based on one 528 or more of the provider's native TE topologies (underlay TE 529 topologies), the provider's policies and the client's preferences. 530 For example, a first level topology provider (such as Domain 531 Controller) can create an abstract TE topology for its client (e.g. 532 Super Controller) based on the provider's one or more native TE 533 topologies, local policies/profiles and the client's TE topology 534 configuration requests 536 Figure 4 shows an example of abstract TE topology. 538 +---+ +---+ 539 |s31|--------------|S5 | 540 +---+\ / +---+ 541 \ / 542 \ / 543 \+---+/ +---+ 544 /|AN1|\----------------|S8 | 545 / +---+ \ +---+ 546 +---+ / \ +---+ 547 |S9 |-------------|S11| 548 +---+ +---+ 549 Abstract TE Topology 551 +---+ +---+ 552 |S1 |--------------------|S2 | 553 +---+ +---+ 554 / \ 555 / \ 556 +---+ / +---+ \ +---+ 557 |s3 |--------------------|S4 |---------|S5 | 558 +---+\ +---+ +---+ 559 \ \ \ 560 \ \ \ 561 \+---+ +---+ +---+ 562 /|S6 |\ |S7 |---------|S8 | 563 / +---+ \ +---+\ /+---+ 564 +---+ / \ +---+ +---+ / 565 |S9 |-------------|S10|--------------|S11|/ 566 +---+ +---+ +---+ 567 Native TE Topology 569 Figure 4: Abstract TE Topology 571 4. Model Applicability 573 4.1. Native TE Topologies 575 The model discussed in this draft can be used to represent and 576 retrieve native TE topologies on a given TE system. 578 +---+ +---+ +---+ +---+ +---+ 579 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 580 +---+ +---+ +---+ +---+ +---+ 581 | / \ / \ / 582 | / \ / \ / 583 | / \ / \ / 584 | / \ / \ / 585 | / \ / \ / 586 +---+ +---+ +---+ +---+ 587 | R6|-------------| R7| | R8|---------| R9| 588 +---+ +---+ +---+ +---+ 590 Figure 5a: Example Network Topology 592 Consider the network topology depicted in Figure 5a (R1 .. R9 are 593 nodes representing routers). An implementation MAY choose to 594 construct a native TE Topology using all nodes and links present in 595 the given TED as depicted in Figure 5b. The data model proposed in 596 this document can be used to retrieve/represent this TE topology. 598 --------------- 599 | Native | | [ ] TE Node 600 | TE-Topology | | +++ TE Link 601 --------------- o-------------- 603 [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] 604 + + + + + + 605 + + + + + + 606 + + ++ ++ 607 [R6] +++++++++ [R7] [R8] ++++ [R9] 609 Figure 5b: Native TE Topology as seen on Node R3 611 Consider the case of the topology being split in a way that some 612 nodes participate in OSPF-TE while others participate in ISIS-TE 613 (Figure 6a). An implementation MAY choose to construct separate TE 614 Topologies based on the information source. The native TE Topologies 615 constructed using only nodes and links that were learnt via a 616 specific information source are depicted in Figure 6b. The data model 617 proposed in this document can be used to retrieve/represent these TE 618 topologies. 620 Similarly, the data model can be used to represent/retrieve a TE 621 Topology that is constructed using only nodes and links that belong 622 to a particular technology layer. The data model is flexible enough 623 to retrieve and represent many such native TE Topologies. 625 : 626 TE info distributed via ISIS-TE : TE info distributed via OSPF-TE 627 : 628 +---+ +---+ +---+ +---+ +---+ 629 | R1|-------| R2|--------| R3|---------| R4|---------| R5| 630 +---+ +---+ +---+ +---+ +---+ 631 | / : \ / \ / 632 | / : \ / \ / 633 | / : \ / \ / 634 | / : \ / \ / 635 | / : \ / \ / 636 +---+ +---+ : +---+ +---+ 637 | R6|-------------| R7| : | R8|---------| R9| 638 +---+ +---+ : +---+ +---+ 639 : 641 Figure 6a: Example Network Topology 643 ----------------------- : ----------------------- 644 |Native TE Topology | : |Native TE Topology | 645 |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | 646 ----------------------- : ----------------------- 647 : 648 [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] 649 + + : + + + + 650 + + : + + + + 651 + + : ++ ++ 652 [R6] +++++++++ [R7] : [R8] ++++ [R9] 654 Figure 6b: Native TE Topologies as seen on Node R3 656 4.2. Customized TE Topologies 658 The model discussed in this draft can be used to represent, retrieve 659 and manipulate customized TE Topologies. The model allows the 660 provider to present the network in abstract TE Terms on a per client 661 basis. These customized topologies contain sufficient information for 662 the path computing client to select paths according to its policies. 664 | +---+ /-\ 665 | | | Router ( ) WDM 666 | +---+ Node \-/ node 667 | 668 o---------------------------- 670 +---+ /-\ /-\ /-\ +---+ 671 | R1|-------( A )--------( C )---------( E )---------| R3| 672 +---+ \-/ \-/ \-/ +---+ 673 / \ / \ 674 / \ / \ 675 / \ / \ 676 / \ / \ 677 / \ / \ 678 +---+ /-\ /-\ /-\ +---+ 679 | R2|---------( B )---------( D )---------( F )---------| R4| 680 +---+ \-/ \-/ \-/ +---+ 682 Figure 7: Example packet optical topology 684 Consider the network topology depicted in Figure 7. This is a typical 685 packet optical transport deployment scenario where the WDM layer 686 network domain serves as a Server Network Domain providing transport 687 connectivity to the packet layer network Domain (Client Network 688 Domain). Nodes R1, R2, R3 and R4 are IP routers that are connected to 689 an Optical WDM transport network. A, B, C, D, E and F are WDM nodes 690 that constitute the Server Network Domain. 692 | ***** B-F WDM Path 693 | @@@@@ B-E WDM Path 694 | $$$$$ A-E WDM Path 695 o-------------------- 697 +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ 698 | R1|-------( A )--------( C )---------( E )---------| R3| 699 +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ 700 @/ \ / \ 701 @/ \ / \ 702 @/ \ / \ 703 @/ \ / \ 704 @/ \ / \ 705 +---+ /-\ ********* /-\ ********* /-\ +---+ 706 | R2|---------( B )---------( D )---------( F )---------| R4| 707 +---+ \-/ \-/ \-/ +---+ 709 Figure 8a: Paths within the provider domain 710 ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ 711 +++++ 712 ++++ 713 ++++ 714 ++++ 715 ++++ 716 ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ 718 Figure 8b: Customized TE Topology provided to the Client 720 The goal here is to augment the Client TE Topology with a customized 721 TE Topology provided by the WDM network. Given the availability of 722 the paths A-E, B-F and B-E (Figure 8a), a customized TE Topology as 723 depicted in Figure 8b is provided to the Client. This customized TE 724 Topology is merged with the Client's Native TE Topology and the 725 resulting topology is depicted in Figure 8c. 727 [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] 728 +++++ 729 ++++ 730 ++++ 731 ++++ 732 ++++ 733 [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] 735 Figure 8c: Customized TE Topology merged with the Client's Native TE 736 Topology 738 The data model proposed in this document can be used to 739 retrieve/represent/manipulate the customized TE Topology depicted in 740 Figure 8b. 742 4.3. Merging TE Topologies Provided by Multiple Providers 744 A client may receive TE topologies provided by multiple providers, 745 each of which managing a separate domain of multi-domain network. In 746 order to make use of said topologies, the client is expected to merge 747 the provided TE topologies into one or more client's native TE 748 topologies, each of which homogeneously representing the multi-domain 749 network. This makes it possible for the client to select end-to-end 750 TE paths for its services traversing multiple domains. 752 In particular, the process of merging TE topologies includes: 754 - Identifying neighboring domains and locking their topologies 755 horizontally by connecting their inter-domain open-ended TE links; 756 - Renaming TE node, link, and SRLG IDs to ones allocated from a 757 separate name space; this is necessary because all TE topologies 758 are considered to be, generally speaking, independent with a 759 possibility of clashes among TE node, link or SRLG IDs; 760 - Locking, vertically, TE topologies associated with different layer 761 networks, according to provided topology inter-layer locks; this is 762 to facilitate inter-layer path computations across multiple TE 763 topologies provided by the same topology provider. 765 /---\ +---+ +---+ +---+ +---+ /---\ 766 |s3 |------|S13|----|S15|------|S23|----|S25|------|C21| 767 \---/ +---+\ +---+ +---+ /+---+ \---/ 768 \ / 769 \ / 770 \+---+ +---+/ +---+ /---\ 771 |S18|------|S24| |S28|------|C22| 772 +---+ +---+\ /+---+ \---/ 773 \/ 774 /\ 775 /---\ +---+ +---+ +---+/ \+---+ /---\ 776 |C12|------|S19|----|S17|------|S29|----|S27|------|C23| 777 \---/ +---+ +---+ +---+ +---+ \---/ 779 Domain 1 TE Topology Domain 2 TE Topology 781 +---+ +---+ +---+ +---+ 782 -----|S13|----|S15|---- ----|S23|----|S25|---- 783 +---+\ +---+ +---+ /+---+ 784 \ / 785 \ / 786 \+---+ +---+/ +---+ 787 |S18|---- ----|S24| |S28|---- 788 +---+ +---+\ /+---+ 789 \/ 790 /\ 791 +---+ +---+ +---+/ \+---+ 792 -----|S19|----|S17|---- ----|S29|----|S27|---- 793 +---+ +---+ +---+ +---+ 795 Figure 9: Merging Domain TE Topologies 797 Figure 9 illustrates the process of merging, by the client, of TE 798 topologies provided by the client's providers. In the Figure, each of 799 the two providers caters to the client (abstract or native) TE 800 topology, describing the network domain under the respective 801 provider's control. The client, by consulting the attributes of the 802 inter-domain TE links - such as inter-domain plug IDs or remote TE 803 node/link IDs (as defined by the TE Topology model) - is able to 804 determine that: 806 a) the two domains are adjacent and are inter-connected via three 807 inter-domain TE links, and; 809 b) each domain is connected to a separate customer site, connecting 810 the left domain in the Figure to customer devices C-11 and C-12, 811 and the right domain to customer devices C-21, C-22 and C-23. 813 Therefore, the client inter-connects the open-ended TE links, as 814 shown on the upper part of the Figure. 816 As mentioned, one way to inter-connect the open-ended inter-domain TE 817 links of neighboring domains is to mandate the providers to specify 818 remote nodeID/linkID attribute in the provided inter-domain TE links. 819 This, however, may prove to be not flexible. For example, the 820 providers may not know the respective remote nodeIDs/ linkIDs. More 821 importantly, this option does not allow for the client to mix-n-match 822 multiple (more than one) topologies catered by the same providers 823 (see below). Another, more flexible, option to resolve the open-ended 824 inter-domain TE links is by decorating them with the inter-domain 825 plug ID attribute. Inter-domain plug ID is a network-wide unique 826 number that identifies on the network a connectivity supporting a 827 given inter-domain TE link. Instead of specifying remote node ID/link 828 ID, an inter-domain TE link may provide a non-zero inert-domain plug 829 ID. It is expected that two neighboring domain TE topologies 830 (provided by separate providers) will have each at least one open- 831 ended inter-domain TE link with an inter-domain plug ID matching to 832 one provided by its neighbor. For example, the inter-domain TE link 833 originating from node S5 of the Domain 1 TE topology (Figure 1) and 834 the inter-domain TE link coming from node S3 of Domain2 TE topology 835 may specify matching inter-domain plug ID (e.g. 175344) This allows 836 for the client to identify adjacent nodes in the separate neighboring 837 TE topologies and resolve the inter-domain TE links connecting them 838 regardless of their respective nodeIDs/linkIDs (which, as mentioned, 839 could be allocated from independent name spaces). Inter-domain plug 840 IDs may be assigned and managed by a central network authority. 841 Alternatively, inter-domain plug IDs could be dynamically auto- 842 discovered (e.g. via LMP protocol). 844 Furthermore, the client renames the TE nodes, links and SRLGs offered 845 in the abstract TE topologies by assigning to them IDs allocated from 846 a separate name space managed by the client. Such renaming is 847 necessary, because the two abstract TE topologies may have their own 848 name spaces, generally speaking, independent one from another; hence, 849 ID overlaps/clashes are possible. For example, both TE topologies 850 have TE nodes named S7, which, after renaming, appear in the merged 851 TE topology as S17 and S27, respectively. 853 Once the merging process is complete, the client can use the merged 854 TE topology for path computations across both domains, for example, 855 to compute a TE path connecting C-11 to C-23. 857 4.4. Dealing with Multiple Abstract TE Topologies Provided by the Same 858 Provider 860 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 862 +---+ +---+ +---+ +---+ 863 -----|S13|----|S15|---- ----|S23|----|S25|---- 864 +---+\ +---+ +---+ /+---+ 865 \ / 866 \ / 867 \+---+ +---+/ +---+ 868 |S18|---- ----|S24| |S28|---- 869 +---+ +---+\ /+---+ 870 \/ 871 /\ 872 +---+ +---+ +---+/ \+---+ 873 -----|S19|----|S17|---- ----|S29|----|S27|---- 874 +---+ +---+ +---+ +---+ 876 Domain 1 Abstract TE Topology 1 Domain 2 Abstract TE Topology 1 878 +------------+ +------------+ 879 -----| |---- ----| |---- 880 | | | | 881 | AN1 |---- ----| AN1 |---- 882 | | | | 883 -----| |---- ----| |---- 884 +------------+ +------------+ 886 Figure 10: Merging Domain TE Topologies 888 Based on local configuration, templates and/or policies pushed by the 889 client, a given provider may expose more than one abstract TE 890 topology to the client. For example, one abstract TE topology could 891 be optimized based on a lowest-cost criterion, while another one 892 could be based on best possible delay metrics, while yet another one 893 could be based on maximum bandwidth availability for the client 894 services. Furthermore, the client may request all or some providers 895 to expose additional abstract TE topologies, possibly of a different 896 type and/or optimized differently, as compared to already-provided TE 897 topologies. In any case, the client should be prepared for a provider 898 to offer to the client more than one abstract TE topology. 900 It should be up to the client (based on the client's local 901 configuration and/or policies conveyed to the client by the client's 902 clients) to decide how to mix-and-match multiple abstract TE 903 topologies provided by each or some of the providers, as well as how 904 to merge them into the client's native TE topologies. The client also 905 decides how many such merged TE topologies it needs to produce and 906 maintain. For example, in addition to the merged TE topology depicted 907 in the upper part of Figure 1, the client may merge the abstract TE 908 topologies received from the two providers, as shown in Figure 10, 909 into the client's additional native TE topologies, as shown in Figure 910 11. 912 Note that allowing for the client mix-n-matching of multiple TE 913 topologies assumes that inter-domain plug IDs (rather than remote 914 nodeID/linkID) option is used for identifying neighboring domains and 915 inter-domain TE link resolution. 917 Client's Merged TE Topology 2 919 /---\ +------------+ +------------+ /---\ 920 |s3 |------| |------| |------|C21| 921 \---/ | | | | \---/ 922 | | | | 923 | | | | 924 | | | | /---\ 925 | AN11 |------| AN21 |------|C22| 926 | | | | \---/ 927 | | | | 928 | | | | 929 /---\ | | | | /---\ 930 |C12|------| |------| |------|C23| 931 \---/ +------------+ +------------+ \---/ 933 Client's Merged TE Topology 3 935 /---\ +------------+ +---+ +---+ /---\ 936 |s3 |------| |------|S23|----|S25|------|C21| 937 \---/ | | +---+ /+---+ \---/ 938 | | / 939 | | / 940 | | +---+/ +---+ /---\ 941 | AN11 |------|S24| |S28|------|C22| 942 | | +---+\ /+---+ \---/ 943 | | \/ 944 | | /\ 945 /---\ | | +---+/ \+---+ /---\ 946 |C12|------| |------|S29|----|S27|------|C23| 947 \---/ +------------+ +---+ +---+ \---/ 949 Figure 11: Multiple Native (Merged) Client's TE Topologies 951 It is important to note that each of the three native (merged) TE 952 topologies could be used by the client for computing TE paths for any 953 of the multi-domain services. The choice as to which topology to use 954 for a given service depends on the service parameters/requirements 955 and the topology's style, optimization criteria and the level of 956 details. 958 5. Modeling Considerations 960 5.1. Generic network topology building blocks 962 The generic network topology building blocks are discussed in [YANG- 963 NET-TOPO]. The TE Topology model proposed in this document augments 964 and uses the ietf-network-topology module defined in [YANG-NET-TOPO]. 966 +------------------------+ 967 | Generic | 968 | Network Topology Model | 969 | (ietf-network-topology)| 970 +------------------------+ 971 | 972 | 973 | 974 V 975 +------------------------+ 976 | TE Topology | 977 | Model | 978 | | 979 +------------------------+ 981 Figure 12: Augmenting the Generic Network Topology Model 983 5.2. Technology agnostic TE Topology model 985 The TE Topology model proposed in this document is meant to be 986 technology agnostic. Other technology specific TE Topology models can 987 augment and use the building blocks provided by the proposed model. 989 +-------------------+ 990 | Generic | 991 | TE Topology Model | 992 +-------------------+ 993 | 994 +-------------+-------------+-------------+ 995 | | | | 996 V V V V 997 +------------+ +------------+ 998 | Technology | | Technology | 999 | Specific | ...................... | Specific | 1000 | TE Topology| | TE Topology| 1001 | Model 1 | | Model n | 1002 +------------+ +------------+ 1004 Figure 13: Augmenting the Technology agnostic TE Topology model 1006 5.3. Model Structure 1008 The high-level model structure proposed by this document is as shown 1009 below: 1011 module: ietf-te-topology 1012 augment /nw:networks/nw:network/nw:network-types: 1013 +--rw te-topology! 1015 augment /nw:networks: 1016 +--rw te! 1017 +--rw templates 1018 +--rw node-template* [name] {template}? 1019 | ............ 1020 +--rw link-template* [name] {template}? 1021 ............ 1023 augment /nw:networks/nw:network: 1024 +--rw provider-id? te-types:te-global-id 1025 +--rw client-id? te-types:te-global-id 1026 +--rw te-topology-id? te-types:te-topology-id 1027 +--rw te! 1028 +--rw config 1029 | ............ 1030 +--ro state 1031 ............ 1033 augment /nw:networks/nw:network/nw:node: 1034 +--rw te-node-id? te-types:te-node-id 1035 +--rw te! 1036 +--rw config 1037 | ............ 1038 +--ro state 1039 | ............ 1040 +--rw tunnel-termination-point* [tunnel-tp-id] 1041 +--rw tunnel-tp-id binary 1042 +--rw config 1043 | ............ 1044 +--ro state 1046 augment /nw:networks/nw:network/nt:link: 1047 +--rw te! 1048 +--rw config 1049 | .......... 1050 +--ro state 1051 .......... 1053 augment /nw:networks/nw:network/nw:node/nt:termination-point: 1054 +--rw te-tp-id? te-types:te-tp-id 1055 +--rw te! 1056 +--rw config 1057 | ............ 1058 +--ro state 1059 ............ 1061 5.4. Topology Identifiers 1063 The TE-Topology is uniquely identified by a key that has 3 1064 constituents - te-topology-id, provider-id and client-id. The 1065 combination of provider-id and te-topology-id uniquely identifies a 1066 native TE Topology on a given provider. The client-id is used only 1067 when Customized TE Topologies come into play; a value of "0" is used 1068 as the client-id for native TE Topologies. 1070 augment /nw:networks/nw:network: 1071 +--rw te! 1072 +--rw provider-id te-global-id 1073 +--rw client-id te-global-id 1074 +--rw te-topology-id te-topology-id 1076 5.5. Generic TE Link Attributes 1078 The model covers the definitions for generic TE Link attributes - 1079 bandwidth, admin groups, SRLGs, switching capabilities, TE metric 1080 extensions etc. 1082 +--rw te-link-attributes 1083 ..................... 1084 +--rw admin-status? te-admin-status 1085 | ..................... 1086 +--rw link-index? uint64 1087 +--rw administrative-group? te-types:admin-groups 1088 +--rw link-protection-type? enumeration 1089 +--rw max-link-bandwidth? te-bandwidth 1090 +--rw max-resv-link-bandwidth? te-bandwidth 1091 +--rw unreserved-bandwidth* [priority] 1092 | ..................... 1093 +--rw te-default-metric? uint32 1094 | ..................... 1095 +--rw te-srlgs 1096 ..................... 1098 5.6. Generic TE Node Attributes 1100 The model covers the definitions for generic TE Node attributes. 1102 The definition of a generic connectivity matrix is shown below: 1104 +--rw te-node-attributes 1105 ........... 1106 +--rw connectivity-matrix* [id] 1107 | +--rw id uint32 1108 | +--rw from 1109 | | +--rw tp-ref? leafref 1110 | +--rw to 1111 | | +--rw tp-ref? leafref 1112 | +--rw is-allowed? boolean 1113 | +--rw label-restriction* [inclusive-exclusive label-start] 1114 ........... 1115 | +--rw underlay! {te-topology-hierarchy}? 1116 ........... 1117 | +--rw max-link-bandwidth? te-bandwidth 1118 | +--rw max-resv-link-bandwidth? te-bandwidth 1119 | +--rw unreserved-bandwidth* [priority] 1120 ........... 1121 | +--rw te-default-metric? uint32 1122 | +--rw te-delay-metric? uint32 1123 | +--rw te-srlgs 1124 ........... 1126 The definition of a TTP Local Link Connectivity List is shown below: 1128 +--rw tunnel-termination-point* [tunnel-tp-id] 1129 +--rw tunnel-tp-id binary 1130 +--rw config 1131 | +--rw switching-capability? identityref 1132 | +--rw encoding? identityref 1133 | +--rw inter-layer-lock-id? uint32 1134 | +--rw protection-type? identityref 1135 | +--rw local-link-connectivity* [link-tp-ref] 1136 | +--rw link-tp-ref leafref 1137 | +--rw label-restriction* [inclusive-exclusive label-start] 1138 ........... 1139 | +--rw max-lsp-bandwidth* [priority] 1140 ........... 1141 | +--rw max-link-bandwidth? te-bandwidth 1142 | +--rw max-resv-link-bandwidth? te-bandwidth 1143 | +--rw unreserved-bandwidth* [priority] 1144 ........... 1145 | +--rw te-default-metric? uint32 1146 | +--rw te-delay-metric? uint32 1147 | +--rw te-srlgs 1148 ........... 1149 +--ro state 1150 | +--ro switching-capability? identityref 1151 | +--ro encoding? identityref 1152 | +--ro inter-layer-lock-id? uint32 1153 | +--ro protection-type? identityref 1154 | +--ro local-link-connectivity* [link-tp-ref] 1155 | | +--ro link-tp-ref leafref 1156 | | +--ro label-restriction* [inclusive-exclusive label-start] 1157 ........... 1158 | | +--ro max-lsp-bandwidth* [priority] 1159 ........... 1160 | | +--ro max-link-bandwidth? te-bandwidth 1161 | | +--ro max-resv-link-bandwidth? te-bandwidth 1162 | | +--ro unreserved-bandwidth* [priority] 1163 ........... 1164 | | +--ro te-default-metric? uint32 1165 | | +--ro te-delay-metric? uint32 1166 | | +--ro te-srlgs 1167 ........... 1168 | | +--ro value* te-types:srlg 1170 5.7. TED Information Sources 1172 The model allows each TE topological element to have multiple TE 1173 information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, 1174 System-Processed, Other). Each information source is associated with 1175 a credibility preference to indicate precedence. In scenarios where a 1176 customized TE Topology is merged into a Client's native TE Topology, 1177 the merged topological elements would point to the corresponding 1178 customized TE Topology as its information source. 1180 augment /nw:networks/nw:network/nw:node: 1181 +--rw te! 1182 ........... 1183 +--ro state 1184 ........ 1185 | +--ro information-source? te-info-source 1186 | +--ro information-source-state 1187 | | +--ro credibility-preference? uint16 1188 | | +--ro logical-network-element? string 1189 | | +--ro network-instance? string 1190 | | +--ro topology 1191 | | +--ro provider-ref? leafref 1192 | | +--ro client-ref? leafref 1193 | | +--ro te-topology-ref? leafref 1194 | | +--ro network-ref? leafref 1195 | | +--ro node-ref? leafref 1196 | +--ro information-source-entry* [information-source] 1197 ............ 1199 augment /nw:networks/nw:network/nt:link: 1200 +--rw te! 1201 ........... 1202 +--ro state 1203 ......... 1204 | +--ro information-source? te-info-source 1205 | +--ro information-source-state 1206 | | +--ro credibility-preference? uint16 1207 | | +--ro logical-network-element? string 1208 | | +--ro network-instance? string 1209 | | +--ro topology 1210 | | +--ro provider-ref? leafref 1211 | | +--ro client-ref? leafref 1212 | | +--ro te-topology-ref? leafref 1213 | | +--ro network-ref? leafref 1214 | | +--ro link-ref? leafref 1215 | +--ro information-source-entry* [information-source] 1216 ............ 1218 5.8. Overlay/Underlay Relationship 1220 The model captures overlay and underlay relationship for TE 1221 nodes/links. For example - in networks where multiple TE Topologies 1222 are built hierarchically, this model allows the user to start from a 1223 specific topological element in the top most topology and traverse 1224 all the way down to the supporting topological elements in the bottom 1225 most topology. 1227 This relationship is captured via the "underlay-topology" field for 1228 the node and via the "underlay" field for the link. The use of these 1229 fields is optional and this functionality is tagged as a "feature" 1230 ("te-topology-hierarchy"). 1232 augment /nw:networks/nw:network/nw:node: 1233 +--rw te! 1234 +--rw te-node-id te-node-id 1235 +--rw config 1236 | +--rw te-node-template* leafref {template}? 1237 | +--rw te-node-attributes 1238 | .................... 1239 | +--rw underlay-topology {te-topology-hierarchy}? 1240 | +--rw provider-ref? leafref 1241 | +--rw client-ref? leafref 1242 | +--rw te-topology-ref? leafref 1243 | +--rw network-ref? leafref 1245 augment /nw:networks/nw:network/nt:link: 1246 +--rw te! 1247 +--rw config 1248 | ......... 1249 | +--rw te-link-attributes 1250 | .................... 1251 | +--rw underlay! {te-topology-hierarchy}? 1252 | | +--rw underlay-primary-path 1253 | | | +--rw provider-ref? leafref 1254 | | | +--rw client-ref? leafref 1255 | | | +--rw te-topology-ref? leafref 1256 | | | +--rw network-ref? leafref 1257 | | | +--rw path-element* [path-element-id] 1258 | | | ............... 1259 | | +--rw underlay-backup-path* [index] 1260 | | | +--rw index uint32 1261 | | | +--rw provider-ref? leafref 1262 | | | +--rw client-ref? leafref 1263 | | | +--rw te-topology-ref? leafref 1264 | | | +--rw network-ref? leafref 1265 | | | +--rw path-element* [path-element-id] 1266 | | | ............... 1267 | | +--rw underlay-protection-type? uint16 1268 | | +--rw underlay-tunnel-src 1269 | | | ........... 1271 | | +--rw underlay-tunnel-des 1272 | | ........... 1274 5.9. Templates 1276 The data model provides the users with the ability to define 1277 templates and apply them to link and node configurations. The use of 1278 "template" configuration is optional and this functionality is tagged 1279 as a "feature" ("template"). 1281 +--rw topology* [provider-id client-id te-topology-id] 1282 | ........... 1283 | +--rw node* [te-node-id] 1284 | | +--rw te-node-template? leafref {template}? 1285 | | .......... 1286 | +--rw link* [source-te-node-id source-te-link-id dest-te-node-id 1287 dest-te-link-id] 1288 | +--rw te-link-template? leafref {template}? 1289 | .......... 1291 augment /nw:networks: 1292 +--rw te! 1293 +--rw templates 1294 +--rw node-template* [name] {template}? 1295 | +--rw name te-types:te-template- 1296 name 1297 | +--rw priority? uint16 1298 | +--rw reference-change-policy? enumeration 1299 | +--rw te-node-attributes 1300 .......... 1301 +--rw link-template* [name] {template}? 1302 +--rw name te-types:te-template- 1303 name 1304 +--rw priority? uint16 1305 +--rw reference-change-policy? enumeration 1306 +--rw te-link-attributes 1307 .......... 1309 Multiple templates can be specified to a configuration element. When 1310 two or more templates specify values for the same configuration 1311 field, the value from the template with the highest priority is used. 1312 The reference-change-policy specifies the action that needs to be 1313 taken when the template changes on a configuration element that has a 1314 reference to this template. The choices of action include taking no 1315 action, rejecting the change to the template and applying the change 1316 to the corresponding configuration. [Editor's Note: The notion of 1317 "templates" has wider applicability. It is possible for this to be 1318 discussed in a separate document.] 1320 5.10. Scheduling Parameters 1322 The model allows time scheduling parameters to be specified for each 1323 topological element or for the topology as a whole. These parameters 1324 allow the provider to present different topological views to the 1325 client at different time slots. The use of "scheduling parameters" is 1326 optional. 1328 The YANG data model for configuration scheduling is defined in [YANG- 1329 SCHEDULE], which allows specifying configuration schedules without 1330 altering this data model. 1332 5.11. Notifications 1334 Notifications are a key component of any topology data model. 1336 [YANG-PUSH] and [RFC5277bis] define a subscription and push mechanism 1337 for YANG datastores. This mechanism currently allows the user to: 1339 - Subscribe notifications on a per client basis 1340 - Specify subtree filters or xpath filters so that only interested 1341 contents will be sent. 1342 - Specify either periodic or on-demand notifications. 1344 6. Tree Structure 1346 module: ietf-te-topology 1347 augment /nw:networks/nw:network/nw:network-types: 1348 +--rw te-topology! 1349 augment /nw:networks: 1350 +--rw te! 1351 +--rw templates 1352 +--rw node-template* [name] {template}? 1353 | +--rw name te-types:te-template- 1354 name 1355 | +--rw priority? uint16 1356 | +--rw reference-change-policy? enumeration 1357 | +--rw te-node-attributes 1358 | +--rw admin-status? te-types:te-admin-status 1359 | +--rw domain-id? uint32 1360 | +--rw is-abstract? empty 1361 | +--rw name? inet:domain-name 1362 | +--rw signaling-address* inet:ip-address 1363 | +--rw underlay-topology {te-topology-hierarchy}? 1364 | +--rw provider-ref? leafref 1365 | +--rw client-ref? leafref 1366 | +--rw te-topology-ref? leafref 1367 | +--rw network-ref? leafref 1368 +--rw link-template* [name] {template}? 1369 +--rw name te-types:te-template- 1370 name 1371 +--rw priority? uint16 1372 +--rw reference-change-policy? enumeration 1373 +--rw te-link-attributes 1374 +--rw access-type? te-types:te- 1375 link-access-type 1376 +--rw external-domain 1377 | +--rw remote-te-node-id? te-types:te-node-id 1378 | +--rw remote-te-link-tp-id? te-types:te-tp-id 1379 | +--rw plug-id? uint32 1380 +--rw is-abstract? empty 1381 +--rw name? string 1382 +--rw underlay! {te-topology-hierarchy}? 1383 | +--rw underlay-primary-path 1384 | | +--rw provider-ref? leafref 1385 | | +--rw client-ref? leafref 1386 | | +--rw te-topology-ref? leafref 1387 | | +--rw network-ref? leafref 1388 | | +--rw path-element* [path-element-id] 1389 | | +--rw path-element-id uint32 1390 | | +--rw (type)? 1391 | | +--:(ipv4-address) 1392 | | | +--rw v4-address? inet:ipv4- 1393 address 1394 | | | +--rw v4-prefix-length? uint8 1395 | | | +--rw v4-loose? boolean 1396 | | +--:(ipv6-address) 1397 | | | +--rw v6-address? inet:ipv6- 1398 address 1399 | | | +--rw v6-prefix-length? uint8 1400 | | | +--rw v6-loose? boolean 1401 | | +--:(as-number) 1402 | | | +--rw as-number? uint16 1403 | | +--:(unnumbered-link) 1404 | | | +--rw router-id? inet:ip- 1405 address 1406 | | | +--rw interface-id? uint32 1407 | | +--:(label) 1408 | | +--rw value? uint32 1409 | +--rw underlay-backup-path* [index] 1410 | | +--rw index uint32 1411 | | +--rw provider-ref? leafref 1412 | | +--rw client-ref? leafref 1413 | | +--rw te-topology-ref? leafref 1414 | | +--rw network-ref? leafref 1415 | | +--rw path-element* [path-element-id] 1416 | | +--rw path-element-id uint32 1417 | | +--rw (type)? 1418 | | +--:(ipv4-address) 1419 | | | +--rw v4-address? inet:ipv4- 1420 address 1421 | | | +--rw v4-prefix-length? uint8 1422 | | | +--rw v4-loose? boolean 1423 | | +--:(ipv6-address) 1424 | | | +--rw v6-address? inet:ipv6- 1425 address 1426 | | | +--rw v6-prefix-length? uint8 1427 | | | +--rw v6-loose? boolean 1428 | | +--:(as-number) 1429 | | | +--rw as-number? uint16 1430 | | +--:(unnumbered-link) 1431 | | | +--rw router-id? inet:ip- 1432 address 1433 | | | +--rw interface-id? uint32 1434 | | +--:(label) 1435 | | +--rw value? uint32 1436 | +--rw underlay-protection-type? uint16 1437 | +--rw underlay-tunnel-src 1438 | | +--rw tp-ref? leafref 1439 | | +--rw node-ref? leafref 1440 | | +--rw network-ref? leafref 1441 | +--rw underlay-tunnel-des 1442 | +--rw tp-ref? leafref 1443 | +--rw node-ref? leafref 1444 | +--rw network-ref? leafref 1445 +--rw admin-status? te-types:te- 1446 admin-status 1447 +--rw link-index? uint64 1448 +--rw administrative-group? te- 1449 types:admin-groups 1450 +--rw interface-switching-capability* [switching- 1451 capability] 1452 | +--rw switching-capability identityref 1453 | +--rw encoding? identityref 1454 | +--rw max-lsp-bandwidth* [priority] 1455 | +--rw priority uint8 1456 | +--rw bandwidth? te-bandwidth 1457 +--rw link-protection-type? enumeration 1458 +--rw max-link-bandwidth? te-bandwidth 1459 +--rw max-resv-link-bandwidth? te-bandwidth 1460 +--rw unreserved-bandwidth* [priority] 1461 | +--rw priority uint8 1462 | +--rw bandwidth? te-bandwidth 1463 +--rw te-default-metric? uint32 1464 +--rw te-delay-metric? uint32 1465 +--rw te-srlgs 1466 +--rw value* te-types:srlg 1467 augment /nw:networks/nw:network: 1468 +--rw provider-id? te-types:te-global-id 1469 +--rw client-id? te-types:te-global-id 1470 +--rw te-topology-id? te-types:te-topology-id 1471 +--rw te! 1472 +--rw config 1473 | +--rw preference? uint8 1474 | +--rw optimization-criterion? identityref 1475 +--ro state 1476 +--ro preference? uint8 1477 +--ro optimization-criterion? identityref 1478 +--ro geolocation 1479 +--ro altitude? int64 1480 +--ro latitude? geographic-coordinate-degree 1481 +--ro longitude? geographic-coordinate-degree 1482 augment /nw:networks/nw:network/nw:node: 1483 +--rw te-node-id? te-types:te-node-id 1484 +--rw te! 1485 +--rw config 1486 | +--rw te-node-template* leafref {template}? 1487 | +--rw te-node-attributes 1488 | +--rw admin-status? te-types:te-admin-status 1489 | +--rw connectivity-matrix* [id] 1490 | | +--rw id uint32 1491 | | +--rw from 1492 | | | +--rw tp-ref? leafref 1493 | | +--rw to 1494 | | | +--rw tp-ref? leafref 1495 | | +--rw is-allowed? boolean 1496 | | +--rw label-restriction* [inclusive-exclusive label- 1497 start] 1498 | | | +--rw inclusive-exclusive enumeration 1499 | | | +--rw label-start te-types:generalized- 1500 label 1501 | | | +--rw label-end? te-types:generalized- 1502 label 1503 | | | +--rw range-bitmap? binary 1504 | | +--rw underlay! {te-topology-hierarchy}? 1505 | | | +--rw underlay-primary-path 1506 | | | | +--rw provider-ref? leafref 1507 | | | | +--rw client-ref? leafref 1508 | | | | +--rw te-topology-ref? leafref 1509 | | | | +--rw network-ref? leafref 1510 | | | | +--rw path-element* [path-element-id] 1511 | | | | +--rw path-element-id uint32 1512 | | | | +--rw (type)? 1513 | | | | +--:(ipv4-address) 1514 | | | | | +--rw v4-address? inet:ipv4- 1515 address 1516 | | | | | +--rw v4-prefix-length? uint8 1517 | | | | | +--rw v4-loose? boolean 1518 | | | | +--:(ipv6-address) 1519 | | | | | +--rw v6-address? inet:ipv6- 1520 address 1521 | | | | | +--rw v6-prefix-length? uint8 1522 | | | | | +--rw v6-loose? boolean 1523 | | | | +--:(as-number) 1524 | | | | | +--rw as-number? uint16 1525 | | | | +--:(unnumbered-link) 1526 | | | | | +--rw router-id? inet:ip- 1527 address 1528 | | | | | +--rw interface-id? uint32 1529 | | | | +--:(label) 1530 | | | | +--rw value? uint32 1531 | | | +--rw underlay-backup-path* [index] 1532 | | | | +--rw index uint32 1533 | | | | +--rw provider-ref? leafref 1534 | | | | +--rw client-ref? leafref 1535 | | | | +--rw te-topology-ref? leafref 1536 | | | | +--rw network-ref? leafref 1537 | | | | +--rw path-element* [path-element-id] 1538 | | | | +--rw path-element-id uint32 1539 | | | | +--rw (type)? 1540 | | | | +--:(ipv4-address) 1541 | | | | | +--rw v4-address? inet:ipv4- 1542 address 1543 | | | | | +--rw v4-prefix-length? uint8 1544 | | | | | +--rw v4-loose? boolean 1545 | | | | +--:(ipv6-address) 1546 | | | | | +--rw v6-address? inet:ipv6- 1547 address 1548 | | | | | +--rw v6-prefix-length? uint8 1549 | | | | | +--rw v6-loose? boolean 1550 | | | | +--:(as-number) 1551 | | | | | +--rw as-number? uint16 1552 | | | | +--:(unnumbered-link) 1553 | | | | | +--rw router-id? inet:ip- 1554 address 1555 | | | | | +--rw interface-id? uint32 1556 | | | | +--:(label) 1557 | | | | +--rw value? uint32 1558 | | | +--rw underlay-protection-type? uint16 1559 | | | +--rw underlay-tunnel-src 1560 | | | | +--rw tp-ref? leafref 1561 | | | | +--rw node-ref? leafref 1562 | | | | +--rw network-ref? leafref 1563 | | | +--rw underlay-tunnel-des 1564 | | | +--rw tp-ref? leafref 1565 | | | +--rw node-ref? leafref 1566 | | | +--rw network-ref? leafref 1567 | | +--rw max-link-bandwidth? te-bandwidth 1568 | | +--rw max-resv-link-bandwidth? te-bandwidth 1569 | | +--rw unreserved-bandwidth* [priority] 1570 | | | +--rw priority uint8 1571 | | | +--rw bandwidth? te-bandwidth 1572 | | +--rw te-default-metric? uint32 1573 | | +--rw te-delay-metric? uint32 1574 | | +--rw te-srlgs 1575 | | +--rw value* te-types:srlg 1576 | +--rw domain-id? uint32 1577 | +--rw is-abstract? empty 1578 | +--rw name? inet:domain-name 1579 | +--rw signaling-address* inet:ip-address 1580 | +--rw underlay-topology {te-topology-hierarchy}? 1581 | +--rw provider-ref? leafref 1582 | +--rw client-ref? leafref 1583 | +--rw te-topology-ref? leafref 1584 | +--rw network-ref? leafref 1585 +--ro state 1586 | +--ro te-node-template* leafref {template}? 1587 | +--ro te-node-attributes 1588 | | +--ro admin-status? te-types:te-admin-status 1589 | | +--ro connectivity-matrix* [id] 1590 | | | +--ro id uint32 1591 | | | +--ro from 1592 | | | | +--ro tp-ref? leafref 1593 | | | +--ro to 1594 | | | | +--ro tp-ref? leafref 1595 | | | +--ro is-allowed? boolean 1596 | | | +--ro label-restriction* [inclusive-exclusive label- 1597 start] 1598 | | | | +--ro inclusive-exclusive enumeration 1599 | | | | +--ro label-start te-types:generalized- 1600 label 1601 | | | | +--ro label-end? te-types:generalized- 1602 label 1603 | | | | +--ro range-bitmap? binary 1604 | | | +--ro underlay! {te-topology-hierarchy}? 1605 | | | | +--ro underlay-primary-path 1606 | | | | | +--ro provider-ref? leafref 1607 | | | | | +--ro client-ref? leafref 1608 | | | | | +--ro te-topology-ref? leafref 1609 | | | | | +--ro network-ref? leafref 1610 | | | | | +--ro path-element* [path-element-id] 1611 | | | | | +--ro path-element-id uint32 1612 | | | | | +--ro (type)? 1613 | | | | | +--:(ipv4-address) 1614 | | | | | | +--ro v4-address? inet:ipv4- 1615 address 1616 | | | | | | +--ro v4-prefix-length? uint8 1617 | | | | | | +--ro v4-loose? boolean 1618 | | | | | +--:(ipv6-address) 1619 | | | | | | +--ro v6-address? inet:ipv6- 1620 address 1621 | | | | | | +--ro v6-prefix-length? uint8 1622 | | | | | | +--ro v6-loose? boolean 1623 | | | | | +--:(as-number) 1624 | | | | | | +--ro as-number? uint16 1625 | | | | | +--:(unnumbered-link) 1626 | | | | | | +--ro router-id? inet:ip- 1627 address 1628 | | | | | | +--ro interface-id? uint32 1629 | | | | | +--:(label) 1630 | | | | | +--ro value? uint32 1631 | | | | +--ro underlay-backup-path* [index] 1632 | | | | | +--ro index uint32 1633 | | | | | +--ro provider-ref? leafref 1634 | | | | | +--ro client-ref? leafref 1635 | | | | | +--ro te-topology-ref? leafref 1636 | | | | | +--ro network-ref? leafref 1637 | | | | | +--ro path-element* [path-element-id] 1638 | | | | | +--ro path-element-id uint32 1639 | | | | | +--ro (type)? 1640 | | | | | +--:(ipv4-address) 1641 | | | | | | +--ro v4-address? inet:ipv4- 1642 address 1643 | | | | | | +--ro v4-prefix-length? uint8 1644 | | | | | | +--ro v4-loose? boolean 1645 | | | | | +--:(ipv6-address) 1646 | | | | | | +--ro v6-address? inet:ipv6- 1647 address 1648 | | | | | | +--ro v6-prefix-length? uint8 1649 | | | | | | +--ro v6-loose? boolean 1650 | | | | | +--:(as-number) 1651 | | | | | | +--ro as-number? uint16 1652 | | | | | +--:(unnumbered-link) 1653 | | | | | | +--ro router-id? inet:ip- 1654 address 1655 | | | | | | +--ro interface-id? uint32 1656 | | | | | +--:(label) 1657 | | | | | +--ro value? uint32 1658 | | | | +--ro underlay-protection-type? uint16 1659 | | | | +--ro underlay-tunnel-src 1660 | | | | | +--ro tp-ref? leafref 1661 | | | | | +--ro node-ref? leafref 1662 | | | | | +--ro network-ref? leafref 1663 | | | | +--ro underlay-tunnel-des 1664 | | | | +--ro tp-ref? leafref 1665 | | | | +--ro node-ref? leafref 1666 | | | | +--ro network-ref? leafref 1667 | | | +--ro max-link-bandwidth? te-bandwidth 1668 | | | +--ro max-resv-link-bandwidth? te-bandwidth 1669 | | | +--ro unreserved-bandwidth* [priority] 1670 | | | | +--ro priority uint8 1671 | | | | +--ro bandwidth? te-bandwidth 1672 | | | +--ro te-default-metric? uint32 1673 | | | +--ro te-delay-metric? uint32 1674 | | | +--ro te-srlgs 1675 | | | +--ro value* te-types:srlg 1676 | | +--ro domain-id? uint32 1677 | | +--ro is-abstract? empty 1678 | | +--ro name? inet:domain-name 1679 | | +--ro signaling-address* inet:ip-address 1680 | | +--ro underlay-topology {te-topology-hierarchy}? 1681 | | +--ro provider-ref? leafref 1682 | | +--ro client-ref? leafref 1683 | | +--ro te-topology-ref? leafref 1684 | | +--ro network-ref? leafref 1685 | +--ro oper-status? te-types:te-oper-status 1686 | +--ro geolocation 1687 | | +--ro altitude? int64 1688 | | +--ro latitude? geographic-coordinate-degree 1689 | | +--ro longitude? geographic-coordinate-degree 1690 | +--ro is-multi-access-dr? empty 1691 | +--ro information-source? te-info-source 1692 | +--ro information-source-state 1693 | | +--ro credibility-preference? uint16 1694 | | +--ro logical-network-element? string 1695 | | +--ro network-instance? string 1696 | | +--ro topology 1697 | | +--ro provider-ref? leafref 1698 | | +--ro client-ref? leafref 1699 | | +--ro te-topology-ref? leafref 1700 | | +--ro network-ref? leafref 1701 | | +--ro node-ref? leafref 1702 | +--ro information-source-entry* [information-source] 1703 | +--ro information-source te-info-source 1704 | +--ro information-source-state 1705 | | +--ro credibility-preference? uint16 1706 | | +--ro logical-network-element? string 1707 | | +--ro network-instance? string 1708 | | +--ro topology 1709 | | +--ro provider-ref? leafref 1710 | | +--ro client-ref? leafref 1711 | | +--ro te-topology-ref? leafref 1712 | | +--ro network-ref? leafref 1713 | | +--ro node-ref? leafref 1714 | +--ro connectivity-matrix* [id] 1715 | | +--ro id uint32 1716 | | +--ro from 1717 | | | +--ro tp-ref? leafref 1718 | | +--ro to 1719 | | | +--ro tp-ref? leafref 1720 | | +--ro is-allowed? boolean 1721 | | +--ro label-restriction* [inclusive-exclusive label- 1722 start] 1723 | | | +--ro inclusive-exclusive enumeration 1724 | | | +--ro label-start te-types:generalized- 1725 label 1726 | | | +--ro label-end? te-types:generalized- 1727 label 1728 | | | +--ro range-bitmap? binary 1729 | | +--ro underlay! {te-topology-hierarchy}? 1730 | | | +--ro underlay-primary-path 1731 | | | | +--ro provider-ref? leafref 1732 | | | | +--ro client-ref? leafref 1733 | | | | +--ro te-topology-ref? leafref 1734 | | | | +--ro network-ref? leafref 1735 | | | | +--ro path-element* [path-element-id] 1736 | | | | +--ro path-element-id uint32 1737 | | | | +--ro (type)? 1738 | | | | +--:(ipv4-address) 1739 | | | | | +--ro v4-address? inet:ipv4- 1740 address 1741 | | | | | +--ro v4-prefix-length? uint8 1742 | | | | | +--ro v4-loose? boolean 1743 | | | | +--:(ipv6-address) 1744 | | | | | +--ro v6-address? inet:ipv6- 1745 address 1746 | | | | | +--ro v6-prefix-length? uint8 1747 | | | | | +--ro v6-loose? boolean 1748 | | | | +--:(as-number) 1749 | | | | | +--ro as-number? uint16 1750 | | | | +--:(unnumbered-link) 1751 | | | | | +--ro router-id? inet:ip- 1752 address 1753 | | | | | +--ro interface-id? uint32 1754 | | | | +--:(label) 1755 | | | | +--ro value? uint32 1756 | | | +--ro underlay-backup-path* [index] 1757 | | | | +--ro index uint32 1758 | | | | +--ro provider-ref? leafref 1759 | | | | +--ro client-ref? leafref 1760 | | | | +--ro te-topology-ref? leafref 1761 | | | | +--ro network-ref? leafref 1762 | | | | +--ro path-element* [path-element-id] 1763 | | | | +--ro path-element-id uint32 1764 | | | | +--ro (type)? 1765 | | | | +--:(ipv4-address) 1766 | | | | | +--ro v4-address? inet:ipv4- 1767 address 1768 | | | | | +--ro v4-prefix-length? uint8 1769 | | | | | +--ro v4-loose? boolean 1770 | | | | +--:(ipv6-address) 1771 | | | | | +--ro v6-address? inet:ipv6- 1772 address 1773 | | | | | +--ro v6-prefix-length? uint8 1774 | | | | | +--ro v6-loose? boolean 1775 | | | | +--:(as-number) 1776 | | | | | +--ro as-number? uint16 1777 | | | | +--:(unnumbered-link) 1778 | | | | | +--ro router-id? inet:ip- 1779 address 1780 | | | | | +--ro interface-id? uint32 1781 | | | | +--:(label) 1782 | | | | +--ro value? uint32 1783 | | | +--ro underlay-protection-type? uint16 1784 | | | +--ro underlay-tunnel-src 1785 | | | | +--ro tp-ref? leafref 1786 | | | | +--ro node-ref? leafref 1787 | | | | +--ro network-ref? leafref 1788 | | | +--ro underlay-tunnel-des 1789 | | | +--ro tp-ref? leafref 1790 | | | +--ro node-ref? leafref 1791 | | | +--ro network-ref? leafref 1792 | | +--ro max-link-bandwidth? te-bandwidth 1793 | | +--ro max-resv-link-bandwidth? te-bandwidth 1794 | | +--ro unreserved-bandwidth* [priority] 1795 | | | +--ro priority uint8 1796 | | | +--ro bandwidth? te-bandwidth 1797 | | +--ro te-default-metric? uint32 1798 | | +--ro te-delay-metric? uint32 1799 | | +--ro te-srlgs 1800 | | +--ro value* te-types:srlg 1801 | +--ro domain-id? uint32 1802 | +--ro is-abstract? empty 1803 | +--ro name? inet:domain-name 1804 | +--ro signaling-address* inet:ip-address 1805 | +--ro underlay-topology {te-topology-hierarchy}? 1806 | +--ro provider-ref? leafref 1807 | +--ro client-ref? leafref 1808 | +--ro te-topology-ref? leafref 1809 | +--ro network-ref? leafref 1810 +--ro statistics 1811 | +--ro discontinuity-time yang:date-and-time 1812 | +--ro node 1813 | | +--ro disables? yang:counter32 1814 | | +--ro enables? yang:counter32 1815 | | +--ro maintenance-sets? yang:counter32 1816 | | +--ro maintenance-clears? yang:counter32 1817 | | +--ro modifies? yang:counter32 1818 | +--ro connectivity-matrix-entry 1819 | +--ro creates? yang:counter32 1820 | +--ro deletes? yang:counter32 1821 | +--ro disables? yang:counter32 1822 | +--ro enables? yang:counter32 1823 | +--ro modifies? yang:counter32 1824 +--rw tunnel-termination-point* [tunnel-tp-id] 1825 +--rw tunnel-tp-id binary 1826 +--rw config 1827 | +--rw switching-capability? identityref 1828 | +--rw encoding? identityref 1829 | +--rw inter-layer-lock-id? uint32 1830 | +--rw protection-type? identityref 1831 | +--rw local-link-connectivity* [link-tp-ref] 1832 | +--rw link-tp-ref leafref 1833 | +--rw label-restriction* [inclusive-exclusive label- 1834 start] 1835 | | +--rw inclusive-exclusive enumeration 1836 | | +--rw label-start te-types:generalized- 1837 label 1838 | | +--rw label-end? te-types:generalized- 1839 label 1840 | | +--rw range-bitmap? binary 1841 | +--rw max-lsp-bandwidth* [priority] 1842 | | +--rw priority uint8 1843 | | +--rw bandwidth? te-bandwidth 1844 | +--rw max-link-bandwidth? te-bandwidth 1845 | +--rw max-resv-link-bandwidth? te-bandwidth 1846 | +--rw unreserved-bandwidth* [priority] 1847 | | +--rw priority uint8 1848 | | +--rw bandwidth? te-bandwidth 1849 | +--rw te-default-metric? uint32 1850 | +--rw te-delay-metric? uint32 1851 | +--rw te-srlgs 1852 | +--rw value* te-types:srlg 1853 +--ro state 1854 | +--ro switching-capability? identityref 1855 | +--ro encoding? identityref 1856 | +--ro inter-layer-lock-id? uint32 1857 | +--ro protection-type? identityref 1858 | +--ro local-link-connectivity* [link-tp-ref] 1859 | | +--ro link-tp-ref leafref 1860 | | +--ro label-restriction* [inclusive-exclusive label- 1861 start] 1862 | | | +--ro inclusive-exclusive enumeration 1863 | | | +--ro label-start te-types:generalized- 1864 label 1865 | | | +--ro label-end? te-types:generalized- 1866 label 1867 | | | +--ro range-bitmap? binary 1868 | | +--ro max-lsp-bandwidth* [priority] 1869 | | | +--ro priority uint8 1870 | | | +--ro bandwidth? te-bandwidth 1871 | | +--ro max-link-bandwidth? te-bandwidth 1872 | | +--ro max-resv-link-bandwidth? te-bandwidth 1873 | | +--ro unreserved-bandwidth* [priority] 1874 | | | +--ro priority uint8 1875 | | | +--ro bandwidth? te-bandwidth 1876 | | +--ro te-default-metric? uint32 1877 | | +--ro te-delay-metric? uint32 1878 | | +--ro te-srlgs 1879 | | +--ro value* te-types:srlg 1880 | +--ro geolocation 1881 | +--ro altitude? int64 1882 | +--ro latitude? geographic-coordinate-degree 1883 | +--ro longitude? geographic-coordinate-degree 1884 +--ro statistics 1885 +--ro discontinuity-time yang:date-and-time 1886 +--ro tunnel-termination-point 1887 | +--ro disables? yang:counter32 1888 | +--ro enables? yang:counter32 1889 | +--ro maintenance-clears? yang:counter32 1890 | +--ro maintenance-sets? yang:counter32 1891 | +--ro modifies? yang:counter32 1892 | +--ro downs? yang:counter32 1893 | +--ro ups? yang:counter32 1894 | +--ro in-service-clears? yang:counter32 1895 | +--ro in-service-sets? yang:counter32 1896 +--ro local-link-connectivity 1897 +--ro creates? yang:counter32 1898 +--ro deletes? yang:counter32 1899 +--ro disables? yang:counter32 1900 +--ro enables? yang:counter32 1901 +--ro modifies? yang:counter32 1903 augment /nw:networks/nw:network/nt:link: 1904 +--rw te! 1905 +--rw config 1906 | +--rw (bundle-stack-level)? 1907 | | +--:(bundle) 1908 | | | +--rw bundled-links 1909 | | | +--rw bundled-link* [sequence] 1910 | | | +--rw sequence uint32 1911 | | | +--rw src-tp-ref? leafref 1912 | | | +--rw des-tp-ref? leafref 1913 | | +--:(component) 1914 | | +--rw component-links 1915 | | +--rw component-link* [sequence] 1916 | | +--rw sequence uint32 1917 | | +--rw src-interface-ref? string 1918 | | +--rw des-interface-ref? string 1919 | +--rw te-link-template* leafref {template}? 1920 | +--rw te-link-attributes 1921 | +--rw access-type? te-types:te-link- 1922 access-type 1923 | +--rw external-domain 1924 | | +--rw remote-te-node-id? te-types:te-node-id 1925 | | +--rw remote-te-link-tp-id? te-types:te-tp-id 1926 | | +--rw plug-id? uint32 1927 | +--rw is-abstract? empty 1928 | +--rw name? string 1929 | +--rw underlay! {te-topology-hierarchy}? 1930 | | +--rw underlay-primary-path 1931 | | | +--rw provider-ref? leafref 1932 | | | +--rw client-ref? leafref 1933 | | | +--rw te-topology-ref? leafref 1934 | | | +--rw network-ref? leafref 1935 | | | +--rw path-element* [path-element-id] 1936 | | | +--rw path-element-id uint32 1937 | | | +--rw (type)? 1938 | | | +--:(ipv4-address) 1939 | | | | +--rw v4-address? inet:ipv4- 1940 address 1941 | | | | +--rw v4-prefix-length? uint8 1942 | | | | +--rw v4-loose? boolean 1943 | | | +--:(ipv6-address) 1944 | | | | +--rw v6-address? inet:ipv6- 1945 address 1946 | | | | +--rw v6-prefix-length? uint8 1947 | | | | +--rw v6-loose? boolean 1948 | | | +--:(as-number) 1949 | | | | +--rw as-number? uint16 1950 | | | +--:(unnumbered-link) 1951 | | | | +--rw router-id? inet:ip-address 1952 | | | | +--rw interface-id? uint32 1953 | | | +--:(label) 1954 | | | +--rw value? uint32 1955 | | +--rw underlay-backup-path* [index] 1956 | | | +--rw index uint32 1957 | | | +--rw provider-ref? leafref 1958 | | | +--rw client-ref? leafref 1959 | | | +--rw te-topology-ref? leafref 1960 | | | +--rw network-ref? leafref 1961 | | | +--rw path-element* [path-element-id] 1962 | | | +--rw path-element-id uint32 1963 | | | +--rw (type)? 1964 | | | +--:(ipv4-address) 1965 | | | | +--rw v4-address? inet:ipv4- 1966 address 1967 | | | | +--rw v4-prefix-length? uint8 1968 | | | | +--rw v4-loose? boolean 1969 | | | +--:(ipv6-address) 1970 | | | | +--rw v6-address? inet:ipv6- 1971 address 1972 | | | | +--rw v6-prefix-length? uint8 1973 | | | | +--rw v6-loose? boolean 1974 | | | +--:(as-number) 1975 | | | | +--rw as-number? uint16 1976 | | | +--:(unnumbered-link) 1977 | | | | +--rw router-id? inet:ip-address 1978 | | | | +--rw interface-id? uint32 1979 | | | +--:(label) 1980 | | | +--rw value? uint32 1981 | | +--rw underlay-protection-type? uint16 1982 | | +--rw underlay-tunnel-src 1983 | | | +--rw tp-ref? leafref 1984 | | | +--rw node-ref? leafref 1985 | | | +--rw network-ref? leafref 1986 | | +--rw underlay-tunnel-des 1987 | | +--rw tp-ref? leafref 1988 | | +--rw node-ref? leafref 1989 | | +--rw network-ref? leafref 1990 | +--rw admin-status? te-types:te- 1991 admin-status 1992 | +--rw link-index? uint64 1993 | +--rw administrative-group? te-types:admin- 1994 groups 1995 | +--rw interface-switching-capability* [switching- 1996 capability] 1997 | | +--rw switching-capability identityref 1998 | | +--rw encoding? identityref 1999 | | +--rw max-lsp-bandwidth* [priority] 2000 | | +--rw priority uint8 2001 | | +--rw bandwidth? te-bandwidth 2002 | +--rw link-protection-type? enumeration 2003 | +--rw max-link-bandwidth? te-bandwidth 2004 | +--rw max-resv-link-bandwidth? te-bandwidth 2005 | +--rw unreserved-bandwidth* [priority] 2006 | | +--rw priority uint8 2007 | | +--rw bandwidth? te-bandwidth 2008 | +--rw te-default-metric? uint32 2009 | +--rw te-delay-metric? uint32 2010 | +--rw te-srlgs 2011 | +--rw value* te-types:srlg 2012 +--ro state 2013 | +--ro (bundle-stack-level)? 2014 | | +--:(bundle) 2015 | | | +--ro bundled-links 2016 | | | +--ro bundled-link* [sequence] 2017 | | | +--ro sequence uint32 2018 | | | +--ro src-tp-ref? leafref 2019 | | | +--ro des-tp-ref? leafref 2020 | | +--:(component) 2021 | | +--ro component-links 2022 | | +--ro component-link* [sequence] 2023 | | +--ro sequence uint32 2024 | | +--ro src-interface-ref? string 2025 | | +--ro des-interface-ref? string 2026 | +--ro te-link-template* leafref {template}? 2027 | +--ro te-link-attributes 2028 | | +--ro access-type? te-types:te-link- 2029 access-type 2030 | | +--ro external-domain 2031 | | | +--ro remote-te-node-id? te-types:te-node-id 2032 | | | +--ro remote-te-link-tp-id? te-types:te-tp-id 2033 | | | +--ro plug-id? uint32 2034 | | +--ro is-abstract? empty 2035 | | +--ro name? string 2036 | | +--ro underlay! {te-topology-hierarchy}? 2037 | | | +--ro underlay-primary-path 2038 | | | | +--ro provider-ref? leafref 2039 | | | | +--ro client-ref? leafref 2040 | | | | +--ro te-topology-ref? leafref 2041 | | | | +--ro network-ref? leafref 2042 | | | | +--ro path-element* [path-element-id] 2043 | | | | +--ro path-element-id uint32 2044 | | | | +--ro (type)? 2045 | | | | +--:(ipv4-address) 2046 | | | | | +--ro v4-address? inet:ipv4- 2047 address 2048 | | | | | +--ro v4-prefix-length? uint8 2049 | | | | | +--ro v4-loose? boolean 2050 | | | | +--:(ipv6-address) 2051 | | | | | +--ro v6-address? inet:ipv6- 2052 address 2053 | | | | | +--ro v6-prefix-length? uint8 2054 | | | | | +--ro v6-loose? boolean 2055 | | | | +--:(as-number) 2056 | | | | | +--ro as-number? uint16 2057 | | | | +--:(unnumbered-link) 2058 | | | | | +--ro router-id? inet:ip-address 2059 | | | | | +--ro interface-id? uint32 2060 | | | | +--:(label) 2061 | | | | +--ro value? uint32 2062 | | | +--ro underlay-backup-path* [index] 2063 | | | | +--ro index uint32 2064 | | | | +--ro provider-ref? leafref 2065 | | | | +--ro client-ref? leafref 2066 | | | | +--ro te-topology-ref? leafref 2067 | | | | +--ro network-ref? leafref 2068 | | | | +--ro path-element* [path-element-id] 2069 | | | | +--ro path-element-id uint32 2070 | | | | +--ro (type)? 2071 | | | | +--:(ipv4-address) 2072 | | | | | +--ro v4-address? inet:ipv4- 2073 address 2074 | | | | | +--ro v4-prefix-length? uint8 2075 | | | | | +--ro v4-loose? boolean 2076 | | | | +--:(ipv6-address) 2077 | | | | | +--ro v6-address? inet:ipv6- 2078 address 2079 | | | | | +--ro v6-prefix-length? uint8 2080 | | | | | +--ro v6-loose? boolean 2081 | | | | +--:(as-number) 2082 | | | | | +--ro as-number? uint16 2083 | | | | +--:(unnumbered-link) 2084 | | | | | +--ro router-id? inet:ip-address 2085 | | | | | +--ro interface-id? uint32 2086 | | | | +--:(label) 2087 | | | | +--ro value? uint32 2088 | | | +--ro underlay-protection-type? uint16 2089 | | | +--ro underlay-tunnel-src 2090 | | | | +--ro tp-ref? leafref 2091 | | | | +--ro node-ref? leafref 2092 | | | | +--ro network-ref? leafref 2093 | | | +--ro underlay-tunnel-des 2094 | | | +--ro tp-ref? leafref 2095 | | | +--ro node-ref? leafref 2096 | | | +--ro network-ref? leafref 2097 | | +--ro admin-status? te-types:te- 2098 admin-status 2099 | | +--ro link-index? uint64 2100 | | +--ro administrative-group? te-types:admin- 2101 groups 2102 | | +--ro interface-switching-capability* [switching- 2103 capability] 2104 | | | +--ro switching-capability identityref 2105 | | | +--ro encoding? identityref 2106 | | | +--ro max-lsp-bandwidth* [priority] 2107 | | | +--ro priority uint8 2108 | | | +--ro bandwidth? te-bandwidth 2109 | | +--ro link-protection-type? enumeration 2110 | | +--ro max-link-bandwidth? te-bandwidth 2111 | | +--ro max-resv-link-bandwidth? te-bandwidth 2112 | | +--ro unreserved-bandwidth* [priority] 2113 | | | +--ro priority uint8 2114 | | | +--ro bandwidth? te-bandwidth 2115 | | +--ro te-default-metric? uint32 2116 | | +--ro te-delay-metric? uint32 2117 | | +--ro te-srlgs 2118 | | +--ro value* te-types:srlg 2119 | +--ro oper-status? te-types:te-oper-status 2120 | +--ro is-transitional? empty 2121 | +--ro information-source? te-info-source 2122 | +--ro information-source-state 2123 | | +--ro credibility-preference? uint16 2124 | | +--ro logical-network-element? string 2125 | | +--ro network-instance? string 2126 | | +--ro topology 2127 | | +--ro provider-ref? leafref 2128 | | +--ro client-ref? leafref 2129 | | +--ro te-topology-ref? leafref 2130 | | +--ro network-ref? leafref 2131 | | +--ro link-ref? leafref 2132 | +--ro information-source-entry* [information-source] 2133 | | +--ro information-source te-info-source 2134 | | +--ro information-source-state 2135 | | | +--ro credibility-preference? uint16 2136 | | | +--ro logical-network-element? string 2137 | | | +--ro network-instance? string 2138 | | | +--ro topology 2139 | | | +--ro provider-ref? leafref 2140 | | | +--ro client-ref? leafref 2141 | | | +--ro te-topology-ref? leafref 2142 | | | +--ro network-ref? leafref 2143 | | | +--ro link-ref? leafref 2144 | | +--ro link-index? uint64 2145 | | +--ro administrative-group? te-types:admin- 2146 groups 2147 | | +--ro interface-switching-capability* [switching- 2148 capability] 2149 | | | +--ro switching-capability identityref 2150 | | | +--ro encoding? identityref 2151 | | | +--ro max-lsp-bandwidth* [priority] 2152 | | | +--ro priority uint8 2153 | | | +--ro bandwidth? te-bandwidth 2154 | | +--ro link-protection-type? enumeration 2155 | | +--ro max-link-bandwidth? te-bandwidth 2156 | | +--ro max-resv-link-bandwidth? te-bandwidth 2157 | | +--ro unreserved-bandwidth* [priority] 2158 | | | +--ro priority uint8 2159 | | | +--ro bandwidth? te-bandwidth 2160 | | +--ro te-default-metric? uint32 2161 | | +--ro te-delay-metric? uint32 2162 | | +--ro te-srlgs 2163 | | +--ro value* te-types:srlg 2164 | +--ro recovery 2165 | | +--ro restoration-status? te-types:te-recovery-status 2166 | | +--ro protection-status? te-types:te-recovery-status 2167 | +--ro underlay {te-topology-hierarchy}? 2168 | +--ro dynamic? boolean 2169 | +--ro committed? boolean 2170 | +--ro tunnel-id? uint16 2171 +--ro statistics 2172 +--ro discontinuity-time yang:date-and-time 2173 +--ro disables? yang:counter32 2174 +--ro enables? yang:counter32 2175 +--ro maintenance-clears? yang:counter32 2176 +--ro maintenance-sets? yang:counter32 2177 +--ro modifies? yang:counter32 2178 +--ro downs? yang:counter32 2179 +--ro ups? yang:counter32 2180 +--ro fault-clears? yang:counter32 2181 +--ro fault-detects? yang:counter32 2182 +--ro protection-switches? yang:counter32 2183 +--ro protection-reverts? yang:counter32 2184 +--ro restoration-failures? yang:counter32 2185 +--ro restoration-starts? yang:counter32 2186 +--ro restoration-successes? yang:counter32 2187 +--ro restoration-reversion-failures? yang:counter32 2188 +--ro restoration-reversion-starts? yang:counter32 2189 +--ro restoration-reversion-successes? yang:counter32 2190 augment /nw:networks/nw:network/nw:node/nt:termination-point: 2191 +--rw te-tp-id? te-types:te-tp-id 2192 +--rw te! 2193 +--rw config 2194 | +--rw interface-switching-capability* [switching-capability] 2195 | | +--rw switching-capability identityref 2196 | | +--rw encoding? identityref 2197 | | +--rw max-lsp-bandwidth* [priority] 2198 | | +--rw priority uint8 2199 | | +--rw bandwidth? te-bandwidth 2200 | +--rw inter-layer-lock-id? uint32 2201 +--ro state 2202 +--ro interface-switching-capability* [switching-capability] 2203 | +--ro switching-capability identityref 2204 | +--ro encoding? identityref 2205 | +--ro max-lsp-bandwidth* [priority] 2206 | +--ro priority uint8 2207 | +--ro bandwidth? te-bandwidth 2208 +--ro inter-layer-lock-id? uint32 2209 +--ro geolocation 2210 +--ro altitude? int64 2211 +--ro latitude? geographic-coordinate-degree 2212 +--ro longitude? geographic-coordinate-degree 2214 7. TE Topology Yang Module 2216 file "ietf-te-topology@2016-10-21.yang" 2217 module ietf-te-topology { 2218 yang-version 1.1; 2219 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; 2221 prefix "tet"; 2222 import ietf-yang-types { 2223 prefix "yang"; 2224 } 2226 import ietf-inet-types { 2227 prefix "inet"; 2228 } 2230 import ietf-te-types { 2231 prefix "te-types"; 2232 } 2234 import ietf-network { 2235 prefix "nw"; 2236 } 2238 import ietf-network-topology { 2239 prefix "nt"; 2240 } 2242 organization 2243 "Traffic Engineering Architecture and Signaling (TEAS) 2244 Working Group"; 2246 contact 2247 "WG Web: 2248 WG List: 2250 WG Chair: Lou Berger 2251 2253 WG Chair: Vishnu Pavan Beeram 2254 2256 Editor: Xufeng Liu 2257 2259 Editor: Igor Bryskin 2260 2262 Editor: Vishnu Pavan Beeram 2263 2265 Editor: Tarek Saad 2266 2268 Editor: Himanshu Shah 2269 2271 Editor: Oscar Gonzalez De Dios 2272 "; 2274 description "TE topology model"; 2276 revision "2016-10-21" { 2277 description "Initial revision"; 2278 reference "TBD"; 2279 } 2281 /* 2282 * Features 2283 */ 2284 feature te-topology-hierarchy { 2285 description 2286 "This feature indicates that the system allows underlay 2287 and/or overlay TE topology hierarchy."; 2288 } 2290 feature template { 2291 description 2292 "This feature indicates that the system supports 2293 template configuration."; 2294 } 2296 /* 2297 * Typedefs 2298 */ 2299 typedef geographic-coordinate-degree { 2300 type decimal64 { 2301 fraction-digits 8; 2303 } 2304 description 2305 "Decimal degree (DD) used to express latitude and longitude 2306 geographic coordinates."; 2307 } // geographic-coordinate-degree 2309 typedef te-bandwidth { 2310 type string { 2311 pattern 2312 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 2313 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 2314 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 2315 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 2316 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 2317 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 2318 } 2319 description 2320 "This is the generic bandwidth type that is a string containing 2321 a list of numbers separated by commas, with each of these 2322 number can be non-negative decimal, hex integer, or hex float: 2323 (dec | hex | float)[*(','(dec | hex | float))] 2324 For packet switching type, a float number is used, such as 2325 0x1p10. 2326 For OTN switching type, a list of integers can be used, such 2327 as '0,2,3,1', indicating 2 odu0's and 1 odu3. 2328 For DWDM, a list of pairs of slot number and width can be 2329 used, such as '0, 2, 3, 3', indicating a frequency slot 0 with 2330 slot width 2 and a frequency slot 3 with slot width 3."; 2331 } // te-bandwidth 2333 typedef te-info-source { 2334 type enumeration { 2335 enum "unknown" { 2336 description "The source is unknown."; 2337 } 2338 enum "locally-configured" { 2339 description "Configured entity."; 2340 } 2341 enum "ospfv2" { 2342 description "OSPFv2."; 2344 } 2345 enum "ospfv3" { 2346 description "OSPFv3."; 2347 } 2348 enum "isis" { 2349 description "ISIS."; 2350 } 2351 enum "bgp-ls" { 2352 description "BGP-LS."; 2353 reference 2354 "RFC7752: North-Bound Distribution of Link-State and 2355 Traffic Engineering (TE) Information Using BGP"; 2356 } 2357 enum "system-processed" { 2358 description "System processed entity."; 2359 } 2360 enum "other" { 2361 description "Other source."; 2362 } 2363 } 2364 description 2365 "Describining the type of source that has provided the 2366 related information, and the source credibility."; 2367 } // te-info-source 2369 /* 2370 * Groupings 2371 */ 2372 grouping connectivity-label-restriction-list { 2373 description 2374 "List of abel restrictions specifying what labels may or may 2375 not be used on a link connectivity."; 2376 list label-restriction { 2377 key "inclusive-exclusive label-start"; 2378 description 2379 "List of abel restrictions specifying what labels may or may 2380 not be used on a link connectivity."; 2381 reference 2382 "RFC7579: General Network Element Constraint Encoding 2383 for GMPLS-Controlled Networks"; 2385 leaf inclusive-exclusive { 2386 type enumeration { 2387 enum inclusive { 2388 description "The label or label range is inclusive."; 2389 } 2390 enum exclusive { 2391 description "The label or label range is exclusive."; 2392 } 2393 } 2394 description 2395 "Whether the list item is inclusive or exclusive."; 2396 } 2397 leaf label-start { 2398 type te-types:generalized-label; 2399 description 2400 "This is the starting lable if a lable range is specified. 2401 This is the lable value if a single lable is specified, 2402 in which case, attribute 'label-end' is not set."; 2403 } 2404 leaf label-end { 2405 type te-types:generalized-label; 2406 description 2407 "The ending lable if a lable range is specified; 2408 This attribute is not set, If a single lable is 2409 specified."; 2410 } 2411 leaf range-bitmap { 2412 type binary; 2413 description 2414 "When there are gaps between label-start and label-end, 2415 this attribute is used to specified the possitions 2416 of the used labels."; 2417 } 2418 } 2419 } // connectivity-label-restrictions 2421 grouping geolocation-container { 2422 description 2423 "A container containing a GPS location."; 2424 container geolocation{ 2425 description 2426 "A container containing a GPS location."; 2427 leaf altitude { 2428 type int64; 2429 units millimeter; 2430 description 2431 "Distance above the sea level."; 2432 } 2433 leaf latitude { 2434 type geographic-coordinate-degree { 2435 range "-90..90"; 2436 } 2437 description 2438 "Relative position north or south on the Earth's surface."; 2439 } 2440 leaf longitude { 2441 type geographic-coordinate-degree { 2442 range "-180..180"; 2443 } 2444 description 2445 "Angular distance east or west on the Earth's surface."; 2446 } 2447 } // gps-location 2448 } // geolocation-container 2450 grouping information-source-state-attributes { 2451 description 2452 "The attributes identifying source that has provided the 2453 related information, and the source credibility."; 2454 leaf credibility-preference { 2455 type uint16; 2456 description 2457 "The preference value to calculate the traffic 2458 engineering database credibility value used for 2459 tie-break selection between different 2460 information-source values. 2461 Higher value is more preferable."; 2462 } 2463 leaf logical-network-element { 2464 type string; 2465 description 2466 "When applicable, this is the name of a logical network 2467 element from which the information is learned."; 2468 } // logical-network-element 2469 leaf network-instance { 2470 type string; 2471 description 2472 "When applicable, this is the name of a network-instance 2473 from which the information is learned."; 2474 } // network-instance 2475 } // information-source-state-attributes 2477 grouping information-source-per-link-attributes { 2478 description 2479 "Per node container of the attributes identifying source that 2480 has provided the related information, and the source 2481 credibility."; 2482 leaf information-source { 2483 type te-info-source; 2484 description 2485 "Indicates the source of the information."; 2486 } 2487 container information-source-state { 2488 description 2489 "The container contains state attributes related to 2490 the information source."; 2491 uses information-source-state-attributes; 2492 container topology { 2493 description 2494 "When the information is processed by the system, 2495 the attributes in this container indicate which topology 2496 is used to process to generate the result information."; 2497 uses te-topology-ref; 2498 leaf link-ref { 2499 type leafref { 2500 path "/nw:networks/nw:network[nw:network-id = " 2501 + "current()/../network-ref]/nt:link/nt:link-id"; 2502 require-instance false; 2503 } 2504 description 2505 "A reference to a link-id."; 2506 } 2507 } // topology 2508 } // information-source-state 2509 } // information-source-per-link-attributes 2511 grouping information-source-per-node-attributes { 2512 description 2513 "Per node container of the attributes identifying source that 2514 has provided the related information, and the source 2515 credibility."; 2516 leaf information-source { 2517 type te-info-source; 2518 description 2519 "Indicates the source of the information."; 2520 } 2521 container information-source-state { 2522 description 2523 "The container contains state attributes related to 2524 the information source."; 2525 uses information-source-state-attributes; 2526 container topology { 2527 description 2528 "When the information is processed by the system, 2529 the attributes in this container indicate which topology 2530 is used to process to generate the result information."; 2531 uses te-topology-ref; 2532 leaf node-ref { 2533 type leafref { 2534 path "/nw:networks/nw:network[nw:network-id = " 2535 + "current()/../network-ref]/nw:node/nw:node-id"; 2536 require-instance false; 2537 } 2538 description 2539 "A reference to a node-id."; 2540 } 2541 } // topology 2542 } // information-source-state 2543 } // information-source-per-node-attributes 2544 grouping interface-switching-capability-list { 2545 description 2546 "List of Interface Switching Capabilities Descriptors (ISCD)"; 2548 list interface-switching-capability { 2549 key "switching-capability"; 2550 description 2551 "List of Interface Switching Capabilities Descriptors (ISCD) 2552 for this link."; 2553 reference 2554 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS) 2555 Signaling Functional Description. 2556 RFC4203: OSPF Extensions in Support of Generalized 2557 Multi-Protocol Label Switching (GMPLS)."; 2558 leaf switching-capability { 2559 type identityref { 2560 base te-types:switching-capabilities; 2561 } 2562 description 2563 "Switching Capability for this interface."; 2564 } 2565 leaf encoding { 2566 type identityref { 2567 base te-types:lsp-encoding-types; 2568 } 2569 description 2570 "Encoding supported by this interface."; 2571 } 2572 uses te-link-iscd-attributes; 2573 } // interface-switching-capability 2574 } // interface-switching-capability-list 2576 grouping statistics-per-link { 2577 description 2578 "Statistics attributes per TE link."; 2579 leaf discontinuity-time { 2580 type yang:date-and-time; 2581 mandatory true; 2582 description 2583 "The time on the most recent occasion at which any one or 2584 more of this interface's counters suffered a 2585 discontinuity. If no such discontinuities have occurred 2586 since the last re-initialization of the local management 2587 subsystem, then this node contains the time the local 2588 management subsystem re-initialized itself."; 2589 } 2590 /* Administrative attributes */ 2591 leaf disables { 2592 type yang:counter32; 2593 description 2594 "Number of times that link was disabled."; 2595 } 2596 leaf enables { 2597 type yang:counter32; 2598 description 2599 "Number of times that link was enabled."; 2600 } 2601 leaf maintenance-clears { 2602 type yang:counter32; 2603 description 2604 "Number of times that link was put out of maintenance."; 2605 } 2606 leaf maintenance-sets { 2607 type yang:counter32; 2608 description 2609 "Number of times that link was put in maintenance."; 2610 } 2611 leaf modifies { 2612 type yang:counter32; 2613 description 2614 "Number of times that link was modified."; 2615 } 2616 /* Operational attributes */ 2617 leaf downs { 2618 type yang:counter32; 2619 description 2620 "Number of times that link was set to operational down."; 2621 } 2622 leaf ups { 2623 type yang:counter32; 2624 description 2625 "Number of times that link was set to operational up."; 2626 } 2627 /* Recovery attributes */ 2628 leaf fault-clears { 2629 type yang:counter32; 2630 description 2631 "Number of times that link experienced fault clear event."; 2632 } 2633 leaf fault-detects { 2634 type yang:counter32; 2635 description 2636 "Number of times that link experienced fault detection."; 2637 } 2638 leaf protection-switches { 2639 type yang:counter32; 2640 description 2641 "Number of times that link experienced protection 2642 switchover."; 2643 } 2644 leaf protection-reverts { 2645 type yang:counter32; 2646 description 2647 "Number of times that link experienced protection 2648 reversion."; 2649 } 2650 leaf restoration-failures { 2651 type yang:counter32; 2652 description 2653 "Number of times that link experienced restoration 2654 failure."; 2655 } 2656 leaf restoration-starts { 2657 type yang:counter32; 2658 description 2659 "Number of times that link experienced restoration 2660 start."; 2661 } 2662 leaf restoration-successes { 2663 type yang:counter32; 2664 description 2665 "Number of times that link experienced restoration 2666 success."; 2667 } 2668 leaf restoration-reversion-failures { 2669 type yang:counter32; 2670 description 2671 "Number of times that link experienced restoration reversion 2672 failure."; 2673 } 2674 leaf restoration-reversion-starts { 2675 type yang:counter32; 2676 description 2677 "Number of times that link experienced restoration reversion 2678 start."; 2679 } 2680 leaf restoration-reversion-successes { 2681 type yang:counter32; 2682 description 2683 "Number of times that link experienced restoration reversion 2684 success."; 2685 } 2686 } // statistics-per-link 2688 grouping statistics-per-node { 2689 description 2690 "Statistics attributes per TE node."; 2691 leaf discontinuity-time { 2692 type yang:date-and-time; 2693 mandatory true; 2694 description 2695 "The time on the most recent occasion at which any one or 2696 more of this interface's counters suffered a 2697 discontinuity. If no such discontinuities have occurred 2698 since the last re-initialization of the local management 2699 subsystem, then this node contains the time the local 2700 management subsystem re-initialized itself."; 2701 } 2702 container node { 2703 description 2704 "Containing TE node level statistics attributes."; 2705 leaf disables { 2706 type yang:counter32; 2707 description 2708 "Number of times that node was disabled."; 2709 } 2710 leaf enables { 2711 type yang:counter32; 2712 description 2713 "Number of times that node was enabled."; 2714 } 2715 leaf maintenance-sets { 2716 type yang:counter32; 2717 description 2718 "Number of times that node was put in maintenance."; 2719 } 2720 leaf maintenance-clears { 2721 type yang:counter32; 2722 description 2723 "Number of times that node was put out of maintenance."; 2724 } 2725 leaf modifies { 2726 type yang:counter32; 2727 description 2728 "Number of times that node was modified."; 2729 } 2730 } // node 2731 container connectivity-matrix-entry { 2732 description 2733 "Containing connectivity matrix entry level statistics 2734 attributes."; 2735 leaf creates { 2736 type yang:counter32; 2737 description 2738 "Number of times that a connectivity matrix entry was 2739 created."; 2740 reference 2741 "RFC6241. Section 7.2 for 'create' operation. "; 2742 } 2743 leaf deletes { 2744 type yang:counter32; 2745 description 2746 "Number of times that a connectivity matrix entry was 2747 deleted."; 2748 reference 2749 "RFC6241. Section 7.2 for 'delete' operation. "; 2750 } 2751 leaf disables { 2752 type yang:counter32; 2753 description 2754 "Number of times that a connectivity matrix entry was 2755 disabled."; 2756 } 2757 leaf enables { 2758 type yang:counter32; 2759 description 2760 "Number of times that a connectivity matrix entry was 2761 enabled."; 2762 } 2763 leaf modifies { 2764 type yang:counter32; 2765 description 2766 "Number of times that a connectivity matrix entry was 2767 modified."; 2768 } 2769 } // connectivity-matrix-entry 2770 } // statistics-per-node 2772 grouping statistics-per-ttp { 2773 description 2774 "Statistics attributes per TE TTP (Tunnel Termination Point)."; 2775 leaf discontinuity-time { 2776 type yang:date-and-time; 2777 mandatory true; 2778 description 2779 "The time on the most recent occasion at which any one or 2780 more of this interface's counters suffered a 2781 discontinuity. If no such discontinuities have occurred 2782 since the last re-initialization of the local management 2783 subsystem, then this node contains the time the local 2784 management subsystem re-initialized itself."; 2785 } 2786 container tunnel-termination-point { 2787 description 2788 "Containing TE TTP (Tunnel Termination Point) level 2789 statistics attributes."; 2790 /* Administrative attributes */ 2791 leaf disables { 2792 type yang:counter32; 2793 description 2794 "Number of times that TTP was disabled."; 2795 } 2796 leaf enables { 2797 type yang:counter32; 2798 description 2799 "Number of times that TTP was enabled."; 2800 } 2801 leaf maintenance-clears { 2802 type yang:counter32; 2803 description 2804 "Number of times that TTP was put out of maintenance."; 2805 } 2806 leaf maintenance-sets { 2807 type yang:counter32; 2808 description 2809 "Number of times that TTP was put in maintenance."; 2810 } 2811 leaf modifies { 2812 type yang:counter32; 2813 description 2814 "Number of times that TTP was modified."; 2815 } 2816 /* Operational attributes */ 2817 leaf downs { 2818 type yang:counter32; 2819 description 2820 "Number of times that TTP was set to operational down."; 2821 } 2822 leaf ups { 2823 type yang:counter32; 2824 description 2825 "Number of times that TTP was set to operational up."; 2826 } 2827 leaf in-service-clears { 2828 type yang:counter32; 2829 description 2830 "Number of times that TTP was taken out of service 2831 (TE tunnel was released)."; 2832 } 2833 leaf in-service-sets { 2834 type yang:counter32; 2835 description 2836 "Number of times that TTP was put in service by a TE 2837 tunnel (TE tunnel was set up)."; 2838 } 2839 } // tunnel-termination-point 2841 container local-link-connectivity { 2842 description 2843 "Containing TE LLCL (Local Link Connectivity List) level 2844 statistics attributes."; 2845 leaf creates { 2846 type yang:counter32; 2847 description 2848 "Number of times that an LLCL entry was created."; 2849 reference 2850 "RFC6241. Section 7.2 for 'create' operation. "; 2851 } 2852 leaf deletes { 2853 type yang:counter32; 2854 description 2855 "Number of times that an LLCL entry was deleted."; 2856 reference 2857 "RFC6241. Section 7.2 for 'delete' operation."; 2858 } 2859 leaf disables { 2860 type yang:counter32; 2861 description 2862 "Number of times that an LLCL entry was disabled."; 2863 } 2864 leaf enables { 2865 type yang:counter32; 2866 description 2867 "Number of times that an LLCL entry was enabled."; 2868 } 2869 leaf modifies { 2870 type yang:counter32; 2871 description 2872 "Number of times that an LLCL entry was modified."; 2873 } 2874 } // local-link-connectivity 2875 } // statistics-per-ttp 2877 grouping te-link-augment { 2878 description 2879 "Augmentation for TE link."; 2881 container te { 2882 presence "TE support."; 2883 description 2884 "Indicates TE support."; 2886 container config { 2887 description 2888 "Configuration data."; 2889 uses te-link-config; 2890 } // config 2891 container state { 2892 config false; 2893 description 2894 "Operational state data."; 2895 uses te-link-config; 2896 uses te-link-state-derived; 2897 } // state 2898 container statistics { 2899 config false; 2900 description 2901 "Statistics data."; 2902 uses statistics-per-link; 2903 } // statistics 2905 } // te 2906 } // te-link-augment 2908 grouping te-link-config { 2909 description 2910 "TE link configuration grouping."; 2911 choice bundle-stack-level { 2912 description 2913 "The TE link can be partitioned into bundled 2914 links, or component links."; 2915 case bundle { 2916 container bundled-links { 2917 description 2918 "A set of bundled links."; 2919 reference 2920 "RFC4201: Link Bundling in MPLS Traffic Engineering 2921 (TE)."; 2922 list bundled-link { 2923 key "sequence"; 2924 description 2925 "Specify a bundled interface that is 2926 further partitioned."; 2927 leaf sequence { 2928 type uint32; 2929 description 2930 "Identify the sequence in the bundle."; 2931 } 2932 leaf src-tp-ref { 2933 type leafref { 2934 path "../../../../../../nw:node[nw:node-id = " 2935 + "current()/../../../../../nt:source/" 2936 + "nt:source-node]/" 2937 + "nt:termination-point/nt:tp-id"; 2938 require-instance true; 2939 } 2940 description 2941 "Reference to another TE termination point on the 2942 same souruce node."; 2943 } 2944 leaf des-tp-ref { 2945 type leafref { 2946 path "../../../../../../nw:node[nw:node-id = " 2947 + "current()/../../../../../nt:destination/" 2948 + "nt:dest-node]/" 2949 + "nt:termination-point/nt:tp-id"; 2950 require-instance true; 2951 } 2952 description 2953 "Reference to another TE termination point on the 2954 same destination node."; 2955 } 2956 } // list bundled-link 2957 } 2958 } 2959 case component { 2960 container component-links { 2961 description 2962 "A set of component links"; 2963 list component-link { 2964 key "sequence"; 2965 description 2966 "Specify a component interface that is 2967 sufficient to unambiguously identify the 2968 appropriate resources"; 2970 leaf sequence { 2971 type uint32; 2972 description 2973 "Identify the sequence in the bundle."; 2974 } 2975 leaf src-interface-ref { 2976 type string; 2977 description 2978 "Reference to component link interface on the 2979 source node."; 2980 } 2981 leaf des-interface-ref { 2982 type string; 2983 description 2984 "Reference to component link interface on the 2985 destinatioin node."; 2986 } 2987 } 2988 } 2989 } 2990 } // bundle-stack-level 2992 leaf-list te-link-template { 2993 if-feature template; 2994 type leafref { 2995 path "../../../../../te/templates/link-template/name"; 2996 } 2997 description 2998 "The reference to a TE link template."; 2999 } 3000 uses te-link-config-attributes; 3001 } // te-link-config 3003 grouping te-link-config-attributes { 3004 description 3005 "Link configuration attributes in a TE topology."; 3006 container te-link-attributes { 3007 description "Link attributes in a TE topology."; 3008 leaf access-type { 3009 type te-types:te-link-access-type; 3010 description 3011 "Link access type, which can be point-to-point or 3012 multi-access."; 3013 } 3014 container external-domain { 3015 description 3016 "For an inter-domain link, specify the attributes of 3017 the remote end of link, to facilitate the signalling at 3018 local end."; 3019 leaf remote-te-node-id { 3020 type te-types:te-node-id; 3021 description 3022 "Remote TE node identifier, used together with 3023 remote-te-link-id to identify the remote link 3024 termination point in a different domain."; 3026 } 3027 leaf remote-te-link-tp-id { 3028 type te-types:te-tp-id; 3029 description 3030 "Remote TE link termination point identifier, used 3031 together with remote-te-node-id to identify the remote 3032 link termination point in a different domain."; 3033 } 3034 leaf plug-id { 3035 type uint32; 3036 description 3037 "A topology-wide unique number that identifies on the 3038 network a connectivity supporting a given inter-domain 3039 TE link. This is more flexible alternative to specifying 3040 remote-te-node-id and remote-te-link-tp-id, when the 3041 provider does not know remote-te-node-id and 3042 remote-te-link-tp-id or need to give client the 3043 flexibility to mix-n-match multiple topologies."; 3044 } 3045 } 3046 leaf is-abstract { 3047 type empty; 3048 description "Present if the link is abstract."; 3049 } 3050 leaf name { 3051 type string; 3052 description "Link Name."; 3053 } 3054 container underlay { 3055 if-feature te-topology-hierarchy; 3056 presence 3057 "Indicates the underlay exists for this link."; 3058 description "Attributes of the te-link underlay."; 3059 reference 3060 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3061 Generalized Multi-Protocol Label Switching (GMPLS) 3062 Traffic Engineering (TE)"; 3064 uses te-link-underlay-attributes; 3065 } // underlay 3066 leaf admin-status { 3067 type te-types:te-admin-status; 3068 description 3069 "The administrative state of the link."; 3070 } 3072 uses te-link-info-attributes; 3073 } // te-link-attributes 3074 } // te-link-config-attributes 3076 grouping te-link-connectivity-attributes { 3077 description 3078 "Advertised TE connectivity attributes."; 3079 leaf max-link-bandwidth { 3080 type te-bandwidth; 3081 description 3082 "Maximum bandwidth that can be seen on this link in this 3083 direction. Units in bytes per second."; 3084 reference 3085 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3086 Version 2. 3087 RFC5305: IS-IS Extensions for Traffic Engineering."; 3088 } 3089 leaf max-resv-link-bandwidth { 3090 type te-bandwidth; 3091 description 3092 "Maximum amount of bandwidth that can be reserved in this 3093 direction in this link. Units in bytes per second."; 3094 reference 3095 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3096 Version 2. 3097 RFC5305: IS-IS Extensions for Traffic Engineering."; 3098 } 3099 list unreserved-bandwidth { 3100 key "priority"; 3101 max-elements "8"; 3102 description 3103 "Unreserved bandwidth for 0-7 priority levels. Units in 3104 bytes per second."; 3105 reference 3106 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3107 Version 2. 3108 RFC5305: IS-IS Extensions for Traffic Engineering."; 3109 leaf priority { 3110 type uint8 { 3111 range "0..7"; 3112 } 3113 description "Priority."; 3114 } 3115 leaf bandwidth { 3116 type te-bandwidth; 3117 description 3118 "Unreserved bandwidth for this level."; 3119 } 3120 } 3121 leaf te-default-metric { 3122 type uint32; 3123 description 3124 "Traffic engineering metric."; 3125 } 3126 leaf te-delay-metric { 3127 type uint32; 3128 description 3129 "Traffic engineering delay metric."; 3130 } 3131 container te-srlgs { 3132 description 3133 "A list of SLRGs."; 3134 leaf-list value { 3135 type te-types:srlg; 3136 description "SRLG value."; 3137 reference 3138 "RFC4202: Routing Extensions in Support of 3139 Generalized Multi-Protocol Label Switching (GMPLS)."; 3140 } 3141 } 3142 } // te-link-connectivity-attributes 3144 grouping te-link-info-attributes { 3145 description 3146 "Advertised TE information attributes."; 3147 leaf link-index { 3148 type uint64; 3149 description 3150 "The link identifier. If OSPF is used, this represents an 3151 ospfLsdbID. If IS-IS is used, this represents an isisLSPID. 3152 If a locally configured link is used, this object represents 3153 a unique value, which is locally defined in a router."; 3154 } 3155 leaf administrative-group { 3156 type te-types:admin-groups; 3157 description 3158 "Administrative group or color of the link. 3159 This attribute covers both administrative group (defined in 3160 RFC3630, RFC5329, and RFC5305), and extended administrative 3161 group (defined in RFC7308)."; 3162 } 3163 uses interface-switching-capability-list; 3164 leaf link-protection-type { 3165 type enumeration { 3166 enum "unprotected" { 3167 description "Unprotected."; 3168 } 3169 enum "extra-traffic" { 3170 description "Extra traffic."; 3171 } 3172 enum "shared" { 3173 description "Shared."; 3174 } 3175 enum "1-for-1" { 3176 description "One for one protection."; 3177 } 3178 enum "1-plus-1" { 3179 description "One plus one protection."; 3180 } 3181 enum "enhanced" { 3182 description "Enhanced protection."; 3183 } 3184 } 3185 description 3186 "Link Protection Type desired for this link."; 3187 reference 3188 "RFC4202: Routing Extensions in Support of 3189 Generalized Multi-Protocol Label Switching (GMPLS)."; 3190 } 3191 uses te-link-connectivity-attributes; 3192 } // te-link-info-attributes 3194 grouping te-link-iscd-attributes { 3195 description 3196 "TE link ISCD (Interface Switching Capability Descriptor) 3197 attributes."; 3198 reference 3199 "Sec 1.4, RFC4203: OSPF Extensions in Support of Generalized 3200 Multi-Protocol Label Switching (GMPLS). Section 1.4."; 3201 list max-lsp-bandwidth { 3202 key "priority"; 3203 max-elements "8"; 3204 description 3205 "Maximum LSP Bandwidth at priorities 0-7."; 3206 leaf priority { 3207 type uint8 { 3208 range "0..7"; 3209 } 3210 description "Priority."; 3211 } 3212 leaf bandwidth { 3213 type te-bandwidth; 3214 description 3215 "Max LSP Bandwidth for this level"; 3216 } 3217 } 3218 } // te-link-iscd-attributes 3220 grouping te-link-state-derived { 3221 description 3222 "Link state attributes in a TE topology."; 3223 leaf oper-status { 3224 type te-types:te-oper-status; 3225 description 3226 "The current operational state of the link."; 3227 } 3228 leaf is-transitional { 3229 type empty; 3230 description 3231 "Present if the link is transitional, used as an 3232 alternative approach in lieu of inter-layer-lock-id 3233 for path computation in a TE topology covering multiple 3234 layers or multiple regions."; 3235 reference 3236 "RFC5212: Requirements for GMPLS-Based Multi-Region and 3237 Multi-Layer Networks (MRN/MLN). 3238 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3239 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3240 } 3241 uses information-source-per-link-attributes; 3242 list information-source-entry { 3243 key "information-source"; 3244 description 3245 "A list of information sources learned, including the one 3246 used."; 3247 uses information-source-per-link-attributes; 3248 uses te-link-info-attributes; 3249 } 3250 container recovery { 3251 description 3252 "Status of the recovery process."; 3253 leaf restoration-status { 3254 type te-types:te-recovery-status; 3255 description 3256 "Restoration status."; 3257 } 3258 leaf protection-status { 3259 type te-types:te-recovery-status; 3260 description 3261 "Protection status."; 3262 } 3263 } 3264 container underlay { 3265 if-feature te-topology-hierarchy; 3266 description "State attributes for te-link underlay."; 3267 uses te-link-state-underlay-attributes; 3268 } 3269 } // te-link-state-derived 3271 grouping te-link-state-underlay-attributes { 3272 description "State attributes for te-link underlay."; 3273 leaf dynamic { 3274 type boolean; 3275 description 3276 "true if the underlay is dynamically created."; 3277 } 3278 leaf committed { 3279 type boolean; 3280 description 3281 "true if the underlay is committed."; 3282 } 3283 leaf tunnel-id { 3284 type uint16; 3285 description 3286 "Tunnel identifier used in the SESSION that remains constant 3287 over the life of the tunnel. 3288 This attribute is used together with underlay-tunnel-src 3289 and underlay-tunnel-src. 3290 The detailed information of this tunnel can be retrieved 3291 from the ietf-te model."; 3292 reference "RFC3209"; 3293 } 3294 } // te-link-state-underlay-attributes 3296 grouping te-link-underlay-attributes { 3297 description "Attributes for te-link underlay."; 3298 reference 3299 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3300 Generalized Multi-Protocol Label Switching (GMPLS) 3301 Traffic Engineering (TE)"; 3302 container underlay-primary-path { 3303 description 3304 "The service path on the underlay topology that 3305 supports this link."; 3307 uses te-topology-ref; 3308 list path-element { 3309 key "path-element-id"; 3310 description 3311 "A list of path elements describing the service path."; 3312 leaf path-element-id { 3313 type uint32; 3314 description "To identify the element in a path."; 3315 } 3316 uses te-path-element; 3317 } 3318 } // underlay-primary-path 3319 list underlay-backup-path { 3320 key "index"; 3321 description 3322 "A list of backup service paths on the underlay topology that 3323 protect the underlay primary path. If the primary path is 3324 not protected, the list contains zero elements. If the 3325 primary path is protected, the list contains one or more 3326 elements."; 3327 leaf index { 3328 type uint32; 3329 description 3330 "A sequence number to identify a backup path."; 3331 } 3332 uses te-topology-ref; 3333 list path-element { 3334 key "path-element-id"; 3335 description 3336 "A list of path elements describing the backup service 3337 path"; 3338 leaf path-element-id { 3339 type uint32; 3340 description "To identify the element in a path."; 3341 } 3342 uses te-path-element; 3343 } 3344 } // underlay-backup-path 3345 leaf underlay-protection-type { 3346 type uint16; 3347 description 3348 "Underlay protection type desired for this link"; 3349 } 3350 container underlay-tunnel-src { 3351 uses nt:tp-ref; 3352 description 3353 "Source TE link of the underlay tunnel."; 3354 } 3355 container underlay-tunnel-des { 3356 uses nt:tp-ref; 3357 description 3358 "Destination TE link of the underlay tunnel."; 3359 } 3360 } // te-link-underlay-attributes 3362 grouping te-node-augment { 3363 description 3364 "Augmentation for TE node."; 3366 leaf te-node-id { 3367 type te-types:te-node-id; 3368 description 3369 "The identifier of a node in the TE topology. 3370 A node is specific to a topology to which it belongs."; 3371 } 3373 container te { 3374 must "../te-node-id"; 3375 presence "TE support."; 3376 description 3377 "Indicates TE support."; 3379 container config { 3380 description 3381 "Configuration data."; 3382 uses te-node-config; 3383 } // config 3384 container state { 3385 config false; 3386 description 3387 "Operational state data."; 3389 uses te-node-config; 3390 uses te-node-state-derived; 3391 } // state 3392 container statistics { 3393 config false; 3394 description 3395 "Statistics data."; 3396 uses statistics-per-node; 3397 } // statistics 3399 list tunnel-termination-point { 3400 key "tunnel-tp-id"; 3401 description 3402 "A termination point can terminate a tunnel."; 3403 leaf tunnel-tp-id { 3404 type binary; 3405 description 3406 "Tunnel termination point identifier."; 3407 } 3409 container config { 3410 description 3411 "Configuration data."; 3412 uses te-node-tunnel-termination-attributes; 3413 } 3414 container state { 3415 config false; 3416 description 3417 "Operational state data."; 3419 uses te-node-tunnel-termination-attributes; 3420 uses geolocation-container; 3421 } // state 3422 container statistics { 3423 config false; 3424 description 3425 "Statistics data."; 3426 uses statistics-per-ttp; 3428 } // statistics 3429 } // tunnel-termination-point 3430 } // te 3431 } // te-node-augment 3433 grouping te-node-config { 3434 description "TE node configuration grouping."; 3436 leaf-list te-node-template { 3437 if-feature template; 3438 type leafref { 3439 path "../../../../../te/templates/node-template/name"; 3440 } 3441 description 3442 "The reference to a TE node template."; 3443 } 3444 uses te-node-config-attributes; 3445 } // te-node-config 3447 grouping te-node-config-attributes { 3448 description "Configuration node attributes in a TE topology."; 3449 container te-node-attributes { 3450 description "Containing node attributes in a TE topology."; 3451 leaf admin-status { 3452 type te-types:te-admin-status; 3453 description 3454 "The administrative state of the link."; 3455 } 3456 uses te-node-connectivity-matrix; 3457 uses te-node-info-attributes; 3458 } // te-node-attributes 3459 } // te-node-config-attributes 3461 grouping te-node-config-attributes-template { 3462 description 3463 "Configuration node attributes for template in a TE topology."; 3464 container te-node-attributes { 3465 description "Containing node attributes in a TE topology."; 3466 leaf admin-status { 3467 type te-types:te-admin-status; 3468 description 3469 "The administrative state of the link."; 3470 } 3471 uses te-node-info-attributes; 3472 } // te-node-attributes 3473 } // te-node-config-attributes-template 3475 grouping te-node-connectivity-matrix { 3476 description "Connectivity matrix on a TE node."; 3477 list connectivity-matrix { 3478 key "id"; 3479 description 3480 "Represents node's switching limitations, i.e. limitations 3481 in interconnecting network TE links across the node."; 3482 reference 3483 "RFC7579: General Network Element Constraint Encoding 3484 for GMPLS-Controlled Networks."; 3485 leaf id { 3486 type uint32; 3487 description "Identifies the connectivity-matrix entry."; 3488 } 3489 container from { 3490 leaf tp-ref { 3491 type leafref { 3492 path "../../../../../../nt:termination-point/nt:tp-id"; 3493 } 3494 description 3495 "Relative reference to source termination point."; 3496 } 3497 description 3498 "Reference to source NTP."; 3499 } 3500 container to { 3501 leaf tp-ref { 3502 type leafref { 3503 path "../../../../../../nt:termination-point/nt:tp-id"; 3504 } 3505 description 3506 "Relative reference to destination termination point."; 3507 } 3508 description 3509 "Reference to destination NTP."; 3510 } 3511 leaf is-allowed { 3512 type boolean; 3513 description 3514 "true - switching is allowed, 3515 false - switching is disallowed."; 3516 } 3517 uses connectivity-label-restriction-list; 3518 container underlay { 3519 if-feature te-topology-hierarchy; 3520 presence 3521 "Indicates the underlay exists for this link."; 3522 description "Attributes of the te-link underlay."; 3523 reference 3524 "RFC4206: Label Switched Paths (LSP) Hierarchy with 3525 Generalized Multi-Protocol Label Switching (GMPLS) 3526 Traffic Engineering (TE)"; 3528 uses te-link-underlay-attributes; 3529 } // underlay 3530 uses te-link-connectivity-attributes; 3531 } 3532 } // te-node-connectivity-matrix 3534 grouping te-node-connectivity-matrix-abs { 3535 description 3536 "Connectivity matrix on a TE node, using absolute 3537 paths to reference termination points."; 3538 list connectivity-matrix { 3539 key "id"; 3540 description 3541 "Represents node's switching limitations, i.e. limitations 3542 in interconnecting network TE links across the node."; 3543 reference 3544 "RFC7579: General Network Element Constraint Encoding 3545 for GMPLS-Controlled Networks."; 3546 leaf id { 3547 type uint32; 3548 description "Identifies the connectivity-matrix entry."; 3549 } 3550 container from { 3551 uses nt:tp-ref; 3552 description 3553 "Reference to source NTP."; 3554 } 3555 container to { 3556 uses nt:tp-ref; 3557 description 3558 "Reference to destination NTP."; 3559 } 3560 leaf is-allowed { 3561 type boolean; 3562 description 3563 "true - switching is allowed, 3564 false - switching is disallowed."; 3565 } 3566 } 3567 } // te-node-connectivity-matrix-abs 3569 grouping te-node-info-attributes { 3570 description 3571 "Advertised TE information attributes."; 3572 leaf domain-id { 3573 type uint32; 3574 description 3575 "Identifies the domain that this node belongs. 3576 This attribute is used to support inter-domain links."; 3577 reference 3578 "RFC5152: A Per-Domain Path Computation Method for 3579 Establishing Inter-Domain Traffic Engineering (TE) 3580 Label Switched Paths (LSPs). 3581 RFC5392: OSPF Extensions in Support of Inter-Autonomous 3582 System (AS) MPLS and GMPLS Traffic Engineering. 3583 RFC5316: ISIS Extensions in Support of Inter-Autonomous 3584 System (AS) MPLS and GMPLS Traffic Engineering."; 3585 } 3586 leaf is-abstract { 3587 type empty; 3588 description 3589 "Present if the node is abstract, not present if the node 3590 is actual."; 3591 } 3592 leaf name { 3593 type inet:domain-name; 3594 description "Node name."; 3595 } 3596 leaf-list signaling-address { 3597 type inet:ip-address; 3598 description "Node signaling address."; 3599 } 3600 container underlay-topology { 3601 if-feature te-topology-hierarchy; 3602 description 3603 "When an abstract node encapsulates a topology, 3604 the attributes in this container point to said topology."; 3605 uses te-topology-ref; 3606 } 3607 } // te-node-info-attributes 3609 grouping te-node-state-derived { 3610 description "Node state attributes in a TE topology."; 3611 leaf oper-status { 3612 type te-types:te-oper-status; 3613 description 3614 "The current operational state of the node."; 3615 } 3616 uses geolocation-container; 3617 leaf is-multi-access-dr { 3618 type empty; 3619 description 3620 "The presence of this attribute indicates that this TE node 3621 is a pseudonode elected as a designated router."; 3622 reference 3623 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3624 Version 2. 3625 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3626 Environments."; 3627 } 3628 uses information-source-per-node-attributes; 3629 list information-source-entry { 3630 key "information-source"; 3631 description 3632 "A list of information sources learned, including the one 3633 used."; 3634 uses information-source-per-node-attributes; 3635 uses te-node-connectivity-matrix; 3636 uses te-node-info-attributes; 3637 } 3638 } // te-node-state-derived 3640 grouping te-node-state-derived-notification { 3641 description "Node state attributes in a TE topology."; 3642 leaf oper-status { 3643 type te-types:te-oper-status; 3644 description 3645 "The current operational state of the node."; 3646 } 3647 leaf is-multi-access-dr { 3648 type empty; 3649 description 3650 "The presence of this attribute indicates that this TE node 3651 is a pseudonode elected as a designated router."; 3652 reference 3653 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3654 Version 2. 3655 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual 3656 Environments."; 3657 } 3658 uses information-source-per-node-attributes; 3659 list information-source-entry { 3660 key "information-source"; 3661 description 3662 "A list of information sources learned, including the one 3663 used."; 3664 uses information-source-per-node-attributes; 3665 uses te-node-connectivity-matrix-abs; 3666 uses te-node-info-attributes; 3667 } 3669 } // te-node-state-derived-notification 3671 grouping te-node-tunnel-termination-attributes { 3672 description 3673 "Termination capability of a tunnel termination point on a 3674 TE node."; 3676 leaf switching-capability { 3677 type identityref { 3678 base te-types:switching-capabilities; 3679 } 3680 description 3681 "Switching Capability for this interface."; 3682 } 3683 leaf encoding { 3684 type identityref { 3685 base te-types:lsp-encoding-types; 3686 } 3687 description 3688 "Encoding supported by this interface."; 3689 } 3690 leaf inter-layer-lock-id { 3691 type uint32; 3692 description 3693 "Inter layer lock ID, used for path computation in a TE 3694 topology covering multiple layers or multiple regions."; 3695 reference 3696 "RFC5212: Requirements for GMPLS-Based Multi-Region and 3697 Multi-Layer Networks (MRN/MLN). 3698 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3699 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3700 } 3701 leaf protection-type { 3702 type identityref { 3703 base te-types:lsp-prot-type; 3704 } 3705 description 3706 "The protection type that this tunnel termination point 3707 is capable of."; 3708 } 3709 list local-link-connectivity { 3710 key "link-tp-ref"; 3711 description 3712 "The termination capabilities between 3713 tunnel-termination-point and link termination-point. 3714 The capability information can be used to compute 3715 the tunnel path. 3716 The Interface Adjustment Capability Descriptors (IACD) 3717 [RFC6001] on each link-tp can be derived from this 3718 local-link-connectivity list."; 3719 reference 3720 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3721 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3722 leaf link-tp-ref { 3723 type leafref { 3724 path "../../../../../nt:termination-point/nt:tp-id"; 3725 } 3726 description 3727 "Link termination point."; 3728 } 3730 uses connectivity-label-restriction-list; 3731 uses te-link-iscd-attributes; 3732 uses te-link-connectivity-attributes; 3733 } // termination-capability 3734 } // te-node-tunnel-termination-attributes 3736 grouping te-path-element { 3737 description 3738 "A group of attributes defining an element in a TE path 3739 such as TE node, TE link, TE atomic resource or label."; 3740 uses te-types:explicit-route-subobject; 3741 } // te-path-element 3743 grouping te-termination-point-augment { 3744 description 3745 "Augmentation for TE termination point."; 3747 leaf te-tp-id { 3748 type te-types:te-tp-id; 3749 description 3750 "An identifier to uniquely identify a TE termination 3751 point."; 3752 } 3754 container te { 3755 must "../te-tp-id"; 3756 presence "TE support."; 3757 description 3758 "Indicates TE support."; 3760 container config { 3761 description 3762 "Configuration data."; 3763 uses te-termination-point-config; 3764 } // config 3765 container state { 3766 config false; 3767 description 3768 "Operational state data."; 3769 uses te-termination-point-config; 3770 uses geolocation-container; 3771 } // state 3772 } // te 3773 } // te-termination-point-augment 3775 grouping te-termination-point-config { 3776 description 3777 "TE termination point configuration grouping."; 3778 uses interface-switching-capability-list; 3779 leaf inter-layer-lock-id { 3780 type uint32; 3781 description 3782 "Inter layer lock ID, used for path computation in a TE 3783 topology covering multiple layers or multiple regions."; 3784 reference 3785 "RFC5212: Requirements for GMPLS-Based Multi-Region and 3786 Multi-Layer Networks (MRN/MLN). 3787 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions 3788 for Multi-Layer and Multi-Region Networks (MLN/MRN)."; 3789 } 3790 } // te-termination-point-config 3792 grouping te-topologies-augment { 3793 description 3794 "Augmentation for TE topologies."; 3796 container te { 3797 presence "TE support."; 3798 description 3799 "Indicates TE support."; 3801 container templates { 3802 description 3803 "Configuration parameters for templates used for TE 3804 topology."; 3806 list node-template { 3807 if-feature template; 3808 key "name"; 3809 leaf name { 3810 type te-types:te-template-name; 3811 description 3812 "The name to identify a TE node template."; 3813 } 3814 description 3815 "The list of TE node templates used to define sharable 3816 and reusable TE node attributes."; 3817 uses template-attributes; 3818 uses te-node-config-attributes-template; 3819 } // node-template 3821 list link-template { 3822 if-feature template; 3823 key "name"; 3824 leaf name { 3825 type te-types:te-template-name; 3826 description 3827 "The name to identify a TE link template."; 3829 } 3830 description 3831 "The list of TE link templates used to define sharable 3832 and reusable TE link attributes."; 3833 uses template-attributes; 3834 uses te-link-config-attributes; 3835 } // link-template 3836 } // templates 3837 } // te 3838 } // te-topologies-augment 3840 grouping te-topology-augment { 3841 description 3842 "Augmentation for TE topology."; 3844 leaf provider-id { 3845 type te-types:te-global-id; 3846 description 3847 "An identifier to uniquely identify a provider."; 3848 } 3849 leaf client-id { 3850 type te-types:te-global-id; 3851 description 3852 "An identifier to uniquely identify a client."; 3853 } 3854 leaf te-topology-id { 3855 type te-types:te-topology-id; 3856 description 3857 "It is presumed that a datastore will contain many 3858 topologies. To distinguish between topologies it is 3859 vital to have UNIQUE topology identifiers."; 3860 } 3862 container te { 3863 must "../provider-id and ../client-id and ../te-topology-id"; 3864 presence "TE support."; 3865 description 3866 "Indicates TE support."; 3868 container config { 3869 description 3870 "Configuration data."; 3871 uses te-topology-config; 3872 } // config 3873 container state { 3874 config false; 3875 description 3876 "Operational state data."; 3877 uses te-topology-config; 3878 uses geolocation-container; 3879 } // state 3880 } // te 3881 } // te-topology-augment 3883 grouping te-topology-config { 3884 description 3885 "TE topology configuration grouping."; 3886 leaf preference { 3887 type uint8 { 3888 range "1..255"; 3889 } 3890 description 3891 "Specifies a preference for this topology. A lower number 3892 indicates a higher preference."; 3893 } 3894 leaf optimization-criterion { 3895 type identityref { 3896 base te-types:te-optimization-criterion; 3897 } 3898 description 3899 "Optimization criterion applied to this topology."; 3900 reference 3901 "RFC3272: Overview and Principles of Internet Traffic 3902 Engineering."; 3903 } 3904 } // te-topology-config 3906 grouping te-topology-ref { 3907 description 3908 "References a TE topology."; 3910 leaf provider-ref { 3911 type leafref { 3912 path "/nw:networks/nw:network[nw:network-id = " 3913 + "current()/../network-ref]/tet:provider-id"; 3914 require-instance false; 3915 } 3916 description 3917 "A reference to a provider-id."; 3918 } 3919 leaf client-ref { 3920 type leafref { 3921 path "/nw:networks/nw:network[nw:network-id = " 3922 + "current()/../network-ref]/tet:client-id"; 3923 require-instance false; 3924 } 3925 description 3926 "A reference to a client-id."; 3927 } 3928 leaf te-topology-ref { 3929 type leafref { 3930 path "/nw:networks/nw:network[nw:network-id = " 3931 + "current()/../network-ref]/tet:te-topology-id"; 3932 require-instance false; 3933 } 3934 description 3935 "A reference to a te-topology-id."; 3936 } 3937 leaf network-ref { 3938 type leafref { 3939 path "/nw:networks/nw:network/nw:network-id"; 3940 require-instance false; 3941 } 3942 description 3943 "A reference to a network-id in base ietf-network module."; 3944 } 3945 } // te-topology-ref 3947 grouping te-topology-type { 3948 description 3949 "Identifies the TE topology type."; 3951 container te-topology { 3952 presence "Indicates TE topology."; 3953 description 3954 "Its presence identifies the TE topology type."; 3955 } 3956 } // te-topology-type 3958 grouping template-attributes { 3959 description 3960 "Common attributes for all templates."; 3962 leaf priority { 3963 type uint16; 3964 description 3965 "The preference value to resolve conflicts between different 3966 templates. When two or more templates specify values for 3967 one configuration attribute, the value from the template 3968 with the highest priority is used."; 3969 } 3970 leaf reference-change-policy { 3971 type enumeration { 3972 enum no-action { 3973 description 3974 "When an attribute changes in this template, the 3975 configuration node referring to this template does 3976 not take any action."; 3977 } 3978 enum not-allowed { 3979 description 3980 "When any configuration object has a reference to this 3981 template, changing this template is not allowed."; 3982 } 3983 enum cascade { 3984 description 3985 "When an attribute changes in this template, the 3986 configuration object referring to this template applies 3987 the new attribute value to the corresponding 3988 configuration."; 3989 } 3990 } 3991 description 3992 "This attribute specifies the action taken to a configuration 3993 node that has a reference to this template."; 3994 } 3995 } // template-attributes 3997 /* 3998 * Configuration data nodes 3999 */ 4000 augment "/nw:networks/nw:network/nw:network-types" { 4001 description 4002 "Introduce new network type for TE topology."; 4003 uses te-topology-type; 4004 } 4006 augment "/nw:networks" { 4007 description 4008 "Augmentation parameters for TE topologies."; 4009 uses te-topologies-augment; 4010 } 4012 augment "/nw:networks/nw:network" { 4013 when "nw:network-types/te-topology" { 4014 description 4015 "Augmentation parameters apply only for networks with 4016 TE topology type."; 4017 } 4018 description 4019 "Configuration parameters for TE topology."; 4020 uses te-topology-augment; 4021 } 4023 augment "/nw:networks/nw:network/nw:node" { 4024 when "../nw:network-types/te-topology" { 4025 description 4026 "Augmentation parameters apply only for networks with 4027 TE topology type."; 4028 } 4029 description 4030 "Configuration parameters for TE at node level."; 4032 uses te-node-augment; 4033 } 4035 augment "/nw:networks/nw:network/nt:link" { 4036 when "../nw:network-types/te-topology" { 4037 description 4038 "Augmentation parameters apply only for networks with 4039 TE topology type."; 4040 } 4041 description 4042 "Configuration parameters for TE at link level"; 4043 uses te-link-augment; 4044 } 4046 augment "/nw:networks/nw:network/nw:node/" 4047 + "nt:termination-point" { 4048 when "../../nw:network-types/te-topology" { 4049 description 4050 "Augmentation parameters apply only for networks with 4051 TE topology type."; 4052 } 4053 description 4054 "Configuration parameters for TE at termination point level"; 4055 uses te-termination-point-augment; 4056 } 4057 } 4058 4060 8. Security Considerations 4062 The transport protocol used for retrieving/manipulating the TE 4063 topology data MUST support authentication and SHOULD support 4064 encryption. The data-model by itself does not create any security 4065 implications. 4067 9. IANA Considerations 4069 This document registers the following URIs in the IETF XML registry 4070 [RFC3688]. Following the format in [RFC3688], the following 4071 registration is requested to be made. 4073 URI: urn:ietf:params:xml:ns:yang:ietf-te-topology 4074 XML: N/A, the requested URI is an XML namespace. 4076 This document registers a YANG module in the YANG Module Names 4077 registry [RFC6020]. 4079 name: ietf-te-topology 4080 namespace: urn:ietf:params:xml:ns:yang:ietf-te-topology 4081 prefix: tet 4083 10. References 4085 10.1. Normative References 4087 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4088 Requirement Levels", BCP 14, RFC 2119, March 1997. 4090 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 4091 January 2004. 4093 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 4094 Network Configuration Protocol (NETCONF)", RFC 6020, 4095 October 2010. 4097 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 4098 July 2013. 4100 [RFC3945] Mannie, E., "Generalized Multi-Protocol Label Switching 4101 (GMPLS) Architecture", October 2004. 4103 [YANG-NET-TOPO] Clemm, A., "A Data Model for Network Topologies", 4104 draft-ietf-i2rs-yang-network-topo (Work in Progress). 4106 [YANG-PUSH] Clemm, A., "Subscribing to YANG datastore push updates", 4107 draft-clemm-netconf-yang-push (Work in Progress). 4109 [RFC5277bis] Clemm, A., "Subscribing to Event Notifications", 4110 draft-ietf-netconf-rfc5277bis (Work in Progress). 4112 [YANG-SCHEDULE] Liu, X., " A YANG Data Model for Configuration 4113 Scheduling", draft-liu-netmod-yang-schedule-00 (Work in 4114 Progress). 4116 10.2. Informative References 4118 [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over 4119 MPLS", RFC 2702, September 1999. 4121 11. Acknowledgments 4123 The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, 4124 Cyril Margaria and Zafar Ali for participating in design discussions 4125 and providing valuable insights. 4127 Contributors 4129 Sergio Belotti 4130 Nokia 4131 Email: sergio.belotti@nokia.com 4133 Dieter Beller 4134 Nokia 4135 Email: Dieter.Beller@nokia.com 4137 Authors' Addresses 4139 Xufeng Liu 4140 Kuatro Technologies 4141 Email: xliu@kuatrotech.com 4143 Igor Bryskin 4144 Huawei Technologies 4145 Email: Igor.Bryskin@huawei.com 4147 Vishnu Pavan Beeram 4148 Juniper Networks 4149 Email: vbeeram@juniper.net 4151 Tarek Saad 4152 Cisco Systems Inc 4153 Email: tsaad@cisco.com 4155 Himanshu Shah 4156 Ciena 4157 Email: hshah@ciena.com 4159 Oscar Gonzalez De Dios 4160 Telefonica 4161 Email: oscar.gonzalezdedios@telefonica.com