idnits 2.17.1 draft-ietf-ccamp-otn-tunnel-model-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 69 instances of too long lines in the document, the longest one being 43 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 2, 2018) is 2124 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-18) exists of draft-ietf-ccamp-otn-topo-yang-03 == Outdated reference: A later version (-17) exists of draft-ietf-ccamp-transport-nbi-app-statement-01 ** Downref: Normative reference to an Informational draft: draft-ietf-ccamp-transport-nbi-app-statement (ref. 'I-D.ietf-ccamp-transport-nbi-app-statement') == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-15 == Outdated reference: A later version (-11) exists of draft-ietf-teas-actn-yang-01 Summary: 2 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CCAMP Working Group H. Zheng 3 Internet-Draft A. Guo 4 Intended status: Standards Track I. Busi 5 Expires: January 3, 2019 Huawei Technologies 6 A. Sharma 7 Google 8 R. Rao 9 Infinera 10 S. Belotti 11 Nokia 12 V. Lopez 13 Telefonica 14 Y. Li 15 China Mobile 16 Y. Xu 17 CAICT 18 July 2, 2018 20 OTN Tunnel YANG Model 21 draft-ietf-ccamp-otn-tunnel-model-03 23 Abstract 25 This document describes the YANG data model for OTN Tunnels. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on January 3, 2019. 44 Copyright Notice 46 Copyright (c) 2018 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 63 3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3 64 3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3 65 3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3 66 3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4 67 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 68 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 21 69 6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . . . 48 70 7. Security Considerations . . . . . . . . . . . . . . . . . . . 60 71 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 60 72 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 60 73 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 60 74 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 75 11.1. Normative References . . . . . . . . . . . . . . . . . . 61 76 11.2. Informative References . . . . . . . . . . . . . . . . . 62 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 79 1. Introduction 81 OTN transport networks can carry various types of client services. 82 In many cases, the client signal is carried over an OTN tunnel across 83 connected domains in a multi-domain network. These OTN services can 84 either be transported or switched in the OTN network. If an OTN 85 tunnel is switched, then additional parameters need to be provided to 86 create a Mux OTN service. 88 This document provides YANG model for creating OTN tunnel. The model 89 augments the TE Tunnel model. 91 2. Terminology and Notations 93 A simplified graphical representation of the data model is used in 94 this document. The meaning of the symbols in the YANG data tree 95 presented later in this draft is defined in 97 [I-D.ietf-netmod-yang-tree-diagrams]. They are provided below for 98 reference. 100 o Brackets "[" and "]" enclose list keys. 102 o Abbreviations before data node names: "rw" means configuration 103 (read-write) and "ro" state data (read-only). 105 o Symbols after data node names: "?" means an optional node, "!" 106 means a presence container, and "*" denotes a list and leaf-list. 108 o Parentheses enclose choice and case nodes, and case nodes are also 109 marked with a colon (":"). 111 o Ellipsis ("...") stands for contents of subtrees that are not 112 shown. 114 3. OTN Tunnel Model Description 116 3.1. Overview of OTN Tunnel Model 118 The OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a 119 basic model and augment to the TE tunnel with OTN-specific 120 parameters, including the bandwidth information and label 121 information. It is also worth noting that the OTN tunnel 122 provisioning is usually based on the OTN topology. Therefore the OTN 123 tunnel model is usually used together with OTN topology model 124 specified in [I-D.ietf-ccamp-otn-topo-yang]. 126 More scenarios and model applications can be found in 127 [I-D.ietf-ccamp-transport-nbi-app-statement] and 128 [I-D.ietf-teas-actn-yang]. The current model is following the YANG 129 language specification as [RFC7950], and the corresponding protocol 130 is recommended to be Netconf protocol in [RFC6241] or RESTconf 131 protocol in [RFC8040]. 133 3.2. OTN-specific Parameters in Tunnel Model 135 OTN specific parameters have been augmenting to the TE tunnel models. 136 The attributes on both of the source and destination need to be 137 configured when setting up the tunnel. Typical parameters, including 138 client signal, TPN, TSG and corresponding tributary slot information, 139 are required in the OTN tunnel model. These parameters are 140 consistent with the framework in [RFC7062], and the specification in 141 [RFC7138] and [RFC7139]. 143 The OTN bandwidth information has been augmenting to various sections 144 of TE tunnel models, including tunnel bandwidth, primary path 145 bandwidth and so on. The OTN label information has been augmenting 146 to label hop of a group of routing objects and also LSPs. 148 3.3. OTN Path Compute RPC 150 Similarly with TE tunnel, a 'compute-only' mode of OTN tunnel model 151 is also supported for stateful path computation. Given the OTN 152 tunnel computed, the client may query and/or subscribe on the tunnel 153 to be notified whenever it changes. In addition, also a stateless 154 Remote Procedural Call (RPC) is specified. On receiving this RPC, 155 the provider is expected to compute the available path subject to the 156 constraints specified in RPC and feedback to the client without any 157 changing of the OTN network or the OTN tunnels. 159 4. OTN Tunnel YANG Tree 161 module: ietf-otn-tunnel 162 augment /te:te/te:tunnels/te:tunnel: 163 +--rw src-client-signal? identityref 164 +--rw dst-client-signal? identityref 165 augment /te:te/te:globals/te:named-path-constraints 166 /te:named-path-constraint/te:te-bandwidth/te:technology: 167 +--:(otn) 168 +--rw odu-type? identityref 169 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: 170 +--:(otn) 171 +--rw odu-type? identityref 172 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 173 /te:p2p-primary-path/te:te-bandwidth/te:technology: 174 +--:(otn) 175 +--rw odu-type? identityref 176 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 177 /te:p2p-primary-path/te:p2p-reverse-primary-path 178 /te:te-bandwidth/te:technology: 179 +--:(otn) 180 +--rw odu-type? identityref 181 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 182 /te:p2p-secondary-path/te:te-bandwidth/te:technology: 183 +--:(otn) 184 +--rw odu-type? identityref 185 augment /te:te/te:globals/te:named-path-constraints 186 /te:named-path-constraint/te:explicit-route-objects 187 /te:route-object-exclude-always/te:type/te:label 188 /te:label-hop/te:te-label/te:technology: 189 +--:(otn) 190 +--rw tpn? uint16 191 +--rw tsg? identityref 192 +--rw ts-list? string 193 augment /te:te/te:globals/te:named-path-constraints 194 /te:named-path-constraint/te:explicit-route-objects 195 /te:route-object-include-exclude/te:type/te:label 196 /te:label-hop/te:te-label/te:technology: 197 +--:(otn) 198 +--rw tpn? uint16 199 +--rw tsg? identityref 200 +--rw ts-list? string 201 augment /te:te/te:globals/te:named-path-constraints 202 /te:named-path-constraint/te:path-in-segment 203 /te:forward/te:label-restrictions/te:label-restriction: 204 +--rw range-type? identityref 205 +--rw tsg? identityref 206 +--rw priority? uint8 207 augment /te:te/te:globals/te:named-path-constraints 208 /te:named-path-constraint/te:path-in-segment/te:forward 209 /te:label-restrictions/te:label-restriction/te:label-start 210 /te:te-label/te:technology: 211 +--:(otn) 212 +--rw (otn-label-type)? 213 +--:(tributary-port) 214 | +--rw tpn? uint16 215 +--:(tributary-slot) 216 +--rw ts? uint16 217 augment /te:te/te:globals/te:named-path-constraints 218 /te:named-path-constraint/te:path-in-segment/te:forward 219 /te:label-restrictions/te:label-restriction/te:label-end 220 /te:te-label/te:technology: 221 +--:(otn) 222 +--rw (otn-label-type)? 223 +--:(tributary-port) 224 | +--rw tpn? uint16 225 +--:(tributary-slot) 226 +--rw ts? uint16 227 augment /te:te/te:globals/te:named-path-constraints 228 /te:named-path-constraint/te:path-in-segment/te:reverse 229 /te:label-restrictions/te:label-restriction: 230 +--rw range-type? identityref 231 +--rw tsg? identityref 232 +--rw priority? uint8 233 augment /te:te/te:globals/te:named-path-constraints 234 /te:named-path-constraint/te:path-in-segment/te:reverse 235 /te:label-restrictions/te:label-restriction/te:label-start 236 /te:te-label/te:technology: 237 +--:(otn) 238 +--rw (otn-label-type)? 239 +--:(tributary-port) 240 | +--rw tpn? uint16 241 +--:(tributary-slot) 242 +--rw ts? uint16 243 augment /te:te/te:globals/te:named-path-constraints 244 /te:named-path-constraint/te:path-in-segment/te:reverse 245 /te:label-restrictions/te:label-restriction/te:label-end 246 /te:te-label/te:technology: 247 +--:(otn) 248 +--rw (otn-label-type)? 249 +--:(tributary-port) 250 | +--rw tpn? uint16 251 +--:(tributary-slot) 252 +--rw ts? uint16 253 augment /te:te/te:globals/te:named-path-constraints 254 /te:named-path-constraint/te:path-out-segment/te:forward 255 /te:label-restrictions/te:label-restriction: 256 +--rw range-type? identityref 257 +--rw tsg? identityref 258 +--rw priority? uint8 259 augment /te:te/te:globals/te:named-path-constraints 260 /te:named-path-constraint/te:path-out-segment/te:forward 261 /te:label-restrictions/te:label-restriction/te:label-start 262 /te:te-label/te:technology: 263 +--:(otn) 264 +--rw (otn-label-type)? 265 +--:(tributary-port) 266 | +--rw tpn? uint16 267 +--:(tributary-slot) 268 +--rw ts? uint16 269 augment /te:te/te:globals/te:named-path-constraints 270 /te:named-path-constraint/te:path-out-segment/te:forward 271 /te:label-restrictions/te:label-restriction/te:label-end 272 /te:te-label/te:technology: 273 +--:(otn) 274 +--rw (otn-label-type)? 275 +--:(tributary-port) 276 | +--rw tpn? uint16 277 +--:(tributary-slot) 278 +--rw ts? uint16 279 augment /te:te/te:globals/te:named-path-constraints 280 /te:named-path-constraint/te:path-out-segment/te:reverse 281 /te:label-restrictions/te:label-restriction: 282 +--rw range-type? identityref 283 +--rw tsg? identityref 284 +--rw priority? uint8 285 augment /te:te/te:globals/te:named-path-constraints 286 /te:named-path-constraint/te:path-out-segment/te:reverse 287 /te:label-restrictions/te:label-restriction/te:label-start 288 /te:te-label/te:technology: 289 +--:(otn) 290 +--rw (otn-label-type)? 291 +--:(tributary-port) 292 | +--rw tpn? uint16 293 +--:(tributary-slot) 294 +--rw ts? uint16 295 augment /te:te/te:globals/te:named-path-constraints 296 /te:named-path-constraint/te:path-out-segment/te:reverse 297 /te:label-restrictions/te:label-restriction/te:label-end 298 /te:te-label/te:technology: 299 +--:(otn) 300 +--rw (otn-label-type)? 301 +--:(tributary-port) 302 | +--rw tpn? uint16 303 +--:(tributary-slot) 304 +--rw ts? uint16 305 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 306 /te:p2p-primary-path/te:optimizations/te:algorithm/te:metric 307 /te:optimization-metric/te:explicit-route-exclude-objects 308 /te:route-object-exclude-object/te:type/te:label 309 /te:label-hop/te:te-label/te:technology: 310 +--:(otn) 311 +--rw tpn? uint16 312 +--rw tsg? identityref 313 +--rw ts-list? string 314 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 315 /te:p2p-primary-path/te:optimizations/te:algorithm/te:metric 316 /te:optimization-metric/te:explicit-route-include-objects 317 /te:route-object-include-object/te:type/te:label/te:label-hop 318 /te:te-label/te:technology: 319 +--:(otn) 320 +--rw tpn? uint16 321 +--rw tsg? identityref 322 +--rw ts-list? string 323 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 324 /te:p2p-primary-path/te:explicit-route-objects 325 /te:route-object-exclude-always/te:type/te:label 326 /te:label-hop/te:te-label/te:technology: 327 +--:(otn) 328 +--rw tpn? uint16 329 +--rw tsg? identityref 330 +--rw ts-list? string 331 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 332 /te:p2p-primary-path/te:explicit-route-objects 333 /te:route-object-include-exclude/te:type/te:label 334 /te:label-hop/te:te-label/te:technology: 336 +--:(otn) 337 +--rw tpn? uint16 338 +--rw tsg? identityref 339 +--rw ts-list? string 340 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 341 /te:p2p-primary-path/te:path-in-segment/te:forward 342 /te:label-restrictions/te:label-restriction: 343 +--rw range-type? identityref 344 +--rw tsg? identityref 345 +--rw priority? uint8 346 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 347 /te:p2p-primary-path/te:path-in-segment/te:forward 348 /te:label-restrictions/te:label-restriction 349 /te:label-start/te:te-label/te:technology: 350 +--:(otn) 351 +--rw (otn-label-type)? 352 +--:(tributary-port) 353 | +--rw tpn? uint16 354 +--:(tributary-slot) 355 +--rw ts? uint16 356 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 357 /te:p2p-primary-path/te:path-in-segment/te:forward 358 /te:label-restrictions/te:label-restriction 359 /te:label-end/te:te-label/te:technology: 360 +--:(otn) 361 +--rw (otn-label-type)? 362 +--:(tributary-port) 363 | +--rw tpn? uint16 364 +--:(tributary-slot) 365 +--rw ts? uint16 366 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 367 /te:p2p-primary-path/te:path-in-segment/te:reverse 368 /te:label-restrictions/te:label-restriction: 369 +--rw range-type? identityref 370 +--rw tsg? identityref 371 +--rw priority? uint8 372 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 373 /te:p2p-primary-path/te:path-in-segment/te:reverse 374 /te:label-restrictions/te:label-restriction 375 /te:label-start/te:te-label/te:technology: 376 +--:(otn) 377 +--rw (otn-label-type)? 378 +--:(tributary-port) 379 | +--rw tpn? uint16 380 +--:(tributary-slot) 381 +--rw ts? uint16 382 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 383 /te:p2p-primary-path/te:path-in-segment/te:reverse 384 /te:label-restrictions/te:label-restriction/te:label-end 385 /te:te-label/te:technology: 386 +--:(otn) 387 +--rw (otn-label-type)? 388 +--:(tributary-port) 389 | +--rw tpn? uint16 390 +--:(tributary-slot) 391 +--rw ts? uint16 392 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 393 /te:p2p-primary-path/te:path-out-segment/te:forward 394 /te:label-restrictions/te:label-restriction: 395 +--rw range-type? identityref 396 +--rw tsg? identityref 397 +--rw priority? uint8 398 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 399 /te:p2p-primary-path/te:path-out-segment/te:forward 400 /te:label-restrictions/te:label-restriction/te:label-start 401 /te:te-label/te:technology: 402 +--:(otn) 403 +--rw (otn-label-type)? 404 +--:(tributary-port) 405 | +--rw tpn? uint16 406 +--:(tributary-slot) 407 +--rw ts? uint16 408 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 409 /te:p2p-primary-path/te:path-out-segment/te:forward 410 /te:label-restrictions/te:label-restriction/te:label-end 411 /te:te-label/te:technology: 412 +--:(otn) 413 +--rw (otn-label-type)? 414 +--:(tributary-port) 415 | +--rw tpn? uint16 416 +--:(tributary-slot) 417 +--rw ts? uint16 418 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 419 /te:p2p-primary-path/te:path-out-segment/te:reverse 420 /te:label-restrictions/te:label-restriction: 421 +--rw range-type? identityref 422 +--rw tsg? identityref 423 +--rw priority? uint8 424 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 425 /te:p2p-primary-path/te:path-out-segment/te:reverse 426 /te:label-restrictions/te:label-restriction/te:label-start 427 /te:te-label/te:technology: 428 +--:(otn) 429 +--rw (otn-label-type)? 430 +--:(tributary-port) 431 | +--rw tpn? uint16 432 +--:(tributary-slot) 433 +--rw ts? uint16 434 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 435 /te:p2p-primary-path/te:path-out-segment/te:reverse 436 /te:label-restrictions/te:label-restriction/te:label-end 437 /te:te-label/te:technology: 438 +--:(otn) 439 +--rw (otn-label-type)? 440 +--:(tributary-port) 441 | +--rw tpn? uint16 442 +--:(tributary-slot) 443 +--rw ts? uint16 444 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 445 /te:p2p-primary-path/te:state/te:path-properties 446 /te:path-route-objects/te:path-computed-route-object 447 /te:state/te:type/te:label/te:label-hop/te:te-label 448 /te:technology: 449 +--:(otn) 450 +--ro tpn? uint16 451 +--ro tsg? identityref 452 +--ro ts-list? string 453 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 454 /te:p2p-primary-path/te:state/te:lsps/te:lsp 455 /te:lsp-record-route-subobjects/te:record-route-subobject 456 /te:type/te:label/te:label-hop/te:te-label/te:technology: 457 +--:(otn) 458 +--ro tpn? uint16 459 +--ro tsg? identityref 460 +--ro ts-list? string 461 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 462 /te:p2p-primary-path/te:state/te:lsps/te:lsp 463 /te:path-properties/te:path-route-objects 464 /te:path-computed-route-object/te:state/te:type/te:label 465 /te:label-hop/te:te-label/te:technology: 466 +--:(otn) 467 +--ro tpn? uint16 468 +--ro tsg? identityref 469 +--ro ts-list? string 470 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 471 /te:p2p-primary-path/te:p2p-reverse-primary-path 472 /te:optimizations/te:algorithm/te:metric 473 /te:optimization-metric/te:explicit-route-exclude-objects 474 /te:route-object-exclude-object/te:type/te:label 475 /te:label-hop/te:te-label/te:technology: 476 +--:(otn) 477 +--rw tpn? uint16 478 +--rw tsg? identityref 479 +--rw ts-list? string 481 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 482 /te:p2p-primary-path/te:p2p-reverse-primary-path 483 /te:optimizations/te:algorithm/te:metric 484 /te:optimization-metric/te:explicit-route-include-objects 485 /te:route-object-include-object/te:type/te:label 486 /te:label-hop/te:te-label/te:technology: 487 +--:(otn) 488 +--rw tpn? uint16 489 +--rw tsg? identityref 490 +--rw ts-list? string 491 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 492 /te:p2p-primary-path/te:p2p-reverse-primary-path 493 /te:explicit-route-objects/te:route-object-exclude-always 494 /te:type/te:label/te:label-hop/te:te-label/te:technology: 495 +--:(otn) 496 +--rw tpn? uint16 497 +--rw tsg? identityref 498 +--rw ts-list? string 499 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 500 /te:p2p-primary-path/te:p2p-reverse-primary-path 501 /te:explicit-route-objects/te:route-object-include-exclude 502 /te:type/te:label/te:label-hop/te:te-label/te:technology: 503 +--:(otn) 504 +--rw tpn? uint16 505 +--rw tsg? identityref 506 +--rw ts-list? string 507 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 508 /te:p2p-primary-path/te:p2p-reverse-primary-path 509 /te:path-in-segment/te:forward/te:label-restrictions 510 /te:label-restriction: 511 +--rw range-type? identityref 512 +--rw tsg? identityref 513 +--rw priority? uint8 514 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 515 /te:p2p-primary-path/te:p2p-reverse-primary-path 516 /te:path-in-segment/te:forward/te:label-restrictions 517 /te:label-restriction/te:label-start/te:te-label 518 /te:technology: 519 +--:(otn) 520 +--rw (otn-label-type)? 521 +--:(tributary-port) 522 | +--rw tpn? uint16 523 +--:(tributary-slot) 524 +--rw ts? uint16 525 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 526 /te:p2p-primary-path/te:p2p-reverse-primary-path 527 /te:path-in-segment/te:forward/te:label-restrictions 528 /te:label-restriction/te:label-end/te:te-label 529 /te:technology: 530 +--:(otn) 531 +--rw (otn-label-type)? 532 +--:(tributary-port) 533 | +--rw tpn? uint16 534 +--:(tributary-slot) 535 +--rw ts? uint16 536 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 537 /te:p2p-primary-path/te:p2p-reverse-primary-path 538 /te:path-in-segment/te:reverse/te:label-restrictions 539 /te:label-restriction: 540 +--rw range-type? identityref 541 +--rw tsg? identityref 542 +--rw priority? uint8 543 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 544 /te:p2p-primary-path/te:p2p-reverse-primary-path 545 /te:path-in-segment/te:reverse/te:label-restrictions 546 /te:label-restriction/te:label-start/te:te-label 547 /te:technology: 548 +--:(otn) 549 +--rw (otn-label-type)? 550 +--:(tributary-port) 551 | +--rw tpn? uint16 552 +--:(tributary-slot) 553 +--rw ts? uint16 554 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 555 /te:p2p-primary-path/te:p2p-reverse-primary-path 556 /te:path-in-segment/te:reverse/te:label-restrictions 557 /te:label-restriction/te:label-end/te:te-label 558 /te:technology: 559 +--:(otn) 560 +--rw (otn-label-type)? 561 +--:(tributary-port) 562 | +--rw tpn? uint16 563 +--:(tributary-slot) 564 +--rw ts? uint16 565 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 566 /te:p2p-primary-path/te:p2p-reverse-primary-path 567 /te:path-out-segment/te:forward/te:label-restrictions 568 /te:label-restriction: 569 +--rw range-type? identityref 570 +--rw tsg? identityref 571 +--rw priority? uint8 572 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 573 /te:p2p-primary-path/te:p2p-reverse-primary-path 574 /te:path-out-segment/te:forward/te:label-restrictions 575 /te:label-restriction/te:label-start/te:te-label 576 /te:technology: 578 +--:(otn) 579 +--rw (otn-label-type)? 580 +--:(tributary-port) 581 | +--rw tpn? uint16 582 +--:(tributary-slot) 583 +--rw ts? uint16 584 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 585 /te:p2p-primary-path/te:p2p-reverse-primary-path 586 /te:path-out-segment/te:forward/te:label-restrictions 587 /te:label-restriction/te:label-end/te:te-label 588 /te:technology: 589 +--:(otn) 590 +--rw (otn-label-type)? 591 +--:(tributary-port) 592 | +--rw tpn? uint16 593 +--:(tributary-slot) 594 +--rw ts? uint16 595 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 596 /te:p2p-primary-path/te:p2p-reverse-primary-path 597 /te:path-out-segment/te:reverse/te:label-restrictions 598 /te:label-restriction: 599 +--rw range-type? identityref 600 +--rw tsg? identityref 601 +--rw priority? uint8 602 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 603 /te:p2p-primary-path/te:p2p-reverse-primary-path 604 /te:path-out-segment/te:reverse/te:label-restrictions 605 /te:label-restriction/te:label-start/te:te-label 606 /te:technology: 607 +--:(otn) 608 +--rw (otn-label-type)? 609 +--:(tributary-port) 610 | +--rw tpn? uint16 611 +--:(tributary-slot) 612 +--rw ts? uint16 613 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 614 /te:p2p-primary-path/te:p2p-reverse-primary-path 615 /te:path-out-segment/te:reverse/te:label-restrictions 616 /te:label-restriction/te:label-end/te:te-label 617 /te:technology: 618 +--:(otn) 619 +--rw (otn-label-type)? 620 +--:(tributary-port) 621 | +--rw tpn? uint16 622 +--:(tributary-slot) 623 +--rw ts? uint16 624 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 625 /te:p2p-primary-path/te:p2p-reverse-primary-path 626 /te:state/te:path-properties/te:path-route-objects 627 /te:path-computed-route-object/te:state/te:type 628 /te:label/te:label-hop/te:te-label/te:technology: 629 +--:(otn) 630 +--ro tpn? uint16 631 +--ro tsg? identityref 632 +--ro ts-list? string 633 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 634 /te:p2p-primary-path/te:p2p-reverse-primary-path 635 /te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects 636 /te:record-route-subobject/te:type/te:label/te:label-hop 637 /te:te-label/te:technology: 638 +--:(otn) 639 +--ro tpn? uint16 640 +--ro tsg? identityref 641 +--ro ts-list? string 642 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 643 /te:p2p-primary-path/te:p2p-reverse-primary-path 644 /te:state/te:lsps/te:lsp/te:path-properties 645 /te:path-route-objects/te:path-computed-route-object 646 /te:state/te:type/te:label/te:label-hop/te:te-label 647 /te:technology: 648 +--:(otn) 649 +--ro tpn? uint16 650 +--ro tsg? identityref 651 +--ro ts-list? string 652 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 653 /te:p2p-secondary-path/te:optimizations/te:algorithm 654 /te:metric/te:optimization-metric 655 /te:explicit-route-exclude-objects 656 /te:route-object-exclude-object/te:type/te:label 657 /te:label-hop/te:te-label/te:technology: 658 +--:(otn) 659 +--rw tpn? uint16 660 +--rw tsg? identityref 661 +--rw ts-list? string 662 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 663 /te:p2p-secondary-path/te:optimizations/te:algorithm 664 /te:metric/te:optimization-metric 665 /te:explicit-route-include-objects 666 /te:route-object-include-object/te:type/te:label 667 /te:label-hop/te:te-label/te:technology: 668 +--:(otn) 669 +--rw tpn? uint16 670 +--rw tsg? identityref 671 +--rw ts-list? string 672 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 673 /te:p2p-secondary-path/te:explicit-route-objects 674 /te:route-object-exclude-always/te:type/te:label 675 /te:label-hop/te:te-label/te:technology: 676 +--:(otn) 677 +--rw tpn? uint16 678 +--rw tsg? identityref 679 +--rw ts-list? string 680 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 681 /te:p2p-secondary-path/te:explicit-route-objects 682 /te:route-object-include-exclude/te:type/te:label 683 /te:label-hop/te:te-label/te:technology: 684 +--:(otn) 685 +--rw tpn? uint16 686 +--rw tsg? identityref 687 +--rw ts-list? string 688 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 689 /te:p2p-secondary-path/te:path-in-segment/te:forward 690 /te:label-restrictions/te:label-restriction: 691 +--rw range-type? identityref 692 +--rw tsg? identityref 693 +--rw priority? uint8 694 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 695 /te:p2p-secondary-path/te:path-in-segment/te:forward 696 /te:label-restrictions/te:label-restriction/te:label-start 697 /te:te-label/te:technology: 698 +--:(otn) 699 +--rw (otn-label-type)? 700 +--:(tributary-port) 701 | +--rw tpn? uint16 702 +--:(tributary-slot) 703 +--rw ts? uint16 704 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 705 /te:p2p-secondary-path/te:path-in-segment/te:forward 706 /te:label-restrictions/te:label-restriction/te:label-end 707 /te:te-label/te:technology: 708 +--:(otn) 709 +--rw (otn-label-type)? 710 +--:(tributary-port) 711 | +--rw tpn? uint16 712 +--:(tributary-slot) 713 +--rw ts? uint16 714 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 715 /te:p2p-secondary-path/te:path-in-segment/te:reverse 716 /te:label-restrictions/te:label-restriction: 717 +--rw range-type? identityref 718 +--rw tsg? identityref 719 +--rw priority? uint8 720 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 721 /te:p2p-secondary-path/te:path-in-segment/te:reverse 722 /te:label-restrictions/te:label-restriction/te:label-start 723 /te:te-label/te:technology: 724 +--:(otn) 725 +--rw (otn-label-type)? 726 +--:(tributary-port) 727 | +--rw tpn? uint16 728 +--:(tributary-slot) 729 +--rw ts? uint16 730 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 731 /te:p2p-secondary-path/te:path-in-segment/te:reverse 732 /te:label-restrictions/te:label-restriction/te:label-end 733 /te:te-label/te:technology: 734 +--:(otn) 735 +--rw (otn-label-type)? 736 +--:(tributary-port) 737 | +--rw tpn? uint16 738 +--:(tributary-slot) 739 +--rw ts? uint16 740 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 741 /te:p2p-secondary-path/te:path-out-segment/te:forward 742 /te:label-restrictions/te:label-restriction: 743 +--rw range-type? identityref 744 +--rw tsg? identityref 745 +--rw priority? uint8 746 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 747 /te:p2p-secondary-path/te:path-out-segment/te:forward 748 /te:label-restrictions/te:label-restriction/te:label-start 749 /te:te-label/te:technology: 750 +--:(otn) 751 +--rw (otn-label-type)? 752 +--:(tributary-port) 753 | +--rw tpn? uint16 754 +--:(tributary-slot) 755 +--rw ts? uint16 756 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 757 /te:p2p-secondary-path/te:path-out-segment/te:forward 758 /te:label-restrictions/te:label-restriction/te:label-end 759 /te:te-label/te:technology: 760 +--:(otn) 761 +--rw (otn-label-type)? 762 +--:(tributary-port) 763 | +--rw tpn? uint16 764 +--:(tributary-slot) 765 +--rw ts? uint16 766 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 767 /te:p2p-secondary-path/te:path-out-segment/te:reverse 768 /te:label-restrictions/te:label-restriction: 769 +--rw range-type? identityref 770 +--rw tsg? identityref 771 +--rw priority? uint8 772 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 773 /te:p2p-secondary-path/te:path-out-segment/te:reverse 774 /te:label-restrictions/te:label-restriction/te:label-start 775 /te:te-label/te:technology: 776 +--:(otn) 777 +--rw (otn-label-type)? 778 +--:(tributary-port) 779 | +--rw tpn? uint16 780 +--:(tributary-slot) 781 +--rw ts? uint16 782 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 783 /te:p2p-secondary-path/te:path-out-segment/te:reverse 784 /te:label-restrictions/te:label-restriction/te:label-end 785 /te:te-label/te:technology: 786 +--:(otn) 787 +--rw (otn-label-type)? 788 +--:(tributary-port) 789 | +--rw tpn? uint16 790 +--:(tributary-slot) 791 +--rw ts? uint16 792 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 793 /te:p2p-secondary-path/te:state/te:path-properties 794 /te:path-route-objects/te:path-computed-route-object 795 /te:state/te:type/te:label/te:label-hop/te:te-label 796 /te:technology: 797 +--:(otn) 798 +--ro tpn? uint16 799 +--ro tsg? identityref 800 +--ro ts-list? string 801 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 802 /te:p2p-secondary-path/te:state/te:lsps/te:lsp 803 /te:lsp-record-route-subobjects/te:record-route-subobject 804 /te:type/te:label/te:label-hop/te:te-label/te:technology: 805 +--:(otn) 806 +--ro tpn? uint16 807 +--ro tsg? identityref 808 +--ro ts-list? string 809 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 810 /te:p2p-secondary-path/te:state/te:lsps/te:lsp 811 /te:path-properties/te:path-route-objects 812 /te:path-computed-route-object/te:state/te:type/te:label 813 /te:label-hop/te:te-label/te:technology: 814 +--:(otn) 815 +--ro tpn? uint16 816 +--ro tsg? identityref 817 +--ro ts-list? string 819 augment /te:te/te:lsps-state/te:lsp 820 /te:lsp-record-route-subobjects/te:record-route-subobject 821 /te:type/te:label/te:label-hop/te:te-label/te:technology: 822 +--:(otn) 823 +--ro tpn? uint16 824 +--ro tsg? identityref 825 +--ro ts-list? string 827 rpcs: 828 +---x otn-te-tunnel-path-compute 829 +---w input 830 | +---w request* [id] 831 | +---w id uint8 832 | +---w type? identityref 833 | +---w source? inet:ip-address 834 | +---w destination? inet:ip-address 835 | +---w src-tp-id? binary 836 | +---w dst-tp-id? binary 837 | +---w switching-layer? identityref 838 | +---w encoding? identityref 839 | +---w protection-type? identityref 840 | +---w restoration-type? identityref 841 | +---w provider-id? te-types:te-global-id 842 | +---w client-id? te-types:te-global-id 843 | +---w te-topology-id? te-types:te-topology-id 844 | +---w setup-priority? uint8 845 | +---w hold-priority? uint8 846 | +---w te-path-metric-type? identityref 847 | +---w odu-type? identityref 848 | +---w p2p-primary-paths 849 | | +---w p2p-primary-path* [name] 850 | | +---w name string 851 | | +---w te-default-metric? uint32 852 | | +---w te-delay-metric? uint32 853 | | +---w te-hop-metric? uint32 854 | | +---w explicit-route-objects 855 | | +---w explicit-route-object* [index] 856 | | +---w explicit-route-usage? identityref 857 | | +---w index uint32 858 | | +---w (type)? 859 | | +--:(num-unnum-hop) 860 | | | +---w num-unnum-hop 861 | | | +---w node-id? te-types:te-node-id 862 | | | +---w link-tp-id? te-types:te-tp-id 863 | | | +---w hop-type? te-hop-type 864 | | | +---w direction? te-link-direction 865 | | +--:(as-number) 866 | | | +---w as-number-hop 867 | | | +---w as-number? binary 868 | | | +---w hop-type? te-hop-type 869 | | +--:(label) 870 | | +---w label-hop 871 | | +---w te-label 872 | | +---w (technology)? 873 | | | +--:(generic) 874 | | | | +---w generic? rt-types:generalized-label 875 | | | +--:(otn) 876 | | | +---w tpn? uint16 877 | | | +---w tsg? identityref 878 | | | +---w ts-list? string 879 | | +---w direction? te-label-direction 880 | +---w p2p-secondary-paths 881 | | +---w p2p-secondary-path* [name] 882 | | +---w name string 883 | | +---w te-default-metric? uint32 884 | | +---w te-delay-metric? uint32 885 | | +---w te-hop-metric? uint32 886 | | +---w explicit-route-objects 887 | | +---w explicit-route-object* [index] 888 | | +---w explicit-route-usage? identityref 889 | | +---w index uint32 890 | | +---w (type)? 891 | | +--:(num-unnum-hop) 892 | | | +---w num-unnum-hop 893 | | | +---w node-id? te-types:te-node-id 894 | | | +---w link-tp-id? te-types:te-tp-id 895 | | | +---w hop-type? te-hop-type 896 | | | +---w direction? te-link-direction 897 | | +--:(as-number) 898 | | | +---w as-number-hop 899 | | | +---w as-number? binary 900 | | | +---w hop-type? te-hop-type 901 | | +--:(label) 902 | | +---w label-hop 903 | | +---w te-label 904 | | +---w (technology)? 905 | | | +--:(generic) 906 | | | | +---w generic? rt-types:generalized-label 907 | | | +--:(otn) 908 | | | +---w tpn? uint16 909 | | | +---w tsg? identityref 910 | | | +---w ts-list? string 911 | | +---w direction? te-label-direction 912 | +---w src-client-signal? identityref 913 | +---w src-tributary-slots 914 | | +---w values* uint8 915 | +---w dst-client-signal? identityref 916 | +---w dst-tributary-slots 917 | +---w values* uint8 918 +--ro output 919 +--ro return-code? enumeration 920 +--ro result* [id] 921 +--ro id uint8 922 +--ro p2p-primary-paths 923 | +--ro p2p-primary-path* [name] 924 | +--ro name string 925 | +--ro te-default-metric? uint32 926 | +--ro te-delay-metric? uint32 927 | +--ro te-hop-metric? uint32 928 | +--ro explicit-route-objects 929 | +--ro explicit-route-object* [index] 930 | +--ro explicit-route-usage? identityref 931 | +--ro index uint32 932 | +--ro (type)? 933 | +--:(num-unnum-hop) 934 | | +--ro num-unnum-hop 935 | | +--ro node-id? te-types:te-node-id 936 | | +--ro link-tp-id? te-types:te-tp-id 937 | | +--ro hop-type? te-hop-type 938 | | +--ro direction? te-link-direction 939 | +--:(as-number) 940 | | +--ro as-number-hop 941 | | +--ro as-number? binary 942 | | +--ro hop-type? te-hop-type 943 | +--:(label) 944 | +--ro label-hop 945 | +--ro te-label 946 | +--ro (technology)? 947 | | +--:(generic) 948 | | | +--ro generic? rt-types:generalized-label 949 | | +--:(otn) 950 | | +--ro tpn? uint16 951 | | +--ro tsg? identityref 952 | | +--ro ts-list? string 953 | +--ro direction? te-label-direction 954 +--ro p2p-secondary-paths 955 +--ro p2p-secondary-path* [name] 956 +--ro name string 957 +--ro te-default-metric? uint32 958 +--ro te-delay-metric? uint32 959 +--ro te-hop-metric? uint32 960 +--ro explicit-route-objects 961 +--ro explicit-route-object* [index] 962 +--ro explicit-route-usage? identityref 963 +--ro index uint32 964 +--ro (type)? 965 +--:(num-unnum-hop) 966 | +--ro num-unnum-hop 967 | +--ro node-id? te-types:te-node-id 968 | +--ro link-tp-id? te-types:te-tp-id 969 | +--ro hop-type? te-hop-type 970 | +--ro direction? te-link-direction 971 +--:(as-number) 972 | +--ro as-number-hop 973 | +--ro as-number? binary 974 | +--ro hop-type? te-hop-type 975 +--:(label) 976 +--ro label-hop 977 +--ro te-label 978 +--ro (technology)? 979 | +--:(generic) 980 | | +--ro generic? rt-types:generalized-label 981 | +--:(otn) 982 | +--ro tpn? uint16 983 | +--ro tsg? identityref 984 | +--ro ts-list? string 985 +--ro direction? te-label-direction 987 5. OTN Tunnel YANG Code 989 file "ietf-otn-tunnel@2018-06-30.yang" 990 module ietf-otn-tunnel { 991 yang-version 1.1; 993 namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; 994 prefix "otn-tunnel"; 996 import ietf-te { 997 prefix "te"; 998 } 1000 import ietf-otn-types { 1001 prefix "otn-types"; 1002 } 1004 import ietf-te-types { 1005 prefix "te-types"; 1006 } 1007 import ietf-inet-types { 1008 prefix "inet"; 1009 } 1011 organization 1012 "IETF CCAMP Working Group"; 1013 contact 1014 "WG Web: 1015 WG List: 1017 Editor: Haomian Zheng 1018 1020 Editor: Aihua Guo 1021 1023 Editor: Italo Busi 1024 1026 Editor: Anurag Sharma 1027 1029 Editor: Rajan Rao 1030 1032 Editor: Sergio Belotti 1033 1035 Editor: Victor Lopez 1036 1038 Editor: Yunbo Li 1039 1041 Editor: Yunbin Xu 1042 "; 1044 description 1045 "This module defines a model for OTN Tunnel Services."; 1047 revision "2018-07-02" { 1048 description 1049 "Revision 0.6"; 1050 reference 1051 "draft-ietf-ccamp-otn-tunnel-model-03"; 1052 } 1054 /* 1055 * Groupings 1056 */ 1058 grouping otn-tunnel-attributes { 1059 description "Parameters for OTN tunnel"; 1061 leaf src-client-signal { 1062 type identityref { 1063 base otn-types:client-signal; 1064 } 1065 description 1066 "Client signal at the source endpoint of the tunnel"; 1067 } 1069 leaf dst-client-signal { 1070 type identityref { 1071 base otn-types:client-signal; 1072 } 1073 description 1074 "Client signal at the destination endpoint of the tunnel"; 1075 } 1077 } 1079 /* 1080 * Data nodes 1081 */ 1083 augment "/te:te/te:tunnels/te:tunnel" { 1084 description 1085 "Augment with additional parameters required for OTN service"; 1086 uses otn-tunnel-attributes; 1087 } 1089 /* 1090 * Augment TE bandwidth 1091 */ 1093 /* Augment bandwidth of named-path-constraints */ 1094 augment "/te:te/te:globals/te:named-path-constraints/" 1095 + "te:named-path-constraint/" 1096 + "te:te-bandwidth/te:technology" { 1097 description "OTN bandwidth."; 1098 case otn { 1099 uses otn-types:otn-path-bandwidth; 1100 } 1101 } 1102 /* Augment bandwdith of tunnel */ 1103 augment "/te:te/te:tunnels/te:tunnel/" 1104 + "te:te-bandwidth/te:technology" { 1105 description "OTN bandwidth."; 1106 case otn { 1107 uses otn-types:otn-path-bandwidth; 1108 } 1109 } 1111 /* Augment bandwidth of primary path */ 1112 augment "/te:te/te:tunnels/te:tunnel/" 1113 + "te:p2p-primary-paths/te:p2p-primary-path/" 1114 + "te:te-bandwidth/te:technology" { 1115 description "OTN bandwidth."; 1116 case otn { 1117 uses otn-types:otn-path-bandwidth; 1118 } 1119 } 1121 /* Augment bandwidth of reverse primary path */ 1122 augment "/te:te/te:tunnels/te:tunnel/" 1123 + "te:p2p-primary-paths/te:p2p-primary-path/" 1124 + "te:p2p-reverse-primary-path/" 1125 + "te:te-bandwidth/te:technology" { 1126 description "OTN bandwidth."; 1127 case otn { 1128 uses otn-types:otn-path-bandwidth; 1129 } 1130 } 1132 /* Augment bandwidht of secondary path */ 1133 augment "/te:te/te:tunnels/te:tunnel/" 1134 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1135 + "te:te-bandwidth/te:technology" { 1136 description "OTN bandwidth."; 1137 case otn { 1138 uses otn-types:otn-path-bandwidth; 1139 } 1140 } 1142 /* 1143 * Augment TE label. 1144 */ 1146 /* Augment label hop of route-object-exclude-always of named-path-constraints */ 1147 augment "/te:te/te:globals/te:named-path-constraints/" 1148 + "te:named-path-constraint/te:explicit-route-objects/" 1149 + "te:route-object-exclude-always/te:type/te:label/" 1150 + "te:label-hop/te:te-label/te:technology" { 1151 description "OTN label."; 1152 case otn { 1153 uses otn-types:otn-path-label; 1154 } 1155 } 1157 /* Augment label hop of route-object-include-exclude of named-path-constraints */ 1158 augment "/te:te/te:globals/te:named-path-constraints/" 1159 + "te:named-path-constraint/te:explicit-route-objects/" 1160 + "te:route-object-include-exclude/te:type/te:label/" 1161 + "te:label-hop/te:te-label/te:technology" { 1162 description "OTN label."; 1163 case otn { 1164 uses otn-types:otn-path-label; 1165 } 1166 } 1168 /* Augment label restrictions for the forwarding direction of path-in-segment of named-path-constraints */ 1169 augment "/te:te/te:globals/te:named-path-constraints/" 1170 + "te:named-path-constraint/te:path-in-segment/" 1171 + "te:forward/te:label-restrictions/" 1172 + "te:label-restriction" { 1173 description "OTN label."; 1174 uses otn-types:otn-label-restriction; 1175 } 1177 /* Augment label restrictions start for the forwarding direction of path-in-segment of named-path-constraints */ 1178 augment "/te:te/te:globals/te:named-path-constraints/" 1179 + "te:named-path-constraint/te:path-in-segment/" 1180 + "te:forward/te:label-restrictions/" 1181 + "te:label-restriction/te:label-start/" 1182 + "te:te-label/te:technology" { 1183 description "OTN label."; 1184 case otn { 1185 uses otn-types:otn-link-label; 1186 } 1187 } 1189 /* Augment label restrictions end for the forwarding direction of path-in-segment of named-path-constraints */ 1190 augment "/te:te/te:globals/te:named-path-constraints/" 1191 + "te:named-path-constraint/te:path-in-segment/" 1192 + "te:forward/te:label-restrictions/" 1193 + "te:label-restriction/te:label-end/" 1194 + "te:te-label/te:technology" { 1195 description "OTN label."; 1196 case otn { 1197 uses otn-types:otn-link-label; 1199 } 1200 } 1202 /* Augment label restrictions for the reverse direction of path-in-segment of named-path-constraints */ 1203 augment "/te:te/te:globals/te:named-path-constraints/" 1204 + "te:named-path-constraint/te:path-in-segment/" 1205 + "te:reverse/te:label-restrictions/" 1206 + "te:label-restriction" { 1207 description "OTN label."; 1208 uses otn-types:otn-label-restriction; 1209 } 1211 /* Augment label restrictions start for the reverse direction of path-in-segment of named-path-constraints */ 1212 augment "/te:te/te:globals/te:named-path-constraints/" 1213 + "te:named-path-constraint/te:path-in-segment/" 1214 + "te:reverse/te:label-restrictions/" 1215 + "te:label-restriction/te:label-start/" 1216 + "te:te-label/te:technology" { 1217 description "OTN label."; 1218 case otn { 1219 uses otn-types:otn-link-label; 1220 } 1221 } 1223 /* Augment label restrictions end for the reverse direction of path-in-segment of named-path-constraints */ 1224 augment "/te:te/te:globals/te:named-path-constraints/" 1225 + "te:named-path-constraint/te:path-in-segment/" 1226 + "te:reverse/te:label-restrictions/" 1227 + "te:label-restriction/te:label-end/" 1228 + "te:te-label/te:technology" { 1229 description "OTN label."; 1230 case otn { 1231 uses otn-types:otn-link-label; 1232 } 1233 } 1235 /* Augment label restrictions for the forwarding direction of path-out-segment of named-path-constraints */ 1236 augment "/te:te/te:globals/te:named-path-constraints/" 1237 + "te:named-path-constraint/te:path-out-segment/" 1238 + "te:forward/te:label-restrictions/" 1239 + "te:label-restriction" { 1240 description "OTN label."; 1241 uses otn-types:otn-label-restriction; 1242 } 1243 /* Augment label restrictions start for the forwarding direction of path-out-segment of named-path-constraints */ 1244 augment "/te:te/te:globals/te:named-path-constraints/" 1245 + "te:named-path-constraint/te:path-out-segment/" 1246 + "te:forward/te:label-restrictions/" 1247 + "te:label-restriction/te:label-start/" 1248 + "te:te-label/te:technology" { 1249 description "OTN label."; 1250 case otn { 1251 uses otn-types:otn-link-label; 1252 } 1253 } 1255 /* Augment label restrictions end for the forwarding direction of path-out-segment of named-path-constraints */ 1256 augment "/te:te/te:globals/te:named-path-constraints/" 1257 + "te:named-path-constraint/te:path-out-segment/" 1258 + "te:forward/te:label-restrictions/" 1259 + "te:label-restriction/te:label-end/" 1260 + "te:te-label/te:technology" { 1261 description "OTN label."; 1262 case otn { 1263 uses otn-types:otn-link-label; 1264 } 1265 } 1267 /* Augment label restrictions for the reverse direction of path-out-segment of named-path-constraints */ 1268 augment "/te:te/te:globals/te:named-path-constraints/" 1269 + "te:named-path-constraint/te:path-out-segment/" 1270 + "te:reverse/te:label-restrictions/" 1271 + "te:label-restriction" { 1272 description "OTN label."; 1273 uses otn-types:otn-label-restriction; 1274 } 1276 /* Augment label restrictions start for the reverse direction of path-out-segment of named-path-constraints */ 1277 augment "/te:te/te:globals/te:named-path-constraints/" 1278 + "te:named-path-constraint/te:path-out-segment/" 1279 + "te:reverse/te:label-restrictions/" 1280 + "te:label-restriction/te:label-start/" 1281 + "te:te-label/te:technology" { 1282 description "OTN label."; 1283 case otn { 1284 uses otn-types:otn-link-label; 1285 } 1286 } 1288 /* Augment label restrictions end for the reverse direction of path-out-segment of named-path-constraints */ 1289 augment "/te:te/te:globals/te:named-path-constraints/" 1290 + "te:named-path-constraint/te:path-out-segment/" 1291 + "te:reverse/te:label-restrictions/" 1292 + "te:label-restriction/te:label-end/" 1293 + "te:te-label/te:technology" { 1294 description "OTN label."; 1295 case otn { 1296 uses otn-types:otn-link-label; 1297 } 1298 } 1300 /* Augment label hop of route-exclude of primary path */ 1301 augment "/te:te/te:tunnels/te:tunnel/" 1302 + "te:p2p-primary-paths/te:p2p-primary-path/" 1303 + "te:optimizations/te:algorithm/te:metric/" 1304 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1305 + "te:route-object-exclude-object/te:type/te:label/" 1306 + "te:label-hop/te:te-label/te:technology" { 1307 description "OTN label."; 1308 case otn { 1309 uses otn-types:otn-path-label; 1310 } 1311 } 1313 /* Augment label hop of route-include of primary path */ 1314 augment "/te:te/te:tunnels/te:tunnel/" 1315 + "te:p2p-primary-paths/te:p2p-primary-path/" 1316 + "te:optimizations/te:algorithm/te:metric/" 1317 + "te:optimization-metric/te:explicit-route-include-objects/" 1318 + "te:route-object-include-object/te:type/te:label/" 1319 + "te:label-hop/te:te-label/te:technology" { 1320 description "OTN label."; 1321 case otn { 1322 uses otn-types:otn-path-label; 1323 } 1324 } 1326 /* Augment label hop of route-object-exclude-always of primary path */ 1327 augment "/te:te/te:tunnels/te:tunnel/" 1328 + "te:p2p-primary-paths/te:p2p-primary-path/" 1329 + "te:explicit-route-objects/" 1330 + "te:route-object-exclude-always/te:type/te:label/" 1331 + "te:label-hop/te:te-label/te:technology" { 1332 description "OTN label."; 1333 case otn { 1334 uses otn-types:otn-path-label; 1335 } 1336 } 1338 /* Augment label hop of route-object-include-exclude of primary path */ 1339 augment "/te:te/te:tunnels/te:tunnel/" 1340 + "te:p2p-primary-paths/te:p2p-primary-path/" 1341 + "te:explicit-route-objects/" 1342 + "te:route-object-include-exclude/te:type/te:label/" 1343 + "te:label-hop/te:te-label/te:technology" { 1344 description "OTN label."; 1345 case otn { 1346 uses otn-types:otn-path-label; 1347 } 1348 } 1350 /* Augment label restrictions for the forwarding direction of path-in-segment of primary path */ 1351 augment "/te:te/te:tunnels/te:tunnel/" 1352 + "te:p2p-primary-paths/te:p2p-primary-path/" 1353 + "te:path-in-segment/te:forward/te:label-restrictions/" 1354 + "te:label-restriction" { 1355 description "OTN label."; 1356 uses otn-types:otn-label-restriction; 1357 } 1359 /* Augment label restrictions start for the forwarding direction of path-in-segment of primary path */ 1360 augment "/te:te/te:tunnels/te:tunnel/" 1361 + "te:p2p-primary-paths/te:p2p-primary-path/" 1362 + "te:path-in-segment/te:forward/te:label-restrictions/" 1363 + "te:label-restriction/te:label-start/" 1364 + "te:te-label/te:technology" { 1365 description "OTN label."; 1366 case otn { 1367 uses otn-types:otn-link-label; 1368 } 1369 } 1371 /* Augment label restrictions end for the forwarding direction of path-in-segment of primary path */ 1372 augment "/te:te/te:tunnels/te:tunnel/" 1373 + "te:p2p-primary-paths/te:p2p-primary-path/" 1374 + "te:path-in-segment/te:forward/te:label-restrictions/" 1375 + "te:label-restriction/te:label-end/" 1376 + "te:te-label/te:technology" { 1377 description "OTN label."; 1378 case otn { 1379 uses otn-types:otn-link-label; 1380 } 1381 } 1383 /* Augment label restrictions for the reverse direction of path-in-segment of primary path */ 1384 augment "/te:te/te:tunnels/te:tunnel/" 1385 + "te:p2p-primary-paths/te:p2p-primary-path/" 1386 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1387 + "te:label-restriction" { 1388 description "OTN label."; 1389 uses otn-types:otn-label-restriction; 1390 } 1391 /* Augment label restrictions start for the reverse direction of path-in-segment of primary path */ 1392 augment "/te:te/te:tunnels/te:tunnel/" 1393 + "te:p2p-primary-paths/te:p2p-primary-path/" 1394 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1395 + "te:label-restriction/te:label-start/" 1396 + "te:te-label/te:technology" { 1397 description "OTN label."; 1398 case otn { 1399 uses otn-types:otn-link-label; 1400 } 1401 } 1403 /* Augment label restrictions end for the reverse direction of path-in-segment of primary path */ 1404 augment "/te:te/te:tunnels/te:tunnel/" 1405 + "te:p2p-primary-paths/te:p2p-primary-path/" 1406 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1407 + "te:label-restriction/te:label-end/" 1408 + "te:te-label/te:technology" { 1409 description "OTN label."; 1410 case otn { 1411 uses otn-types:otn-link-label; 1412 } 1413 } 1415 /* Augment label restrictions for the forwarding direction of path-out-segment of primary path */ 1416 augment "/te:te/te:tunnels/te:tunnel/" 1417 + "te:p2p-primary-paths/te:p2p-primary-path/" 1418 + "te:path-out-segment/te:forward/te:label-restrictions/" 1419 + "te:label-restriction" { 1420 description "OTN label."; 1421 uses otn-types:otn-label-restriction; 1422 } 1424 /* Augment label restrictions start for the forwarding direction of path-out-segment of primary path */ 1425 augment "/te:te/te:tunnels/te:tunnel/" 1426 + "te:p2p-primary-paths/te:p2p-primary-path/" 1427 + "te:path-out-segment/te:forward/te:label-restrictions/" 1428 + "te:label-restriction/te:label-start/" 1429 + "te:te-label/te:technology" { 1430 description "OTN label."; 1431 case otn { 1432 uses otn-types:otn-link-label; 1433 } 1434 } 1436 /* Augment label restrictions end for the forwarding direction of path-out-segment of primary path */ 1437 augment "/te:te/te:tunnels/te:tunnel/" 1438 + "te:p2p-primary-paths/te:p2p-primary-path/" 1439 + "te:path-out-segment/te:forward/te:label-restrictions/" 1440 + "te:label-restriction/te:label-end/" 1441 + "te:te-label/te:technology" { 1442 description "OTN label."; 1443 case otn { 1444 uses otn-types:otn-link-label; 1445 } 1446 } 1448 /* Augment label restrictions for the reverse direction of path-out-segment of primary path */ 1449 augment "/te:te/te:tunnels/te:tunnel/" 1450 + "te:p2p-primary-paths/te:p2p-primary-path/" 1451 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1452 + "te:label-restriction" { 1453 description "OTN label."; 1454 uses otn-types:otn-label-restriction; 1455 } 1457 /* Augment label restrictions start for the reverse direction of path-out-segment of primary path */ 1458 augment "/te:te/te:tunnels/te:tunnel/" 1459 + "te:p2p-primary-paths/te:p2p-primary-path/" 1460 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1461 + "te:label-restriction/te:label-start/" 1462 + "te:te-label/te:technology" { 1463 description "OTN label."; 1464 case otn { 1465 uses otn-types:otn-link-label; 1466 } 1467 } 1469 /* Augment label restrictions end for the reverse direction of path-out-segment of primary path */ 1470 augment "/te:te/te:tunnels/te:tunnel/" 1471 + "te:p2p-primary-paths/te:p2p-primary-path/" 1472 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1473 + "te:label-restriction/te:label-end/" 1474 + "te:te-label/te:technology" { 1475 description "OTN label."; 1476 case otn { 1477 uses otn-types:otn-link-label; 1478 } 1479 } 1481 /* Augment label hop of path-route of primary path */ 1482 augment "/te:te/te:tunnels/te:tunnel/" 1483 + "te:p2p-primary-paths/te:p2p-primary-path/" 1484 + "te:state/te:path-properties/" 1485 + "te:path-route-objects/te:path-computed-route-object/" 1486 + "te:state/te:type/te:label/" 1487 + "te:label-hop/te:te-label/te:technology" { 1488 description "OTN label."; 1489 case otn { 1490 uses otn-types:otn-path-label; 1491 } 1492 } 1494 /* Augment label hop of record-route of primary LSP */ 1495 augment "/te:te/te:tunnels/te:tunnel/" 1496 + "te:p2p-primary-paths/te:p2p-primary-path/" 1497 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1498 + "te:record-route-subobject/te:type/te:label/" 1499 + "te:label-hop/te:te-label/te:technology" { 1500 description "OTN label."; 1501 case otn { 1502 uses otn-types:otn-path-label; 1503 } 1504 } 1506 /* Augment label hop of path-route of primary LSP */ 1507 augment "/te:te/te:tunnels/te:tunnel/" 1508 + "te:p2p-primary-paths/te:p2p-primary-path/" 1509 + "te:state/te:lsps/te:lsp/te:path-properties/" 1510 + "te:path-route-objects/te:path-computed-route-object/" 1511 + "te:state/te:type/te:label/" 1512 + "te:label-hop/te:te-label/te:technology" { 1513 description "OTN label."; 1514 case otn { 1515 uses otn-types:otn-path-label; 1516 } 1517 } 1519 /* Augment label hop of route-exclude of reverse primary path */ 1520 augment "/te:te/te:tunnels/te:tunnel/" 1521 + "te:p2p-primary-paths/te:p2p-primary-path/" 1522 + "te:p2p-reverse-primary-path/" 1523 + "te:optimizations/te:algorithm/te:metric/" 1524 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1525 + "te:route-object-exclude-object/te:type/te:label/" 1526 + "te:label-hop/te:te-label/te:technology" { 1527 description "OTN label."; 1528 case otn { 1529 uses otn-types:otn-path-label; 1530 } 1531 } 1533 /* Augment label hop of route-include of reverse primary path */ 1534 augment "/te:te/te:tunnels/te:tunnel/" 1535 + "te:p2p-primary-paths/te:p2p-primary-path/" 1536 + "te:p2p-reverse-primary-path/" 1537 + "te:optimizations/te:algorithm/te:metric/" 1538 + "te:optimization-metric/te:explicit-route-include-objects/" 1539 + "te:route-object-include-object/te:type/te:label/" 1540 + "te:label-hop/te:te-label/te:technology" { 1541 description "OTN label."; 1542 case otn { 1543 uses otn-types:otn-path-label; 1544 } 1545 } 1547 /* Augment label hop of route-object-exclude-always of reverse primary path */ 1548 augment "/te:te/te:tunnels/te:tunnel/" 1549 + "te:p2p-primary-paths/te:p2p-primary-path/" 1550 + "te:p2p-reverse-primary-path/" 1551 + "te:explicit-route-objects/" 1552 + "te:route-object-exclude-always/" 1553 + "te:type/te:label/" 1554 + "te:label-hop/te:te-label/te:technology" { 1555 description "OTN label."; 1556 case otn { 1557 uses otn-types:otn-path-label; 1558 } 1559 } 1561 /* Augment label hop of route-object-include-exclude of reverse primary path */ 1562 augment "/te:te/te:tunnels/te:tunnel/" 1563 + "te:p2p-primary-paths/te:p2p-primary-path/" 1564 + "te:p2p-reverse-primary-path/" 1565 + "te:explicit-route-objects/" 1566 + "te:route-object-include-exclude/" 1567 + "te:type/te:label/" 1568 + "te:label-hop/te:te-label/te:technology" { 1569 description "OTN label."; 1570 case otn { 1571 uses otn-types:otn-path-label; 1572 } 1573 } 1575 /* Augment label restrictions for the forwarding direction of path-in-segment of reverse primary path */ 1576 augment "/te:te/te:tunnels/te:tunnel/" 1577 + "te:p2p-primary-paths/te:p2p-primary-path/" 1578 + "te:p2p-reverse-primary-path/" 1579 + "te:path-in-segment/te:forward/te:label-restrictions/" 1580 + "te:label-restriction" { 1581 description "OTN label."; 1582 uses otn-types:otn-label-restriction; 1584 } 1586 /* Augment label restrictions start for the forwarding direction of path-in-segment of reverse primary path */ 1587 augment "/te:te/te:tunnels/te:tunnel/" 1588 + "te:p2p-primary-paths/te:p2p-primary-path/" 1589 + "te:p2p-reverse-primary-path/" 1590 + "te:path-in-segment/te:forward/te:label-restrictions/" 1591 + "te:label-restriction/te:label-start/" 1592 + "te:te-label/te:technology" { 1593 description "OTN label."; 1594 case otn { 1595 uses otn-types:otn-link-label; 1596 } 1597 } 1599 /* Augment label restrictions end for the forwarding direction of path-in-segment of reverse primary path */ 1600 augment "/te:te/te:tunnels/te:tunnel/" 1601 + "te:p2p-primary-paths/te:p2p-primary-path/" 1602 + "te:p2p-reverse-primary-path/" 1603 + "te:path-in-segment/te:forward/te:label-restrictions/" 1604 + "te:label-restriction/te:label-end/" 1605 + "te:te-label/te:technology" { 1606 description "OTN label."; 1607 case otn { 1608 uses otn-types:otn-link-label; 1609 } 1610 } 1612 /* Augment label restrictions for the reverse direction of path-in-segment of reverse primary path */ 1613 augment "/te:te/te:tunnels/te:tunnel/" 1614 + "te:p2p-primary-paths/te:p2p-primary-path/" 1615 + "te:p2p-reverse-primary-path/" 1616 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1617 + "te:label-restriction" { 1618 description "OTN label."; 1619 uses otn-types:otn-label-restriction; 1620 } 1622 /* Augment label restrictions start for the reverse direction of path-in-segment of reverse primary path */ 1623 augment "/te:te/te:tunnels/te:tunnel/" 1624 + "te:p2p-primary-paths/te:p2p-primary-path/" 1625 + "te:p2p-reverse-primary-path/" 1626 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1627 + "te:label-restriction/te:label-start/" 1628 + "te:te-label/te:technology" { 1629 description "OTN label."; 1630 case otn { 1631 uses otn-types:otn-link-label; 1633 } 1634 } 1636 /* Augment label restrictions end for the reverse direction of path-in-segment of reverse primary path */ 1637 augment "/te:te/te:tunnels/te:tunnel/" 1638 + "te:p2p-primary-paths/te:p2p-primary-path/" 1639 + "te:p2p-reverse-primary-path/" 1640 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1641 + "te:label-restriction/te:label-end/" 1642 + "te:te-label/te:technology" { 1643 description "OTN label."; 1644 case otn { 1645 uses otn-types:otn-link-label; 1646 } 1647 } 1649 /* Augment label restrictions for the forwarding direction of path-out-segment of reverse primary path */ 1650 augment "/te:te/te:tunnels/te:tunnel/" 1651 + "te:p2p-primary-paths/te:p2p-primary-path/" 1652 + "te:p2p-reverse-primary-path/" 1653 + "te:path-out-segment/te:forward/te:label-restrictions/" 1654 + "te:label-restriction" { 1655 description "OTN label."; 1656 uses otn-types:otn-label-restriction; 1657 } 1659 /* Augment label restrictions start for the forwarding direction of path-out-segment of reverse primary path */ 1660 augment "/te:te/te:tunnels/te:tunnel/" 1661 + "te:p2p-primary-paths/te:p2p-primary-path/" 1662 + "te:p2p-reverse-primary-path/" 1663 + "te:path-out-segment/te:forward/te:label-restrictions/" 1664 + "te:label-restriction/te:label-start/" 1665 + "te:te-label/te:technology" { 1666 description "OTN label."; 1667 case otn { 1668 uses otn-types:otn-link-label; 1669 } 1670 } 1672 /* Augment label restrictions end for the forwarding direction of path-out-segment of reverse primary path */ 1673 augment "/te:te/te:tunnels/te:tunnel/" 1674 + "te:p2p-primary-paths/te:p2p-primary-path/" 1675 + "te:p2p-reverse-primary-path/" 1676 + "te:path-out-segment/te:forward/te:label-restrictions/" 1677 + "te:label-restriction/te:label-end/" 1678 + "te:te-label/te:technology" { 1679 description "OTN label."; 1680 case otn { 1681 uses otn-types:otn-link-label; 1682 } 1683 } 1685 /* Augment label restrictions for the reverse direction of path-out-segment of reverse primary path */ 1686 augment "/te:te/te:tunnels/te:tunnel/" 1687 + "te:p2p-primary-paths/te:p2p-primary-path/" 1688 + "te:p2p-reverse-primary-path/" 1689 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1690 + "te:label-restriction" { 1691 description "OTN label."; 1692 uses otn-types:otn-label-restriction; 1693 } 1695 /* Augment label restrictions start for the reverse direction of path-out-segment of reverse primary path */ 1696 augment "/te:te/te:tunnels/te:tunnel/" 1697 + "te:p2p-primary-paths/te:p2p-primary-path/" 1698 + "te:p2p-reverse-primary-path/" 1699 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1700 + "te:label-restriction/te:label-start/" 1701 + "te:te-label/te:technology" { 1702 description "OTN label."; 1703 case otn { 1704 uses otn-types:otn-link-label; 1705 } 1706 } 1708 /* Augment label restrictions end for the reverse direction of path-out-segment of reverse primary path */ 1709 augment "/te:te/te:tunnels/te:tunnel/" 1710 + "te:p2p-primary-paths/te:p2p-primary-path/" 1711 + "te:p2p-reverse-primary-path/" 1712 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1713 + "te:label-restriction/te:label-end/" 1714 + "te:te-label/te:technology" { 1715 description "OTN label."; 1716 case otn { 1717 uses otn-types:otn-link-label; 1718 } 1719 } 1721 /* Augment label hop of path-route of reverse primary path */ 1722 augment "/te:te/te:tunnels/te:tunnel/" 1723 + "te:p2p-primary-paths/te:p2p-primary-path/" 1724 + "te:p2p-reverse-primary-path/" 1725 + "te:state/te:path-properties/" 1726 + "te:path-route-objects/te:path-computed-route-object/" 1727 + "te:state/te:type/te:label/" 1728 + "te:label-hop/te:te-label/te:technology" { 1730 description "OTN label."; 1731 case otn { 1732 uses otn-types:otn-path-label; 1733 } 1734 } 1736 /* Augment label hop of record-route of reverse primary LSP */ 1737 augment "/te:te/te:tunnels/te:tunnel/" 1738 + "te:p2p-primary-paths/te:p2p-primary-path/" 1739 + "te:p2p-reverse-primary-path/" 1740 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1741 + "te:record-route-subobject/te:type/te:label/" 1742 + "te:label-hop/te:te-label/te:technology" { 1743 description "OTN label."; 1744 case otn { 1745 uses otn-types:otn-path-label; 1746 } 1747 } 1749 /* Augment label hop of path-route of reverse primary LSP */ 1750 augment "/te:te/te:tunnels/te:tunnel/" 1751 + "te:p2p-primary-paths/te:p2p-primary-path/" 1752 + "te:p2p-reverse-primary-path/" 1753 + "te:state/te:lsps/te:lsp/te:path-properties/" 1754 + "te:path-route-objects/te:path-computed-route-object/" 1755 + "te:state/te:type/te:label/" 1756 + "te:label-hop/te:te-label/te:technology" { 1757 description "OTN label."; 1758 case otn { 1759 uses otn-types:otn-path-label; 1760 } 1761 } 1763 /* Augment label hop of route-exclude of secondary path */ 1764 augment "/te:te/te:tunnels/te:tunnel/" 1765 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1766 + "te:optimizations/te:algorithm/te:metric/" 1767 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1768 + "te:route-object-exclude-object/te:type/te:label/" 1769 + "te:label-hop/te:te-label/te:technology" { 1770 description "OTN label."; 1771 case otn { 1772 uses otn-types:otn-path-label; 1773 } 1774 } 1776 /* Augment label hop of route-include of secondary path */ 1777 augment "/te:te/te:tunnels/te:tunnel/" 1778 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1779 + "te:optimizations/te:algorithm/te:metric/" 1780 + "te:optimization-metric/te:explicit-route-include-objects/" 1781 + "te:route-object-include-object/te:type/te:label/" 1782 + "te:label-hop/te:te-label/te:technology" { 1783 description "OTN label."; 1784 case otn { 1785 uses otn-types:otn-path-label; 1786 } 1787 } 1789 /* Augment label hop of route-object-exclude-always of secondary path */ 1790 augment "/te:te/te:tunnels/te:tunnel/" 1791 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1792 + "te:explicit-route-objects/" 1793 + "te:route-object-exclude-always/te:type/te:label/" 1794 + "te:label-hop/te:te-label/te:technology" { 1795 description "OTN label."; 1796 case otn { 1797 uses otn-types:otn-path-label; 1798 } 1799 } 1801 /* Augment label hop of route-object-include-exclude of secondary path */ 1802 augment "/te:te/te:tunnels/te:tunnel/" 1803 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1804 + "te:explicit-route-objects/" 1805 + "te:route-object-include-exclude/te:type/te:label/" 1806 + "te:label-hop/te:te-label/te:technology" { 1807 description "OTN label."; 1808 case otn { 1809 uses otn-types:otn-path-label; 1810 } 1811 } 1813 /* Augment label restrictions for the forwarding direction of path-in-segment of secondary path */ 1814 augment "/te:te/te:tunnels/te:tunnel/" 1815 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1816 + "te:path-in-segment/te:forward/te:label-restrictions/" 1817 + "te:label-restriction" { 1818 description "OTN label."; 1819 uses otn-types:otn-label-restriction; 1820 } 1822 /* Augment label restrictions start for the forwarding direction of path-in-segment of secondary path */ 1823 augment "/te:te/te:tunnels/te:tunnel/" 1824 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1825 + "te:path-in-segment/te:forward/te:label-restrictions/" 1826 + "te:label-restriction/te:label-start/" 1827 + "te:te-label/te:technology" { 1828 description "OTN label."; 1829 case otn { 1830 uses otn-types:otn-link-label; 1831 } 1832 } 1834 /* Augment label restrictions end for the forwarding direction of path-in-segment of secondary path */ 1835 augment "/te:te/te:tunnels/te:tunnel/" 1836 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1837 + "te:path-in-segment/te:forward/te:label-restrictions/" 1838 + "te:label-restriction/te:label-end/" 1839 + "te:te-label/te:technology" { 1840 description "OTN label."; 1841 case otn { 1842 uses otn-types:otn-link-label; 1843 } 1844 } 1846 /* Augment label restrictions for the reverse direction of path-in-segment of secondary path */ 1847 augment "/te:te/te:tunnels/te:tunnel/" 1848 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1849 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1850 + "te:label-restriction" { 1851 description "OTN label."; 1852 uses otn-types:otn-label-restriction; 1853 } 1855 /* Augment label restrictions start for the reverse direction of path-in-segment of secondary path */ 1856 augment "/te:te/te:tunnels/te:tunnel/" 1857 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1858 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1859 + "te:label-restriction/te:label-start/" 1860 + "te:te-label/te:technology" { 1861 description "OTN label."; 1862 case otn { 1863 uses otn-types:otn-link-label; 1864 } 1865 } 1867 /* Augment label restrictions end for the reverse direction of path-in-segment of secondary path */ 1868 augment "/te:te/te:tunnels/te:tunnel/" 1869 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1870 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1871 + "te:label-restriction/te:label-end/" 1872 + "te:te-label/te:technology" { 1873 description "OTN label."; 1874 case otn { 1875 uses otn-types:otn-link-label; 1876 } 1877 } 1879 /* Augment label restrictions for the forwarding direction of path-out-segment of secondary path */ 1880 augment "/te:te/te:tunnels/te:tunnel/" 1881 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1882 + "te:path-out-segment/te:forward/te:label-restrictions/" 1883 + "te:label-restriction" { 1884 description "OTN label."; 1885 uses otn-types:otn-label-restriction; 1886 } 1888 /* Augment label restrictions start for the forwarding direction of path-out-segment of secondary path */ 1889 augment "/te:te/te:tunnels/te:tunnel/" 1890 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1891 + "te:path-out-segment/te:forward/te:label-restrictions/" 1892 + "te:label-restriction/te:label-start/" 1893 + "te:te-label/te:technology" { 1894 description "OTN label."; 1895 case otn { 1896 uses otn-types:otn-link-label; 1897 } 1898 } 1900 /* Augment label restrictions end for the forwarding direction of path-out-segment of secondary path */ 1901 augment "/te:te/te:tunnels/te:tunnel/" 1902 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1903 + "te:path-out-segment/te:forward/te:label-restrictions/" 1904 + "te:label-restriction/te:label-end/" 1905 + "te:te-label/te:technology" { 1906 description "OTN label."; 1907 case otn { 1908 uses otn-types:otn-link-label; 1909 } 1910 } 1912 /* Augment label restrictions for the reverse direction of path-out-segment of secondary path */ 1913 augment "/te:te/te:tunnels/te:tunnel/" 1914 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1915 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1916 + "te:label-restriction" { 1917 description "OTN label."; 1918 uses otn-types:otn-label-restriction; 1919 } 1921 /* Augment label restrictions start for the reverse direction of path-out-segment of secondary path */ 1922 augment "/te:te/te:tunnels/te:tunnel/" 1923 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1924 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1925 + "te:label-restriction/te:label-start/" 1926 + "te:te-label/te:technology" { 1927 description "OTN label."; 1928 case otn { 1929 uses otn-types:otn-link-label; 1930 } 1931 } 1933 /* Augment label restrictions end for the reverse direction of path-out-segment of secondary path */ 1934 augment "/te:te/te:tunnels/te:tunnel/" 1935 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1936 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1937 + "te:label-restriction/te:label-end/" 1938 + "te:te-label/te:technology" { 1939 description "OTN label."; 1940 case otn { 1941 uses otn-types:otn-link-label; 1942 } 1943 } 1945 /* Augment label hop of path-route of secondary path */ 1946 augment "/te:te/te:tunnels/te:tunnel/" 1947 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1948 + "te:state/te:path-properties/te:path-route-objects/" 1949 + "te:path-computed-route-object/te:state/te:type/te:label/" 1950 + "te:label-hop/te:te-label/te:technology" { 1951 description "OTN label."; 1952 case otn { 1953 uses otn-types:otn-path-label; 1954 } 1955 } 1957 /* Augment label hop of record-route of secondary LSP */ 1958 augment "/te:te/te:tunnels/te:tunnel/" 1959 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1960 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1961 + "te:record-route-subobject/te:type/te:label/" 1962 + "te:label-hop/te:te-label/te:technology" { 1963 description "OTN label."; 1964 case otn { 1965 uses otn-types:otn-path-label; 1966 } 1967 } 1969 /* Augment label hop of path-route of secondary LSP */ 1970 augment "/te:te/te:tunnels/te:tunnel/" 1971 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1972 + "te:state/te:lsps/te:lsp/te:path-properties/" 1973 + "te:path-route-objects/" 1974 + "te:path-computed-route-object/te:state/te:type/te:label/" 1975 + "te:label-hop/te:te-label/te:technology" { 1976 description "OTN label."; 1977 case otn { 1978 uses otn-types:otn-path-label; 1979 } 1980 } 1982 /* Augment label hop of record-route of LSP */ 1983 augment "/te:te/te:lsps-state/" 1984 + "te:lsp/te:lsp-record-route-subobjects/" 1985 + "te:record-route-subobject/te:type/te:label/" 1986 + "te:label-hop/te:te-label/te:technology" { 1987 description "OTN label."; 1988 case otn { 1989 uses otn-types:otn-path-label; 1990 } 1991 } 1993 grouping p2p-path-ero { 1994 description 1995 "TE tunnel ERO configuration grouping"; 1997 leaf te-default-metric { 1998 type uint32; 1999 description 2000 "Traffic engineering metric."; 2001 } 2002 leaf te-delay-metric { 2003 type uint32; 2004 description 2005 "Traffic engineering delay metric."; 2006 } 2007 leaf te-hop-metric { 2008 type uint32; 2009 description 2010 "Traffic engineering hop metric."; 2011 } 2012 container explicit-route-objects { 2013 description "Explicit route objects container"; 2014 list explicit-route-object { 2015 key "index"; 2016 description 2017 "List of explicit route objects"; 2019 leaf explicit-route-usage { 2020 type identityref { 2021 base te-types:route-usage-type; 2022 } 2023 description "An explicit-route hop action."; 2024 } 2025 uses te-types:explicit-route-hop { 2026 augment "type/label/label-hop/te-label/technology" { 2027 description "OTN label."; 2028 case otn { 2029 uses otn-types:otn-path-label; 2030 } 2031 } 2032 } 2033 } 2034 } 2035 } 2037 rpc otn-te-tunnel-path-compute { 2038 description "OTN TE tunnel path computation"; 2039 input { 2040 list request { 2041 key "id"; 2042 description "A list of path computation requests."; 2044 leaf id { 2045 type uint8; 2046 description 2047 "Request ID."; 2048 } 2049 leaf type { 2050 type identityref { 2051 base te-types:tunnel-type; 2052 } 2053 description "TE tunnel type."; 2054 } 2055 leaf source { 2056 type inet:ip-address; 2057 description 2058 "TE tunnel source address."; 2059 } 2060 leaf destination { 2061 type inet:ip-address; 2062 description 2063 "TE tunnel destination address"; 2064 } 2065 leaf src-tp-id { 2066 type binary; 2067 description 2068 "TE tunnel source termination point identifier."; 2069 } 2070 leaf dst-tp-id { 2071 type binary; 2072 description 2073 "TE tunnel destination termination point identifier."; 2074 } 2075 leaf switching-layer { 2076 type identityref { 2077 base te-types:switching-capabilities; 2078 } 2079 description 2080 "Switching layer where the requests are computed."; 2081 } 2082 leaf encoding { 2083 type identityref { 2084 base te-types:lsp-encoding-types; 2085 } 2086 description "LSP encoding type"; 2087 } 2088 leaf protection-type { 2089 type identityref { 2090 base te-types:lsp-protection-type; 2091 } 2092 description "LSP protection type"; 2093 } 2094 leaf restoration-type { 2095 type identityref { 2096 base te-types:lsp-restoration-type; 2097 } 2098 description "LSP restoration type"; 2099 } 2100 leaf provider-id { 2101 type te-types:te-global-id; 2102 description 2103 "An identifier to uniquely identify a provider."; 2104 } 2105 leaf client-id { 2106 type te-types:te-global-id; 2107 description 2108 "An identifier to uniquely identify a client."; 2109 } 2110 leaf te-topology-id { 2111 type te-types:te-topology-id; 2112 description 2113 "It is presumed that a datastore will contain many 2114 topologies. To distinguish between topologies it is 2115 vital to have UNIQUE topology identifiers."; 2116 } 2117 leaf setup-priority { 2118 type uint8 { 2119 range "0..7"; 2120 } 2121 description 2122 "TE LSP setup priority"; 2123 } 2124 leaf hold-priority { 2125 type uint8 { 2126 range "0..7"; 2127 } 2128 description 2129 "TE LSP hold priority"; 2130 } 2131 leaf te-path-metric-type { 2132 type identityref { 2133 base te-types:path-metric-type; 2134 } 2135 default te-types:path-metric-te; 2136 description 2137 "The tunnel path metric type."; 2138 } 2140 leaf odu-type { 2141 type identityref{ 2142 base otn-types:tributary-protocol-type; 2143 } 2144 description "Type of ODU"; 2145 } 2146 container p2p-primary-paths { 2147 description "Set of P2P primary paths container"; 2148 list p2p-primary-path { 2149 key "name"; 2150 description 2151 "List of primary paths for this tunnel."; 2152 leaf name { 2153 type string; 2154 description "TE path name"; 2155 } 2156 uses p2p-path-ero; 2157 } 2158 } 2159 container p2p-secondary-paths { 2160 description "Set of P2P secondary paths container"; 2161 list p2p-secondary-path { 2162 key "name"; 2163 description 2164 "List of secondary paths for this tunnel."; 2165 leaf name { 2166 type string; 2167 description "TE path name"; 2168 } 2169 uses p2p-path-ero; 2170 } 2171 } 2172 uses otn-tunnel-attributes; 2173 } 2174 } 2175 output { 2176 leaf return-code { 2177 type enumeration { 2178 enum success { 2179 description "success"; 2180 } 2181 enum aborted { 2182 description "aborted"; 2183 } 2184 enum destination-not-found { 2185 description "destination-not-found"; 2186 } 2187 enum invalid-argument { 2188 description "invalid-argument"; 2189 } 2190 enum no-memory { 2191 description "no-memory"; 2192 } 2193 enum no-path-found { 2194 description "no-path-found"; 2195 } 2196 enum other-error { 2197 description "other-error"; 2198 } 2199 enum some-path-not-found { 2200 description "some-path-not-found"; 2201 } 2202 enum source-not-found { 2203 description "source-not-found"; 2204 } 2205 enum topology-error { 2206 description "topology-error"; 2207 } 2208 } 2209 description 2210 "Return code"; 2212 } 2213 list result { 2214 key "id"; 2215 description 2216 "A list of results for all requests."; 2218 leaf id { 2219 type uint8; 2220 description 2221 "Request ID"; 2222 } 2223 container p2p-primary-paths { 2224 description "Set of P2P primary paths container"; 2225 list p2p-primary-path { 2226 key "name"; 2227 description 2228 "List of resultant primary paths for this tunnel."; 2229 leaf name { 2230 type string; 2231 description "TE path name"; 2232 } 2233 uses p2p-path-ero; 2234 } 2235 } 2236 container p2p-secondary-paths { 2237 description "Set of P2P secondary paths container"; 2238 list p2p-secondary-path { 2239 key "name"; 2240 description 2241 "List of resultant secondary paths for this tunnel."; 2242 leaf name { 2243 type string; 2244 description "TE path name"; 2245 } 2246 uses p2p-path-ero; 2247 } 2248 } 2249 } 2250 } 2251 } 2252 } 2254 2255 6. OTN Types YANG Code 2257 file "ietf-otn-types@2018-06-30.yang" 2259 module ietf-otn-types { 2260 namespace "urn:ietf:params:xml:ns:yang:ietf-otn-types"; 2261 prefix "otn-types"; 2263 organization 2264 "IETF CCAMP Working Group"; 2265 contact 2266 "WG Web: 2267 WG List: 2269 Editor: Haomian Zheng 2270 2272 Editor: Aihua Guo 2273 2275 Editor: Italo Busi 2276 2278 Editor: Anurag Sharma 2279 2281 Editor: Rajan Rao 2282 2284 Editor: Sergio Belotti 2285 2287 Editor: Victor Lopez 2288 2290 Editor: Yunbo Li 2291 2293 Editor: Yunbin Xu 2294 "; 2296 description 2297 "This module defines OTN types."; 2299 revision "2018-06-30" { 2300 description 2301 "Revision 0.6"; 2303 reference 2304 "draft-ietf-ccamp-otn-tunnel-model-03"; 2305 } 2307 identity tributary-slot-granularity { 2308 description 2309 "Tributary slot granularity"; 2310 reference 2311 "G.709/Y.1331, February 2016: Interfaces for the Optical 2312 Transport Network (OTN)"; 2313 } 2315 identity tsg-1.25G { 2316 base tributary-slot-granularity; 2317 description 2318 "1.25G tributary slot granularity"; 2319 } 2321 identity tsg-2.5G { 2322 base tributary-slot-granularity; 2323 description 2324 "2.5G tributary slot granularity"; 2325 } 2326 /* 2327 identity tsg-1.25Gand2.5G { 2328 base tributary-slot-granularity; 2329 description 2330 "Both 1.25G and 2.5G tributary slot granularity"; 2331 } 2332 */ 2333 /* 2334 Note: suggest to replace the term 'tributary-protocol-type' with 2335 'odu-type', to avoid misleading. 2336 */ 2337 identity tributary-protocol-type { 2338 description 2339 "Base identity for protocol framing used by tributary signals"; 2340 } 2342 /* 2343 Note: suggest to remove all the prot-OTUx 2344 */ 2346 identity prot-OTU1 { 2347 base tributary-protocol-type; 2348 description 2349 "OTU1 protocol (2.66G)"; 2350 } 2352 /* 2353 identity prot-OTU1e { 2354 base tributary-protocol-type; 2355 description 2356 "OTU1e type (11.04G)"; 2357 } 2359 identity prot-OTU1f { 2360 base tributary-protocol-type; 2361 description 2362 "OTU1f type (11.27G)"; 2363 } 2364 */ 2365 identity prot-OTU2 { 2366 base tributary-protocol-type; 2367 description 2368 "OTU2 type (10.70G)"; 2369 } 2371 identity prot-OTU2e { 2372 base tributary-protocol-type; 2373 description 2374 "OTU2e type (11.09G)"; 2375 } 2376 /* 2377 identity prot-OTU2f { 2378 base tributary-protocol-type; 2379 description 2380 "OTU2f type (11.31G)"; 2381 } 2382 */ 2383 identity prot-OTU3 { 2384 base tributary-protocol-type; 2385 description 2386 "OTU3 type (43.01G)"; 2387 } 2388 /* 2389 identity prot-OTU3e1 { 2390 base tributary-protocol-type; 2391 description 2392 "OTU3e1 type (44.57G)"; 2393 } 2395 identity prot-OTU3e2 { 2396 base tributary-protocol-type; 2397 description 2398 "OTU3e2 type (44.58G)"; 2399 } 2401 */ 2402 identity prot-OTU4 { 2403 base tributary-protocol-type; 2404 description 2405 "OTU4 type (111.80G)"; 2406 } 2408 identity prot-OTUCn { 2409 base tributary-protocol-type; 2410 description 2411 "OTUCn type (beyond 100G)"; 2412 } 2414 /* 2415 Note: suggest to rename the term, remove the prefix 'prot-'. 2416 */ 2418 identity prot-ODU0 { 2419 base tributary-protocol-type; 2420 description 2421 "ODU0 protocol (1.24G)"; 2422 } 2424 identity prot-ODU1 { 2425 base tributary-protocol-type; 2426 description 2427 "ODU1 protocol (2.49G)"; 2428 } 2429 /* 2430 identity prot-ODU1e { 2431 base tributary-protocol-type; 2432 description 2433 "ODU1e protocol (10.35G)."; 2434 } 2436 identity prot-ODU1f { 2437 base tributary-protocol-type; 2438 description 2439 "ODU1f protocol (10.56G)."; 2440 } 2441 */ 2442 identity prot-ODU2 { 2443 base tributary-protocol-type; 2444 description 2445 "ODU2 protocol (10.03G)"; 2446 } 2448 identity prot-ODU2e { 2449 base tributary-protocol-type; 2450 description 2451 "ODU2e protocol (10.39G)"; 2452 } 2453 /* 2454 identity prot-ODU2f { 2455 base tributary-protocol-type; 2456 description 2457 "ODU2f protocol (10.60G)."; 2458 } 2459 */ 2460 identity prot-ODU3 { 2461 base tributary-protocol-type; 2462 description 2463 "ODU3 protocol (40.31G)"; 2464 } 2465 /* 2466 identity prot-ODU3e1 { 2467 base tributary-protocol-type; 2468 description 2469 "ODU3e1 protocol (41.77G)."; 2470 } 2472 identity prot-ODU3e2 { 2473 base tributary-protocol-type; 2474 description 2475 "ODU3e2 protocol (41.78G)."; 2476 } 2477 */ 2478 identity prot-ODU4 { 2479 base tributary-protocol-type; 2480 description 2481 "ODU4 protocol (104.79G)"; 2482 } 2484 identity prot-ODUFlex-cbr { 2485 base tributary-protocol-type; 2486 description 2487 "ODU Flex CBR protocol for transporting constant bit rate 2488 signal"; 2489 } 2491 identity prot-ODUFlex-gfp { 2492 base tributary-protocol-type; 2493 description 2494 "ODU Flex GFP protocol for transporting stream of packets 2495 using Generic Framing Procedure"; 2496 } 2497 identity prot-ODUCn { 2498 base tributary-protocol-type; 2499 description 2500 "ODUCn protocol (beyond 100G)"; 2501 } 2503 /* 2504 Note: suggest to remove the types with 'prot-xGbE'. 2505 */ 2507 identity prot-1GbE { 2508 base tributary-protocol-type; 2509 description 2510 "1G Ethernet protocol"; 2511 } 2512 identity prot-10GbE-LAN { 2513 base tributary-protocol-type; 2514 description 2515 "10G Ethernet LAN protocol"; 2516 } 2518 identity prot-40GbE { 2519 base tributary-protocol-type; 2520 description 2521 "40G Ethernet protocol"; 2522 } 2524 identity prot-100GbE { 2525 base tributary-protocol-type; 2526 description 2527 "100G Ethernet protocol"; 2528 } 2530 identity client-signal { 2531 description 2532 "Base identity from which specific client signals for the 2533 tunnel are derived"; 2534 } 2536 /* 2537 Note: need to reconsider the prefix 'client-signal'. 2538 Comment 1: need to understand whether for same client-signal, there 2539 should be separate identity for transparent and non-transparent or not? 2540 Comment 2: need to better align the term with other models, like L1CSM. 2541 */ 2543 identity client-signal-1GbE { 2544 base client-signal; 2545 description 2546 "Client signal type of 1GbE"; 2547 } 2549 identity client-signal-10GbE-LAN { 2550 base client-signal; 2551 description 2552 "Client signal type of 10GbE LAN"; 2553 } 2555 identity client-signal-10GbE-WAN { 2556 base client-signal; 2557 description 2558 "Client signal type of 10GbE WAN"; 2559 } 2561 identity client-signal-40GbE { 2562 base client-signal; 2563 description 2564 "Client signal type of 40GbE"; 2565 } 2567 identity client-signal-100GbE { 2568 base client-signal; 2569 description 2570 "Client signal type of 100GbE"; 2571 } 2573 identity client-signal-OC3_STM1 { 2574 base client-signal; 2575 description 2576 "Client signal type of OC3 & STM1"; 2577 } 2579 identity client-signal-OC12_STM4 { 2580 base client-signal; 2581 description 2582 "Client signal type of OC12 & STM4"; 2583 } 2585 identity client-signal-OC48_STM16 { 2586 base client-signal; 2587 description 2588 "Client signal type of OC48 & STM16"; 2589 } 2591 identity client-signal-OC192_STM64 { 2592 base client-signal; 2593 description 2594 "Client signal type of OC192 & STM64"; 2595 } 2597 identity client-signal-OC768_STM256 { 2598 base client-signal; 2599 description 2600 "Client signal type of OC768 & STM256"; 2601 } 2603 identity client-signal-ODU0 { 2604 base client-signal; 2605 description 2606 "Client signal type of ODU0 (1.24G)"; 2607 } 2609 identity client-signal-ODU1 { 2610 base client-signal; 2611 description 2612 "ODU1 protocol (2.49G)"; 2613 } 2615 identity client-signal-ODU2 { 2616 base client-signal; 2617 description 2618 "Client signal type of ODU2 (10.03G)"; 2619 } 2621 identity client-signal-ODU2e { 2622 base client-signal; 2623 description 2624 "Client signal type of ODU2e (10.39G)"; 2625 } 2627 identity client-signal-ODU3 { 2628 base client-signal; 2629 description 2630 "Client signal type of ODU3 (40.31G)"; 2631 } 2632 /* 2633 identity client-signal-ODU3e2 { 2634 base client-signal; 2635 description 2636 "Client signal type of ODU3e2 (41.78G)"; 2637 } 2638 */ 2639 identity client-signal-ODU4 { 2640 base client-signal; 2641 description 2642 "Client signal type of ODU4 (104.79G)"; 2643 } 2645 identity client-signal-ODUflex-cbr { 2646 base client-signal; 2647 description 2648 "Client signal type of ODU Flex CBR"; 2649 } 2651 identity client-signal-ODUflex-gfp { 2652 base client-signal; 2653 description 2654 "Client signal type of ODU Flex GFP"; 2655 } 2657 identity client-signal-ODUCn { 2658 base client-signal; 2659 description 2660 "Client signal type of ODUCn (beyond 100G)"; 2661 } 2663 identity client-signal-FC400 { 2664 base client-signal; 2665 description 2666 "Client signal type of Fibre Channel FC400"; 2667 } 2669 identity client-signal-FC800 { 2670 base client-signal; 2671 description 2672 "Client signal type of Fibre Channel FC800"; 2673 } 2675 identity client-signal-FICON-4G { 2676 base client-signal; 2677 description 2678 "Client signal type of Fibre Connection 4G"; 2679 } 2681 identity client-signal-FICON-8G { 2682 base client-signal; 2683 description 2684 "Client signal type of Fibre Connection 8G"; 2685 } 2687 identity client-signal-OTU1 { 2688 base client-signal; 2689 description 2690 "Client signal type of OTU1"; 2691 } 2693 identity client-signal-OTU2 { 2694 base client-signal; 2695 description 2696 "Client signal type of OTU2"; 2697 } 2699 identity client-signal-OTU2e { 2700 base client-signal; 2701 description 2702 "Client signal type of OTU2e"; 2703 } 2705 identity client-signal-OTU3 { 2706 base client-signal; 2707 description 2708 "Client signal type of OTU3"; 2709 } 2711 identity client-signal-OTU4 { 2712 base client-signal; 2713 description 2714 "Client signal type of OTU4"; 2715 } 2717 identity otn-label-range-type { 2718 description 2719 "Base identity from which specific OTN label 2720 range types derived"; 2721 } 2723 identity label-range-trib-slot { 2724 base otn-label-range-type; 2725 description 2726 "Defines a range of OTN tributary slots"; 2727 } 2729 identity label-range-trib-port { 2730 base otn-label-range-type; 2731 description 2732 "Defines a range of OTN tributary ports"; 2733 } 2735 grouping otn-link-bandwidth { 2736 list odulist { 2737 key "odu-type"; 2738 description 2739 "OTN bandwidth definition"; 2740 leaf odu-type { 2741 type identityref { 2742 base otn-types:tributary-protocol-type; 2743 } 2744 description "ODU type"; 2745 } 2746 leaf number { 2747 type uint16; 2748 description "Number of ODUs"; 2749 } 2750 } 2751 } 2753 grouping otn-path-bandwidth { 2754 leaf odu-type { 2755 type identityref { 2756 base otn-types:tributary-protocol-type; 2757 } 2758 description "ODU type"; 2759 } 2760 } 2762 grouping otn-label-restriction { 2763 leaf range-type { 2764 type identityref { 2765 base otn-types:otn-label-range-type; 2766 } 2767 } 2768 leaf tsg { 2769 type identityref { 2770 base otn-types:tributary-slot-granularity; 2771 } 2772 description "Tributary slot granularity."; 2773 reference 2774 "G.709/Y.1331, February 2016: Interfaces for the 2775 Optical Transport Network (OTN)"; 2776 } 2777 leaf priority { 2778 type uint8; 2779 description "priority."; 2780 } 2781 } 2783 grouping otn-link-label { 2784 choice otn-label-type { 2785 description 2786 "OTN label type"; 2787 case tributary-port { 2788 leaf tpn { 2789 type uint16 { 2790 range "1..4095"; 2791 } 2792 description 2793 "Tributary Port Number. Applicable in case of mux services."; 2794 reference 2795 "RFC7139: GMPLS Signaling Extensions for Control of Evolving 2796 G.709 Optical Transport Networks."; 2797 } 2798 } 2799 case tributary-slot { 2800 leaf ts { 2801 type uint16 { 2802 range "1..4095"; 2803 } 2804 description 2805 "Tributary Slot Number. Applicable in case of mux services."; 2806 reference 2807 "RFC7139: GMPLS Signaling Extensions for Control of Evolving 2808 G.709 Optical Transport Networks."; 2809 } 2810 } 2811 } 2812 } 2814 grouping otn-path-label { 2815 leaf tpn { 2816 type uint16 { 2817 range "1..4095"; 2818 } 2819 description 2820 "Tributary Port Number. Applicable in case of mux services."; 2821 reference 2822 "RFC7139: GMPLS Signaling Extensions for Control of Evolving 2823 G.709 Optical Transport Networks."; 2824 } 2825 leaf tsg { 2826 type identityref { 2827 base otn-types:tributary-slot-granularity; 2828 } 2829 description "Tributary slot granularity."; 2830 reference 2831 "G.709/Y.1331, February 2016: Interfaces for the 2832 Optical Transport Network (OTN)"; 2833 } 2834 leaf ts-list { 2835 type string { 2836 pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" 2837 + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; 2838 } 2839 description 2840 "A list of available tributary slots ranging 2841 between 1 and 9999. 2842 For example 1-20,25,50-1000"; 2843 reference "RFC 7139: GMPLS Signaling Extensions for Control 2844 of Evolving G.709 Optical Transport Networks"; 2845 } 2846 } 2847 } 2849 2851 7. Security Considerations 2853 TBD. 2855 8. IANA Considerations 2857 TBD. 2859 9. Acknowledgements 2861 TBD. 2863 10. Contributors 2865 Dieter Beller 2866 Nokia 2867 Email: dieter.beller@nokia.com 2869 Yanlei Zheng 2870 China Unicom 2871 Email: zhengyl@dimpt.com 2873 Xian Zhang 2874 Huawei Technologies 2875 Email: zhang.xian@huawei.com 2877 Lei Wang 2878 China Mobile 2879 Email: wangleiyj@chinamobile.com 2881 Oscar Gonzalez de Dios 2882 Telefonica 2883 Email: oscar.gonzalezdedios@telefonica.com 2885 11. References 2887 11.1. Normative References 2889 [I-D.ietf-ccamp-otn-topo-yang] 2890 zhenghaomian@huawei.com, z., Guo, A., Busi, I., Sharma, 2891 A., Liu, X., Belotti, S., Xu, Y., Wang, L., and O. Dios, 2892 "A YANG Data Model for Optical Transport Network 2893 Topology", draft-ietf-ccamp-otn-topo-yang-03 (work in 2894 progress), June 2018. 2896 [I-D.ietf-ccamp-transport-nbi-app-statement] 2897 Busi, I., King, D., zhenghaomian@huawei.com, z., and Y. 2898 Xu, "Transport Northbound Interface Applicability 2899 Statement", draft-ietf-ccamp-transport-nbi-app- 2900 statement-01 (work in progress), March 2018. 2902 [I-D.ietf-teas-yang-te] 2903 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 2904 I. Bryskin, "A YANG Data Model for Traffic Engineering 2905 Tunnels and Interfaces", draft-ietf-teas-yang-te-15 (work 2906 in progress), June 2018. 2908 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2909 and A. Bierman, Ed., "Network Configuration Protocol 2910 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2911 . 2913 [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., 2914 and K. Pithewan, "GMPLS Signaling Extensions for Control 2915 of Evolving G.709 Optical Transport Networks", RFC 7139, 2916 DOI 10.17487/RFC7139, March 2014, 2917 . 2919 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2920 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2921 . 2923 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2924 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 2925 . 2927 11.2. Informative References 2929 [I-D.ietf-netmod-yang-tree-diagrams] 2930 Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- 2931 ietf-netmod-yang-tree-diagrams-06 (work in progress), 2932 February 2018. 2934 [I-D.ietf-teas-actn-yang] 2935 Lee, Y., zhenghaomian@huawei.com, z., Ceccarelli, D., 2936 Yoon, B., and S. Belotti, "Applicability of YANG models 2937 for Abstraction and Control of Traffic Engineered 2938 Networks", draft-ietf-teas-actn-yang-01 (work in 2939 progress), February 2018. 2941 [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. 2942 Ceccarelli, "Framework for GMPLS and PCE Control of G.709 2943 Optical Transport Networks", RFC 7062, 2944 DOI 10.17487/RFC7062, November 2013, 2945 . 2947 [RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and 2948 J. Drake, "Traffic Engineering Extensions to OSPF for 2949 GMPLS Control of Evolving G.709 Optical Transport 2950 Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014, 2951 . 2953 Authors' Addresses 2955 Haomian Zheng 2956 Huawei Technologies 2957 F3 R&D Center, Huawei Industrial Base, Bantian, Longgang District 2958 Shenzhen, Guangdong 518129 2959 P.R.China 2961 Email: zhenghaomian@huawei.com 2963 Aihua Guo 2964 Huawei Technologies 2965 12007 Sunrise Valley Drive, Suite 325 2966 Reston, VA 20171 2967 U.S.A 2969 Email: aihuaguo@huawei.com 2970 Italo Busi 2971 Huawei Technologies 2972 HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2 2973 Milan, Milan 20090 2974 Italy 2976 Email: Italo.Busi@huawei.com 2978 Anurag Sharma 2979 Google 2980 1600 Amphitheatre Parkway 2981 Mountain View, CA 94043 2982 USA 2984 Email: ansha@google.com 2986 Rajan Rao 2987 Infinera 2988 169 Java Drive 2989 Sunnyvale, CA 94089 2990 USA 2992 Email: rrao@infinera.com 2994 Sergio Belotti 2995 Nokia 2997 Email: sergio.belotti@nokia.com 2999 Victor Lopez 3000 Telefonica 3002 Email: victor.lopezalvarez@telefonica.com 3004 Yunbo Li 3005 China Mobile 3007 Email: liyunbo@chinamobile.com 3008 Yunbin Xu 3009 CAICT 3011 Email: xuyunbin@ritt.cn